SoArray(3IV)

SoArray (SoArray) - group node that creates a regular IxJxK array of copies of its children

As shipped in IRIX 6.5.30. Added in IRIX 6.5.22.

NAME
     SoArray (SoArray) - group node that creates a regular IxJxK array of
     copies of its children

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoGroup > SoArray

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

     enum SoArrayOrigin {
          FIRST               First copy is rendered at the current local
                                   origin; all other copies are distributed
                                   relative to it
          CENTER              Copies are distributed relative to the center of
                                   the array
          LAST                Last copy is rendered at the current local
                                   origin; all other copies are distributed
                                   relative to it
     }

          Fields from class SoArray:

     SoSFShort           numElements1
     SoSFShort           numElements2
     SoSFShort           numElements3
     SoSFVec3f           separation1
     SoSFVec3f           separation2
     SoSFVec3f           separation3
     SoSFEnum            origin

          Functions from class SoArray:

     SoArray *           SoArrayCreate()
     SoType              SoArrayGetClassTypeId()

          Functions from class SoGroup:

     void                SoArrayAddChild(SoArray *this, SoNode *child)
     void                SoArrayInsertChild(SoArray *this, SoNode *child, int
                              newChildIndex)
     SoNode *            SoArrayGetChild(const SoArray *this, int index)
     int                 SoArrayFindChild(const SoArray *this, const SoNode
                              *child)
     int                 SoArrayGetNumChildren(const SoArray *this)
     void                SoArrayRemoveChild(SoArray *this, int index)
     void                SoArrayRemoveChildNode(SoArray *this, SoNode *child)
     void                SoArrayRemoveAllChildren(SoArray *this)
     void                SoArrayReplaceChild(SoArray *this, int index, SoNode
                              *newChild)
     void                SoArrayReplaceChildNode(SoArray *this, SoNode
                              *oldChild, SoNode *newChild)
          Functions from class SoNode:

     void                SoArraySetOverride(SoArray *this, SbBool state)
     SbBool              SoArrayIsOverride(const SoArray *this)
     SoNode *            SoArrayCopy(const SoArray *this, SbBool
                              copyConnections = FALSE)
     SbBool              SoArrayAffectsState(const SoArray *this)
     SoNode *            SoArrayGetByName(const char *name)
     int                 SoArrayGetByNameList(const char *name, SoNodeList
                              *list)

          Functions from class SoFieldContainer:

     void                SoArraySetToDflts(SoArray *this)
     SbBool              SoArrayHasDfltVals(const SoArray *this)
     SbBool              SoArrayFldsAreEq(const SoArray *this, const
                              SoFieldContainer *fc)
     void                SoArrayCopyFieldVals(SoArray *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
     SbBool              SoArraySet(SoArray *this, const char
                              *fieldDataString)
     void                SoArrayGet(SoArray *this, SbString *fieldDataString)
     int                 SoArrayGetFields(const SoArray *this, SoFieldList
                              *resultList)
     SoField *           SoArrayGetField(const SoArray *this, const char
                              *fieldName)
     SbBool              SoArrayGetFieldName(const SoArray *this, const
                              SoField *field, SbName *fieldName)
     SbBool              SoArrayIsNotifyEnabled(const SoArray *this)
     SbBool              SoArrayEnableNotify(SoArray *this, SbBool flag)

          Functions from class SoBase:

     void                SoArrayRef(SoArray *this)
     void                SoArrayUnref(const SoArray *this)
     void                SoArrayUnrefNoDelete(const SoArray *this)
     void                SoArrayTouch(SoArray *this)
     SoType              SoArrayGetTypeId(const SoArray *this)
     SbBool              SoArrayIsOfType(const SoArray *this, SoType type)
     void                SoArraySetName(SoArray *this, const char *name)
     SbName              SoArrayGetName(const SoArray *this)


DESCRIPTION
     This group node traverses its children, in order, several times, creating
     a regular 3D array of copies of them. The number of copies in each of the
     three directions is specified by fields, as are the vectors used to
     separate the copies in each of the three dimensions.

     For example, an SoArray node can be used to create a 2x3x4 array of
     copies of its children, where the separation vectors between adjacent
     copies in the three array dimensions are (1,2,3), (-4,-5,-6), and
     (7,8,9), respectively. The base point of the array can be set to one of
     several values, as described in the origin field.

     Copies are traversed so that the first dimension cycles most quickly,
     followed by the second, and then the third. This order is important
     because SoArray sets the current switch value to N before traversing the
     children for the Nth time (for use with inherited switch values - see
     SoSwitch).

FIELDS
     SoSFShort           numElements1
     SoSFShort           numElements2
     SoSFShort           numElements3
          Number of elements in each of the three array dimensions.

     SoSFVec3f           separation1
     SoSFVec3f           separation2
     SoSFVec3f           separation3
          Separation vector in each of the three array dimensions.

     SoSFEnum            origin
          Defines the base point from which copies are distributed.


FUNCTIONS
     SoArray *           SoArrayCreate()
          Creates an array node with default settings.

     SoType              SoArrayGetClassTypeId()
          Returns type identifier for this class.


ACTION BEHAVIOR
     SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction,
     SoRayPickAction
          Traverses all children for each array element, 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
     Array {
          numElements1  1
          numElements2  1
          numElements3  1
          separation1   1 0 0
          separation2   0 1 0
          separation3   0 0 1
          origin        FIRST
     }

SEE ALSO
     SoMultipleCopy, SoSwitch