SoMultipleCopy(3IV)

SoMultipleCopy (SoMultCopy) - group node that traverses multiple times, applying matrices

As shipped in IRIX 6.5.30. Added in IRIX 6.5.22.

NAME
     SoMultipleCopy (SoMultCopy) - group node that traverses multiple times,
     applying matrices

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoGroup > SoMultipleCopy

SYNOPSIS
     #include <Inventor_c/nodes/SoMultipleCopy.h>

     typedef SoMultipleCopy  SoMultCopy

          Fields from class SoMultipleCopy:

     SoMFMatrix          matrix

          Functions from class SoMultipleCopy:

     SoMultipleCopy *    SoMultCopyCreate()
     SoType              SoMultCopyGetClassTypeId()

          Functions from class SoGroup:

     void                SoMultCopyAddChild(SoMultCopy *this, SoNode *child)
     void                SoMultCopyInsertChild(SoMultCopy *this, SoNode
                              *child, int newChildIndex)
     SoNode *            SoMultCopyGetChild(const SoMultCopy *this, int index)
     int                 SoMultCopyFindChild(const SoMultCopy *this, const
                              SoNode *child)
     int                 SoMultCopyGetNumChildren(const SoMultCopy *this)
     void                SoMultCopyRemoveChild(SoMultCopy *this, int index)
     void                SoMultCopyRemoveChildNode(SoMultCopy *this, SoNode
                              *child)
     void                SoMultCopyRemoveAllChildren(SoMultCopy *this)
     void                SoMultCopyReplaceChild(SoMultCopy *this, int index,
                              SoNode *newChild)
     void                SoMultCopyReplaceChildNode(SoMultCopy *this, SoNode
                              *oldChild, SoNode *newChild)

          Functions from class SoNode:

     void                SoMultCopySetOverride(SoMultCopy *this, SbBool state)
     SbBool              SoMultCopyIsOverride(const SoMultCopy *this)
     SoNode *            SoMultCopyCopy(const SoMultCopy *this, SbBool
                              copyConnections = FALSE)
     SbBool              SoMultCopyAffectsState(const SoMultCopy *this)
     SoNode *            SoMultCopyGetByName(const char *name)
     int                 SoMultCopyGetByNameList(const char *name, SoNodeList
                              *list)

          Functions from class SoFieldContainer:

     void                SoMultCopySetToDflts(SoMultCopy *this)
     SbBool              SoMultCopyHasDfltVals(const SoMultCopy *this)
     SbBool              SoMultCopyFldsAreEq(const SoMultCopy *this, const
                              SoFieldContainer *fc)
     void                SoMultCopyCopyFieldVals(SoMultCopy *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
     SbBool              SoMultCopySet(SoMultCopy *this, const char
                              *fieldDataString)
     void                SoMultCopyGet(SoMultCopy *this, SbString
                              *fieldDataString)
     int                 SoMultCopyGetFields(const SoMultCopy *this,
                              SoFieldList *resultList)
     SoField *           SoMultCopyGetField(const SoMultCopy *this, const char
                              *fieldName)
     SbBool              SoMultCopyGetFieldName(const SoMultCopy *this, const
                              SoField *field, SbName *fieldName)
     SbBool              SoMultCopyIsNotifyEnabled(const SoMultCopy *this)
     SbBool              SoMultCopyEnableNotify(SoMultCopy *this, SbBool flag)

          Functions from class SoBase:

     void                SoMultCopyRef(SoMultCopy *this)
     void                SoMultCopyUnref(const SoMultCopy *this)
     void                SoMultCopyUnrefNoDelete(const SoMultCopy *this)
     void                SoMultCopyTouch(SoMultCopy *this)
     SoType              SoMultCopyGetTypeId(const SoMultCopy *this)
     SbBool              SoMultCopyIsOfType(const SoMultCopy *this, SoType
                              type)
     void                SoMultCopySetName(SoMultCopy *this, const char *name)
     SbName              SoMultCopyGetName(const SoMultCopy *this)


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.


FUNCTIONS
     SoMultipleCopy *    SoMultCopyCreate()
          Creates a multiple copy node with default settings.
     SoType              SoMultCopyGetClassTypeId()
          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