SoAnnotation(3)
๐ 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โ returnsTRUEif the type of this object is either of the same type or inherited fromtype. ๐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 theSoTypeobject 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 theSoTypeobject 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 renderCachingSoSFEnum boundingBoxCachingSoSFEnum renderCullingSoSFEnum 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 = 1static 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
- fedora 43: Coin4-devel 4.0.10-1.fc43 ยท BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 ยท BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 ยท BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 ยท BSD-3-Clause AND GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms