SoMultipleCopy — group node that traverses multiple times, applying matrices
Contents
Action Behavior
SoGLRenderAction,SoCallbackAction,SoGetBoundingBoxAction,SoRayPickAction
Traverses all children for each matrix, saving and restoring state before and after each traversal.
SoSearchAction
Traverses all children once, setting the inherited switch value to SO_SWITCH_ALL first.
Description
This group node traverses its children, in order, several times, applying a different matrix each time.
The matrices are stored in the multiple-value matrix field. Each matrix is concatenated to the current
transformation matrix, and all of the children are traversed. This allows the user to put multiple copies
of the same data in different locations easily and efficiently.
Traversing the Nth child sets the current switch value to N, for use with inherited switch values (see
SoSwitch).
Fields
SoMFMatrixmatrix
Set of matrices to apply to children.
File Format/Defaults
MultipleCopy{matrix1000010000100001}Inherits From
SoBase > SoFieldContainer > SoNode > SoGroup > SoMultipleCopy
Methods
SoMultipleCopy()
Creates a multiple copy node with default settings.
staticSoTypegetClassTypeId()
Returns type identifier for this class.
Name
SoMultipleCopy — group node that traverses multiple times, applying matrices
See Also
SoArray,SoSwitchSoMultipleCopy(3IV)()
Synopsis
#include<Inventor/nodes/SoMultipleCopy.h>
Fields from class SoMultipleCopy:
SoMFMatrixmatrix
Methods from class SoMultipleCopy:
SoMultipleCopy()staticSoTypegetClassTypeId()
Methods from class SoGroup:
voidaddChild(SoNode*child)voidinsertChild(SoNode*child,intnewChildIndex)SoNode*getChild(intindex)constintfindChild(constSoNode*child)constintgetNumChildren()constvoidremoveChild(intindex)voidremoveChild(SoNode*child)voidremoveAllChildren()voidreplaceChild(intindex,SoNode*newChild)voidreplaceChild(SoNode*oldChild,SoNode*newChild)
Methods from class SoNode:
voidsetOverride(SbBoolstate)SbBoolisOverride()constSoNode*copy(SbBoolcopyConnections=FALSE)constvirtualSbBoolaffectsState()conststaticSoNode*getByName(constSbName&name)staticintgetByName(constSbName&name,SoNodeList&list)
Methods from class SoFieldContainer:
voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)SbBoolset(constchar*fieldDataString)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)
Methods from class SoBase:
voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const