SOINDEXEDTRIANGLESTRIPSET(3coin2)

πŸ“¦ version 2.5.0, in fedora 43, fedora 44

πŸ’… SoIndexedTriangleStripSet(3) πŸ’…

okay so bestie, welcome to the Library Functions Manual β€” this is the page for SoIndexedTriangleStripSet(3), and it's a long one, so buckle up. It's the whole class reference: everything this node does, plus literally every single thing it inherits from its ancestors. We're doing this in parts. Grab a snack. πŸ“


✨ NAME ✨

SoIndexedTriangleStripSet β€” the class that keeps data for rendering and otherwise representing triangle strips. That's the whole vibe. Triangle strips. Indexed. Iconic. πŸ‘‘


🌸 SYNOPSIS 🌸

First things first, the include, no cap:

#include <Inventor/nodes/SoIndexedTriangleStripSet.h>

And the family tree moment: it inherits SoIndexedShape. So everything that one can do? It's in here too, down below, and we are listing all of it. 🫢

πŸ’– Public Member Functions πŸ’–

These are the ones this class itself declares, right here, main character energy:

  • virtual SoType getTypeId (void) const β€” the type-id getter, virtual edition.
  • SoIndexedTriangleStripSet (void) β€” the constructor. hiiii. ✨
  • virtual void GLRender (SoGLRenderAction *action) β€” the GL render override.
  • virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action) β€” counts the primitives when the action asks.
  • virtual SbBool generateDefaultNormals (SoState *state, SoNormalBundle *nb) β€” generates default normals, SoNormalBundle flavour.

πŸ¦‹ Public Member Functions inherited from SoVertexShape πŸ¦‹

  • virtual void notify (SoNotList *nl)
  • virtual void write (SoWriteAction *action)

🌈 Public Member Functions inherited from SoShape 🌈

  • virtual SbBool affectsState (void) const
  • virtual void getBoundingBox (SoGetBoundingBoxAction *action)
  • virtual void rayPick (SoRayPickAction *action)
  • virtual void callback (SoCallbackAction *action)
  • const SoBoundingBoxCache * getBoundingBoxCache (void) const

πŸ‘‘ Public Member Functions inherited from SoNode πŸ‘‘

the way that there are SO many of these. obsessed.

  • void setOverride (const SbBool state)
  • SbBool isOverride (void) const
  • void setNodeType (const NodeType type)
  • NodeType getNodeType (void) const
  • virtual SoNode * copy (SbBool copyconnections=0) const
  • virtual void doAction (SoAction *action)
  • virtual void GLRenderBelowPath (SoGLRenderAction *action)
  • virtual void GLRenderInPath (SoGLRenderAction *action)
  • virtual void GLRenderOffPath (SoGLRenderAction *action)
  • virtual void getMatrix (SoGetMatrixAction *action)
  • virtual void handleEvent (SoHandleEventAction *action)
  • virtual void pick (SoPickAction *action)
  • virtual void search (SoSearchAction *action)
  • virtual void audioRender (SoAudioRenderAction *action)
  • virtual void grabEventsSetup (void)
  • virtual void grabEventsCleanup (void)
  • virtual void startNotify (void)
  • uint32_t getNodeId (void) const
  • virtual SoChildList * getChildren (void) const
  • virtual void writeInstance (SoOutput *out)
  • virtual SoNode * addToCopyDict (void) const
  • virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)
  • virtual SoFieldContainer * copyThroughConnection (void) const

πŸŽ€ Public Member Functions inherited from SoFieldContainer πŸŽ€

  • void setToDefaults (void)
  • SbBool hasDefaultValues (void) const
  • SbBool fieldsAreEqual (const SoFieldContainer *container) const
  • void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=0)
  • SbBool set (const char *const fielddata)
  • void get (SbString &fielddata)
  • virtual int getFields (SoFieldList &l) const
  • virtual int getAllFields (SoFieldList &l) const
  • virtual SoField * getField (const SbName &name) const
  • virtual SoField * getEventIn (const SbName &name) const
  • virtual SoField * getEventOut (const SbName &name) const
  • SbBool getFieldName (const SoField *const field, SbName &name) const
  • SbBool enableNotify (const SbBool flag)
  • SbBool isNotifyEnabled (void) const
  • SbBool set (const char *fielddata, SoInput *in)
  • void get (SbString &fielddata, SoOutput *out)
  • virtual SbBool validateNewFieldValue (SoField *field, void *newval)
  • virtual void addWriteReference (SoOutput *out, SbBool isfromfield=0)
  • SbBool getIsBuiltIn (void) const
  • void setUserData (void *userdata) const
  • void * getUserData (void) const

