SoAnnotation(3)

๐Ÿ“ฆ
version 4.0.10 ยท 4 versions
, in fedora 43, fedora 44

๐Ÿ’– SoAnnotation(3) โ€” Coin ๐Ÿ’–

Okay bestie, welcome to SoAnnotation(3) from Coin. This node is giving โ€œdraw my children on top of everything elseโ€ and honestly? Iconic. Letโ€™s get into it. ๐Ÿซถ


๐ŸŽ€ NAME ๐ŸŽ€

SoAnnotation โ€” the node that draws all its child geometry on top of other geometry. Periodt. ๐Ÿ’…


๐ŸŒˆ SYNOPSIS ๐ŸŒˆ

#include <Inventor/nodes/SoAnnotation.h>

Inherits SoSeparator. Slay. ๐Ÿ‘‘


๐ŸŒŸ Public Member Functions ๐ŸŒŸ

  • virtual SoType getTypeId (void) const โ€” ๐Ÿ’…
  • SoAnnotation (void) โ€” โœจ
  • virtual void GLRender (SoGLRenderAction *action) โ€” ๐Ÿ”ฅ
  • virtual void GLRenderBelowPath (SoGLRenderAction *action) โ€” ๐ŸŒธ
  • virtual void GLRenderInPath (SoGLRenderAction *action) โ€” ๐Ÿฆ‹
  • virtual void GLRenderOffPath (SoGLRenderAction *action) โ€” ๐Ÿ’œ

โœจ Public Member Functions inherited from SoSeparator โœจ

  • SoSeparator (void) โ€” ๐Ÿ’–
  • SoSeparator (const int nchildren) โ€” ๐ŸŽ€
  • virtual void doAction (SoAction *action) โ€” ๐ŸŒŸ
  • virtual void callback (SoCallbackAction *action) โ€” ๐Ÿ’…
  • virtual void getBoundingBox (SoGetBoundingBoxAction *action) โ€” ๐Ÿ“ฆ
  • virtual void getMatrix (SoGetMatrixAction *action) โ€” ๐Ÿงฎ
  • virtual void handleEvent (SoHandleEventAction *action) โ€” ๐ŸŽŸ๏ธ
  • virtual void rayPick (SoRayPickAction *action) โ€” ๐Ÿ”ฆ
  • virtual void search (SoSearchAction *action) โ€” ๐Ÿ”
  • virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action) โ€” ๐Ÿ”ข
  • virtual void audioRender (SoAudioRenderAction *action) โ€” ๐Ÿ”Š
  • virtual void notify (SoNotList *nl) โ€” ๐Ÿ“ฃ
  • virtual SbBool affectsState (void) const โ€” ๐Ÿง 

๐Ÿฆ‹ Public Member Functions inherited from SoGroup ๐Ÿฆ‹

  • SoGroup (void) โ€” ๐Ÿ’–
  • SoGroup (int nchildren) โ€” ๐ŸŽ€
  • virtual void addChild (SoNode *node) โ€” ๐ŸŒฑ
  • virtual void insertChild (SoNode *child, int newchildindex) โ€” ๐Ÿงฉ
  • virtual SoNode * getChild (int index) const โ€” ๐Ÿ‘ถ
  • virtual int findChild (const SoNode *node) const โ€” ๐Ÿ”Ž
  • virtual int getNumChildren (void) const โ€” ๐Ÿ”ข
  • virtual void removeChild (int childindex) โ€” ๐Ÿ—‘๏ธ
  • virtual void removeChild (SoNode *child) โ€” ๐Ÿ—‘๏ธ
  • virtual void removeAllChildren (void) โ€” ๐Ÿ’ฅ
  • virtual void replaceChild (int index, SoNode *newchild) โ€” ๐Ÿ”„
  • virtual void replaceChild (SoNode *oldchild, SoNode *newchild) โ€” ๐Ÿ”„
  • virtual void pick (SoPickAction *action) โ€” ๐ŸŽฏ
  • virtual void write (SoWriteAction *action) โ€” โœ๏ธ
  • virtual SoChildList * getChildren (void) const โ€” ๐Ÿ“œ
  • virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE) โ€” ๐Ÿงพ

