SOMULTIPLECOPY(3iv)
π SoMultipleCopy(3IV) β the whole vibe π
okay bestie, welcome to the SoMultipleCopy page from the 3IV manual, and no you're not dreaming, this node is literally the "copy paste but make it efficient" icon of the Inventor universe β¨
πΈ NAME πΈ
SoMultipleCopy β group node that traverses multiple times, applying matrices π
π¦ INHERITS FROM π¦
SoBase > SoFieldContainer > SoNode > SoGroup > SoMultipleCopy
the whole glow-up lineage, fr fr π
β¨ SYNOPSIS β¨
#include <Inventor/nodes/SoMultipleCopy.h>
Fields from class SoMultipleCopy:
SoMFMatrix matrix
Methods from class SoMultipleCopy:
SoMultipleCopy()
static SoType getClassTypeId()
Methods from class SoGroup:
void addChild(SoNode *child)
void insertChild(SoNode *child, int newChildIndex)
SoNode * getChild(int index) const
int findChild(const SoNode *child) const
int getNumChildren() const
void removeChild(int index)
void removeChild(SoNode *child)
void removeAllChildren()
void replaceChild(int index, SoNode *newChild)
void replaceChild(SoNode *oldChild, SoNode *newChild)
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 picture this: this group node walks through its children, in order, and it does that several times, and each time it applies a different matrix. yes queen, a different one every single pass π
all those matrices live in the multiple-value matrix field. every matrix gets concatenated to the current transformation matrix, and then all the children get traversed. the way this lets you drop multiple copies of the same data in different locations, easily and efficiently?? iconic. main character energy. ate and left no crumbs π
and here's the lil detail you'd totally miss if you weren't paying attention, bestie: traversing the Nth child sets the current switch value to N, for use with inherited switch values (peep SoSwitch for that π).
π FIELDS π
SoMFMatrixmatrixβ the set of matrices to apply to children. that's the whole assignment. slay.
π METHODS π
SoMultipleCopy()β creates a multiple copy node with default settings. a fresh baby node, defaults and all π«Άstatic SoType getClassTypeId()β returns the type identifier for this class. iykyk, it's how you check who's who π§
π₯ ACTION BEHAVIOR π₯
SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction
- traverses all children for each matrix, saving and restoring state before and after each traversal. clean, tidy, no state left behind β¨
SoSearchAction
- traverses all children once, setting the inherited switch value to
SO_SWITCH_ALLfirst. one pass, that's it, periodt.
π FILE FORMAT/DEFAULTS π
MultipleCopy {
matrix 1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
}
look at that lil identity matrix living its best life π
π SEE ALSO π
SoArray, SoSwitch
bestie reminder: this page is SoMultipleCopy(3IV), and it's filed under the manual name SoMultipleCopy(3IV), so if you're lost in a sea of man pages, that's your search string π
and that's a wrap on the 3IV version, dated however your system stamped it β sending you the biggest π«Ά for reading the whole thing, you absolute legend, go forth and multiply your copies πβ¨ππ¦πΈπ
π¦ where this page comes from
- debian bookworm: inventor-doc 2.1.5-10+dfsg-2 Β· LGPL-2.0-or-later
- debian trixie: inventor-doc 2.1.6+ds-2 Β· LGPL-2.0-or-later
- ubuntu jammy: inventor-doc 2.1.5-10-24
- ubuntu noble: inventor-doc 2.1.5-10+dfsg-2.1build2 Β· LGPL-2.0-or-later
- ubuntu questing: inventor-doc 2.1.6+ds-2
- ubuntu resolute: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- ubuntu stonking: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms