![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtSymbolDecorationSettings.h,v $ $Revision: 1.3 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 00015 #include <vrvCore/DtSharedSettings.h> 00016 #include <vrvCore/DtSettingsBackupManager.h> 00017 #include <makArchives/DtSymbolDecorationSettingsRecord.h> 00018 00019 #include <vrvCore/DtRecordSettingsBackup.h> 00020 00021 #include <string> 00022 #include <set> 00023 00024 #include <boost/unordered_map.hpp> 00025 00026 namespace makVrv 00027 { 00028 00029 class DtDe; 00030 class DtSymbolDecorationSettings; 00031 00033 typedef DtSharedRecordSettingsBackup<DtSymbolDecorationSettings, 00034 makArchives::DtSymbolDecorationSettingsRecord> DtSymbolDecorationSettingsBackup; 00035 00038 class DT_DLL_VRVCORE DtSymbolDecorationSettings : public DtSharedSettings 00039 { 00040 public: 00041 00043 typedef std::set<std::string> DecorationSet; 00044 00047 typedef std::set<std::string> DecorationSettings; 00048 00049 public: 00050 00052 virtual ~DtSymbolDecorationSettings(); 00053 00056 00058 DecorationSet getOrCreateDecorationSet( const std::string& setId ) const; 00059 00061 void setDecorationSet( const std::string& setId, DecorationSet& decorationSet ); 00062 00064 void enableDecoration( const std::string& decorationCreator ); 00065 00067 void disableDecoration( const std::string& decorationCreator ); 00068 00070 bool decorationEnabled( const std::string& decorationCreator ); 00071 00073 const DecorationSettings& decorationSettings() const; 00074 00076 DecorationSet enabledDecorationsInSet( const std::string& setId ) const; 00077 00080 bool decorationEnabledForSet( const std::string& setId, 00081 const std::string& decorationCreator ); 00082 00084 void setBackgroundColor( float r, float g, float b ); 00086 void backgroundColor( float& r, float& g, float& b ) const; 00087 00089 void setBackgroundOpacity( float opacity ); 00091 float backgroundOpacity() const; 00092 00094 00097 00099 static void loadDefaults( DtDe& de ); 00100 00102 static void saveDefaults( DtDe& de ); 00103 00105 static void loadFactory( DtDe& de ); 00106 00108 static void saveToFile( DtDe& de, const std::string& filePath ); 00109 00111 static void loadFile( DtDe& de, const std::string& filePath ); 00112 00113 void setFromRecord( const makArchives::DtSymbolDecorationSettingsRecord& rec ); 00114 void getRecord( makArchives::DtSymbolDecorationSettingsRecord& rec ) const; 00115 00116 const DtSymbolDecorationSettingsBackup* settingsBackup() const 00117 { 00118 return mySettingsBackup; 00119 } 00120 00121 DtSymbolDecorationSettingsBackup* settingsBackup() 00122 { 00123 return mySettingsBackup; 00124 } 00125 00127 virtual void backup(); 00128 00130 00134 static std::string className(); 00135 00136 protected: 00137 00140 friend class DtReadSettingsLock<DtSymbolDecorationSettings>; 00141 friend class DtWriteSettingsLock<DtSymbolDecorationSettings>; 00142 friend class DtSharedSettingsManager; 00143 00145 DtSymbolDecorationSettings(DtSharedSettingsManager& manager); 00146 00147 protected: 00148 00149 typedef boost::unordered_map<std::string, DecorationSet> DecorationSetMap; 00150 DecorationSetMap myDecorationSets; 00151 00152 DecorationSettings myDecorationSettings; 00153 00154 float myBackgroundColorR; 00155 float myBackgroundColorG; 00156 float myBackgroundColorB; 00157 float myBackgroundColorA; 00158 00159 DtSymbolDecorationSettingsBackup* mySettingsBackup; 00160 00161 }; 00162 00163 }