SOVERTEXSHAPE(3iv)
π SoVertexShape π
okay bestie, welcome to the manual page for SoVertexShape(3IV) β yes that's the manual name, we're being fancy today π
she's the blueprint, the blueprint-est blueprint, and she doesn't even render anything herself. iconic behavior honestly.
πΈ NAME πΈ
SoVertexShape β the abstract base class for all vertex-based shape nodes. she's the mom of the whole geometry fam, no cap π«Ά
𧬠INHERITS FROM π§¬
SoBase > SoFieldContainer > SoNode > SoShape > SoVertexShape
look at that bloodline. generational excellence fr fr π
β¨ SYNOPSIS β¨
#include <Inventor/nodes/SoVertexShape.h>
Fields from class SoVertexShape:
SoSFNode vertexProperty
Methods from class SoVertexShape:
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
like, she inherited SO much. she's carrying the whole family tree on her back and she's doing it in stilettos ππ
π¦ DESCRIPTION π¦
so. this node is the abstract base class for all vertex-based shape (geometry) nodes. she's the repository for convenience functions that her subclasses get to use, and she also hands out a type identifier so you can easily figure out whether a shape is vertex-based or not. very "let me check your vibe real quick" of her π§
She's got exactly one public field, and it's the SoVertexProperty field. one field, zero drama, main character energy.
Every subclass of this node draws objects built out of vertices. Here's the tea on how that works:
- If the
vertexPropertyfield is non-null and there are coordinates in the associated vertex property node, then those coordinates get used. periodt. - Otherwise, the objects are drawn using the current coordinates in the state.
- Either way, the coordinates of the shape get transformed by the current transformation matrix, and drawn with the current light model and drawing style.
β οΈ real talk bestie: subclasses that construct polygons from vertices may not render or pick correctly if any of their polygons are self-intersecting or non-planar. non-planar polygons are giving chaos and the renderer will simply not deal with it π
π default texture coordinates (yes she computes them herself) π
All vertex shape subclasses use the bounding box of the shape to determine default texture coordinates. here's the math, and it's actually cute:
- The longest dimension of the bounding box defines the S coordinates.
- The next longest defines the T coordinates.
- The value of the S coordinate ranges from
0to1, from one end of the bounding box to the other. - The T coordinate ranges between
0and the ratio of the second greatest dimension of the bounding box to the greatest dimension.
okay ratio queen, we see you π
π― picking (with SoRayPickAction) π―
When a vertex-based shape is picked with an SoRayPickAction, a detail is always returned. like, always always. no empty-handed pick energy here β¨
Which detail you get depends on what the shape is made of:
- If the shape is composed of faces (such as
SoFaceSetorSoTriangleStripSet), anSoFaceDetailis returned. - If the shape is composed of line segments (such as
SoLineSet), anSoLineDetailis returned. - If the shape is composed of points (such as
SoPointSet), anSoPointDetailis returned.
π heads up: the type of detail returned is not affected by the current drawing style. don't even try it.
π callbacks (with SoCallbackAction) π
Similarly, each class of vertex-based shape invokes appropriate callbacks β but only if those callbacks are registered with the SoCallbackAction. she's not gonna call you if you didn't give her your number, bestie.
- Shapes made of faces invoke triangle callbacks for each generated triangle. (and yes, faces may be triangulated to create these triangles β that's the whole trick π§ )
- Shapes made of line segments invoke line segment callbacks for each segment.
- Shapes made of points invoke point callbacks.
π³ the two subclass branches π³
- The subclass
SoIndexedShapeis a base class for vertex-based shapes that index into the current set of coordinates. - The subclass
SoNonIndexedShapeis a base class for vertex-based shapes that use the current coordinates in order.
two sisters, two strategies, both slaying π
π FIELDS π
SoSFNodevertexPropertyβ the vertex property node. that's it. that's the field. she's lowkey minimal and we respect it π
π METHODS π
static SoType getClassTypeId()β Returns the type identifier for this class. your girl's ID card, basically πͺͺ
π FILE FORMAT/DEFAULTS π
This is an abstract class. There's no format and no defaults to show off here β go check the reference page of a derived class for the format and default values. she's abstract, she doesn't do concrete, she's mysterious like that π
π SEE ALSO π
SoIndexedShape, SoNonIndexedShape, SoVertexProperty
go read those next, bestie, they're the ones who actually do the rendering. iykyk π
and that's the whole page!! this was SoVertexShape(3IV) from the SoVertexShape(3IV)() manual page β abstract base class energy, vertex-based royalty, and she ate, no crumbs left πβ¨ mwah, love u, go build something with vertices ππ¦πΈ
π¦ 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