SoFaceSet(3IV)

SoFaceSet (SoFset) - polygonal face shape node

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.

NAME
     SoFaceSet (SoFset) - polygonal face shape node

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoShape > SoVertexShape >
     SoNonIndexedShape > SoFaceSet

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

     typedef SoFaceSet   SoFset

          Fields from class SoFaceSet:

     SoMFInt32           numVertices

          Fields from class SoNonIndexedShape:

     SoSFInt32           startIndex

          Fields from class SoVertexShape:

     SoSFNode            vertexProperty

          Functions from class SoFaceSet:

     SoFaceSet *         SoFsetCreate()
     SoType              SoFsetGetClassTypeId()

          Functions from class SoNode:

     void                SoFsetSetOverride(SoFset *this, SbBool state)
     SbBool              SoFsetIsOverride(const SoFset *this)
     SoNode *            SoFsetCopy(const SoFset *this, SbBool copyConnections
                              = FALSE)
     SbBool              SoFsetAffectsState(const SoFset *this)
     SoNode *            SoFsetGetByName(const char *name)
     int                 SoFsetGetByNameList(const char *name, SoNodeList
                              *list)

          Functions from class SoFieldContainer:

     void                SoFsetSetToDflts(SoFset *this)
     SbBool              SoFsetHasDfltVals(const SoFset *this)
     SbBool              SoFsetFldsAreEq(const SoFset *this, const
                              SoFieldContainer *fc)
     void                SoFsetCopyFieldVals(SoFset *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
     SbBool              SoFsetSet(SoFset *this, const char *fieldDataString)
     void                SoFsetGet(SoFset *this, SbString *fieldDataString)

     int                 SoFsetGetFields(const SoFset *this, SoFieldList
                              *resultList)
     SoField *           SoFsetGetField(const SoFset *this, const char
                              *fieldName)
     SbBool              SoFsetGetFieldName(const SoFset *this, const SoField
                              *field, SbName *fieldName)
     SbBool              SoFsetIsNotifyEnabled(const SoFset *this)
     SbBool              SoFsetEnableNotify(SoFset *this, SbBool flag)

          Functions from class SoBase:

     void                SoFsetRef(SoFset *this)
     void                SoFsetUnref(const SoFset *this)
     void                SoFsetUnrefNoDelete(const SoFset *this)
     void                SoFsetTouch(SoFset *this)
     SoType              SoFsetGetTypeId(const SoFset *this)
     SbBool              SoFsetIsOfType(const SoFset *this, SoType type)
     void                SoFsetSetName(SoFset *this, const char *name)
     SbName              SoFsetGetName(const SoFset *this)


DESCRIPTION
     This node represents a 3D shape formed by constructing faces (polygons)
     from vertices located at the coordinates specified in the vertexProperty
     field (from SoVertexShape), or the current inherited state. For optimal
     performance, the vertexProperty field is recommended.

     SoFaceSet uses the coordinates in order, starting with the first one.
     Each face has a number of vertices specified by a value in the
     numVertices field. For example, an SoFaceSet with numVertices of [3,4,4]
     would use coordinates 1, 2, and 3 for the first face, coordinates 4, 5,
     6, and 7 for the second face, and coordinates 8, 9, 10, and 11 for the
     third. For improved performance, arrange all the faces with only 3
     vertices at beginning of the list, then all faces with 4 vertices, and
     finally all other faces.

     The number of values in the numVertices field indicates the number of
     faces in the set.

     The coordinates of the face set are transformed by the current cumulative
     transformation. The faces are drawn with the current light model and
     drawing style.

     Treatment of the current material and normal binding is as follows: The
     PER_PART and PER_FACE bindings specify a material or normal for each
     face. The _INDEXED bindings are equivalent to their non-indexed
     counterparts. The default material binding is OVERALL. The default normal
     binding is PER_VERTEX.

     If any normals (or materials) are specified, Inventor assumes you provide
     the correct number of them, as indicated by the binding. You will see
     unexpected results if you specify fewer normals (or materials) than the
     shape requires. If no normals are specified, they will be generated
     automatically.

FIELDS
     SoMFInt32           numVertices
          Number of vertices per face.


FUNCTIONS
     SoFaceSet *         SoFsetCreate()
          Creates a face set node with default settings.

     SoType              SoFsetGetClassTypeId()
          Returns type identifier for this class.


ACTION BEHAVIOR
     SoGLRenderAction
          Draws faces based on the current coordinates, normals, materials,
          drawing style, and so on.

     SoRayPickAction
          Picks faces based on the current coordinates and transformation.
          Details about the intersection are returned in an SoFaceDetail.

     SoGetBoundingBoxAction
          Computes the bounding box that encloses all vertices of the face set
          with the current transformation applied to them. Sets the center to
          the average of the coordinates of all vertices.

     SoCallbackAction
          If any triangle callbacks are registered with the action, they will
          be invoked for each successive triangle generated from each face in
          the set.


FILE FORMAT/DEFAULTS
     FaceSet {
          vertexProperty  NULL
          startIndex      0
          numVertices     -1
     }

SEE ALSO
     SoCoordinate3, SoDrawStyle, SoIndexedFaceSet, SoFaceDetail,
     SoVertexProperty