๐ŸŒธ Public Member Functions inherited from SoNode ๐ŸŒธ

  • void setOverride (const SbBool state) โ€” ๐Ÿ‘‘
  • SbBool isOverride (void) const โ€” ๐Ÿ‘‘
  • void setNodeType (const NodeType type) โ€” ๐Ÿท๏ธ
  • NodeType getNodeType (void) const โ€” ๐Ÿท๏ธ
  • virtual SoNode * copy (SbBool copyconnections=FALSE) const โ€” ๐Ÿ“‹
  • virtual void grabEventsSetup (void) โ€” โœ‹
  • virtual void grabEventsCleanup (void) โ€” ๐Ÿงน
  • virtual void startNotify (void) โ€” ๐Ÿ””
  • SbUniqueId getNodeId (void) const โ€” ๐Ÿ†”
  • virtual void writeInstance (SoOutput *out) โ€” โœ๏ธ
  • virtual SoNode * addToCopyDict (void) const โ€” ๐Ÿ“š
  • virtual SoFieldContainer * copyThroughConnection (void) const โ€” ๐Ÿ”—

๐Ÿ’œ Public Member Functions inherited from SoFieldContainer ๐Ÿ’œ

  • void setToDefaults (void) โ€” ๐Ÿ”„
  • SbBool hasDefaultValues (void) const โ€” โœ…
  • SbBool fieldsAreEqual (const SoFieldContainer *container) const โ€” โš–๏ธ
  • void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE) โ€” ๐Ÿ“‹
  • SbBool set (const char *const fielddata) โ€” โœ๏ธ
  • void get (SbString &fielddata) โ€” ๐Ÿ“ค
  • virtual int getFields (SoFieldList &l) const โ€” ๐Ÿ“‹
  • virtual int getAllFields (SoFieldList &l) const โ€” ๐Ÿ“‹
  • virtual SoField * getField (const SbName &name) const โ€” ๐Ÿ”Ž
  • virtual SoField * getEventIn (const SbName &name) const โ€” ๐Ÿ“ฅ
  • virtual SoField * getEventOut (const SbName &name) const โ€” ๐Ÿ“ค
  • SbBool getFieldName (const SoField *const field, SbName &name) const โ€” ๐Ÿท๏ธ
  • SbBool enableNotify (const SbBool flag) โ€” ๐Ÿ””
  • SbBool isNotifyEnabled (void) const โ€” ๐Ÿ””
  • SbBool set (const char *fielddata, SoInput *input) โ€” โœ๏ธ
  • void get (SbString &fielddata, SoOutput *out) โ€” ๐Ÿ“ค
  • virtual SbBool validateNewFieldValue (SoField *field, void *newval) โ€” โœ…
  • SbBool getIsBuiltIn (void) const โ€” ๐Ÿ—๏ธ
  • virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) const โ€” ๐Ÿง 
  • void setUserData (void *userdata) const โ€” ๐Ÿ“ฆ
  • void * getUserData (void) const โ€” ๐Ÿ“ฆ

๐Ÿซถ Public Member Functions inherited from SoBase ๐Ÿซถ

  • void ref (void) const โ€” โž•
  • void unref (void) const โ€” โž–
  • void unrefNoDelete (void) const โ€” ๐Ÿšซ
  • int32_t getRefCount (void) const โ€” ๐Ÿ”ข
  • void touch (void) โ€” โœจ
  • SbBool isOfType (SoType type) const โ€” returns TRUE if the type of this object is either of the same type or inherited from type. ๐Ÿ‘‘
  • virtual SbName getName (void) const โ€” ๐Ÿท๏ธ
  • virtual void setName (const SbName &newname) โ€” โœ๏ธ
  • void addAuditor (void *const auditor, const SoNotRec::Type type) โ€” ๐Ÿ‘€
  • void removeAuditor (void *const auditor, const SoNotRec::Type type) โ€” ๐Ÿ‘€
  • const SoAuditorList & getAuditors (void) const โ€” ๐Ÿ‘€
  • SbBool shouldWrite (void) โ€” โœ๏ธ
  • void assertAlive (void) const โ€” โœ…

๐ŸŒŸ Static Public Member Functions ๐ŸŒŸ

  • static SoType getClassTypeId (void) โ€” ๐Ÿ’…
  • static void initClass (void) โ€” sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. โœจ

โœจ Static Public Member Functions inherited from SoSeparator โœจ

  • static SoType getClassTypeId (void) โ€” ๐Ÿ’…
  • static void initClass (void) โ€” sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. โœจ
  • static void setNumRenderCaches (const int howmany) โ€” ๐Ÿ—‚๏ธ
  • static int getNumRenderCaches (void) โ€” ๐Ÿ—‚๏ธ

๐Ÿฆ‹ Static Public Member Functions inherited from SoGroup ๐Ÿฆ‹

  • static SoType getClassTypeId (void) โ€” ๐Ÿ’…
  • static void initClass (void) โ€” sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. โœจ

