00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _SO_LDM_LARGE_DATA_MANAGEMENT_
00025 #define _SO_LDM_LARGE_DATA_MANAGEMENT_
00026
00027 class SoLDMTileManager;
00028 class SoLDMTileVisitor;
00029 class SoLDMNodeFrontManager;
00030 class SoLDMTextureManager;
00031 class SoLDMGeometry;
00032 class SoLDMResourceManager;
00033 class SoLDMMediator;
00034 class SoAlgorithms;
00035 class SoAction;
00036
00037 #include <Inventor/nodes/SoSubNode.h>
00038
00039 #ifdef _MSC_VER
00040 #pragma warning( push )
00041 #pragma warning(disable:4251)
00042 #endif
00043
00044 #include <LDM/SoLDM.h>
00045
00063 SoEXTENDER_Documented class SoLDMLargeDataManagement
00064 {
00065
00066 public:
00067
00072 static void init();
00073
00078 static void finish();
00079
00084 static bool isInitialized();
00085
00089 SoLDMLargeDataManagement();
00090
00094 virtual ~SoLDMLargeDataManagement(){};
00095
00101 virtual void reset(){};
00102
00103
00104
00105 private:
00106
00110 void setMediator(SoLDMMediator* m);
00111 inline SoLDMMediator* getMediator() const;
00112
00116 static bool needCreatingThreads();
00117
00121 static SoAlgorithms* getAlgorithmsInterface();
00122
00124 static bool isInMainMultipipeThread(SoAction* action);
00125
00127 inline static bool lessId(const SoLDM::DataSetIdPair& p1, const SoLDM::DataSetIdPair& p2)
00128 {
00129 return p1.second < p2.second;
00130 }
00131
00132 SoEXTENDER private:
00133
00134 #if 1 SoDEPRECATED
00136 SoLDMTileVisitor *getTileVisitor() const;
00137 SoDEPRECATED
00139 SoLDMGeometry *getVVizGeometry() const;
00140 #endif
00141
00142 SoLDMTileManager *getTileManager() const;
00143 SoLDMNodeFrontManager *getNodeFrontManager() const;
00144 SoLDMTextureManager *getTextureManager() const;
00145 SoLDMResourceManager *getResourceManager() const;
00146
00147 private:
00148 SoLDMMediator* m_mediator;
00149 static int s_initRefCount;
00150 static const char* s_versionString;
00151
00152 static SoAlgorithms* s_algorithmsInterface;
00153 static bool m_envNeedCreateThread;
00154
00155 static bool s_useCuda;
00156 static bool s_useOpenCL;
00157 };
00158
00159
00160
00161 SoLDMMediator*
00162 SoLDMLargeDataManagement::getMediator() const
00163 {
00164 return m_mediator;
00165 }
00166
00167
00168
00169 inline SoAlgorithms*
00170 SoLDMLargeDataManagement::getAlgorithmsInterface()
00171 {
00172 return s_algorithmsInterface;
00173 }
00174
00175
00176
00177
00178 #ifdef _MSC_VER
00179 #pragma warning( pop )
00180 #endif
00181
00182 #endif // _SO_LDM_LARGE_DATA_MANAGEMENT_
00183
00184
00185