23#if !defined _SO_MULTIPLE_INSTANCE_ELEMENT_H_
24#define _SO_MULTIPLE_INSTANCE_ELEMENT_H_
26#include <Inventor/elements/SoReplacedElement.h>
27#include <Inventor/SbMatrix.h>
43class SoMultipleInstanceElement :
public SoReplacedElement
45 SO_ELEMENT_HEADER(SoMultipleInstanceElement);
65 static void initClass();
68 static void exitClass();
71 inline const SbMatrix& getInstanceModelMatrix ()
const {
return m_oivInstanceModelMatrix; }
72 inline unsigned int getNumInstances()
const {
return m_numInstances; }
73 inline unsigned int getNumInstancedBatches()
const {
return m_numBatches; }
74 inline unsigned int getCurrentBatchNumber()
const {
return m_currentBatchNum; }
75 inline int32_t getNeedParamsBits()
const {
return m_needParamsBits; }
78 inline void setCurrentBatchNumber( uint32_t currentBatchNum ) { m_currentBatchNum = currentBatchNum; }
79 inline void setNeedParamsBits( int32_t needParamsBits ) { m_needParamsBits = needParamsBits; }
83 virtual void init(
SoState* state);
86 virtual SoElement *copyMatchInfo()
const;
89 virtual SbBool matches(
const SoElement* elt)
const;
92 SoMultipleInstance* m_shapeInstanceProperty;
94 SbMatrix m_oivInstanceModelMatrix;
96 unsigned int m_numInstances;
97 unsigned int m_numBatches;
98 unsigned int m_currentBatchNum;
100 int32_t m_needParamsBits;
static SoMultipleInstance * get(SoState *state)
Returns the current element in the state.
static unsigned int getNumInstances(SoState *state)
Returns the number of shape instance requests in the state.
static unsigned int getNumBatches(SoState *state)
Return the number of batches.
static SoMultipleInstance * getDefault()
returns the default element value.
static void set(SoState *state, SoNode *node, SoMultipleInstance *instanceproperty)
Sets the current multiple instance node.
Group node that renders multiple instances of its children.
Abstract base class for all database nodes.