๐ŸŒธ Static Public Member Functions inherited from SoNode ๐ŸŒธ

  • static uint32_t getCompatibilityTypes (const SoType &nodetype) โ€” ๐Ÿงฌ
  • static SoType getClassTypeId (void) โ€” ๐Ÿ’…
  • static SoNode * getByName (const SbName &name) โ€” ๐Ÿ”Ž
  • static int getByName (const SbName &name, SoNodeList &l) โ€” ๐Ÿ”Ž
  • static void initClass (void) โ€” sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. โœจ
  • static void initClasses (void) โ€” ๐Ÿซ
  • static SbUniqueId getNextNodeId (void) โ€” ๐Ÿ†”
  • static int getActionMethodIndex (const SoType type) โ€” ๐Ÿ”ข
  • static void getBoundingBoxS (SoAction *action, SoNode *node) โ€” ๐Ÿ“ฆ
  • static void GLRenderS (SoAction *action, SoNode *node) โ€” ๐Ÿ”ฅ
  • static void callbackS (SoAction *action, SoNode *node) โ€” ๐Ÿ’…
  • static void getMatrixS (SoAction *action, SoNode *node) โ€” ๐Ÿงฎ
  • static void handleEventS (SoAction *action, SoNode *node) โ€” ๐ŸŽŸ๏ธ
  • static void pickS (SoAction *action, SoNode *node) โ€” ๐ŸŽฏ
  • static void rayPickS (SoAction *action, SoNode *node) โ€” ๐Ÿ”ฆ
  • static void searchS (SoAction *action, SoNode *node) โ€” ๐Ÿ”
  • static void writeS (SoAction *action, SoNode *node) โ€” โœ๏ธ
  • static void audioRenderS (SoAction *action, SoNode *node) โ€” ๐Ÿ”Š
  • static void getPrimitiveCountS (SoAction *action, SoNode *node) โ€” ๐Ÿ”ข

๐Ÿ’œ Static Public Member Functions inherited from SoFieldContainer ๐Ÿ’œ

  • static void initClass (void) โ€” sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. โœจ
  • static SoType getClassTypeId (void) โ€” this static method returns the SoType object associated with objects of this class. ๐Ÿ’…
  • static void cleanupClass (void) โ€” ๐Ÿงน
  • static void initCopyDict (void) โ€” ๐Ÿ“š
  • static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy) โ€” ๐Ÿ“‹
  • static SoFieldContainer * checkCopy (const SoFieldContainer *orig) โ€” โœ…
  • static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections) โ€” ๐Ÿ”Ž
  • static void copyDone (void) โ€” โœ…

๐Ÿซถ Static Public Member Functions inherited from SoBase ๐Ÿซถ

  • static void initClass (void) โ€” sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. โœจ
  • static SoType getClassTypeId (void) โ€” this static method returns the SoType object associated with objects of this class. ๐Ÿ’…
  • static void addName (SoBase *const base, const char *const name) โ€” ๐Ÿท๏ธ
  • static void removeName (SoBase *const base, const char *const name) โ€” ๐Ÿท๏ธ
  • static void incrementCurrentWriteCounter (void) โ€” โž•
  • static void decrementCurrentWriteCounter (void) โ€” โž–
  • static SoBase * getNamedBase (const SbName &name, SoType type) โ€” ๐Ÿ”Ž
  • static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type) โ€” ๐Ÿ”Ž
  • static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype) โ€” ๐Ÿ“–
  • static void setInstancePrefix (const SbString &c) โ€” ๐Ÿท๏ธ
  • static void setTraceRefs (SbBool trace) โ€” ๐Ÿพ
  • static SbBool getTraceRefs (void) โ€” ๐Ÿพ
  • static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname) โ€” ๐Ÿ”—
  • static SbBool readRoute (SoInput *input) โ€” ๐Ÿ“–

๐Ÿ”’ Protected Member Functions ๐Ÿ”’

  • virtual const SoFieldData * getFieldData (void) const โ€” ๐Ÿ“‹
  • virtual ~SoAnnotation () โ€” ๐Ÿ’€

๐Ÿ”’ Protected Member Functions inherited from SoSeparator ๐Ÿ”’

  • virtual ~SoSeparator () โ€” ๐Ÿ’€
  • virtual SbBool cullTest (SoState *state) โ€” ๐Ÿšซ
  • virtual SbBool cullTest (SoGLRenderAction *action, int &cullresults) โ€” ๐Ÿšซ
  • virtual SbBool readInstance (SoInput *in, unsigned short flags) โ€” ๐Ÿ“–

