Open Inventor Release 2025.2.1
 
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-2025 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 // Store if there is a GPU or not. Useful to limit the initialization footprint
163 // OIV_NOTUSEGPU == FALSE SoPreference
164 static bool s_useGPU;
165};
166//--------------------------------------------------------------------------------
167
168/*******************************************************************************/
169SoLDMMediator*
170SoLDMLargeDataManagement::getMediator() const
171{
172 return m_mediator;
173}
174
175
176//--------------------------------------------------------------------------------
177inline SoAlgorithms*
178SoLDMLargeDataManagement::getAlgorithmsInterface()
179{
180 return s_algorithmsInterface;
181}
182
183
184//--------------------------------------------------------------------------------
185
186#ifdef _MSC_VER
187#pragma warning( pop )
188#endif
189
190#endif // _SO_LDM_LARGE_DATA_MANAGEMENT_
191
192
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...
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...
std::pair< SoDataSet *, int > DataSetIdPair
Pair containing an SoDataset and its dataSetId.
Definition SoLDM.h:71