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() 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 πŸ¦‹

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 πŸ’‹βœ¨