SoIndexedNurbsSurface(3IV)

SoIndexedNurbsSurface (SoIndNurbs) - indexed NURBS surface shape node

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

NAME
     SoIndexedNurbsSurface (SoIndNurbs) - indexed NURBS surface shape node

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoShape > SoIndexedNurbsSurface

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

     typedef SoIndexedNurbsSurface
                         SoIndNurbs

          Fields from class SoIndexedNurbsSurface:

     SoSFInt32           numUControlPoints
     SoSFInt32           numVControlPoints
     SoMFInt32           coordIndex
     SoMFFloat           uKnotVector
     SoMFFloat           vKnotVector
     SoSFInt32           numSControlPoints
     SoSFInt32           numTControlPoints
     SoMFInt32           textureCoordIndex
     SoMFFloat           sKnotVector
     SoMFFloat           tKnotVector

          Functions from class SoIndexedNurbsSurface:

     SoIndexedNurbsSurface *  SoIndNurbsCreate()
     SoType                   SoIndNurbsGetClassTypeId()

          Functions from class SoNode:

     void                SoIndNurbsSetOverride(SoIndNurbs *this, SbBool state)
     SbBool              SoIndNurbsIsOverride(const SoIndNurbs *this)
     SoNode *            SoIndNurbsCopy(const SoIndNurbs *this, SbBool
                              copyConnections = FALSE)
     SbBool              SoIndNurbsAffectsState(const SoIndNurbs *this)
     SoNode *            SoIndNurbsGetByName(const char *name)
     int                 SoIndNurbsGetByNameList(const char *name, SoNodeList
                              *list)

          Functions from class SoFieldContainer:

     void                SoIndNurbsSetToDflts(SoIndNurbs *this)
     SbBool              SoIndNurbsHasDfltVals(const SoIndNurbs *this)
     SbBool              SoIndNurbsFldsAreEq(const SoIndNurbs *this, const
                              SoFieldContainer *fc)
     void                SoIndNurbsCopyFieldVals(SoIndNurbs *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
     SbBool              SoIndNurbsSet(SoIndNurbs *this, const char
                              *fieldDataString)
     void                SoIndNurbsGet(SoIndNurbs *this, SbString
                              *fieldDataString)
     int                 SoIndNurbsGetFields(const SoIndNurbs *this,
                              SoFieldList *resultList)
     SoField *           SoIndNurbsGetField(const SoIndNurbs *this, const char
                              *fieldName)
     SbBool              SoIndNurbsGetFieldName(const SoIndNurbs *this, const
                              SoField *field, SbName *fieldName)
     SbBool              SoIndNurbsIsNotifyEnabled(const SoIndNurbs *this)
     SbBool              SoIndNurbsEnableNotify(SoIndNurbs *this, SbBool flag)

          Functions from class SoBase:

     void                SoIndNurbsRef(SoIndNurbs *this)
     void                SoIndNurbsUnref(const SoIndNurbs *this)
     void                SoIndNurbsUnrefNoDelete(const SoIndNurbs *this)
     void                SoIndNurbsTouch(SoIndNurbs *this)
     SoType              SoIndNurbsGetTypeId(const SoIndNurbs *this)
     SbBool              SoIndNurbsIsOfType(const SoIndNurbs *this, SoType
                              type)
     void                SoIndNurbsSetName(SoIndNurbs *this, const char *name)
     SbName              SoIndNurbsGetName(const SoIndNurbs *this)


DESCRIPTION
     This shape node represents a NURBS surface based on the knot vectors and
     the control points that you specify. The uKnotVector and vKnotVector
     fields specify floating-point arrays of values; the values are the
     coordinates of the knot points in the surface, and you must enter them in
     non-decreasing order. The numUControlPoints and numVControlPoints fields
     specify the number of control points the surface will have in the U and V
     parametric directions, and will use the current coordinates that are
     indexed from the coordIndex field.

     You can get a surface of minimum order (2) in the U or V directions by
     specifying two more knots than control points in that direction and
     having at least two control points in that direction. This surface would
     appear creased in one direction.

     You can get a surface of maximum order (8) in the U or V directions by
     specifying eight more knots than control points in that direction and
     having at least eight control points in that direction.

     The control points of the NURBS surface are transformed by the current
     cumulative transformation.  The surface is drawn with the current light
     model and drawing style. The coordinates, normals, and texture
     coordinates of a surface are generated, so you cannot bind explicit
     normals or texture coordinates to a NURBS surface. The first material in
     the state is applied to the entire surface.

     The surface is trimmed according to the currently defined profiles
     curves.
     When default texture coordinates are applied to a NURBS surface, the
     edges of the texture square are stretched to fit the surface. The axes of
     the texture are called S and T; S is horizontal and T is vertical. The
     axes of the NURBS surface are called U and V; U is horizontal and V is
     vertical. You can also define texture coordinates explicitly with the S,T
     location point, the knot vectors, and the current texture coordinates.

FIELDS
     SoSFInt32           numUControlPoints
     SoSFInt32           numVControlPoints
          Number of control points in the U and V directions.

     SoMFInt32           coordIndex
          Coordinate indices.

     SoMFFloat           uKnotVector
     SoMFFloat           vKnotVector
          The knot vectors in the U and V directions.

     SoSFInt32           numSControlPoints
     SoSFInt32           numTControlPoints
          Number of control points in the S and T directions.

     SoMFInt32           textureCoordIndex
          Texture coordinate indices.

     SoMFFloat           sKnotVector
     SoMFFloat           tKnotVector
          The knot vectors in the S and T directions.


FUNCTIONS
     SoIndexedNurbsSurface *  SoIndNurbsCreate()
          Creates an indexed NURBS surface node with default settings.

     SoType                   SoIndNurbsGetClassTypeId()
          Returns type identifier for this class.


ACTION BEHAVIOR
     SoGLRenderAction
          Draws the surface based on the current coordinates, material, and so
          on.

     SoRayPickAction
          Picks the surface based on the current coordinates and
          transformation.

     SoGetBoundingBoxAction
          Computes the bounding box that encloses all control points of the
          surface with the current transformation applied to them. Sets the
          center to the average of the control points.
     SoCallbackAction
          If any triangle callbacks are registered with the action, they will
          be invoked for each successive triangle approximating the surface.


FILE FORMAT/DEFAULTS
     IndexedNurbsSurface {
          numUControlPoints  0
          numVControlPoints  0
          numSControlPoints  0
          numTControlPoints  0
          coordIndex         0
          uKnotVector        0
          vKnotVector        0
          sKnotVector        0
          tKnotVector        0
          textureCoordIndex  -1
     }

SEE ALSO
     SoIndexedNurbsCurve, SoNurbsSurface, SoProfile