![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtDeSharedState.h,v $ $Revision: 1.38 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 00015 #include <vrvCore/vrvCore.h> 00016 00017 #include <vrvCore/DtDe.h> 00018 #include <vrvCore/DtDeTimeManager.h> 00019 #include <vrvUtil/DtVirtualBaseClass.h> 00020 #include <vrvUtil/signalslib.h> 00021 00022 namespace makVrv 00023 { 00024 00025 class DtCoordinateSystem; 00026 class DtDeSharedStateProctor; 00027 class DtModelDefinition; 00028 class DtModelDefinitionManager; 00029 class DtModelSetRealizationManager; 00030 class DtModelDefinition; 00031 00044 class DT_DLL_VRVCORE DtDeSharedState 00045 { 00046 00047 public: 00048 00050 friend class DtDeSharedStateCreator; 00051 00054 friend class DtDeSharedStateProctor; 00055 00057 virtual ~DtDeSharedState(); 00058 00060 virtual void initialize(); 00061 00063 00064 00067 virtual const DtModelDefinitionManager& modelDefinitionManager() const; 00068 virtual DtModelDefinitionManager& modelDefinitionManager(); 00069 00072 virtual const DtModelSetRealizationManager& modelSetRealizationManager() const; 00073 00076 virtual void setVisualizeModelSet( int modelset, bool visualize ); 00077 00080 virtual void addModelDefinition(const DtModelDefinition& definition); 00081 00084 virtual void setModelDefinitionManager( 00085 const DtModelDefinitionManager& definition); 00086 00090 virtual void renameModelDefinition(const DtModelDefinition& old, 00091 const DtModelDefinition& newDef); 00092 00095 virtual void destroyModelDefinition(const DtModelDefinition& definition); 00096 00098 virtual void setModelInstancingEnabled(bool); 00099 00101 virtual void clearModelInstancingCache(); 00102 00104 00106 00107 00108 virtual void setCoordinateSystem(const std::string& coordinateSystemName, 00109 const std::string& coordinateSystemParameters); 00110 00112 const DtCoordinateSystem& coordinateSystem() const; 00113 DtCoordinateSystem& coordinateSystem(); 00114 00116 00118 00119 00120 00135 virtual void setDateAndTime(int year, DtDeTimeManager::Month month, 00136 int dayOfMonth, int hour, int minutes,double seconds); 00137 00140 virtual void setTimeScale(double timeScale); 00141 00143 const DtDeTimeManager& timeManager() const; 00144 00146 00148 00149 00151 virtual void setWireframeMode(bool state); 00152 virtual bool wireframeMode() const; 00153 00155 virtual bool terrainScalingEnabled() const; 00156 virtual void setTerrainScalingEnabled(bool enabled); 00157 00158 virtual double terrainScaleFactor() const; 00159 virtual void setTerrainScaleFactor(double scaleFactor); 00160 00161 virtual bool clearTrackHistoryOnTerrainScaleChanged() const; 00162 virtual void setClearTrackHistoryOnTerrainScaleChanged(bool clear ); 00163 00165 virtual void setPlanViewGeocentricOccludedTransparency(float f); 00166 virtual float planViewGeocentricOccludedTransparency() const; 00167 00168 virtual void setPerformanceOverlayOn(bool enabled); 00169 virtual bool performanceOverlayEnabled() const; 00170 00172 virtual void setShadowState(bool shadowMode, int shadowQuality, 00173 bool entityMode, bool propMode, bool terrainMode); 00174 00175 virtual bool shadowMode() const; 00176 virtual int shadowQuality() const; 00177 virtual bool entityShadowMode() const; 00178 virtual bool propShadowMode() const; 00179 virtual bool terrainShadowMode() const; 00180 00181 virtual void loadRenderSettings(const std::string& filepath); 00182 virtual void saveRenderSettings(const std::string& filepath); 00183 virtual void loadDefaultRenderSettings(bool useOnlyFactorySettings); 00184 virtual void saveDefaultRenderSettings(); 00185 virtual void updateRenderState(); 00186 00188 00190 00191 00193 virtual void setDdsFlip(bool state); 00194 00196 virtual bool ddsFlip() const; 00197 00198 virtual void loadLoaderSettings(const std::string& filepath); 00199 virtual void saveLoaderSettings(const std::string& filepath); 00200 virtual void loadDefaultLoaderSettings(bool useOnlyFactorySettings); 00201 virtual void saveDefaultLoaderSettings(); 00202 virtual void updateLoaderState(); 00203 00205 00207 00208 00210 virtual void setAccelerationCachingEnabled(bool enabled); 00211 00213 virtual bool accelerationCachingEnabled() const; 00214 00216 virtual void clearAccelerationCache() const; 00217 00219 virtual void setInstancingEnabled(bool enabled); 00220 00222 virtual void setClearInstancesOnNewSceneEnabled(bool enabled); 00223 00225 virtual bool instancingEnabled() const; 00226 00228 virtual bool clearInstancesOnNewScene() const; 00229 00231 virtual void clearInstancingCache(); 00232 00234 virtual void setCompressTextures(bool enabled); 00235 00237 virtual bool compressTextures() const; 00238 00239 virtual void loadCacheSettings(const std::string& filepath); 00240 virtual void saveCacheSettings(const std::string& filepath); 00241 virtual void loadDefaultCacheSettings(bool useOnlyFactorySettings); 00242 virtual void saveDefaultCacheSettings(); 00243 virtual void updateCacheState(); 00244 00246 00247 00250 virtual void initializeSharedChangeManager(); 00251 00253 00254 00257 virtual void synchronizeSlave(DtDeRecord* igRecord); 00258 00260 00262 00263 00266 boost::signal<void (const std::string&,const std::string&)> 00267 signal_coordinateSystemChanged; 00269 00270 void setAutoSave(bool b) 00271 { 00272 myAutoSave = b; 00273 } 00274 00275 bool autoSave() const 00276 { 00277 return myAutoSave; 00278 } 00279 00280 protected: 00281 00283 DtDeSharedState(DtDe& DtDe); 00284 00286 virtual void sendModelDefinitionsToSlave(DtMessageClient* messageClient); 00287 00290 virtual void sendModelSetConfigurationToSlave( 00291 DtMessageClient* messageClient); 00292 00293 00295 00296 00298 virtual void local_setModelDefinitionManager(const DtModelDefinitionManager& definition); 00299 00301 virtual void local_addModelDefinition(const DtModelDefinition& definition); 00302 00304 virtual void local_destroyModelDefinition(const std::string& definition); 00306 00308 virtual void local_setModelInstancingEnabled(bool); 00309 00311 virtual void local_clearModelInstancingCache(); 00312 00314 virtual void local_setWireframeMode(bool mode); 00315 00317 virtual void local_setTerrainScalingEnabled(bool enabled); 00318 00320 virtual void local_setTerrainScaleFactor(double scaleFactor); 00321 00323 virtual void local_setClearTrackHistoryOnTerrainScaleChanged(bool clear); 00324 00326 virtual void local_setPlanViewGeocentricOccludedTransparency(float alpha); 00327 00329 virtual void local_setShadowState(bool mode, int qual, bool entity, bool prop, bool terrain); 00330 00332 virtual void local_ddsFlipState(bool flip); 00333 00335 virtual void local_setVisualizeModelSet( int modelSet, bool visualize ); 00336 00338 void local_setCoordinateSystem(const std::string& coordinateSystemName, 00339 const std::string& coordinateSystemParameters); 00340 00341 00343 00344 void local_setDateAndTime(int year, DtDeTimeManager::Month month,int dayOfMonth, 00345 int hour, int minutes,double seconds); 00346 void local_setTimeScale(double timeScale); 00348 00350 00351 00353 virtual void local_setAccelerationCachingEnabled(bool enabled); 00354 00356 virtual void local_clearAccelerationCache(); 00357 00359 virtual void local_setInstancingEnabled( bool enabled ); 00360 00362 virtual void local_setClearInstancesOnNewScene( bool enabled ); 00363 00365 virtual void local_clearInstancingCache(); 00366 00368 virtual void local_setCompressTextures( bool enabled ); 00369 00371 00372 protected: 00373 00374 DtDe& myDe; 00375 DtDeSharedStateProctor* myIgSharedStateProctor; 00376 DtModelDefinitionManager* myModelDefinitionManager; 00377 DtModelSetRealizationManager* myModelSetRealizationManager; 00378 DtCoordinateSystem* myCoordinateSystem; 00379 DtDeTimeManager myTimeManager; 00380 00381 bool myWireframeMode; 00382 bool myTerrainScalingEnabled; 00383 double myTerrainScaleFactor; 00384 bool myClearTrackHistoryOnTerrainScaleChanged; 00385 float myPlanViewGeocentricOccludedTransparency; 00386 bool myShadowMode; 00387 int myShadowQuality; 00388 bool myEntityShadowMode; 00389 bool myPropShadowMode; 00390 bool myTerrainShadowMode; 00391 bool myAutoSave; 00392 00393 }; 00394 00397 class DT_DLL_VRVCORE DtDeSharedStateCreator : public DtVirtualBaseClass 00398 { 00399 00400 public: 00401 00403 static DtDeSharedStateCreator& instance(DtDe&); 00404 00406 static void registerInstance(DtDe& de, DtDeSharedStateCreator*); 00407 00409 virtual DtDeSharedState* create(DtDe& de); 00410 00411 }; 00412 00413 }