.TH "SoVRMLCylinder" 3 "Thu May 29 2014" "Version 4.0.0a" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoVRMLCylinder \- .PP The \fBSoVRMLCylinder\fP class is used to represent a cylinder object\&. .PP \fBThe detailed class documentation is taken verbatim from the VRML97 standard (ISO/IEC 14772-1:1997)\&. It is copyright The Web3D Consortium, and is used by permission of the Consortium:\fP .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBSoVRMLGeometry\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual \fBSoType\fP \fBgetTypeId\fP (void) const " .br .RI "\fIReturns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for run-time type checking and 'downward' casting\&. \fP" .ti -1c .RI "\fBSoVRMLCylinder\fP (void)" .br .ti -1c .RI "virtual void \fBGLRender\fP (\fBSoGLRenderAction\fP *action)" .br .ti -1c .RI "virtual void \fBrayPick\fP (\fBSoRayPickAction\fP *action)" .br .ti -1c .RI "virtual void \fBgetPrimitiveCount\fP (\fBSoGetPrimitiveCountAction\fP *action)" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static \fBSoType\fP \fBgetClassTypeId\fP (void)" .br .ti -1c .RI "static void \fBinitClass\fP (void)" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "\fBSoSFFloat\fP \fBradius\fP" .br .ti -1c .RI "\fBSoSFFloat\fP \fBheight\fP" .br .ti -1c .RI "\fBSoSFBool\fP \fBside\fP" .br .ti -1c .RI "\fBSoSFBool\fP \fBtop\fP" .br .ti -1c .RI "\fBSoSFBool\fP \fBbottom\fP" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual const \fBSoFieldData\fP * \fBgetFieldData\fP (void) const " .br .ti -1c .RI "virtual \fB~SoVRMLCylinder\fP ()" .br .ti -1c .RI "virtual void \fBgeneratePrimitives\fP (\fBSoAction\fP *action)" .br .ti -1c .RI "virtual void \fBcomputeBBox\fP (\fBSoAction\fP *action, \fBSbBox3f\fP &box, \fBSbVec3f\fP ¢er)" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "static const \fBSoFieldData\fP ** \fBgetFieldDataPtr\fP (void)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSoVRMLCylinder\fP class is used to represent a cylinder object\&. .PP \fBThe detailed class documentation is taken verbatim from the VRML97 standard (ISO/IEC 14772-1:1997)\&. It is copyright The Web3D Consortium, and is used by permission of the Consortium:\fP .PP .nf Cylinder { field SFBool bottom TRUE field SFFloat height 2 # (0,) field SFFloat radius 1 # (0,) field SFBool side TRUE field SFBool top TRUE } .fi .PP .PP The Cylinder node specifies a capped cylinder centred at (0,0,0) in the local coordinate system and with a central axis oriented along the local Y-axis\&. By default, the cylinder is sized at '-1' to '+1' in all three dimensions\&. The radius field specifies the radius of the cylinder and the height field specifies the height of the cylinder along the central axis\&. Both radius and height shall be greater than zero\&. Figure 6\&.4 illustrates the Cylinder node\&. .PP The cylinder has three parts: the side, the top (Y = +height/2) and the bottom (Y = -height/2)\&. Each part has an associated SFBool field that indicates whether the part exists (TRUE) or does not exist (FALSE)\&. Parts which do not exist are not rendered and not eligible for intersection tests (e\&.g\&., collision detection or sensor activation)\&. .PP Figure 6\&.4 .PP When a texture is applied to a cylinder, it is applied differently to the sides, top, and bottom\&. On the sides, the texture wraps counterclockwise (from above) starting at the back of the cylinder\&. The texture has a vertical seam at the back, intersecting the X=0 plane\&. For the top and bottom caps, a circle is cut out of the unit texture squares centred at (0, +/- height/2, 0) with dimensions 2 × radius by 2 × radius\&. The top texture appears right side up when the top of the cylinder is tilted toward the +Z-axis, and the bottom texture appears right side up when the top of the cylinder is tilted toward the -Z-axis\&. \fBSoVRMLTextureTransform\fP affects the texture coordinates of the Cylinder node\&. The Cylinder node's geometry requires outside faces only\&. When viewed from the inside the results are undefined\&. .SH "Constructor & Destructor Documentation" .PP .SS "SoVRMLCylinder::SoVRMLCylinder (void)" Constructor\&. .SS "SoVRMLCylinder::~SoVRMLCylinder ()\fC [protected]\fP, \fC [virtual]\fP" Destructor\&. .SH "Member Function Documentation" .PP .SS "\fBSoType\fP SoVRMLCylinder::getTypeId (void) const\fC [virtual]\fP" .PP Returns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for run-time type checking and 'downward' casting\&. Usage example: .PP .PP .nf void foo(SoNode * node) { if (node->getTypeId() == SoFile::getClassTypeId()) { SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type } } .fi .PP .PP For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in \fIall\fP subclasses\&. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through for instance \fBInventor/nodes/SoSubNode\&.h\fP (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine\&.h (for engine classes) and so on\&. .PP For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups\&. .PP Reimplemented from \fBSoVRMLGeometry\fP\&. .SS "const \fBSoFieldData\fP * SoVRMLCylinder::getFieldData (void) const\fC [protected]\fP, \fC [virtual]\fP" Returns a pointer to the class-wide field data storage object for this instance\&. If no fields are present, returns \fCNULL\fP\&. .PP Reimplemented from \fBSoVRMLGeometry\fP\&. .SS "void SoVRMLCylinder::GLRender (\fBSoGLRenderAction\fP *action)\fC [virtual]\fP" Action method for the \fBSoGLRenderAction\fP\&. .PP This is called during rendering traversals\&. Nodes influencing the rendering state in any way or who wants to throw geometry primitives at OpenGL overrides this method\&. .PP Reimplemented from \fBSoShape\fP\&. .SS "void SoVRMLCylinder::rayPick (\fBSoRayPickAction\fP *action)\fC [virtual]\fP" Calculates picked point based on primitives generated by subclasses\&. .PP Reimplemented from \fBSoShape\fP\&. .SS "void SoVRMLCylinder::getPrimitiveCount (\fBSoGetPrimitiveCountAction\fP *action)\fC [virtual]\fP" Action method for the \fBSoGetPrimitiveCountAction\fP\&. .PP Calculates the number of triangle, line segment and point primitives for the node and adds these to the counters of the \fIaction\fP\&. .PP Nodes influencing how geometry nodes calculates their primitive count also overrides this method to change the relevant state variables\&. .PP Reimplemented from \fBSoShape\fP\&. .SS "void SoVRMLCylinder::generatePrimitives (\fBSoAction\fP *action)\fC [protected]\fP, \fC [virtual]\fP" The method implements action behavior for shape nodes for \fBSoCallbackAction\fP\&. It is invoked from \fBSoShape::callback()\fP\&. (Subclasses should \fInot\fP override \fBSoNode::callback()\fP\&.) .PP The subclass implementations uses the convenience methods \fBSoShape::beginShape()\fP, \fBSoShape::shapeVertex()\fP, and \fBSoShape::endShape()\fP, with \fBSoDetail\fP instances, to pass the primitives making up the shape back to the caller\&. .PP Implements \fBSoShape\fP\&. .SS "void SoVRMLCylinder::computeBBox (\fBSoAction\fP *action, \fBSbBox3f\fP &box, \fBSbVec3f\fP ¢er)\fC [protected]\fP, \fC [virtual]\fP" Implemented by \fBSoShape\fP subclasses to let the \fBSoShape\fP superclass know the exact size and weighted center point of the shape's bounding box\&. .PP The bounding box and center point should be calculated and returned in the local coordinate system\&. .PP The method implements action behavior for shape nodes for \fBSoGetBoundingBoxAction\fP\&. It is invoked from \fBSoShape::getBoundingBox()\fP\&. (Subclasses should \fInot\fP override \fBSoNode::getBoundingBox()\fP\&.) .PP The \fIbox\fP parameter sent in is guaranteed to be an empty box, while \fIcenter\fP is undefined upon function entry\&. .PP Implements \fBSoShape\fP\&. .SH "Member Data Documentation" .PP .SS "\fBSoSFFloat\fP SoVRMLCylinder::radius" The cylinder radius\&. Default value is 1\&.0\&. .SS "\fBSoSFFloat\fP SoVRMLCylinder::height" The cylinder height\&. Default value is 2\&.0\&. .SS "\fBSoSFBool\fP SoVRMLCylinder::side" Enable/disable the cylinder side wall\&. Default value is TRUE\&. .SS "\fBSoSFBool\fP SoVRMLCylinder::top" Enable/disable the cylinder top\&. Default value is TRUE\&. .SS "\fBSoSFBool\fP SoVRMLCylinder::bottom" Enable/disable the cylinder bottom\&. Default value is TRUE\&. .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.