SoAccumulatedElement(3)

πŸ“¦
version 4.0.10 Β· 4 versions
, in fedora 43, fedora 44

πŸ’– SoAccumulatedElement(3) πŸ’–

okay bestie, pull up a chair, because this is the Coin manual page for SoAccumulatedElement β€” third section of the manual, the whole thing, no skips, no cuts. it's the abstract class for storing accumulated state, and yes, it's giving very much "backend infrastructure that everyone depends on and nobody thanks" energy. 🫢


🌸 NAME 🌸

SoAccumulatedElement β€” the SoAccumulatedElement class is an abstract class for storing accumulated state. periodt. that's the whole job description. πŸ’…


✨ SYNOPSIS ✨

#include <Inventor/elements/SoAccumulatedElement.h>

Inherits SoElement.

Inherited by SoBumpMapMatrixElement, SoClipPlaneElement, SoLightElement, SoModelMatrixElement, SoMultiTextureMatrixElement, SoProfileElement, and SoVertexAttributeElement. (so many iconic children, the family tree is thriving 🌳)

🌈 Public Member Functions 🌈

  • virtual SbBool matches (const SoElement *element) const

πŸ¦‹ Public Member Functions inherited from SoElement πŸ¦‹

  • const SoType getTypeId (void) const
  • int getStackIndex (void) const
  • virtual void pop (SoState *state, const SoElement *prevTopElement)
  • void setDepth (const int depth)
  • int getDepth (void) const
  • virtual void print (FILE *file=stdout) const
  • virtual ~SoElement ()

⭐ Static Public Member Functions ⭐

  • static SoType getClassTypeId (void)
  • static int getClassStackIndex (void)
  • static void initClass (void)

πŸŽ€ Static Public Member Functions inherited from SoElement πŸŽ€

  • static void initClass (void)
  • static SoType getClassTypeId (void)
  • static int getClassStackIndex (void)
  • static void initElements (void)
  • static int getNumStackIndices (void)
  • static SoType getIdFromStackIndex (const int stackIndex)

πŸ’œ Protected Member Functions πŸ’œ

  • virtual ~SoAccumulatedElement ()
  • virtual void init (SoState *state)
  • virtual void push (SoState *state)
  • void clearNodeIds (void)
  • void addNodeId (const SoNode *const node)
  • void setNodeId (const SoNode *const node)
  • void copyNodeIds (const SoAccumulatedElement *copyfrom)
  • virtual SoElement * copyMatchInfo (void) const
  • virtual void captureThis (SoState *state) const

🌸 Protected Member Functions inherited from SoElement 🌸

  • SoElement (void)
  • void capture (SoState *const state) const
  • void setTypeId (const SoType typeId)
  • void setStackIndex (const int index)
  • SoElement * getNextInStack (void) const
  • SoElement * getNextFree (void) const

πŸ“ Protected Attributes πŸ“

  • SbList< SbUniqueId > nodeIds

🧚 Protected Attributes inherited from SoElement 🧚

  • SoType typeId
  • int stackIndex
  • int depth

πŸ’€ Additional Inherited Members πŸ’€

🌟 Static Protected Member Functions inherited from SoElement 🌟

  • static SoElement * getElement (SoState *const state, const int stackIndex)
  • static const SoElement * getConstElement (SoState *const state, const int stackIndex)
  • static int createStackIndex (const SoType id)

🌟 Static Protected Attributes inherited from SoElement 🌟

  • static int classStackIndex
  • static SoTypeList * stackToType

πŸ‘‘ Detailed Description πŸ‘‘

The SoAccumulatedElement class is an abstract class for storing accumulated state. yes, we're saying it again, because that's literally the NAME section and the detailed description, and we respect the canon. 😌

This is the superclass of elements where new element data accumulates with older data. it's not a glow-up, it's a stack-up β€” every new bit of data just piles on top of the old, no replacement, no deletion, just vibes growing exponentially. πŸ“š

The element stores node id values for all nodes accumulated during traversal for the current state. These id values are used to determine when to invalidate caches. (cache invalidation, the famously easy problem, being handled by a list of ids. iconic behavior honestly. πŸ”₯)

See also

SoReplacedElement, SoFloatElement, SoInt32Element


πŸŽ€ Constructor & Destructor Documentation πŸŽ€

SoAccumulatedElement::~SoAccumulatedElement (void ) [protected], [virtual]

Destructor. that's it. she's leaving, she's cleaning up, she's not explaining herself. πŸ’…


πŸ¦‹ Member Function Documentation πŸ¦‹

SoType SoAccumulatedElement::getClassTypeId (void ) [static]

This static method returns the SoType object associated with objects of this class. hand her a mirror and she'll tell you exactly what she is. ✨

