SOINDEXEDTRIANGLESTRIPSET(3coin3)
π NAME π
okay so bestie, <rainbow>SoIndexedTriangleStripSet</rainbow> β this is the class (from the Library Functions Manual, section 3, iykyk) that literally keeps the data for rendering and otherwise representing triangle strips. that's the whole job. she holds the data. she serves. periodt. β¨
π¦ SYNOPSIS π¦
#include <Inventor/nodes/SoIndexedTriangleStripSet.h>
Inherits SoIndexedShape. yes she has a whole family tree, it's giving legacy. π³
π«Ά Public Member Functions
virtual SoType getTypeId (void) constβ hands you her type id, slaySoIndexedTriangleStripSet (void)β the constructor, the birth of an icon πvirtual void GLRender (SoGLRenderAction *action)β does the actual render thingvirtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)β counts her primitives, no capvirtual SbBool generateDefaultNormals (SoState *state, SoNormalBundle *nb)β makes default normals for you
πΈ Public Member Functions inherited from SoVertexShape
virtual void notify (SoNotList *nl)β the notification moment, she's keeping everyone in the loop fr frvirtual void write (SoWriteAction *action)β writes herself out
πΌ Public Member Functions inherited from SoShape
virtual SbBool affectsState (void) constβ does she touch the state? enquire withinvirtual void getBoundingBox (SoGetBoundingBoxAction *action)β gets the bounding box πvirtual void rayPick (SoRayPickAction *action)β ray pick energyvirtual void callback (SoCallbackAction *action)β callback timeconst SoBoundingBoxCache * getBoundingBoxCache (void) constβ the cached bounding box, iconic
β Public Member Functions inherited from SoNode
void setOverride (const SbBool state)β sets the overrideSbBool isOverride (void) constβ are we overriding? asking for a friendvoid setNodeType (const NodeType type)β sets the node typeNodeType getNodeType (void) constβ gets the node typevirtual SoNode * copy (SbBool copyconnections=FALSE) constβ copies herself, main character behaviourvirtual void doAction (SoAction *action)β do the action bestievirtual void GLRenderBelowPath (SoGLRenderAction *action)β renders below the pathvirtual void GLRenderInPath (SoGLRenderAction *action)β renders in the pathvirtual void GLRenderOffPath (SoGLRenderAction *action)β renders off the pathvirtual void getMatrix (SoGetMatrixAction *action)β gets the matrix, she's that girlvirtual void handleEvent (SoHandleEventAction *action)β handles the eventvirtual void pick (SoPickAction *action)β picksvirtual void search (SoSearchAction *action)β searchesvirtual void audioRender (SoAudioRenderAction *action)β audio render, sound on πvirtual void grabEventsSetup (void)β sets up the event grabbingvirtual void grabEventsCleanup (void)β cleans up the event grabbingvirtual void startNotify (void)β starts the notifyuint32_t getNodeId (void) constβ her node id, very hervirtual SoChildList * getChildren (void) constβ the children, her little minionsvirtual void writeInstance (SoOutput *out)β writes the instancevirtual SoNode * addToCopyDict (void) constβ adds to the copy dictvirtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)β copies the contentsvirtual SoFieldContainer * copyThroughConnection (void) constβ copies through the connection
π Public Member Functions inherited from SoFieldContainer
void setToDefaults (void)β back to defaults, reset eraSbBool hasDefaultValues (void) constβ does she have default values? vibe checkSbBool fieldsAreEqual (const SoFieldContainer *container) constβ are the fields equal or notvoid copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)β copies the field valuesSbBool set (const char *const fielddata)β set itvoid get (SbString &fielddata)β get itvirtual int getFields (SoFieldList &l) constβ gets the fieldsvirtual int getAllFields (SoFieldList &l) constβ gets ALL the fields, greedy queenvirtual SoField * getField (const SbName &name) constβ gets one field by namevirtual SoField * getEventIn (const SbName &name) constβ gets the event invirtual SoField * getEventOut (const SbName &name) constβ gets the event outSbBool getFieldName (const SoField *const field, SbName &name) constβ gets the field's nameSbBool enableNotify (const SbBool flag)β turns notify onSbBool isNotifyEnabled (void) constβ is notify enabled? πSbBool set (const char *fielddata, SoInput *input)β set it, but with anSoInputvoid get (SbString &fielddata, SoOutput *out)β get it, but with anSoOutputvirtual SbBool validateNewFieldValue (SoField *field, void *newval)β validates the new field value, she's checking receiptsvirtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)β adds a write referenceSbBool getIsBuiltIn (void) constβ is she built in? yes bestie she's a built-invirtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constβ memory size of the fields, managed AND unmanagedvoid setUserData (void *userdata) constβ sets your user datavoid * getUserData (void) constβ hands your user data back
π Public Member Functions inherited from SoBase
void ref (void) constβ ref her upvoid unref (void) constβ unref hervoid unrefNoDelete (void) constβ unref but like, no deleteint32_t getRefCount (void) constβ the ref count, the numbers don't lievoid touch (void)β touch, she needs a lil attentionSbBool isOfType (SoType type) constβ is she of this type?virtual SbName getName (void) constβ gets the namevirtual void setName (const SbName &newname)β sets a new name, rebrand eravoid addAuditor (void *const auditor, const SoNotRec::Type type)β adds an auditorvoid removeAuditor (void *const auditor, const SoNotRec::Type type)β removes an auditorconst SoAuditorList & getAuditors (void) constβ gets the auditor listSbBool shouldWrite (void)β should she write? discussvoid assertAlive (void) constβ asserts she's alive, not me checking on her tho π
β¨ Static Public Member Functions β¨
static SoType getClassTypeId (void)β the class type id, static editionstatic void initClass (void)β inits 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)static void getScreenSize (SoState *const state, const SbBox3f &boundingbox, SbVec2s &rectsize)β gets the screen size from the bounding boxstatic 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 the compatibility typesstatic SoType getClassTypeId (void)static SoNode * getByName (const SbName &name)β gets a node by namestatic int getByName (const SbName &name, SoNodeList &l)β gets nodes by name into a liststatic void initClass (void)static void initClasses (void)β plural, init ALL the classesstatic uint32_t getNextNodeId (void)β the next node idstatic int getActionMethodIndex (const SoType type)β the action method indexstatic void getBoundingBoxS (SoAction *action, SoNode *node)β the static bounding box getterstatic void GLRenderS (SoAction *action, SoNode *node)β the static GL renderstatic void callbackS (SoAction *action, SoNode *node)β the static callbackstatic void getMatrixS (SoAction *action, SoNode *node)β the static matrix getterstatic void handleEventS (SoAction *action, SoNode *node)β the static event handlerstatic void pickS (SoAction *action, SoNode *node)β the static pickstatic void rayPickS (SoAction *action, SoNode *node)β the static ray pickstatic void searchS (SoAction *action, SoNode *node)β the static searchstatic void writeS (SoAction *action, SoNode *node)β the static writestatic void audioRenderS (SoAction *action, SoNode *node)β the static audio renderstatic void getPrimitiveCountS (SoAction *action, SoNode *node)β the static primitive count
β¨ Static Public Member Functions inherited from SoFieldContainer β¨
static void initClass (void)static SoType getClassTypeId (void)static void cleanupClass (void)β cleanup, the post-party sweepstatic void initCopyDict (void)β inits the copy dictstatic void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)β adds a copystatic SoFieldContainer * checkCopy (const SoFieldContainer *orig)β checks a copystatic SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)β finds a copystatic void copyDone (void)β copy's done bestie
β¨ Static Public Member Functions inherited from SoBase β¨
static void initClass (void)static SoType getClassTypeId (void)static void addName (SoBase *const base, const char *const name)β adds a namestatic void removeName (SoBase *const base, const char *const name)β removes a namestatic void incrementCurrentWriteCounter (void)β increments the current write counterstatic void decrementCurrentWriteCounter (void)β decrements the current write counterstatic SoBase * getNamedBase (const SbName &name, SoType type)β gets a named basestatic int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)β gets named bases into a liststatic SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)β readsstatic void setInstancePrefix (const SbString &c)β sets the instance prefixstatic void setTraceRefs (SbBool trace)β sets trace refsstatic SbBool getTraceRefs (void)β gets trace refsstatic SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)β connects a routestatic SbBool readRoute (SoInput *input)β reads a route
π Protected Member Functions π
virtual const SoFieldData * getFieldData (void) constβ gets the field data (protected, so mind your business)virtual ~SoIndexedTriangleStripSet ()β the destructor, she's leaving but she left a legacy πvirtual SbBool generateDefaultNormals (SoState *state, SoNormalCache *nc)β generates default normals into a cachevirtual void generatePrimitives (SoAction *action)β generates primitives
π Protected Member Functions inherited from SoIndexedShape π
SoIndexedShape (void)β the constructorvirtual ~SoIndexedShape ()β the destructorvirtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f ¢er)β computes the bounding boxint getNumVerts (const int startCoord)β gets the number of verts fromstartCoordvoid setupIndices (const int numParts, const int numFaces, const SbBool needNormals, const SbBool needTexCoords)β sets up the indicesconst int32_t * getNormalIndices (void)β the normal indicesconst int32_t * getColorIndices (void)β the color indicesconst int32_t * getTexCoordIndices (void)β the tex coord indicesSbBool 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 vertex data getter, she does a LOT
π Protected Member Functions inherited from SoVertexShape π
SoVertexShape (void)β the constructorvirtual ~SoVertexShape ()β the destructorvirtual SbBool shouldGLRender (SoGLRenderAction *action)β should she GL render? decidevoid setNormalCache (SoState *const state, const int num, const SbVec3f *normals)β sets the normal cacheSoNormalCache * getNormalCache (void) constβ gets the normal cacheSoNormalCache * generateAndReadLockNormalCache (SoState *const state)β generates AND read-locks the normal cache, multitasking queenvoid getVertexData (SoState *state, const SoCoordinateElement *&coords, const SbVec3f *&normals, const SbBool neednormals)β gets the vertex data, neednormals editionvoid readLockNormalCache (void)β read-locks the normal cachevoid readUnlockNormalCache (void)β read-unlocks the normal cache
bestie this is only part 1 of the page π the rest is literally right there, keep scrolling, don't leave me hanging π«Ά
β¨ Protected Member Functions inherited from SoShape β¨
okay bestie, these are the protected functions that SoShape passes down like hand-me-downs but make it iconic π
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 SoTextureCoordinateElement *const tce, const float s, const float t, const SbVec3f &normal)void generateVertex (SoPrimitiveVertex *const pv, const SbVec3f &point, const SbBool useTexFunc, const SoTextureCoordinateElement *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)
β¨ Protected Member Functions inherited from SoNode β¨
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 β¨
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) const
β¨ Static Protected Member Functions β¨
static const SoFieldData ** getFieldDataPtr (void)
β¨ 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 β¨
β¨ 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 }
β¨ 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 β¨
uint32_t uniqueId
β¨ Protected Attributes inherited from SoFieldContainer β¨
SbBool isBuiltIn
β¨ Static Protected Attributes inherited from SoNode β¨
static uint32_t nextUniqueId = 1static int nextActionMethodIndex = 0
β¨ Detailed Description β¨
so like, SoIndexedTriangleStripSet is literally the class that keeps data for rendering and otherwise representing triangle strips. it's giving βI got you, bestieβ π
use nodes of this type as an effective way of drawing triangles which are strung together. it's a whole vibe, no cap.
for more information, see the documentation of the SoTriangleStripSet node. iykyk.
to render several strips within the same node, just separate the coordinate indices with -1. (yes, negative one, the separator queen π). 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::getTypeId (void ) const [virtual] β¨
Returns the type identification of an object derived from a class inheriting SoBase. This is used for run-time type checking and βdownwardβ casting.
Usage example:
void foo(SoNode * node)
{
if (node->getTypeId() == SoFile::getClassTypeId()) {
SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type
}
}
For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in all subclasses. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through for instance Inventor/nodes/SoSubNode.h (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine.h (for engine classes) and so on.
For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups.
Reimplemented from SoIndexedShape.
β¨ 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::GLRender (SoGLRenderAction * action) [virtual] β¨
Action method for the SoGLRenderAction.
This is called during rendering traversals. Nodes influencing the rendering state in any way or who wants to throw geometry primitives at OpenGL overrides 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 calculates their primitive count also overrides 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.
this whole page was served by Coin, Version 3.1.3, and the manual page SoIndexedT...gleStripSet(3) β stay iconic, bestie π
β¨
π¦ where this page comes from
- fedora 43: Coin3-devel 3.1.3-40.fc43 Β· GPL-2.0-only
- fedora 43: Coin3-devel 3.1.3-40.fc43 Β· GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.fc44 Β· GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.fc44 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms