SOINDEXEDNURBSCURVE(3iv)
π SoIndexedNurbsCurve β the indexed NURBS curve shape node (from the 3IV manual, bestie) π
okay so picture this: you wanna draw a curvy little line, but you want to be fancy about it. that's her. that's the main character. π
πΈ INHERITS FROM πΈ
SoBase > SoFieldContainer > SoNode > SoShape > SoIndexedNurbsCurve
the whole family tree, no cap. she got it from her ancestors. π
β¨ SYNOPSIS β¨
#include <Inventor/nodes/SoIndexedNurbsCurve.h>
Fields from class SoIndexedNurbsCurve:
SoSFInt32 numControlPoints
SoMFInt32 coordIndex
SoMFFloat knotVector
Methods from class SoIndexedNurbsCurve:
SoIndexedNurbsCurve()
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 π¦
okay so this class represents a NURBS curve and it's built entirely off the knot vector and the control points you hand it. it's giving choose-your-own-adventure but for geometry. π
the knotVector field is a floating-point array of values β those values are the coordinates of the knot points in the curve, and you MUST enter them in non-decreasing order. like. non-decreasing. don't test her. π
the numControlPoints field says how many control points the curve is gonna have, and it pulls the actual coordinates from the ones indexed in the coordIndex field.
want a curve of minimum order (2)? easy bestie β¨ just specify two more knots than control points and have at least two control points. that curve would literally just be a set of line segments connecting the control points together. lowkey simple, still cute.
want a curve of maximum order (8)? π specify 8 more knots than control points and have 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. main character energy honestly.
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 β and heads up, drawing style FILLED is treated as LINES. π
also: 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. she comes pre-loaded, no outside help needed. π
and the approximation of the curve by line segments is affected by the current complexity value. so like, complexity is the vibe check here.
π FIELDS π
SoSFInt32numControlPointsβ number of control points for the curve. how many besties are on the roster. π«ΆSoMFInt32coordIndexβ coordinate indices for the control points. the little address book pointing at who's who.SoMFFloatknotVectorβ the knot vector for the curve. values must be in non-decreasing order. non-decreasing. always. β
π METHODS π
SoIndexedNurbsCurve()β creates an indexed NURBS curve node with default settings. she's born. she's iconic. πstatic SoType getClassTypeId()β returns type identifier for this class. iykyk. β¨
π₯ ACTION BEHAVIOR π₯
SoGLRenderActionβ draws the curve based on the current coordinates, material, and so on. she's on screen and she's serving. πSoRayPickActionβ picks the curve based on the current coordinates and transformation. getting picked is a compliment, fr fr. πΈSoGetBoundingBoxActionβ computes 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. like a little group hug box. π¦SoCallbackActionβ if any line segment callbacks are registered with the action, they will be invoked for each successive segment approximating the curve. every segment gets its moment. π
π FILE FORMAT/DEFAULTS π
IndexedNurbsCurve {
numControlPoints 0
coordIndex 0
knotVector 0
}
the glow-up starting point. everyone begins somewhere. π
β SEE ALSO β
SoNurbsCurveSoIndexedNurbsSurface
her cousins!! go say hi!! π«Ά
and that's the whole page bestie, no crumbs left π β this was SoIndexedNurbsCurve(3IV)(), source/version and date and all, straight from the 3IV manual and it slayed. periodt. π
β¨
π¦ where this page comes from
- debian bookworm: inventor-doc 2.1.5-10+dfsg-2 Β· LGPL-2.0-or-later
- debian trixie: inventor-doc 2.1.6+ds-2 Β· LGPL-2.0-or-later
- ubuntu jammy: inventor-doc 2.1.5-10-24
- ubuntu noble: inventor-doc 2.1.5-10+dfsg-2.1build2 Β· LGPL-2.0-or-later
- ubuntu questing: inventor-doc 2.1.6+ds-2
- ubuntu resolute: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- ubuntu stonking: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms