SOCOORDINATE4(3iv)

๐Ÿ’– SoCoordinate4 โ€” rational coordinate point node โœจ

okay bestie, gather round, we're learning about SoCoordinate4(3IV) from the Inventor crew and honestly? she's niche but she's important. ๐ŸŽ€


๐ŸŒธ NAME ๐ŸŒธ

SoCoordinate4 โ€” rational coordinate point node ๐Ÿฆ‹


๐Ÿงฌ INHERITS FROM ๐Ÿงฌ

SoBase > SoFieldContainer > SoNode > SoCoordinate4

like, she's the baby of the family, and the whole lineage is riding on her shoulders ๐Ÿ’…


โœจ SYNOPSIS โœจ

#include <Inventor/nodes/SoCoordinate4.h>

๐Ÿ“ Fields from class SoCoordinate4:

SoMFVec4f           point

๐ŸŽ€ Methods from class SoCoordinate4:

                     SoCoordinate4()
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 this node defines a set of 3D coordinates that get used by the vertex-based shape nodes that come after it (aka the ones derived from SoVertexShape) โ€” or by shape nodes that use them as control points, like NURBS curves and surfaces. ๐ŸŒธ

the whole vibe here is that the coordinates are specified as rational 4-vectors. so the corresponding 3D point? it's computed by dividing the first three components by the fourth. that's the math, that's the tea, no cap. ๐Ÿงฎโœจ

and like, real talk โ€” this node does not produce any visible result during rendering. nope, nothing, zero, nada. it simply replaces the current coordinates in the rendering state so the subsequent nodes can use them. she's a background character with main character impact, fr fr. ๐Ÿ’…

bestie why does she exist?? primarily for NURBS curves and surfaces. but ngl she can also be used to define coordinates for any vertex-based shape. versatility queen ๐Ÿ‘‘

๐Ÿฆ‹ FIELDS ๐Ÿฆ‹

  • SoMFVec4f point โ€” coordinate point(s). that's it, that's the field, she's a simple girlie ๐ŸŽ€

๐Ÿ’… METHODS ๐Ÿ’…

  • SoCoordinate4() โ€” creates a coordinate node with default settings. fresh out the box, defaults and all โœจ
  • static SoType getClassTypeId() โ€” returns the type identifier for this class. iykyk, that's your class ID right there ๐Ÿ’œ

๐Ÿ”ฅ ACTION BEHAVIOR ๐Ÿ”ฅ

SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction

sets coordinates in the current traversal state. slay, consistent across all four ๐Ÿ’–


๐ŸŒŸ FILE FORMAT/DEFAULTS ๐ŸŒŸ

Coordinate4 {
    point  0 0 0 1
}

look at that default, 0 0 0 1 โ€” she's iconic, she's grounded, she's literally at the origin ๐ŸŽ€


๐Ÿงš SEE ALSO ๐Ÿงš

  • SoCoordinate4
  • SoIndexedNurbsCurve
  • SoIndexedNurbsSurface
  • SoNurbsCurve
  • SoNurbsProfile
  • SoNurbsSurface
  • SoVertexShape

(yes, SoCoordinate4 is in her own SEE ALSO list. self-love, we stan ๐Ÿ™ˆ๐Ÿ’–)


and that's the whole page bestie!! the footer down there just says SoCoordinate4(3IV)() โ€” manual name SoCoordinate4(3IV), with the version field and the date field both sitting there empty, like a mysterious queen who refuses to reveal her birthday ๐Ÿซถ stay curious, go read some more manpages, mwah ๐Ÿ’‹โœจ๐ŸŒˆ