Open Inventor Reference
|
Group node that creates a regular IxJxK array of copies of its children. More...
#include <Inventor/nodes/SoArray.h>
Public Types | |
enum | Origin { FIRST, CENTER, LAST } |
Array origin: More... | |
Public Member Functions | |
SoArray () | |
Creates an array node with default settings. | |
virtual SbBool | affectsState () const |
Overrides default method on SoNode to return FALSE since arrays are effectively separators. | |
virtual void | doAction (SoAction *action) |
Implement actions. | |
virtual void | callback (SoCallbackAction *action) |
virtual void | GLRender (SoGLRenderAction *action) |
These virtual functions implement all of the actions for nodes, Most of the default implementations do nothing. | |
virtual void | pick (SoPickAction *action) |
virtual void | getBoundingBox (SoGetBoundingBoxAction *action) |
virtual void | handleEvent (SoHandleEventAction *action) |
virtual void | getMatrix (SoGetMatrixAction *action) |
virtual void | search (SoSearchAction *action) |
Static Public Member Functions | |
static void | initClass () |
Initializes base node class. | |
Public Attributes | |
SoSFVec3f | separation1 |
Separation vector in 1st direction. | |
SoSFVec3f | separation2 |
Separation vector in 2nd direction. | |
SoSFVec3f | separation3 |
Separation vector in 3rd direction. | |
SoSFEnum | origin |
Base point. | |
Fields | |
SoSFShort | numElements1 |
Number of elements in 1st direction. | |
SoSFShort | numElements2 |
Number of elements in 2nd direction. | |
SoSFShort | numElements3 |
Number of elements in 3rd direction. | |
Protected Member Functions | |
virtual | ~SoArray () |
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).
Array { numElements1 1 numElements2 1 numElements3 1 separation1 1 0 0 separation2 0 1 0 separation3 0 0 1 origin FIRST }
enum SoArray::Origin |
SoArray::SoArray | ( | ) |
virtual SoArray::~SoArray | ( | ) | [protected, virtual] |
virtual void SoArray::callback | ( | SoCallbackAction * | action | ) | [virtual] |
Reimplemented from SoGroup.
virtual void SoArray::getBoundingBox | ( | SoGetBoundingBoxAction * | action | ) | [virtual] |
Reimplemented from SoGroup.
virtual void SoArray::getMatrix | ( | SoGetMatrixAction * | action | ) | [virtual] |
Reimplemented from SoGroup.
virtual void SoArray::GLRender | ( | SoGLRenderAction * | action | ) | [virtual] |
Reimplemented from SoGroup.
virtual void SoArray::handleEvent | ( | SoHandleEventAction * | action | ) | [virtual] |
Reimplemented from SoGroup.
static void SoArray::initClass | ( | ) | [static] |
Reimplemented from SoGroup.
virtual void SoArray::pick | ( | SoPickAction * | action | ) | [virtual] |
Reimplemented from SoGroup.
virtual void SoArray::search | ( | SoSearchAction * | action | ) | [virtual] |
Reimplemented from SoGroup.