⭐ Public Member Functions inherited from SoBase ⭐

  • void ref (void) const
  • void unref (void) const
  • void unrefNoDelete (void) const
  • int32_t getRefCount (void) const
  • void touch (void)
  • SbBool isOfType (SoType type) const
  • virtual SbName getName (void) const
  • virtual void setName (const SbName &newname)
  • void addAuditor (void *const auditor, const SoNotRec::Type type)
  • void removeAuditor (void *const auditor, const SoNotRec::Type type)
  • const SoAuditorList & getAuditors (void) const
  • SbBool shouldWrite (void)
  • void assertAlive (void) const

🌟 Static Public Member Functions 🌟

the static girlies, doing their thing without needing an instance, periodt:

  • static SoType getClassTypeId (void) β€” the class type id.
  • static void initClass (void) β€” sets the class up.

πŸ’œ 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)
  • static float getDecimatedComplexity (SoState *state, float complexity)

🧑 Static Public Member Functions inherited from SoNode 🧑

  • static uint32_t getCompatibilityTypes (const SoType &nodetype)
  • static SoType getClassTypeId (void)
  • static SoNode * getByName (const SbName &name)
  • static int getByName (const SbName &name, SoNodeList &l)
  • static void initClass (void)
  • static void initClasses (void)
  • static uint32_t getNextNodeId (void)
  • static int getActionMethodIndex (const SoType type)
  • static void getBoundingBoxS (SoAction *action, SoNode *node)
  • 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)
  • static SoType getClassTypeId (void)
  • static void initCopyDict (void)
  • static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)
  • static SoFieldContainer * checkCopy (const SoFieldContainer *orig)
  • static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)
  • static void copyDone (void)

🀍 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)
  • static void removeName (SoBase *const base, const char *const name)
  • static void incrementCurrentWriteCounter (void)
  • static void decrementCurrentWriteCounter (void)
  • static SoBase * getNamedBase (const SbName &name, SoType type)
  • static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)
  • static SbBool read (SoInput *in, SoBase *&base, SoType expectedtype)
  • static void setInstancePrefix (const SbString &c)
  • static void setTraceRefs (SbBool trace)
  • static SbBool getTraceRefs (void)
  • static SbBool connectRoute (SoInput *in, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)
  • static SbBool readRoute (SoInput *in)

🫢 Protected Member Functions 🫢

these are the protected ones β€” you only get to play with these if you're subclassing, iykyk. πŸ”’

  • virtual const SoFieldData * getFieldData (void) const
  • virtual ~SoIndexedTriangleStripSet () β€” the destructor.
  • virtual SbBool generateDefaultNormals (SoState *state, SoNormalCache *nc) β€” default normals again, but the SoNormalCache flavour.
  • virtual void generatePrimitives (SoAction *action) β€” generates the primitives.

πŸ¦„ Protected Member Functions inherited from SoIndexedShape πŸ¦„

  • SoIndexedShape (void)
  • virtual ~SoIndexedShape ()
  • virtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f &center)
  • int getNumVerts (const int startCoord)
  • void setupIndices (const int numParts, const int numFaces, const SbBool needNormals, const SbBool needTexCoords)
  • const int32_t * getNormalIndices (void)
  • const int32_t * getColorIndices (void)
  • const int32_t * getTexCoordIndices (void)
  • 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)

🐚 Protected Member Functions inherited from SoVertexShape 🐚

  • SoVertexShape (void)
  • virtual ~SoVertexShape ()
  • virtual SbBool shouldGLRender (SoGLRenderAction *action)
  • void setNormalCache (SoState *const state, const int num, const SbVec3f *normals)
  • SoNormalCache * getNormalCache (void) const
  • SoNormalCache * generateAndReadLockNormalCache (SoState *const state)
  • void getVertexData (SoState *state, const SoCoordinateElement *&coords, const SbVec3f *&normals, const SbBool neednormals)
  • void readLockNormalCache (void)
  • void readUnlockNormalCache (void)

