SoCylinder(3IV)

SoCylinder (SoCyl) - cylinder shape node

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

NAME
     SoCylinder (SoCyl) - cylinder shape node

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoShape > SoCylinder

SYNOPSIS
     #include <Inventor_c/nodes/SoCylinder.h>

     typedef SoCylinder  SoCyl

     enum SoCylinderPart {
          SO_CYL_SIDES        The cylindrical part
          SO_CYL_TOP          The top circular face
          SO_CYL_BOTTOM       The bottom circular face
          SO_CYL_ALL          All parts
     }

          Fields from class SoCylinder:

     SoSFBitMask         parts
     SoSFFloat           radius
     SoSFFloat           height

          Functions from class SoCylinder:

     SoCylinder *        SoCylCreate()
     void                SoCylAddPart(SoCyl *this, SoCylPart part)
     void                SoCylRemovePart(SoCyl *this, SoCylPart part)
     SbBool              SoCylHasPart(const SoCyl *this, SoCylPart part)
     SoType              SoCylGetClassTypeId()

          Functions from class SoNode:

     void                SoCylSetOverride(SoCyl *this, SbBool state)
     SbBool              SoCylIsOverride(const SoCyl *this)
     SoNode *            SoCylCopy(const SoCyl *this, SbBool copyConnections =
                              FALSE)
     SbBool              SoCylAffectsState(const SoCyl *this)
     SoNode *            SoCylGetByName(const char *name)
     int                 SoCylGetByNameList(const char *name, SoNodeList
                              *list)

          Functions from class SoFieldContainer:

     void                SoCylSetToDflts(SoCyl *this)
     SbBool              SoCylHasDfltVals(const SoCyl *this)
     SbBool              SoCylFldsAreEq(const SoCyl *this, const
                              SoFieldContainer *fc)
     void                SoCylCopyFieldVals(SoCyl *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
     SbBool              SoCylSet(SoCyl *this, const char *fieldDataString)
     void                SoCylGet(SoCyl *this, SbString *fieldDataString)
     int                 SoCylGetFields(const SoCyl *this, SoFieldList
                              *resultList)
     SoField *           SoCylGetField(const SoCyl *this, const char
                              *fieldName)
     SbBool              SoCylGetFieldName(const SoCyl *this, const SoField
                              *field, SbName *fieldName)
     SbBool              SoCylIsNotifyEnabled(const SoCyl *this)
     SbBool              SoCylEnableNotify(SoCyl *this, SbBool flag)

          Functions from class SoBase:

     void                SoCylRef(SoCyl *this)
     void                SoCylUnref(const SoCyl *this)
     void                SoCylUnrefNoDelete(const SoCyl *this)
     void                SoCylTouch(SoCyl *this)
     SoType              SoCylGetTypeId(const SoCyl *this)
     SbBool              SoCylIsOfType(const SoCyl *this, SoType type)
     void                SoCylSetName(SoCyl *this, const char *name)
     SbName              SoCylGetName(const SoCyl *this)


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.


FUNCTIONS
     SoCylinder *        SoCylCreate()
          Creates a cylinder node with default settings.

     void                SoCylAddPart(SoCyl *this, SoCylPart part)
     void                SoCylRemovePart(SoCyl *this, SoCylPart part)
          These are convenience functions that make it easy to turn on or off
          a part of the cylinder.

     SbBool              SoCylHasPart(const SoCyl *this, SoCylPart part)
          This convenience function returns whether a given part is on or off.

     SoType              SoCylGetClassTypeId()
          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