26#ifndef _SO_DATA_SET_ELEMENT_
27#define _SO_DATA_SET_ELEMENT_
29#include <Inventor/nodes/SoShaderParameter.h>
30#include <Inventor/elements/SoReplacedElement.h>
31#include <Inventor/SbBox.h>
32#include <Inventor/SbLinear.h>
33#include <Inventor/STL/vector>
34#include <Inventor/STL/set>
35#include <Inventor/STL/map>
40#pragma warning( push )
41#pragma warning(disable:4251)
46class SoLDMTileManager;
56class SoDataSetElement :
public SoReplacedElement {
58 SO_ELEMENT_HEADER( SoDataSetElement );
71 static void get(
SoState* state, std::vector<SoDataSet*>&);
87 virtual void init(
SoState* state);
92 virtual SbBool matches(
const SoElement* elt)
const;
95 virtual SoElement* copyMatchInfo()
const;
98 typedef std::pair<SoDataSet*, const SoDataSetId*> DataSetPtrIdPair;
101 static void initClass();
102 static void exitClass();
107 static bool isDoingMultiData(
SoState* state);
110 static bool isDoingCpuComposition(
SoState* state);
114 static std::pair<T*, int> getLastOfType(
SoState* state,
bool derived)
117 return std::make_pair(
static_cast<T*
>(p.first), p.second);
122 static void get(
SoState* state, SoLDMTileManager*& );
125 static void getGroupedDataSets(
SoState* state, std::vector<SoLDM::DataSetIdPairList>& dataSets);
134 static void setMasterId(
SoState* state,
int dataSetId);
152 typedef std::set<const SoDataSetId*> DataSetIdSet;
153 typedef std::map<SoDataSet*, DataSetIdSet> DataSetIdMap;
154 typedef std::vector<DataSetPtrIdPair> DataSetPtrIdPairVec;
155 typedef std::map<SoLDM::DataSetIdPair, SbMatrix> ModelMatrixMap;
170 DataSetPtrIdPairVec m_dataSetIdPairList;
171 ModelMatrixMap m_modelMatrices;
177 static bool s_forceOIV6Behavior;
178 std::vector<uint64_t> m_nodeIds;
182#pragma warning( pop )
virtual void push(SoState *state)
Overrides push() method to copy values from next instance in the stack.
static void get(SoState *state, std::vector< SoDataSet * > &)
static void set(SoState *state, SoNode *node, SoDataSet *datasetNode, const SbMatrix &matrix)
static void get(SoState *state, SoDataSet *&ds)
static void getDefault(SoLDM::DataSetIdPair &)
static void get(SoState *state, SoLDM::DataSetIdPairList &dataSetIdPairList)
static const SbMatrix & get(SoState *state, SoDataSet *&, SbBool &isIdent)
static void set(SoState *state, SoNode *node, SoDataSet *datasetNode)
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Data set...
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Property...
Renders a scene graph using Open Inventor's Render Engine.
Abstract base class for all database nodes.
Stores runtime type information.
std::pair< SoDataSet *, int > DataSetIdPair
Pair containing an SoDataset and its dataSetId.
std::vector< DataSetIdPair > DataSetIdPairList
List of DataSetIdPair.