table of contents
| 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