Scroll to navigation

SoArray(3IV)() SoArray(3IV)()

NAME

SoArray — group node that creates a regular IxJxK array of copies of its children

INHERITS FROM

SoBase > SoFieldContainer > SoNode > SoGroup > SoArray

SYNOPSIS

#include <Inventor/nodes/SoArray.h>
 

enum Origin {

SoArray::FIRST First copy is rendered at the current local origin; all other copies are distributed relative to it
 

SoArray::CENTER Copies are distributed relative to the center of the array
 

SoArray::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
 

Methods from class SoArray:
 

SoArray()
 

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, 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.
 

METHODS


SoArray()
 

Creates an array node with default settings.
 


static SoType getClassTypeId()
 

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