SONORMALBINDING(3iv)
β¨ NAME β¨
okay so bestie, this is the SoNormalBinding(3IV) page β yes, the manual name is right there, we're doing it live π
SoNormalBinding β node that specifies how multiple surface normals are bound to shapes π¦
π INHERITS FROM π
SoBase > SoFieldContainer > SoNode > SoNormalBinding
it's giving very much a whole ancestry line, no cap π
π SYNOPSIS π
#include <Inventor/nodes/SoNormalBinding.h>
then the enum, and she is iconic:
enum Binding {
SoNormalBinding::OVERALL Whole object has same normal
SoNormalBinding::PER_PART One normal for each part of object
SoNormalBinding::PER_PART_INDEXED
One normal for each part, indexed
SoNormalBinding::PER_FACE One normal for each face of object
SoNormalBinding::PER_FACE_INDEXED
One normal for each face, indexed
SoNormalBinding::PER_VERTEX One normal for each vertex of object
SoNormalBinding::PER_VERTEX_INDEXED
One normal for each vertex, indexed
}
π Fields from class SoNormalBinding:
SoSFEnum value
π«Ά Methods from class SoNormalBinding:
SoNormalBinding()static SoType getClassTypeId()
πΈ Methods from class SoNode:
void setOverride(SbBool state)SbBool isOverride() constSoNode * copy(SbBool copyConnections = FALSE) constvirtual SbBool affectsState() conststatic SoNode * getByName(const SbName &name)static int getByName(const SbName &name, SoNodeList &list)
π§ Methods from class SoFieldContainer:
void setToDefaults()SbBool hasDefaultValues() constSbBool fieldsAreEqual(const SoFieldContainer *fc) constvoid copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)SbBool set(const char *fieldDataString)void get(SbString &fieldDataString)virtual int getFields(SoFieldList &resultList) constvirtual SoField * getField(const SbName &fieldName) constSbBool getFieldName(const SoField *field, SbName &fieldName) constSbBool isNotifyEnabled() constSbBool enableNotify(SbBool flag)
π Methods from class SoBase:
void ref()void unref() constvoid unrefNoDelete() constvoid touch()virtual SoType getTypeId() constSbBool isOfType(SoType type) constvirtual void setName(const SbName &name)virtual SbName getName() const
π¦ DESCRIPTION π¦
This node specifies how the current normals are bound to shapes that follow in the scene graph. Each shape node may interpret bindings differently. literally every shape gets to have its own little interpretation moment, and that's valid π
The bindings for faces and vertices are meaningful only for shapes that are made from faces and vertices. Similarly, the indexed bindings are only used by the shapes that allow indexing. so like, don't try to use face/vertex binding on a shape that isn't built from faces and vertices, bestie, it's not gonna eat π
For bindings that require multiple normals, be sure to have at least as many normals defined as are necessary; otherwise, errors will occur. and when we say errors, we mean errors β not a vibe check, an actual error, periodt. so count your normals, queen π
π FIELDS π
SoSFEnum valueβ Specifies how to bind normals to shapes. she's the main character of this node, fr fr β¨
π METHODS π
SoNormalBinding()β Creates a normal binding node with default settings. baby's first normal binding node, slay πstatic SoType getClassTypeId()β Returns type identifier for this class. the class ID, the whole identity, iykyk πͺ©
π₯ ACTION BEHAVIOR π₯
SoGLRenderAction, SoCallbackAction, SoRayPickAction
Sets the current normal binding type. so when these actions roll through, they update the normal binding type and keep it moving π
β FILE FORMAT/DEFAULTS β
NormalBinding {
value PER_VERTEX_INDEXED
}
default is PER_VERTEX_INDEXED, no cap. if you don't say otherwise, that's the vibe she's serving π¦
π SEE ALSO π
SoMaterialBinding, SoNormal, SoTextureCoordinateBinding, SoVertexShape
go read these next if you wanna understand the whole binding friend group, bestie π«Ά
and that's the whole page, periodt. the footer stamp says SoNormalBinding(3IV)() β so that's the source/version energy and the date slot too, cute little sign-off, mwah πβ¨
π¦ 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