logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SoMultipleCopy — group node that traverses multiple times, applying matrices

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

See Also