Provided by: inventor-doc_2.1.5-10-18_all bug


       SoCylinder — cylinder shape node


       SoBase > SoFieldContainer > SoNode > SoShape > SoCylinder


       #include <Inventor/nodes/SoCylinder.h>

     enum Part {
          SoCylinder::SIDES   The cylindrical part
          SoCylinder::TOP     The top circular face
          SoCylinder::BOTTOM  The bottom circular face
          SoCylinder::ALL     All parts

          Fields from class SoCylinder:

     SoSFBitMask         parts
     SoSFFloat           radius
     SoSFFloat           height

          Methods from class SoCylinder:

     void                addPart(SoCylinder::Part part)
     void                removePart(SoCylinder::Part part)
     SbBool              hasPart(SoCylinder::Part part) const
     static SoType       getClassTypeId()

          Methods from class SoNode:

     void                setOverride(SbBool state)
     SbBool              isOverride() const
     SoNode *            copy(SbBool copyConnections = FALSE) const
     virtual SbBool      affectsState() const
     static SoNode *     getByName(const SbName &name)
     static int          getByName(const SbName &name, SoNodeList &list)

          Methods from class SoFieldContainer:

     void                setToDefaults()
     SbBool              hasDefaultValues() const
     SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
     void                copyFieldValues(const  SoFieldContainer  *fc,  SbBool  copyConnections =
     SbBool              set(const char *fieldDataString)
     void                get(SbString &fieldDataString)
     virtual int         getFields(SoFieldList &resultList) const
     virtual SoField *   getField(const SbName &fieldName) const
     SbBool              getFieldName(const SoField *field, SbName &fieldName) const
     SbBool              isNotifyEnabled() const
     SbBool              enableNotify(SbBool flag)

          Methods from class SoBase:

     void                ref()
     void                unref() const
     void                unrefNoDelete() const
     void                touch()
     virtual SoType      getTypeId() const
     SbBool              isOfType(SoType type) const
     virtual void        setName(const SbName &name)
     virtual SbName      getName() const


       This node represents a simple capped cylinder centered around the y-axis. By default,  the
       cylinder  is  centered  at  (0,0,0)  and  has  a  default  size  of  -1 to +1 in all three
       dimensions. You can use the radius and height fields to create a cylinder with a different

       The cylinder is transformed by the current cumulative transformation and is drawn with the
       current lighting model, drawing style, material, and geometric complexity.

       If the current material  binding  is  PER_PART  or  PER_PART_INDEXED,  the  first  current
       material  is  used  for the sides of the cylinder, the second is used for the top, and the
       third is used for the bottom. Otherwise,  the  first  material  is  used  for  the  entire

       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 yz-plane.
       For the top and bottom, a circle is cut out of the texture square and applied to  the  top
       or  bottom  circle.  The top texture appears right side up when the top of the cylinder is
       tilted toward the camera, and the bottom texture appears right side up when the top of the
       cylinder is tilted away from the camera.


     SoSFBitMask         parts
          Visible parts of cylinder.

     SoSFFloat           radius
     SoSFFloat           height
          Define the cylinder's height and radius; values must be greater than 0.0.


          Creates a cylinder node with default settings.

     void                addPart(SoCylinder::Part part)
     void                removePart(SoCylinder::Part part)
          These  are  convenience  functions  that  make  it easy to turn on or off a part of the

     SbBool              hasPart(SoCylinder::Part part) const
          This convenience function returns whether a given part is on or off.

     static SoType       getClassTypeId()
          Returns type identifier for this class.


          Draws cylinder based on the current coordinates, materials, drawing style, and so on.

          Intersects the ray with the cylinder. The part of  the  cylinder  that  was  picked  is
          available from the SoCylinderDetail.

          Computes the bounding box that encloses the cylinder.

          If any triangle callbacks are registered with the action, they will be invoked for each
          successive triangle that approximates the cylinder.


       Cylinder {
          parts   ALL
          radius  1
          height  2


       SoCone, SoCube, SoCylinderDetail, SoSphere