okay that's the whole synopsis dump, which is honestly the longest part β€” and there's still more page coming. don't go anywhere, bestie, we're not done. 🌸

🫢 Protected Member Functions inherited from SoShape

These are the protected ones SoShape passes down β€” like, you're not calling these from the outside, they're ✨family-only✨, iykyk. Here's the full lineup, no cap:

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)

Notice generateVertex shows up twice πŸ‘€ β€” once with s, t, normal, and once with s, t, r, normal. Two overloads, both iconic, both real. And computeObjectSpaceRay is also doubled up, the second one taking that const SbMatrix &matrix extra. Periodt. πŸ’…


🫢 Protected Member Functions inherited from SoNode

SoNode (void)
virtual ~SoNode ()
virtual SbBool readInstance (SoInput *in, unsigned short flags)

Short and sweet, as she should be πŸŽ€

🫢 Protected Member Functions inherited from SoFieldContainer

SoFieldContainer (void)
~SoFieldContainer ()

🫢 Protected Member Functions inherited from SoBase

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

Look at all those consts at the end β€” so disciplined πŸ’™


⭐ Static Protected Member Functions

static const SoFieldData ** getFieldDataPtr (void)

That's it, that's the whole list. One queen, one job. πŸ‘‘

⭐ 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)

Obsessed with how getFieldDataPtr keeps showing up in literally every single one of these πŸ¦‹ β€” it's the main character fr fr.


🌈 Additional Inherited Members

🌸 Public Types inherited from SoShape

enum TriangleShape { TRIANGLE_STRIP, TRIANGLE_FAN, TRIANGLES, POLYGON, QUADS, QUAD_STRIP, POINTS, LINES, LINE_STRIP }

Nine shapes, all valid, all valid vibes ✨

🌸 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 }

Those hex values though β€” powers of two, every single one πŸ’– the way that's a bitmask… it's giving bitwise baddie.

πŸŽ€ Public Attributes inherited from SoIndexedShape

SoMFInt32 coordIndex
SoMFInt32 materialIndex
SoMFInt32 normalIndex
SoMFInt32 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 = 0
static int nextActionMethodIndex = 0

πŸ“– Detailed Description

Okay so here's the actual tea β˜• The SoIndexedTriangleStripSet class keeps data for rendering and otherwise representing triangle strips. That's the whole job, and she does it.

Use nodes of this type as an effective way of drawing triangles which are strung together. Effective! Strung together! We love a low-effort high-reward queen 🫢

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. Yes bestie, -1 is the little divider βœ‚οΈ For more information about indexed shapes, see documentation in SoIndexedShape and SoIndexedFaceSet.


Example scene graph, straight from the source, do not touch a single character πŸ’…:

#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
      ]
   }
}

See how coordIndex has that -1 sitting there between the two runs of numbers? That's the strip separator doing her thing πŸ”₯ Two strips, one node, zero drama.


FILE FORMAT/DEFAULTS:

IndexedTriangleStripSet {
    vertexProperty NULL
    coordIndex 0
    materialIndex -1
    normalIndex -1
    textureCoordIndex -1
}

Note the defaults bestie πŸ“ β€” vertexProperty starts NULL, coordIndex starts 0, and materialIndex, normalIndex and textureCoordIndex all start at -1. Write that down, it'll come up.


πŸ› οΈ Constructor & Destructor Documentation

SoIndexedTriangleStripSet::SoIndexedTriangleStripSet (void )

Constructor. Default field values will equal those set in the SoIndexedShape parent class. Inheriting the defaults, as she should 🌸

References SoIndexedTriangleStripSet().

Referenced by getFieldData(), and SoIndexedTriangleStripSet().

SoIndexedTriangleStripSet::~SoIndexedTriangleStripSet () [protected], [virtual]

Destructor.

That's it, that's all she says about it 😭 β€” protected and virtual, goodbye girlie, you served πŸ’œ

✨ Member Function Documentation ✨

πŸ’œ SoType SoIndexedTriangleStripSet::getTypeId (void ) const [virtual]

