SONONINDEXEDSHAPE(3iv)

✨ NAME ✨

SoNonIndexedShape β€” the abstract base class for all non-indexed, vertex-based shapes πŸ’–


🧬 INHERITS FROM 🧬

SoBase > SoFieldContainer > SoNode > SoShape > SoVertexShape > SoNonIndexedShape

like... it's the whole ancestry tree bestie, all the way down πŸ’…


πŸ“œ SYNOPSIS πŸ“œ

#include <Inventor/nodes/SoNonIndexedShape.h>

   Fields from class SoNonIndexedShape:

SoSFInt32           startIndex

   Fields from class SoVertexShape:

SoSFNode            vertexProperty

   Methods from class SoNonIndexedShape:

static SoType       getClassTypeId()

   Methods from class SoNode:

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:

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:

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 listen 🫢 β€” this node is the abstract base class for every vertex-based shape that ISN'T built from indices. The iconic trio of examples: SoFaceSet, SoLineSet, and SoQuadMesh. no cap πŸ’…

Every single subclass of SoNonIndexedShape builds its objects using the coordinates that live in the vertexProperty field (that's the one it inherited from SoVertexShape, iykyk), or else it just grabs the current inherited coordinates. And the startIndex field β€” the one this very class defines? Yeah, it's obsolete now. It's only hanging around here for compatibility with ancient files and programs. it's giving legacy code energy fr fr 😭

The subclass is the one who decides what to do with this coordinate and any that come after it. The shape gets drawn with the current lighting model and drawing style, and it's transformed by the current transformation matrix. main character behavior honestly ✨

Now for the important part, bestie β€” material, normal, and texture coordinate bindings for shapes derived from this class ignore any index specifications. Like, a binding value of PER_FACE_INDEXED gets treated exactly the same way as PER_FACE, and so on down the line. it simply does not care πŸ’€

And if there aren't enough values in the current coordinates, material, or texture coordinates? Errors will occur. Not a vibe check, an actual error. be careful 🌸

🌸 FIELDS 🌸

  • SoSFInt32 startIndex β€” the obsolete field, kept around purely for compatibility reasons, periodt. It's the index of the first coordinate of the shape. she's retired but still on the payroll πŸ™ˆ

πŸŽ€ METHODS πŸŽ€

  • static SoType getClassTypeId() β€” returns the type identifier for this class. your girl's official ID card πŸ’…

πŸ¦‹ FILE FORMAT/DEFAULTS πŸ¦‹

This is an abstract class, so there's nothing to show here β€” go peek at the reference page of a derived class if you want the format and the default values. she's abstract, she doesn't do defaults ✨


πŸ‘‘ SEE ALSO πŸ‘‘

SoFaceSet, SoIndexedShape, SoLineSet, SoPointSet, SoQuadMesh, SoTriangleStripSet, SoVertexProperty


and that's the whole page bestie!! πŸ’– this was SoNonIndexedShape(3IV) from the SoNonIndexedShape(3IV)() manual β€” go forth and slay your vertex-based shapes, ily πŸ«ΆπŸŽ€