![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtSharedCockpitSettings.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 #pragma once 00013 #include <vrvGlStudioShared/DtGlStudioShared.h> 00014 #include <vrvGlStudioShared/DtGlStudioAttributeUpdaterFactory.h> 00015 #include <makArchives/DtCockpitSettingsRecord.h> 00016 00017 #include <vrvCore/DtSharedSettings.h> 00018 #include <vrvCore/DtUniqueID.h> 00019 #include <vrvCore/DtRecordSettingsBackup.h> 00020 00021 #include <string> 00022 #include <vector> 00023 00024 class DtEntityType; 00025 00026 namespace makVrv 00027 { 00028 class DtEntityTypeMapper; 00029 class DtEntityTypeMapperCreator; 00030 class DtModelDefinition; 00031 class DtDe; 00032 class DtObserver; 00033 class DtSharedCockpitSettings; 00034 00035 typedef DtSharedRecordSettingsBackup<DtSharedCockpitSettings, makArchives::DtCockpitSettingsRecord> DtCockpitSettingsBackup; 00036 00039 class DT_DLL_VRVGLSTUDIOSHARED DtSharedCockpitSettings : public DtSharedSettings 00040 { 00041 public: 00042 00045 friend class DtReadSettingsLock<DtSharedCockpitSettings>; 00046 friend class DtWriteSettingsLock<DtSharedCockpitSettings>; 00047 friend class DtSharedSettingsManager; 00048 00052 static std::string className(); 00053 00055 virtual ~DtSharedCockpitSettings(); 00056 00058 void setCockpitMapper(const DtEntityTypeMapper& cockpitTypeMapper); 00059 00061 void setCockpitModelMapping(const DtEntityType& type, const std::string& definition); 00062 00064 const std::vector<DtUnicode>& mapCockpitModelDefinition(const DtEntityType& type) const; 00065 00067 virtual void setDe(DtDe*); 00068 00070 const DtModelDefinition* findCockpitDefinition(const std::string& str) const; 00071 00073 virtual DtEntityTypeMapper* findMapperByName(const std::string& name); 00074 virtual const DtEntityTypeMapper* findMapperByName(const std::string& name) const; 00075 00077 virtual DtEntityTypeMapper& cockpitTypeMapper(); 00078 virtual const DtEntityTypeMapper& cockpitTypeMapper() const; 00079 00081 virtual void setFromRecord(const makArchives::DtCockpitSettingsRecord& rec); 00082 00084 virtual void getRecord(makArchives::DtCockpitSettingsRecord& rec ) const; 00085 00087 virtual void mapperChanged(const DtEntityType& type, const DtUnicode& value, DtEntityTypeMapper& mapper); 00088 00090 virtual void realizeCockpit(DtObserver* obs, DtUniqueID& id); 00092 virtual void unrealizeCockpit(DtObserver* obs); 00093 00095 virtual const std::string& dataPath() const; 00097 virtual void setDataPath(const std::string& path); 00098 00100 virtual void setCockpitsEnabled(bool enable); 00102 virtual bool cockpitsEnabled() const; 00103 00105 virtual void hideEntity(const std::string& obsName); 00107 virtual void unHideEntity(const std::string& obsName); 00108 00110 virtual DtGlStudioAttributeUpdaterFactory& updaterFactory(); 00111 00113 virtual bool smoothingEnabled() const; 00115 virtual void setSmoothingEnabled(bool smooth); 00116 00118 virtual double smoothingPeriod() const; 00120 virtual void setSmoothingPeriod(const double& period); 00121 00122 const DtSettingsBackup* settingsBackup() const 00123 { 00124 return mySettingsBackup; 00125 } 00126 00127 DtSettingsBackup* settingsBackup() 00128 { 00129 return mySettingsBackup; 00130 } 00131 00133 virtual void backup(); 00134 00135 protected: 00136 00138 DtSharedCockpitSettings(DtSharedSettingsManager& manager); 00139 00140 //Empty vector, for returning the reference which will always be empty. 00141 std::vector<DtUnicode> myEmptyMappings; 00142 00143 //Entity type mapping 00144 DtEntityTypeMapper* myCockpitTypeMapper; 00145 std::string myDataPath; 00146 bool myCockpitsEnabled; 00147 bool myCockpitSmoothingEnabled; 00148 double myCockpitSmoothingPeriod; 00149 00150 DtDe* myDe; 00151 00152 DtGlStudioAttributeUpdaterFactory myUpdaterFactory; 00153 DtCockpitSettingsBackup* mySettingsBackup; 00154 }; 00155 }