Okay bestie, this one hands you the type identification of any object derived from a class inheriting SoBase. It's what makes run-time type checking and "downward" casting possible. iykyk, it's giving main character energy for the whole type system πŸ’…

Usage example, and yes, this is verbatim:

void foo(SoNode * node)
{
  if (node->getTypeId() == SoFile::getClassTypeId()) {
    SoFile * filenode = (SoFile *)node;  // safe downward cast, knows the type
  }
  else if (node->getTypeId().isOfType(SoGroup::getClassTypeId())) {
    SoGroup * group = (SoGroup *)node;  // safe downward cast, knows the type
  }
}

So if you're an application programmer wanting to extend the library with new nodes, engines, nodekits, draggers or whatever β€” listen up 🫢 β€” this method needs to be overridden in all subclasses. That's 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 info 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]

This one returns a pointer to the class-wide field data storage object for this instance. And if there are literally no fields present? It returns NULL. That's it, that's the whole vibe πŸŽ€

Reimplemented from SoIndexedShape.

References SoIndexedTriangleStripSet().


πŸ¦‹ void SoIndexedTriangleStripSet::GLRender (SoGLRenderAction * action) [virtual]

Action method for the SoGLRenderAction β€” so, the render-time one ✨

This gets called during rendering traversals. Nodes influencing the rendering state in any way, or who wants to throw geometry primitives at OpenGL, override this method. Simple as that.

Reimplemented from SoShape.

References SoIndexedShape::coordIndex, SoAction::getState(), SoIndexedShape::getVertexData(), SoState::pop(), SoState::push(), SoVertexShape::readUnlockNormalCache(), SoVertexShape::shouldGLRender(), and SoVertexShape::vertexProperty.


πŸ”₯ void SoIndexedTriangleStripSet::getPrimitiveCount (SoGetPrimitiveCountAction * action) [virtual]

Action method for the SoGetPrimitiveCountAction, periodt.

It 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.

References SoGetPrimitiveCountAction::addNumTriangles(), SoGetPrimitiveCountAction::canApproximateCount(), SoIndexedShape::coordIndex, and SoShape::shouldPrimitiveCount().


πŸ’– SbBool SoIndexedTriangleStripSet::generateDefaultNormals (SoState * state, SoNormalBundle * bundle) [virtual]

ngl bestie, 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]

Again β€” internal to the library, not likely to be of interest to the application programmer. Same disclaimer, same energy πŸ’œ

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.

References SoIndexedShape::coordIndex, SoMField::getNum(), SoMFVec3f::getValues(), SoBase::isOfType(), SoVertexProperty::normal, SoVertexProperty::normalBinding, SoVertexProperty::vertex, and SoVertexShape::vertexProperty.


⭐ void SoIndexedTriangleStripSet::generatePrimitives (SoAction * action) [protected], [virtual]

This method implements action behavior for shape nodes for SoCallbackAction. It is invoked from SoShape::callback(). And real talk: subclasses should not override SoNode::callback().

The subclass implementation 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.

References SoShape::beginShape(), SoIndexedShape::coordIndex, SoShape::endShape(), SoAction::getState(), SoIndexedShape::getVertexData(), SoFaceDetail::incFaceIndex(), SoFaceDetail::incPartIndex(), SoState::pop(), SoState::push(), SoVertexShape::readUnlockNormalCache(), SoPointDetail::setCoordinateIndex(), SoPrimitiveVertex::setDetail(), SoFaceDetail::setFaceIndex(), SoPointDetail::setMaterialIndex(), SoPrimitiveVertex::setMaterialIndex(), SoPrimitiveVertex::setNormal(), SoPointDetail::setNormalIndex(), SoPrimitiveVertex::setPoint(), SoPointDetail::setTextureCoordIndex(), SoPrimitiveVertex::setTextureCoords(), SoShape::shapeVertex(), and SoVertexShape::vertexProperty.


πŸ‘‘ Author

Generated automatically by Doxygen for Coin from the source code. Not a human, not a bestie, just a tool doing its thing πŸ’€


And that's the whole page, bestie!! πŸŽ‰ This was Coin Version 2.5.0, and the manpage itself is SoIndexedT...gleStripSet(3) β€” slay, you made it to the end, go take a nap, you've earned it πŸŒˆπŸ’–

πŸ“¦ where this page comes from