SoMultipleCopy(3IV)

NAME
SoMultipleCopy — group node that traverses multiple times, applying matrices

INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoGroup > SoMultipleCopy

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
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
SoMFMatrix
matrix
Set of matrices to apply to children.

METHODS

SoMultipleCopy()
Creates a multiple copy node with default settings.

static SoType
getClassTypeId()
Returns type identifier for this class.

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.

FILE FORMAT/DEFAULTS
MultipleCopy {
matrix	1 0 0 0
	0 1 0 0
	0 0 1 0
	0 0 0 1
}

SEE ALSO
SoArray, SoSwitch