SoArray(3IV)NAMESoArray (SoArray) - group node that creates a regular IxJxK array of
copies of its children
INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoGroup > SoArraySYNOPSIS
#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)
Page 1SoArray(3IV)
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
Page 2SoArray(3IV)
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.
FUNCTIONSSoArray * 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
Page 3SoArray(3IV)
origin FIRST
}
SEE ALSO
SoMultipleCopy, SoSwitch
Page 4