int SoAccumulatedElement::getClassStackIndex (void ) [static]

This static method returns the state stack index for the class. your number in the stack, bestie, and no, you can't trade seats. 🎟️

void SoAccumulatedElement::initClass (void ) [static]

Initialize relevant common data for all instances, like the type system. one-time setup, all instances benefit, very communal, very slay. 🫢

SbBool SoAccumulatedElement::matches (const SoElement * element) const [virtual]

This function returns TRUE is the element matches another element (of the same class), with respect to cache validity. (yes, the original says "is" where it means "if" β€” we are not fixing the sacred text, we're just pointing at it and giggling πŸ™ˆ)

If the application programmer's extension element has a matches() function, it should also have a copyMatchInfo() function. they're a matched set. literally. a matched set. πŸ’ž

Implements SoElement.

Reimplemented in SoModelMatrixElement.

void SoAccumulatedElement::init (SoState * state) [protected], [virtual]

This function initializes the element type in the given SoState. It is called for the first element of each enabled element type in SoState objects. first one in the door turns the lights on. πŸ’‘

Reimplemented from SoElement.

Reimplemented in SoBBoxModelMatrixElement, SoBumpMapMatrixElement, SoClipPlaneElement, SoGLClipPlaneElement, SoGLModelMatrixElement, SoGLMultiTextureMatrixElement, SoGLVertexAttributeElement, SoLightElement, SoModelMatrixElement, SoMultiTextureMatrixElement, SoProfileElement, and SoVertexAttributeElement.

void SoAccumulatedElement::push (SoState * state) [protected], [virtual]

This method is called every time a new element is required in one of the stacks. This happens when a writable element is requested, using SoState::getElement() or indirectly SoElement::getElement(), and the depth of the current element is less than the state depth.

Override this method if your element needs to copy data from the previous top of stack. The push() method is called on the new element, and the previous element can be found using SoElement::getNextInStack(). (the new one gets called, the old one gets looked up. the way that push is not a two-way conversation, she just takes what she needs. 😭)

Reimplemented from SoElement.

Reimplemented in SoBBoxModelMatrixElement, SoBumpMapMatrixElement, SoClipPlaneElement, SoGLModelMatrixElement, SoGLMultiTextureMatrixElement, SoLightElement, SoModelMatrixElement, SoMultiTextureMatrixElement, SoProfileElement, and SoVertexAttributeElement.

void SoAccumulatedElement::clearNodeIds (void ) [protected]

Empty the list of node ids. reset, refresh, new era, blank slate. 🌈

void SoAccumulatedElement::addNodeId (const SoNode *const node) [protected]

Add the node id of node to the list of node ids. one more for the collection. πŸŽ€

void SoAccumulatedElement::setNodeId (const SoNode *const node) [protected]

Empty the list of node ids, and add the id of node. she clears the whole roster and then adds exactly one person to it. main character energy, honestly. πŸ‘‘

void SoAccumulatedElement::copyNodeIds (const SoAccumulatedElement * copyfrom) [protected]

Convenience method which copies the node ids from copyfrom to this element. she's not doing the work, she's copying the work. efficiency. πŸ’…

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API. so if you're kicking it old-school with the original SGI Open Inventor v2.1 API, this one's not there. noted. 🚨

SoElement * SoAccumulatedElement::copyMatchInfo (void ) const [protected], [virtual]

This function creates a copy of the element that contains enough information to enable the matches() function to work.

Used to help with scene graph traversal caching operations. she makes the little info packet so matches() can do her thing. it's a whole support system. 🫢

Implements SoElement.

void SoAccumulatedElement::captureThis (SoState * state) const [protected], [virtual]

Adds the element to the cache. that's it, that's the whole function, she's captured, she's cached, she's in. ✨

Reimplemented from SoElement.


πŸ“ Member Data Documentation πŸ“

SbList<SbUniqueId> SoAccumulatedElement::nodeIds [protected]

Stores the internal list of node id values for nodes accumulated on the stack for the element. this is the list. the one that all those addNodeId(), setNodeId(), clearNodeIds() and copyNodeIds() functions are fussing over. protect her at all costs. πŸ›‘οΈ


🌟 Author 🌟

Generated automatically by Doxygen for Coin from the source code. (not a human, not a bestie, just Doxygen doing its little autogenerated thing πŸ€–)


and that's the whole page, bestie!! thanks for reading the Coin docs with me β€” this was Version 4.0.10, dated Thu Jun 25 2026 00:00:00, and it lives at SoAccumulatedElement(3). go accumulate something. responsibly. πŸ’–βœ¨

πŸ“¦ where this page comes from