๐Ÿ”’ Protected Member Functions inherited from SoGroup ๐Ÿ”’

  • virtual ~SoGroup () โ€” ๐Ÿ’€
  • virtual SbBool readChildren (SoInput *in) โ€” ๐Ÿ“–
  • virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections) โ€” ๐Ÿ“‹
  • virtual SoNotRec createNotRec (void) โ€” ๐Ÿ“
  • void setOperation (const SoNotRec::OperationType opType=SoNotRec::UNSPECIFIED, const SoNode *cc=NULL, const SoNode *pc=NULL, const int ci=-1) โ€” โš™๏ธ

๐Ÿ”’ Protected Member Functions inherited from SoNode ๐Ÿ”’

  • SoNode (void) โ€” โœจ
  • virtual ~SoNode () โ€” ๐Ÿ’€

๐Ÿ”’ Protected Member Functions inherited from SoFieldContainer ๐Ÿ”’

  • SoFieldContainer (void) โ€” โœจ
  • virtual ~SoFieldContainer () โ€” ๐Ÿ’€

๐Ÿ”’ Protected Member Functions inherited from SoBase ๐Ÿ”’

  • SoBase (void) โ€” โœจ
  • virtual ~SoBase () โ€” ๐Ÿ’€
  • virtual void destroy (void) โ€” ๐Ÿ’ฅ
  • SbBool hasMultipleWriteRefs (void) const โ€” ๐Ÿงพ
  • SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const โ€” โœ๏ธ
  • void writeFooter (SoOutput *out) const โ€” โœ๏ธ
  • virtual const char * getFileFormatName (void) const โ€” ๐Ÿท๏ธ

๐Ÿ›ก๏ธ Static Protected Member Functions ๐Ÿ›ก๏ธ

  • static const SoFieldData ** getFieldDataPtr (void) โ€” ๐Ÿ“‹

๐Ÿ›ก๏ธ Static Protected Member Functions inherited from SoSeparator ๐Ÿ›ก๏ธ

  • static const SoFieldData ** getFieldDataPtr (void) โ€” ๐Ÿ“‹

๐Ÿ›ก๏ธ Static Protected Member Functions inherited from SoGroup ๐Ÿ›ก๏ธ

  • static const SoFieldData ** getFieldDataPtr (void) โ€” ๐Ÿ“‹

๐Ÿ›ก๏ธ Static Protected Member Functions inherited from SoNode ๐Ÿ›ก๏ธ

  • static const SoFieldData ** getFieldDataPtr (void) โ€” ๐Ÿ“‹
  • static void setNextActionMethodIndex (int index) โ€” ๐Ÿ”ข
  • static int getNextActionMethodIndex (void) โ€” ๐Ÿ”ข
  • static void incNextActionMethodIndex (void) โ€” โž•
  • static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask) โ€” ๐Ÿงฌ

๐Ÿ›ก๏ธ Static Protected Member Functions inherited from SoBase ๐Ÿ›ก๏ธ

  • static uint32_t getCurrentWriteCounter (void) โ€” ๐Ÿ”ข
  • static void staticDataLock (void) โ€” ๐Ÿ”’
  • static void staticDataUnlock (void) โ€” ๐Ÿ”“

๐ŸŽ Additional Inherited Members ๐ŸŽ

๐ŸŒธ Public Types inherited from SoSeparator ๐ŸŒธ

  • enum CacheEnabled { OFF, ON, AUTO } โ€” ๐Ÿ’…

โœจ Public Types inherited from SoNode โœจ

okay so SoNode handed down this whole enum of vibe-era flags, and every single one is lowkey a time capsule of a different 3D file format era ๐Ÿ’ซ

enum NodeType { INVENTOR = 0x0000, VRML1 = 0x0001, VRML2 = 0x0002,
    INVENTOR_1 = 0x0004, INVENTOR_2_0 = 0x0008, INVENTOR_2_1 = 0x0010,
    INVENTOR_2_5 = 0x0020, INVENTOR_2_6 = 0x0040, COIN_1_0 = 0x0080,
    COIN_2_0 = 0x0100, EXTENSION = 0x0200, COIN_2_2 = 0x0400, COIN_2_3 =
    0x0800, COIN_2_4 = 0x1000, INVENTOR_5_0 = 0x2000, COIN_2_5 = 0x4000,
    COIN_3_0 = 0x8000, INVENTOR_6_0 = 0x10000, COIN_4_0 = 0x20000 }

๐ŸŒธ Public Attributes inherited from SoSeparator ๐ŸŒธ

these four walked so every separator could run, bestie ๐Ÿซถ

  • SoSFEnum renderCaching
  • SoSFEnum boundingBoxCaching
  • SoSFEnum renderCulling
  • SoSFEnum pickCulling

