SOINDEXEDTRIANGLESTRIPSET(3iv)
π SoIndexedTriangleStripSet β indexed triangle strip set shape node π
okay bestie, so this is SoIndexedTriangleStripSet(3IV), and she is literally the queen of drawing triangle strips. this is the manual page, and i'm gonna walk you through every single crumb of it. no skips. periodt. β¨
π INHERITS FROM
she's got a whole bloodline, okay, main character energy runs in the family:
SoBase > SoFieldContainer > SoNode > SoShape > SoVertexShape >
SoIndexedShape > SoIndexedTriangleStripSet
like, she's the youngest of seven and she ate. π
β¨ SYNOPSIS β¨
to even talk to her you gotta do this first:
#include <Inventor/nodes/SoIndexedTriangleStripSet.h>
π Fields from class SoIndexedShape
these are the fields she inherited from her mom SoIndexedShape, and they're all multi-fields of int32, slay:
SoMFInt32 coordIndex
SoMFInt32 materialIndex
SoMFInt32 normalIndex
SoMFInt32 textureCoordIndex
π¦ Fields from class SoVertexShape
just the one, but she's important:
SoSFNode vertexProperty
πΈ Methods from class SoIndexedTriangleStripSet
her own two methods, and honestly? iconic:
SoIndexedTriangleStripSet()
static SoType getClassTypeId()
β Methods from class SoNode
inherited, still useful, still valid:
void setOverride(SbBool state)
SbBool isOverride() const
SoNode * copy(SbBool copyConnections = FALSE) const
virtual SbBool affectsState() const
static SoNode * getByName(const SbName &name)
static int getByName(const SbName &name, SoNodeList &list)
π Methods from class SoFieldContainer
the whole field-management situation:
void setToDefaults()
SbBool hasDefaultValues() const
SbBool fieldsAreEqual(const SoFieldContainer *fc) const
void copyFieldValues(const SoFieldContainer *fc, SbBool
copyConnections = FALSE)
SbBool set(const char *fieldDataString)
void get(SbString &fieldDataString)
virtual int getFields(SoFieldList &resultList) const
virtual SoField * getField(const SbName &fieldName) const
SbBool getFieldName(const SoField *field, SbName &fieldName)
const
SbBool isNotifyEnabled() const
SbBool enableNotify(SbBool flag)
π§ Methods from class SoBase
the foundation, the origin story:
void ref()
void unref() const
void unrefNoDelete() const
void touch()
virtual SoType getTypeId() const
SbBool isOfType(SoType type) const
virtual void setName(const SbName &name)
virtual SbName getName() const
π DESCRIPTION π
okay so, this shape node builds triangle strips out of vertices that live at the coordinates you specified in the vertexProperty field (that's the one from SoVertexShape), or the current inherited coordinates. and listen β for optimal performance, the vertexProperty field is what she recommends. trust her, she knows. π«Ά
SoIndexedTriangleStripSet uses the indices in the coordIndex field (from SoIndexedShape) to say which vertices make up the triangle strips. and here's the key thing: an index of SO_END_STRIP_INDEX (which is -1) means the current strip is over and the next one begins. that's the divider, that's the vibe break. βοΈ
the vertices of the faces get transformed by the current transformation matrix. the faces are drawn with the current light model and drawing style. yes ma'am. π«
now, treatment of the current material and normal binding goes like this, and don't skip this part bestie:
PER_PARTspecifies a material or normal per strip.PER_FACEbinding specifies a material or normal for each triangle.PER_VERTEXspecifies a material or normal for each vertex.- the corresponding
_INDEXEDbindings are the same, but they use thematerialIndexornormalIndexindices (peepSoIndexedShapefor that).
the default material binding is OVERALL. the default normal binding is PER_VERTEX_INDEXED.
π¨ okay warning time, this one matters: if any normals (or materials) are specified, Inventor assumes you provide the correct number of them, as indicated by the binding. you will see unexpected results if you specify fewer normals (or materials) than the shape requires. if no normals are specified, they will be generated automatically. so like... count them. fr fr. π
π METHODS π
SoIndexedTriangleStripSet()β creates an indexed triangle strip set node with default settings. a fresh baby, defaults and all. πΌstatic SoType getClassTypeId()β returns the type identifier for this class. it's her ID, her little name tag. π·οΈ
π₯ ACTION BEHAVIOR π₯
SoGLRenderAction
draws a strip set based on the current coordinates, normals, materials, drawing style, and so on. the whole glow-up, rendered. β¨
SoRayPickAction
picks on the strip set based on the current coordinates and transformation. details about the intersection are returned in an SoFaceDetail. she's giving you the receipts. π§Ύ
SoGetBoundingBoxAction
computes the bounding box that encloses all vertices of the strip set with the current transformation applied to them. and it sets the center to the average of the coordinates of all vertices. math girlie behavior. π
SoCallbackAction
if any triangle callbacks are registered with the action, they will be invoked for each successive triangle forming the strips of the set. every single one. no crumbs left. π
πΈ FILE FORMAT/DEFAULTS πΈ
here's exactly how she shows up when you don't tell her otherwise:
IndexedTriangleStripSet {
vertexProperty NULL
coordIndex 0
materialIndex -1
normalIndex -1
textureCoordIndex -1
}
look at those defaults. NULL, 0, and a whole lotta -1. iconic. π
π¦ SEE ALSO
go read these next, bestie, they're all in the same friend group:
SoCoordinate3SoDrawStyleSoFaceDetailSoIndexedFaceSetSoTriangleStripSetSoVertexProperty
and that's the whole page, no cap. this was SoIndexedTriangleStripSet(3IV) β that's the page name and the manual name, folded in right at the top like i promised β and the footer was just the same name again with an empty date slot, so like, no date on this one, she's timeless. π
β¨
later bestie, go draw some strips π«Άππ
π¦ where this page comes from
- debian bookworm: inventor-doc 2.1.5-10+dfsg-2 Β· LGPL-2.0-or-later
- debian trixie: inventor-doc 2.1.6+ds-2 Β· LGPL-2.0-or-later
- ubuntu jammy: inventor-doc 2.1.5-10-24
- ubuntu noble: inventor-doc 2.1.5-10+dfsg-2.1build2 Β· LGPL-2.0-or-later
- ubuntu questing: inventor-doc 2.1.6+ds-2
- ubuntu resolute: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- ubuntu stonking: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms