SoIndexedTriangleStripSet(3)
okay so bestie, gather round, because we're doing SoIndexedTriangleStripSet(3) today β Coin manual, section 3, and she is long. This class keeps the data for rendering and otherwise representing triangle strips. Lowkey the whole point of her existence. Let's get into it π
πΈ NAME πΈ
SoIndexedTriangleStripSet β the class that keeps data for rendering and otherwise representing triangle strips. She's giving geometry storage, she's giving indexed realness, and she's inherited from SoIndexedShape. Periodt.
β¨ SYNOPSIS β¨
First things first, you gotta pull her in:
#include <Inherits SoIndexedShape.h>
wait no bestie, actual one, no cap:
#include <Inventor/nodes/SoIndexedTriangleStripSet.h>
She Inherits SoIndexedShape. Family tree goes crazy.
π Public Member Functions π
virtual SoType getTypeId (void) constβ the classic "who am I really" call, returns the type id.SoIndexedTriangleStripSet (void)β constructor, no args, just vibes.virtual void GLRender (SoGLRenderAction *action)β actually draws her when OpenGL comes knocking.virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)β counts up the primitives for the action.virtual SbBool generateDefaultNormals (SoState *state, SoNormalBundle *nb)β makes default normals, returns anSbBoolbecause of course.
π Public Member Functions inherited from SoVertexShape π
virtual void notify (SoNotList *nl)β notifies, like a group chat ping.virtual void write (SoWriteAction *action)β writes herself out.
π¦ Public Member Functions inherited from SoShape π¦
virtual SbBool affectsState (void) constβ does she touch the state? returns anSbBool.virtual void getBoundingBox (SoGetBoundingBoxAction *action)β bounding box time.virtual void rayPick (SoRayPickAction *action)β ray picking, iconic.virtual void callback (SoCallbackAction *action)β callback time.const SoBoundingBoxCache * getBoundingBoxCache (void) constβ hands you the bounding box cache pointer.
π Public Member Functions inherited from SoNode π
void setOverride (const SbBool state)β sets the override flag.SbBool isOverride (void) constβ is it overridden? returnsSbBool.void setNodeType (const NodeType type)β set the node type.NodeType getNodeType (void) constβ get the node type.virtual SoNode * copy (SbBool copyconnections=FALSE) constβ copies, andcopyconnectionsdefaults toFALSE.virtual void doAction (SoAction *action)β do the action.virtual void GLRenderBelowPath (SoGLRenderAction *action)β renders below the path.virtual void GLRenderInPath (SoGLRenderAction *action)β renders in the path.virtual void GLRenderOffPath (SoGLRenderAction *action)β renders off the path.virtual void getMatrix (SoGetMatrixAction *action)β matrix, get it.virtual void handleEvent (SoHandleEventAction *action)β handles the event.virtual void pick (SoPickAction *action)β picks.virtual void search (SoSearchAction *action)β searches.virtual void audioRender (SoAudioRenderAction *action)β audio render, yes really.virtual void grabEventsSetup (void)β grab events, set them up.virtual void grabEventsCleanup (void)β grab events, clean them up.virtual void startNotify (void)β start the notify chain.SbUniqueId getNodeId (void) constβ unique id, unique queen.virtual SoChildList * getChildren (void) constβ children, as a pointer toSoChildList.virtual void writeInstance (SoOutput *out)β write the instance out.virtual SoNode * addToCopyDict (void) constβ adds to the copy dict.virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)β copies the contents.virtual SoFieldContainer * copyThroughConnection (void) constβ copies through the connection.
π Public Member Functions inherited from SoFieldContainer π
void setToDefaults (void)β back to defaults, factory reset energy.SbBool hasDefaultValues (void) constβ still default?SbBool.SbBool fieldsAreEqual (const SoFieldContainer *container) constβ are the fields equal, yes/no.void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)β copy field values,copyconnectionsdefaults toFALSE.SbBool set (const char *const fielddata)β set from a string of field data.void get (SbString &fielddata)β get the field data into anSbString.virtual int getFields (SoFieldList &l) constβ get the fields, returns anint.virtual int getAllFields (SoFieldList &l) constβ get all the fields.virtual SoField * getField (const SbName &name) constβ get one field by name.virtual SoField * getEventIn (const SbName &name) constβ get the event in.virtual SoField * getEventOut (const SbName &name) constβ get the event out.SbBool getFieldName (const SoField *const field, SbName &name) constβ get a field's name.SbBool enableNotify (const SbBool flag)β turn notifications on or off.SbBool isNotifyEnabled (void) constβ are notifications on?SbBool set (const char *fielddata, SoInput *input)β the two-arg set, this time with aSoInput *.void get (SbString &fielddata, SoOutput *out)β the two-arg get, with aSoOutput *.virtual SbBool validateNewFieldValue (SoField *field, void *newval)β is this new value valid? checks it.virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)β add a write reference,isfromfielddefaults toFALSE.SbBool getIsBuiltIn (void) constβ is it built in?virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constβ memory size of the fields, split into managed and unmanagedsize_ts.void setUserData (void *userdata) constβ set your user data pointer.void * getUserData (void) constβ get your user data pointer back.
π Public Member Functions inherited from SoBase π
void ref (void) constβ ref it up.void unref (void) constβ unref it.void unrefNoDelete (void) constβ unref but do NOT delete.int32_t getRefCount (void) constβ how many refs? anint32_t.void touch (void)β touch it, make it notice.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β get her name.virtual void setName (const SbName &newname)β give her a new name.void addAuditor (void *const auditor, const SoNotRec::Type type)β add an auditor.void removeAuditor (void *const auditor, const SoNotRec::Type type)β remove that auditor.const SoAuditorList & getAuditors (void) constβ get the whole auditor list.SbBool shouldWrite (void)β should she write?void assertAlive (void) constβ assert she's alive, dramatic but necessary.
β Static Public Member Functions β
static SoType getClassTypeId (void)β the class type id, statically.static void initClass (void)β sets up initialization for the class.
π Static Public Member Functions inherited from SoIndexedShape π
static SoType getClassTypeId (void)static void initClass (void)
π Static Public Member Functions inherited from SoVertexShape π
static SoType getClassTypeId (void)static void initClass (void)
π«Ά Static Public Member Functions inherited from SoShape π«Ά
static SoType getClassTypeId (void)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)β screen size from a state, bounding box and aSbVec2sout-param.static float getDecimatedComplexity (SoState *state, float complexity)β decimated complexity, returns afloat.
π§ Static Public Member Functions inherited from SoNode π§
static uint32_t getCompatibilityTypes (const SoType &nodetype)β compatibility types as auint32_t.static SoType getClassTypeId (void)static SoNode * getByName (const SbName &name)β find a node by name.static int getByName (const SbName &name, SoNodeList &l)β the list version, returns anint.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)β plural, all the classes.static SbUniqueId getNextNodeId (void)β the next node id.static int getActionMethodIndex (const SoType type)β the action method index.static void getBoundingBoxS (SoAction *action, SoNode *node)β the static bounding box entry point.static void GLRenderS (SoAction *action, SoNode *node)static void callbackS (SoAction *action, SoNode *node)static void getMatrixS (SoAction *action, SoNode *node)static void handleEventS (SoAction *action, SoNode *node)static void pickS (SoAction *action, SoNode *node)static void rayPickS (SoAction *action, SoNode *node)static void searchS (SoAction *action, SoNode *node)static void writeS (SoAction *action, SoNode *node)static void audioRenderS (SoAction *action, SoNode *node)static void getPrimitiveCountS (SoAction *action, SoNode *node)
π 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)β clean it up.static void initCopyDict (void)β init the copy dict.static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)β add a copy.static SoFieldContainer * checkCopy (const SoFieldContainer *orig)β check a copy.static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)β find a copy.static void copyDone (void)β copying done, we're finished.
π 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)β add a name to a base.static void removeName (SoBase *const base, const char *const name)β remove a name from a base.static void incrementCurrentWriteCounter (void)β bump the current write counter up.static void decrementCurrentWriteCounter (void)β bump it back down.static SoBase * getNamedBase (const SbName &name, SoType type)β get a named base.static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)β get the named bases into aSoBaseList, returns anint.static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)β read it in.static void setInstancePrefix (const SbString &c)β set the instance prefix.static void setTraceRefs (SbBool trace)β turn ref tracing on or off.static SbBool getTraceRefs (void)β are refs being traced?static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)β connect a route, node names and field names and all.static SbBool readRoute (SoInput *input)β read a route.
π Protected Member Functions π
virtual const SoFieldData * getFieldData (void) constβ get the field data pointer.virtual ~SoIndexedTriangleStripSet ()β the destructor, protected, as one does.virtual SbBool generateDefaultNormals (SoState *state, SoNormalCache *nc)β the othergenerateDefaultNormals, this one taking aSoNormalCache *and returning anSbBool.virtual void generatePrimitives (SoAction *action)β generate the primitives.
π Protected Member Functions inherited from SoIndexedShape π
SoIndexedShape (void)β constructor.virtual ~SoIndexedShape ()β destructor.virtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f ¢er)β compute the bounding box and center.int getNumVerts (const int startCoord)β how many verts from the starting coord? returns anint.void setupIndices (const int numParts, const int numFaces, const SbBool needNormals, const SbBool needTexCoords)β set up the indices.const int32_t * getNormalIndices (void)β normal indices pointer.const int32_t * getColorIndices (void)β color indices pointer.const int32_t * getTexCoordIndices (void)β texture coord indices pointer.SbBool getVertexData (SoState *state, const SoCoordinateElement *&coords, const SbVec3f *&normals, const int32_t *&cindices, const int32_t *&nindices, const int32_t *&tindices, const int32_t *&mindices, int &numcindices, const SbBool needNormals, SbBool &normalCacheUsed)β the big one, grabs all the vertex data at once.
π¦ Protected Member Functions inherited from SoVertexShape π¦
SoVertexShape (void)β constructor.virtual ~SoVertexShape ()β destructor.virtual SbBool shouldGLRender (SoGLRenderAction *action)β should she GL render?void setNormalCache (SoState *const state, const int num, const SbVec3f *normals)β set the normal cache.SoNormalCache * getNormalCache (void) constβ get the normal cache.SoNormalCache * generateAndReadLockNormalCache (SoState *const state)β generate and read-lock the normal cache.void getVertexData (SoState *state, const SoCoordinateElement *&coords, const SbVec3f *&normals, const SbBool neednormals)β the shorter vertex data getter.void readLockNormalCache (void)β read-lock it.void readUnlockNormalCache (void)β read-unlock it.
π¦ Protected Member Functions inherited from SoShape
okay bestie, vibe check π β every single thing in this list is inherited from SoShape. We didn't write a single one of these ourselves, they just got handed down to us like family jewelry β¨. They're all <protected>, which means they're for the family, not the general public, iykyk.
SoShape (void)
virtual ~SoShape ()
float getComplexityValue (SoAction *action)
void beginSolidShape (SoGLRenderAction *action)
void endSolidShape (SoGLRenderAction *action)
void GLRenderBoundingBox (SoGLRenderAction *action)
SbBool shouldPrimitiveCount (SoGetPrimitiveCountAction *action)
SbBool shouldRayPick (SoRayPickAction *const action)
void computeObjectSpaceRay (SoRayPickAction *const action)
void computeObjectSpaceRay (SoRayPickAction *const action, const
SbMatrix &matrix)
virtual SoDetail * createTriangleDetail (SoRayPickAction *action, const
SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, const
SoPrimitiveVertex *v3, SoPickedPoint *pp)
virtual SoDetail * createLineSegmentDetail (SoRayPickAction *action,
const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2,
SoPickedPoint *pp)
virtual SoDetail * createPointDetail (SoRayPickAction *action, const
SoPrimitiveVertex *v, SoPickedPoint *pp)
void invokeTriangleCallbacks (SoAction *const action, const
SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2,
const SoPrimitiveVertex *const v3)
void invokeLineSegmentCallbacks (SoAction *const action, const
SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2)
void invokePointCallbacks (SoAction *const action, const
SoPrimitiveVertex *const v)
void beginShape (SoAction *const action, const TriangleShape shapetype,
SoDetail *const detail=NULL)
void shapeVertex (const SoPrimitiveVertex *const v)
void endShape (void)
void generateVertex (SoPrimitiveVertex *const pv, const SbVec3f &point,
const SbBool useTexFunc, const SoMultiTextureCoordinateElement
*const tce, const float s, const float t, const SbVec3f &normal)
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)
SbBool startVertexArray (SoGLRenderAction *action, const
SoCoordinateElement *coords, const SbVec3f *pervertexnormals, const
SbBool texpervertex, const SbBool colorpervertex)
void finishVertexArray (SoGLRenderAction *action, const SbBool vbo,
const SbBool normpervertex, const SbBool texpervertex, const SbBool
colorpervertex)
not us doing a full dramatic recap of every one of these, they're literally just the parent's π what matters is that they're here, protected, and inherited.
π§ Protected Member Functions inherited from SoNode
same energy, different parent β¨:
SoNode (void)
virtual ~SoNode ()
virtual SbBool readInstance (SoInput *in, unsigned short flags)
π Protected Member Functions inherited from SoFieldContainer
SoFieldContainer (void)
virtual ~SoFieldContainer ()
π Protected Member Functions inherited from SoBase
the original ancestor, the blueprint, the blueprint-est blueprint πΈ:
SoBase (void)
virtual ~SoBase ()
virtual void destroy (void)
SbBool hasMultipleWriteRefs (void) const
SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine)
const
void writeFooter (SoOutput *out) const
virtual const char * getFileFormatName (void) const
virtual SoNotRec createNotRec (void)
π Static Protected Member Functions
static const SoFieldData ** getFieldDataPtr (void)β the static-funcs section, and honestly this one's the whole mood π«Ά
β Static Protected Member Functions inherited from SoIndexedShape
static const SoFieldData ** getFieldDataPtr (void)static SbBool areTexCoordsIndexed (SoAction *action)
β Static Protected Member Functions inherited from SoVertexShape
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
bestie this is the bonus content section, the DVD extras, the deluxe edition π
π¦ Public Types inherited from SoShape
enum TriangleShape { TRIANGLE_STRIP, TRIANGLE_FAN, TRIANGLES, POLYGON,
QUADS, QUAD_STRIP, POINTS, LINES, LINE_STRIP }
π¦ Public Types inherited from SoNode
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 }
πΈ Public Attributes inherited from SoIndexedShape
SoMFInt32 coordIndexSoMFInt32 materialIndexSoMFInt32 normalIndexSoMFInt32 textureCoordIndex
πΈ Public Attributes inherited from SoVertexShape
SoSFNode vertexProperty
π§ 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 SoIndexedTriangleStripSet class keeps data for rendering and otherwise representing triangle strips. π¨
Use nodes of this type as an effective way of drawing triangles which are strung together. β¨
For more information, see the documentation of the SoTriangleStripSet node.
To render several strips within the same node, just separate the coordinate indices with -1. For more information about indexed shapes, see documentation in SoIndexedShape and SoIndexedFaceSet. π
Example scene graph:
#Inventor V2.1 ascii
Separator {
Coordinate3 {
point [
-2 1 0, -1 -1 0, 0 1 0, 1 -1 0, 2 1 0, # first strip, z==0
-2 1 5, -1 -1 5, 0 1 5, 1 -1 5, 2 1 5 # second strip, z==5
]
}
IndexedTriangleStripSet {
coordIndex [
0, 1, 2, 3, 4, -1,
5, 6, 7, 8, 9, -1
]
}
}
FILE FORMAT/DEFAULTS:
IndexedTriangleStripSet {
vertexProperty NULL
coordIndex 0
materialIndex -1
normalIndex -1
textureCoordIndex -1
}
π CONSTRUCTOR & DESTRUCTOR DOCUMENTATION π
π SoIndexedTriangleStripSet::SoIndexedTriangleStripSet (void )
Constructor. Default field values will equal those set in the SoIndexedShape parent class. π±
π SoIndexedTriangleStripSet::~SoIndexedTriangleStripSet () [protected], [virtual]
Destructor. π«Ά
π₯ MEMBER FUNCTION DOCUMENTATION π₯
π« SoType SoIndexedTriangleStripSet::getClassTypeId (void ) [static]
This static method returns the SoType object associated with objects of this class. β¨
π« SoType SoIndexedTriangleStripSet::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 SoIndexedShape.
π« const SoFieldData ** SoIndexedTriangleStripSet::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 * SoIndexedTriangleStripSet::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 SoIndexedShape.
π« void SoIndexedTriangleStripSet::initClass (void ) [static]
(no description here, bestie β it's just the init π )
π« void SoIndexedTriangleStripSet::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 SoIndexedTriangleStripSet::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.
π« SbBool SoIndexedTriangleStripSet::generateDefaultNormals (SoState * state, SoNormalBundle * bundle) [virtual]
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. π
Subclasses should override this method to generate default normals using the SoNormalBundle class. TRUE should be returned if normals were generated, FALSE otherwise.
Default method returns FALSE.
This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API. π
Reimplemented from SoVertexShape.
π« SbBool SoIndexedTriangleStripSet::generateDefaultNormals (SoState * state, SoNormalCache * cache) [protected], [virtual]
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. π
Subclasses should override this method to generate default normals using the SoNormalCache class. This is more effective than using SoNormalGenerator. Return TRUE if normals were generated, FALSE otherwise.
Default method just returns FALSE.
This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API. π
Reimplemented from SoVertexShape.
π« void SoIndexedTriangleStripSet::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.
πΈ AUTHOR πΈ
Generated automatically by Doxygen for Coin from the source code. π€
and that's a wrap, bestie π«Ά this whole thing came to you courtesy of Coin version 4.0.10 and it's dated Thu Jun 25 2026 β slay, go build some triangle strips, periodt π β¨
π¦ 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