๐Ÿ”’ Protected Types inherited from SoBase ๐Ÿ”’

enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }

๐ŸŽ€ Protected Attributes inherited from SoGroup ๐ŸŽ€

  • SoChildList * children

๐Ÿ’… Protected Attributes inherited from SoNode ๐Ÿ’…

  • SbUniqueId uniqueId

๐Ÿฆ‹ Protected Attributes inherited from SoFieldContainer ๐Ÿฆ‹

  • SbBool isBuiltIn

โญ Static Protected Attributes inherited from SoNode โญ

  • static SbUniqueId nextUniqueId = 1
  • static int nextActionMethodIndex = 0

๐Ÿ“– Detailed Description ๐Ÿ“–

okay so here's the whole point of SoAnnotation, and it's iconic honestly:

The SoAnnotation node draws all its child geometry on top of other geometry.

fr fr. this group-type node does the thing where it uses delayed rendering plus z-buffer disabling so its children can transparently render their geometry on top of everything else in the scene. main character energy, no cap ๐Ÿ‘‘

but โ€” and this is the part you gotta hear, bestie โ€” because the z-buffer has to be disabled, the children's geometry will not be rendered back-to-front sorted. it just goes in the order they show up in the scene graph. so like, the order you wrote them in is the order. that's the whole vibe. ๐ŸŒˆ

๐Ÿ—‚๏ธ FILE FORMAT/DEFAULTS: ๐Ÿ—‚๏ธ

Annotation {
    renderCaching AUTO
    boundingBoxCaching AUTO
    renderCulling AUTO
    pickCulling AUTO
}

๐Ÿ”จ Constructor & Destructor Documentation ๐Ÿ”จ

SoAnnotation::SoAnnotation (void )

Constructor. it makes the thing. slay โœจ

SoAnnotation::~SoAnnotation () [protected], [virtual]

Destructor. it un-makes the thing. it's protected, so don't come for it unless you're family ๐Ÿ’€


๐Ÿงš Member Function Documentation ๐Ÿงš

SoType SoAnnotation::getClassTypeId (void ) [static]

This static method returns the SoType object associated with objects of this class.

SoType SoAnnotation::getTypeId (void ) const [virtual]

Returns the type identification of an object derived from a class inheriting SoBase. This is used for runtime type checking and "downward" casting.

Reimplemented from SoSeparator.

const SoFieldData ** SoAnnotation::getFieldDataPtr (void ) [static], [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.

Returns the SoFieldData class which holds information about fields in this node.

const SoFieldData * SoAnnotation::getFieldData (void ) const [protected], [virtual]

Returns a pointer to the class-wide field data storage object for this instance. If no fields are present, returns NULL.

Reimplemented from SoSeparator.

void SoAnnotation::GLRender (SoGLRenderAction * action) [virtual]

Action method for the SoGLRenderAction.

This is called during rendering traversals. Nodes influencing the rendering state in any way or want to throw geometry primitives at OpenGL override this method.

Reimplemented from SoSeparator.

void SoAnnotation::GLRenderBelowPath (SoGLRenderAction * action) [virtual]

SGI Open Inventor v2.1 obsoleted support for SoGLRenderAction::addMethod(). Instead, GLRender() might be called directly, and to optimize traversal, the SoSeparator node calls GLRenderBelowPath whenever the path code is BELOW_PATH or NO_PATH (path code is guaranteed not to change). To be compatible with SGI's Inventor (and thereby also TGS') we have chosen to follow their implementation in this respect.

SoSeparator::GLRenderBelowPath() does not traverse its children using SoChildList::traverse(), but calls GLRenderBelowPath() directly for all its children.

Reimplemented from SoSeparator.

void SoAnnotation::GLRenderInPath (SoGLRenderAction * action) [virtual]

Implements the SoAction::IN_PATH traversal method for the rendering action.

Reimplemented from SoSeparator.

void SoAnnotation::GLRenderOffPath (SoGLRenderAction * action) [virtual]

Implements the SoAction::OFF_PATH traversal method for the rendering action.

Reimplemented from SoSeparator.


๐Ÿ‘‘ Author ๐Ÿ‘‘

Generated automatically by Doxygen for Coin from the source code.


okay bestie that's the whole page, we ate and left zero crumbs ๐Ÿ’… this one came from the Coin docs, version 4.0.10, stamped Thu Jun 25 2026 00:00:00, and it lives at SoAnnotation(3). go forth and annotate, you gorgeous genius ๐ŸŽ€โœจ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from