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

NAME

       SoCylinder — cylinder shape node

INHERITS FROM

       SoBase > SoFieldContainer > SoNode > SoShape > SoCylinder

SYNOPSIS

       #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:

                         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 = FALSE)
     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

DESCRIPTION

       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 size.

       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 cylinder.

       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.

FIELDS

     SoSFBitMask         parts
          Visible parts of cylinder.

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

METHODS

                         SoCylinder()
          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 cylinder.

     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.

ACTION BEHAVIOR

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

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

     SoGetBoundingBoxAction
          Computes the bounding box that encloses the cylinder.

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

FILE FORMAT/DEFAULTS

       Cylinder {
          parts   ALL
          radius  1
          height  2
     }

SEE ALSO

       SoCone, SoCube, SoCylinderDetail, SoSphere

                                                                                               SoCylinder(3IV)()