SoIndexedNurbsCurve(3)
π NAME π
SoIndexedNurbsCurve β okay bestie, this class is literally a node for representing smooth curves. Thatβs the whole vibe. No cap. β¨
π¦ SYNOPSIS π¦
bestie, this is a LOT of inherited methods, but weβre not skipping a single one. every. single. one. π
#include <Inventor/nodes/SoIndexedNurbsCurve.h>
Inherits SoShape.
πΈ Public Member Functions πΈ
virtual SoType getTypeId (void) constβ gives you the type id.SoIndexedNurbsCurve (void)β the constructor.virtual void GLRender (SoGLRenderAction *action)β handles the GL render action.virtual void rayPick (SoRayPickAction *action)β does the ray pick thing.virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)β gets the primitive count.virtual void getBoundingBox (SoGetBoundingBoxAction *action)β gets the bounding box.void sendPrimitive (SoAction *, SoPrimitiveVertex *)β sends a primitive.
π Public Member Functions inherited from SoShape π
virtual SbBool affectsState (void) constβ checks if it affects state.virtual void notify (SoNotList *nl)β notifies with the list.virtual void callback (SoCallbackAction *action)β runs the callback action.const SoBoundingBoxCache * getBoundingBoxCache (void) constβ returns the bounding box cache.
π¦ Public Member Functions inherited from SoNode π¦
void setOverride (const SbBool state)β sets override.SbBool isOverride (void) constβ tells you if itβs override.void setNodeType (const NodeType type)β sets the node type.NodeType getNodeType (void) constβ gets the node type.virtual SoNode * copy (SbBool copyconnections=FALSE) constβ copies the node, withcopyconnections=FALSEby default.virtual void doAction (SoAction *action)β does the action.virtual void GLRenderBelowPath (SoGLRenderAction *action)β GL renders below path.virtual void GLRenderInPath (SoGLRenderAction *action)β GL renders in path.virtual void GLRenderOffPath (SoGLRenderAction *action)β GL renders off path.virtual void getMatrix (SoGetMatrixAction *action)β gets the matrix.virtual void handleEvent (SoHandleEventAction *action)β handles the event.virtual void pick (SoPickAction *action)β picks.virtual void search (SoSearchAction *action)β searches.virtual void write (SoWriteAction *action)β writes.virtual void audioRender (SoAudioRenderAction *action)β audio renders.virtual void grabEventsSetup (void)β sets up grab events.virtual void grabEventsCleanup (void)β cleans up grab events.virtual void startNotify (void)β starts notify.SbUniqueId getNodeId (void) constβ gets the node id.virtual SoChildList * getChildren (void) constβ gets the children.virtual void writeInstance (SoOutput *out)β writes the instance.virtual SoNode * addToCopyDict (void) constβ adds to copy dict.virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)β copies contents.virtual SoFieldContainer * copyThroughConnection (void) constβ copies through connection.
π Public Member Functions inherited from SoFieldContainer π
void setToDefaults (void)β sets everything to defaults.SbBool hasDefaultValues (void) constβ checks if it has default values.SbBool fieldsAreEqual (const SoFieldContainer *container) constβ checks if fields are equal.void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)β copies field values, withcopyconnections=FALSEdefault.SbBool set (const char *const fielddata)β sets from field data.void get (SbString &fielddata)β gets into a string.virtual int getFields (SoFieldList &l) constβ gets fields.virtual int getAllFields (SoFieldList &l) constβ gets all fields.virtual SoField * getField (const SbName &name) constβ gets a field by name.virtual SoField * getEventIn (const SbName &name) constβ gets an event in by name.virtual SoField * getEventOut (const SbName &name) constβ gets an event out by name.SbBool getFieldName (const SoField *const field, SbName &name) constβ gets the field name.SbBool enableNotify (const SbBool flag)β enables notify.SbBool isNotifyEnabled (void) constβ checks if notify is enabled.SbBool set (const char *fielddata, SoInput *input)β sets with input.void get (SbString &fielddata, SoOutput *out)β gets with output.virtual SbBool validateNewFieldValue (SoField *field, void *newval)β validates a new field value.virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)β adds a write reference,isfromfield=FALSEdefault.SbBool getIsBuiltIn (void) constβ checks if itβs built in.virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constβ gets fields memory size.void setUserData (void *userdata) constβ sets user data.void * getUserData (void) constβ gets user data.
π Public Member Functions inherited from SoBase π
void ref (void) constβ refs it.void unref (void) constβ unrefs it.void unrefNoDelete (void) constβ unrefs without deleting.int32_t getRefCount (void) constβ gets the ref count.void touch (void)β touches it.SbBool isOfType (SoType type) constβ returnsTRUEif the type of this object is either of the same type or inherited from type.virtual SbName getName (void) constβ gets the name.virtual void setName (const SbName &newname)β sets the name.void addAuditor (void *const auditor, const SoNotRec::Type type)β adds an auditor.void removeAuditor (void *const auditor, const SoNotRec::Type type)β removes an auditor.const SoAuditorList & getAuditors (void) constβ gets the auditors.SbBool shouldWrite (void)β checks if it should write.void assertAlive (void) constβ asserts itβs alive.
β Static Public Member Functions β
static SoType getClassTypeId (void)β gets the class type id.static void initClass (void)β initializes the class.
π Static Public Member Functions inherited from SoShape π
static SoType getClassTypeId (void)β gets the class type id.static void initClass (void)β sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.static void getScreenSize (SoState *const state, const SbBox3f &boundingbox, SbVec2s &rectsize)β gets the screen size.static float getDecimatedComplexity (SoState *state, float complexity)β gets the decimated complexity.
π« Static Public Member Functions inherited from SoNode π«
static uint32_t getCompatibilityTypes (const SoType &nodetype)β gets compatibility types.static SoType getClassTypeId (void)β gets the class type id.static SoNode * getByName (const SbName &name)β gets a node by name.static int getByName (const SbName &name, SoNodeList &l)β gets by name into a list.static void initClass (void)β sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.static void initClasses (void)β initializes classes.static SbUniqueId getNextNodeId (void)β gets the next node id.static int getActionMethodIndex (const SoType type)β gets the action method index.static void getBoundingBoxS (SoAction *action, SoNode *node)β gets bounding box S.static void GLRenderS (SoAction *action, SoNode *node)β GL render S.static void callbackS (SoAction *action, SoNode *node)β callback S.static void getMatrixS (SoAction *action, SoNode *node)β get matrix S.static void handleEventS (SoAction *action, SoNode *node)β handle event S.static void pickS (SoAction *action, SoNode *node)β pick S.static void rayPickS (SoAction *action, SoNode *node)β ray pick S.static void searchS (SoAction *action, SoNode *node)β search S.static void writeS (SoAction *action, SoNode *node)β write S.static void audioRenderS (SoAction *action, SoNode *node)β audio render S.static void getPrimitiveCountS (SoAction *action, SoNode *node)β get primitive count S.
π«Ά Static Public Member Functions inherited from SoFieldContainer π«Ά
static void initClass (void)β sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.static SoType getClassTypeId (void)β this static method returns theSoTypeobject associated with objects of this class.static void cleanupClass (void)β cleans up the class.static void initCopyDict (void)β initializes the copy dict.static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)β adds a copy.static SoFieldContainer * checkCopy (const SoFieldContainer *orig)β checks a copy.static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)β finds a copy.static void copyDone (void)β copy done.
π Static Public Member Functions inherited from SoBase π
static void initClass (void)β sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.static SoType getClassTypeId (void)β this static method returns theSoTypeobject associated with objects of this class.static void addName (SoBase *const base, const char *const name)β adds a name.static void removeName (SoBase *const base, const char *const name)β removes a name.static void incrementCurrentWriteCounter (void)β increments current write counter.static void decrementCurrentWriteCounter (void)β decrements current write counter.static SoBase * getNamedBase (const SbName &name, SoType type)β gets a named base.static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)β gets named bases.static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)β reads.static void setInstancePrefix (const SbString &c)β sets instance prefix.static void setTraceRefs (SbBool trace)β sets trace refs.static SbBool getTraceRefs (void)β gets trace refs.static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)β connects a route.static SbBool readRoute (SoInput *input)β reads a route.
π Public Attributes π
SoSFInt32 numControlPointsβ the number of control points.SoMFInt32 coordIndexβ the coordinate index.SoMFFloat knotVectorβ the knot vector.
π§ Protected Member Functions π§
virtual const SoFieldData * getFieldData (void) constβ gets the field data.virtual ~SoIndexedNurbsCurve ()β the destructor.virtual void generatePrimitives (SoAction *action)β generates primitives.virtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f ¢er)β computes the bounding box.virtual SoDetail * createLineSegmentDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, SoPickedPoint *pp)β creates a line segment detail.
πΈ Protected Member Functions inherited from SoShape πΈ
SoShape (void)β constructor.virtual ~SoShape ()β destructor.float getComplexityValue (SoAction *action)β gets the complexity value.virtual SbBool shouldGLRender (SoGLRenderAction *action)β checks if it should GL render.void beginSolidShape (SoGLRenderAction *action)β begins a solid shape.void endSolidShape (SoGLRenderAction *action)β ends a solid shape.void GLRenderBoundingBox (SoGLRenderAction *action)β GL renders the bounding box.SbBool shouldPrimitiveCount (SoGetPrimitiveCountAction *action)β checks if it should count primitives.SbBool shouldRayPick (SoRayPickAction *const action)β checks if it should ray pick.void computeObjectSpaceRay (SoRayPickAction *const action)β computes object space ray.void computeObjectSpaceRay (SoRayPickAction *const action, const SbMatrix &matrix)β computes object space ray with matrix.virtual SoDetail * createTriangleDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, const SoPrimitiveVertex *v3, SoPickedPoint *pp)β creates a triangle detail.virtual SoDetail * createPointDetail (SoRayPickAction *action, const SoPrimitiveVertex *v, SoPickedPoint *pp)β creates a point detail.void invokeTriangleCallbacks (SoAction *const action, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2, const SoPrimitiveVertex *const v3)β invokes triangle callbacks.void invokeLineSegmentCallbacks (SoAction *const action, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2)β invokes line segment callbacks.void invokePointCallbacks (SoAction *const action, const SoPrimitiveVertex *const v)β invokes point callbacks.void beginShape (SoAction *const action, const TriangleShape shapetype, SoDetail *const detail=NULL)β begins a shape,detail=NULLdefault.void shapeVertex (const SoPrimitiveVertex *const v)β shape vertex.void endShape (void)β ends the shape.void generateVertex (SoPrimitiveVertex *const pv, const SbVec3f &point, const SbBool useTexFunc, const SoMultiTextureCoordinateElement *const tce, const float s, const float t, const SbVec3f &normal)β generates a vertex.void generateVertex (SoPrimitiveVertex *const pv, const SbVec3f &point, const SbBool useTexFunc, const SoMultiTextureCoordinateElement *const tce, const float s, const float t, const float r, const SbVec3f &normal)β generates a vertex with an extrar.SbBool startVertexArray (SoGLRenderAction *action, const SoCoordinateElement *coords, const SbVec3f *pervertexnormals, const SbBool texpervertex, const SbBool colorpervertex)β starts a vertex array.void finishVertexArray (SoGLRenderAction *action, const SbBool vbo, const SbBool normpervertex, const SbBool texpervertex, const SbBool colorpervertex)β finishes a vertex array.
π Protected Member Functions inherited from SoNode π
SoNode (void)β constructor.virtual ~SoNode ()β destructor.virtual SbBool readInstance (SoInput *in, unsigned short flags)β reads the instance.
π Protected Member Functions inherited from SoFieldContainer π
SoFieldContainer (void)β constructor.virtual ~SoFieldContainer ()β destructor.
okay bestie, thatβs part 1 done. part 2 is coming in hot π₯
π«Ά Protected Member Functions inherited from SoBase
So these are the lil goodies SoBase hands down to its kids β they're protected, so they're for the family only, iykyk:
SoBase (void)virtual ~SoBase ()virtual void destroy (void)SbBool hasMultipleWriteRefs (void) constSbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) constvoid writeFooter (SoOutput *out) constvirtual const char * getFileFormatName (void) constvirtual SoNotRec createNotRec (void)
β¨ Static Protected Member Functions β¨
static const SoFieldData ** getFieldDataPtr (void)
Static Protected Member Functions inherited from SoShape πΈ
static const SoFieldData ** getFieldDataPtr (void)
Static Protected Member Functions inherited from SoNode π¦
static const SoFieldData ** getFieldDataPtr (void)static void setNextActionMethodIndex (int index)static int getNextActionMethodIndex (void)static void incNextActionMethodIndex (void)static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask)
Static Protected Member Functions inherited from SoBase π
static uint32_t getCurrentWriteCounter (void)static void staticDataLock (void)static void staticDataUnlock (void)
π Additional Inherited Members π
Public Types inherited from SoShape
Ok so this node also has this enum hanging around from SoShape, bestie:
enum TriangleShape { TRIANGLE_STRIP, TRIANGLE_FAN, TRIANGLES, POLYGON,
QUADS, QUAD_STRIP, POINTS, LINES, LINE_STRIP }
Public Types inherited from SoNode
And the SoNode enum, which is literally a whole timeline of file formats in one enum, no cap:
enum NodeType { INVENTOR = 0x0000, VRML1 = 0x0001, VRML2 = 0x0002,
INVENTOR_1 = 0x0004, INVENTOR_2_0 = 0x0008, INVENTOR_2_1 = 0x0010,
INVENTOR_2_5 = 0x0020, INVENTOR_2_6 = 0x0040, COIN_1_0 = 0x0080,
COIN_2_0 = 0x0100, EXTENSION = 0x0200, COIN_2_2 = 0x0400, COIN_2_3 =
0x0800, COIN_2_4 = 0x1000, INVENTOR_5_0 = 0x2000, COIN_2_5 = 0x4000,
COIN_3_0 = 0x8000, INVENTOR_6_0 = 0x10000, COIN_4_0 = 0x20000 }
Protected Types inherited from SoBase
enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }
Protected Attributes inherited from SoNode
SbUniqueId uniqueId
Protected Attributes inherited from SoFieldContainer
SbBool isBuiltIn
Static Protected Attributes inherited from SoNode
static SbUniqueId nextUniqueId = 1static int nextActionMethodIndex = 0
π Detailed Description π
The SoIndexedNurbsCurve class is a node for representing smooth curves.
Explaining NURBS is beyond the scope of this documentation. If you are unfamiliar with the principles of representing smooth curves and surfaces when doing 3D visualization, we recommend finding a good book on the subject.
FILE FORMAT/DEFAULTS:
IndexedNurbsCurve {
numControlPoints 0
coordIndex 0
knotVector 0
}
π₯ Constructor & Destructor Documentation π₯
SoIndexedNurbsCurve::SoIndexedNurbsCurve (void )
Constructor. (Making one of these is giving main character energy fr.)
SoIndexedNurbsCurve::~SoIndexedNurbsCurve () [protected], [virtual]
Destructor. π
β Member Function Documentation β
SoType SoIndexedNurbsCurve::getClassTypeId (void ) [static]
This static method returns the SoType object associated with objects of this class.
SoType SoIndexedNurbsCurve::getTypeId (void ) const [virtual]
Returns the type identification of an object derived from a class inheriting SoBase. This is used for runtime type checking and "downward" casting.
Reimplemented from SoShape.
const SoFieldData ** SoIndexedNurbsCurve::getFieldDataPtr (void ) [static], [protected]
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
Returns the SoFieldData class which holds information about fields in this node.
const SoFieldData * SoIndexedNurbsCurve::getFieldData (void ) const [protected], [virtual]
Returns a pointer to the class-wide field data storage object for this instance. If no fields are present, returns NULL.
Reimplemented from SoShape.
void SoIndexedNurbsCurve::initClass (void ) [static]
void SoIndexedNurbsCurve::GLRender (SoGLRenderAction * action) [virtual]
Action method for the SoGLRenderAction.
This is called during rendering traversals. Nodes influencing the rendering state in any way or want to throw geometry primitives at OpenGL override this method.
Reimplemented from SoShape.
void SoIndexedNurbsCurve::rayPick (SoRayPickAction * action) [virtual]
Calculates picked point based on primitives generated by subclasses.
Reimplemented from SoShape.
void SoIndexedNurbsCurve::getPrimitiveCount (SoGetPrimitiveCountAction * action) [virtual]
Action method for the SoGetPrimitiveCountAction.
Calculates the number of triangle, line segment and point primitives for the node and adds these to the counters of the action.
Nodes influencing how geometry nodes calculate their primitive count also override this method to change the relevant state variables.
Reimplemented from SoShape.
void SoIndexedNurbsCurve::getBoundingBox (SoGetBoundingBoxAction * action) [virtual]
Redefined to notify open caches that this shape contains lines.
Reimplemented from SoShape.
void SoIndexedNurbsCurve::sendPrimitive (SoAction * , SoPrimitiveVertex * )
This method is part of the original SGI Inventor API, but not implemented in Coin, as it looks like a method that should probably have been private in Open Inventor.
void SoIndexedNurbsCurve::generatePrimitives (SoAction * action) [protected], [virtual]
The method implements action behavior for shape nodes for SoCallbackAction. It is invoked from SoShape::callback(). (Subclasses should not override SoNode::callback().)
The subclass implementations uses the convenience methods SoShape::beginShape(), SoShape::shapeVertex(), and SoShape::endShape(), with SoDetail instances, to pass the primitives making up the shape back to the caller.
Implements SoShape.
void SoIndexedNurbsCurve::computeBBox (SoAction * action, SbBox3f & box, SbVec3f & center) [protected], [virtual]
Calculates the bounding box of all control points, and sets the center to the average of these points.
Implements SoShape.
SoDetail * SoIndexedNurbsCurve::createLineSegmentDetail (SoRayPickAction * action, const SoPrimitiveVertex * v1, const SoPrimitiveVertex * v2, SoPickedPoint * pp) [protected], [virtual]
Will create line detail for a SoPickedPoint. This method will only be called internally, when generatePrimitives() is used for picking (SoShape::rayPick() is not overridden).
This method returns NULL in Open Inventor, and subclasses will need to override this method to create details for a SoPickedPoint.
This is not necessary with Coin. Of course, if you choose to override it, it will work in the same way as Open Inventor.
For this to work, you must supply a face or line detail when generating primitives. If you supply NULL for the detail argument in SoShape::beginShape(), you'll have to override this method.
Reimplemented from SoShape.
π Member Data Documentation π
SoSFInt32 SoIndexedNurbsCurve::numControlPoints
Number of control points for this curve.
SoMFInt32 SoIndexedNurbsCurve::coordIndex
The control point indices. Supply at least numControlPoint indices.
SoMFFloat SoIndexedNurbsCurve::knotVector
The knot vector.
π Author π
Generated automatically by Doxygen for Coin from the source code.
And that's a wrap, bestie π this page is from Coin version 4.0.10, dated Thu Jun 25 2026 00:00:00, and it's literally titled SoIndexedNurbsCurve(3). Go build something smooth. Slay. πβ¨
π¦ where this page comes from
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms