Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoLDMLargeDataManagement.h
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2024 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : J.HUMMEL (Dec 2002)
22** Modified by : T.DUFOUR (MMM yyyy)
23**=======================================================================*/
24#ifndef _SO_LDM_LARGE_DATA_MANAGEMENT_
25#define _SO_LDM_LARGE_DATA_MANAGEMENT_
26
27class SoLDMTileManager;
28class SoLDMTileVisitor;
29class SoLDMNodeFrontManager;
30class SoLDMTextureManager;
31class SoLDMGeometry;
33class SoLDMMediator;
34class SoAlgorithms;
35class SoAction;
36
37#include <Inventor/nodes/SoSubNode.h>
38
39#ifdef _MSC_VER
40#pragma warning( push )
41#pragma warning(disable:4251)
42#endif
43
44#include <LDM/SoLDM.h>
45#include <Inventor/lists/SoActionMethodList.h>
46
62SoEXTENDER_Documented class SoLDMLargeDataManagement
63{
64
65public:
66
71 static void init();
72
77 static void finish();
78
83 static bool isInitialized();
84
89
94
100 virtual void reset(){};
101
102 //------------------------------------------------------------------------------
103
104private:
105
109 void setMediator(SoLDMMediator* m);
110 inline SoLDMMediator* getMediator() const;
111
115 static bool needCreatingThreads();
116
120 static SoAlgorithms* getAlgorithmsInterface();
121
123 static bool isInMainMultipipeThread(SoAction* action);
124
126 inline static bool lessId(const SoLDM::DataSetIdPair& p1, const SoLDM::DataSetIdPair& p2)
127 {
128 return p1.second < p2.second;
129 }
130
136 static void addValuationActionMethod(const SoType& nodeType, SoActionMethod* method);
137
144 static void forceValuationActionTraversal(SoAction* action);
145
146SoINTERNAL private:
147 SoLDMTileManager* getTileManager() const;
148 SoLDMTileVisitor* getTileVisitor() const;
149 SoLDMGeometry *getVVizGeometry() const;
150
151 SoLDMNodeFrontManager* getNodeFrontManager() const;
152 SoLDMTextureManager* getTextureManager() const;
153 SoLDMResourceManager* getResourceManager() const;
154
155private:
156 SoLDMMediator* m_mediator;
157 static int s_initRefCount;
158 static const char* s_versionString;
159
160 static SoAlgorithms* s_algorithmsInterface;
161 static bool s_envNeedCreateThread;
162};
163//--------------------------------------------------------------------------------
164
165/*******************************************************************************/
166SoLDMMediator*
167SoLDMLargeDataManagement::getMediator() const
168{
169 return m_mediator;
170}
171
172
173//--------------------------------------------------------------------------------
174inline SoAlgorithms*
175SoLDMLargeDataManagement::getAlgorithmsInterface()
176{
177 return s_algorithmsInterface;
178}
179
180
181//--------------------------------------------------------------------------------
182
183#ifdef _MSC_VER
184#pragma warning( pop )
185#endif
186
187#endif // _SO_LDM_LARGE_DATA_MANAGEMENT_
188
189
Abstract base class for all actions.
Definition SoAction.h:132
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Utility function...
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Large Da...
virtual ~SoLDMLargeDataManagement()
Destructor.
static bool isInitialized()
Returns TRUE if module is currently initialized.
static void finish()
global deinitialization called once by the module using LDM
static void init()
global initialization called once by the module using LDM
virtual void reset()
The reset function is useful when using a customized LDM manager.
SoLDMLargeDataManagement()
Constructor.
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Resource...
Stores runtime type information.
Definition SoType.h:98
std::pair< SoDataSet *, int > DataSetIdPair
Pair containing an SoDataset and its dataSetId.
Definition SoLDM.h:71