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

**NAME**

SoIndexedNurbsCurve — indexed NURBS curve shape node

**INHERITS** **FROM**

SoBase > SoFieldContainer > SoNode > SoShape > SoIndexedNurbsCurve

**SYNOPSIS**

#include<Inventor/nodes/SoIndexedNurbsCurve.h>Fields from class SoIndexedNurbsCurve:SoSFInt32numControlPointsSoMFInt32coordIndexSoMFFloatknotVectorMethods from class SoIndexedNurbsCurve:SoIndexedNurbsCurve()staticSoTypegetClassTypeId()Methods from class SoNode:voidsetOverride(SbBoolstate)SbBoolisOverride()constSoNode*copy(SbBoolcopyConnections=FALSE)constvirtualSbBoolaffectsState()conststaticSoNode*getByName(constSbName&name)staticintgetByName(constSbName&name,SoNodeList&list)Methods from class SoFieldContainer:voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)SbBoolset(constchar*fieldDataString)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)Methods from class SoBase:voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const

**DESCRIPTION**

This class represents a NURBS curve based on the knot vector and the control points that you specify. TheknotVectorfield specifies a floating-point array of values; the values are the coordinates of the knot points in the curve, and you must enter them in non- decreasing order. ThenumControlPointsfield specifies the number of control points the curve will have and will use the current coordinates that are indexed from thecoordIndexfield. You can get a curve of minimum order (2) by specifying two more knots than control points and having at least two control points. This curve would be a set of line segments connecting the control points together. You can get a curve of maximum order (8) by specifying 8 more knots than control points and having at least 8 control points. In this curve, each control point would have influence on a larger portion of the curve than with curves of lesser order. The control points of the curve are transformed by the current transformation matrix. The curve is drawn with the current lighting model and drawing style (drawing styleFILLEDis treated asLINES). The coordinates, normals, and texture coordinates of a NURBS curve are generated, so you cannot bind explicit normals or texture coordinates to a NURBS curve. The approximation of the curve by line segments is affected by the current complexity value.

**FIELDS**

SoSFInt32numControlPointsNumber of control points for the curve.SoMFInt32coordIndexCoordinate indices for the control points.SoMFFloatknotVectorThe knot vector for the curve. Values must be in non-decreasing order.

**METHODS**

SoIndexedNurbsCurve()Creates an indexed NURBS curve node with default settings.staticSoTypegetClassTypeId()Returns type identifier for this class.

**ACTION** **BEHAVIOR**

SoGLRenderActionDraws the curve based on the current coordinates, material, and so on.SoRayPickActionPicks the curve based on the current coordinates and transformation.SoGetBoundingBoxActionComputes the bounding box that encloses all control points of the curve with the current transformation applied to them. Sets the center to the average of the control points.SoCallbackActionIf any line segment callbacks are registered with the action, they will be invoked for each successive segment approximating the curve.

**FILE** **FORMAT/DEFAULTS**

IndexedNurbsCurve{numControlPoints0coordIndex0knotVector0}

**SEE** **ALSO**

SoNurbsCurve,SoIndexedNurbsSurfaceSoIndexedNurbsCurve(3IV)()