VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
objectSettingsManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 201 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include <vrvUtil/signalslib.h>
15 
16 #include <vrfGuiCore/vrfGuiCore.h>
19 #include <vrvCore/DtElementEntry.h>
20 #include <vrvCore/DtEntityState.h>
22 #include <vrvUtil/event_signal.h>
23 #include <vrvUtil/DtUnicode.h>
25 
26 #include <vrfutil/rwUUID.h>
27 #include <vrfutil/rwColor.h>
28 
29 #include <boost/function.hpp>
30 
31 namespace makVrv
32 {
33  class DtEventQueueInterface;
34  class DtSharedSettingsManager;
35  class DtDe;
36 }
37 
38 namespace makVrf
39 {
41  {
47 
48  UserStart = 0x01000000
49  };
50 
54  {
55  public:
56  typedef std::map<DtUUID, ObjectSetting> ObjectSettingsMap;
57 
63 
67  static std::string className();
68 
70  virtual ~DtSharedObjectSettings();
71 
73  virtual void removeSettings(const DtUUID&);
74 
75  void setSettings(const DtUUID&, ObjectSetting);
76  ObjectSetting settingsFor(const DtUUID&) const;
77 
79  virtual bool hasSetting(const DtUUID&) const;
80 
81  void setFlagState(const DtUUID&, ObjectSetting, bool onOff);
82 
84  bool flagState(const DtUUID&, ObjectSetting) const;
85 
86  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
87  virtual void read(boost::archive::xml_iarchive& ar, int version);
88 
89  const ObjectSettingsMap& settingsMap() const;
90 
91  virtual void settingsLoaded();
92 
93  protected:
94 
97 
98  protected:
100  };
101 
104  {
105  public:
106  typedef boost::function<bool (const makVrv::DtSelectionManager::IdSet&)> SettingsValidationFunction;
107 
109  {
110  ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set<makVrv::DtElementEntry::ElementType> e)
111  : setting(s)
112  , name(s)
113  , validFor(e)
114  {
115  }
116 
118  : setting((ObjectSetting)0)
119  , validFor()
120  {
121  validFor.insert( makVrv::DtElementEntry::Unknown );
122  }
123 
125  : setting(s.setting)
126  , name(s.name)
127  , validFor(s.validFor)
128  , validation(s.validation)
129  {
130  }
131 
133  {
134  setting = s.setting;
135  name = s.name;
136  validFor = s.validFor;
137  validation = s.validation;
138 
139  return *this;
140  }
141 
145  std::set<makVrv::DtElementEntry::ElementType> validFor;
146  };
147 
148  typedef std::vector<ObjectSettingStruct> ObjectSettings;
149 
150  public:
152  virtual ~DtObjectSettingsManager();
153 
155  static DtObjectSettingsManager& instance(makVrv::DtDe& de);
156  static void registerInstance(makVrv::DtDe&, DtObjectSettingsManager*);
157 
159  virtual void removeSettings(const DtUUID&);
160 
162  virtual void removeAll();
163 
164  virtual void setSettings(const DtUUID&, ObjectSetting);
165  ObjectSetting settingsFor(const DtUUID&) const;
166 
168  virtual DtRwColor iconColorSettings(const DtUUID&) const;
169 
171  virtual void setIconColorSettings(DtUUID&, DtRwColor color);
172  virtual void setIconColorSettings(const std::vector<DtUUID>& names, DtRwColor color);
173 
174  //check if the icon color has changed
175  virtual bool iconColorChanged(const DtUUID&);
176 
177  typedef std::map<DtUUID, DtRwColor> IconColorMap;
178  boost::signals2::signal<void(DtRwColor, std::vector<makVrv::DtUniqueID>)> signal_iconColorSettingsChanged;
179 
181  ObjectSetting, std::set<makVrv::DtElementEntry::ElementType> validFor, SettingsValidationFunction = boost::bind(&DtObjectSettingsManager::alwaysValid));
182  virtual void removeSetting(ObjectSetting);
183  ObjectSetting settingFor(const makVrv::DtUnicode&);
184  makVrv::DtUnicode settingNameFor(ObjectSetting);
185 
187  bool flagState(const DtUUID&, ObjectSetting) const;
188  virtual void setFlagState(const DtUUID&, ObjectSetting, bool onOff);
189  const ObjectSettings& objectSettings() const;
190 
191  virtual bool hasSetting(const DtUUID&) const;
192  virtual bool hasRadarCoverage(const makVrv::DtSelectionManager::IdSet&);
193 
195  virtual void protect();
196 
198  virtual bool validFor(ObjectSetting, const makVrv::DtSelectionManager::IdSet&) const;
199 
200  protected:
201  static bool alwaysValid();
202 
203  virtual void init();
204 
205  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
206  virtual void read(boost::archive::xml_iarchive& ar, int version);
207 
209  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
210 
212  virtual void slot_onObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* p);
213 
215  virtual void slot_uuidChanged(makVrv::DtUniqueID, const DtUUID& oldUUID, const DtUUID& newUUID);
216 
217  protected:
222 
223  typedef std::map<DtUUID, bool> ProtectedFromRemoval;
225  };
226 
230  {
231  public:
232 
237 
241 
245  static DtSharedObjectSettingsSignaler* findInstance(
247 
250 
255 
256  protected:
258 
259  private:
262  };
263 }
ObjectSettingsMap mySettings
Definition: objectSettingsManager.h:99
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
std::map< DtUUID, bool > ProtectedFromRemoval
Definition: objectSettingsManager.h:223
makVrv::event_signal< void(DtUUID, ObjectSetting)> signal_settingsChanged
Definition: objectSettingsManager.h:252
a read settings lock on a setting object.
Definition: DtReadSettingsLock.h:48
Virtual base class.
Definition: DtVirtualBaseClass.h:19
ObjectSetting
Definition: objectSettingsManager.h:40
A unicode string.
Definition: DtUnicode.h:33
The shared simulation settings.
Definition: objectSettingsManager.h:53
boost::function< bool(const makVrv::DtSelectionManager::IdSet &)> SettingsValidationFunction
Definition: objectSettingsManager.h:106
Definition: objectSettingsManager.h:44
Definition: objectSettingsManager.h:108
makVrv::DtDe & myDe
Definition: objectSettingsManager.h:218
ObjectSettings myObjectSettings
Definition: objectSettingsManager.h:219
Contains makVrv:DtSelectionManager class.
Definition: objectSettingsManager.h:45
Definition: objectSettingsManager.h:48
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
makVrv::DtSignalConnectionManager myConnectionManager
Definition: objectSettingsManager.h:221
std::map< DtUUID, DtRwColor > IconColorMap
Definition: objectSettingsManager.h:177
std::vector< ObjectSettingStruct > ObjectSettings
Definition: objectSettingsManager.h:148
ObjectSettingStruct(const ObjectSettingStruct &s)
Definition: objectSettingsManager.h:124
Contains makVrv::event_signal class.
The base class for all shared settings.
Definition: DtSharedSettings.h:45
The event queue interface is a cross thread event queue used to emit event_signal across thread bound...
Definition: DtEventQueueInterface.h:26
Reader-Writer color specified by red, green, blue components.
Definition: rwColor.h:19
Contains makVrv::DtVirtualBaseClass class.
binderNoArgs< _Fn > bind(const _Fn &_Func, const _Ty &_Left)
Definition: DtSTLUtilities.h:76
IconColorMap myIconColorMap
Definition: objectSettingsManager.h:220
Contains the DtSharedSettings class declaration.
Definition: DtElementEntry.h:28
ProtectedFromRemoval myProtectedFromRemoval
Definition: objectSettingsManager.h:224
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtEntityState class.
ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set< makVrv::DtElementEntry::ElementType > e)
Definition: objectSettingsManager.h:110
ObjectSettingStruct & operator=(const ObjectSettingStruct &s)
Definition: objectSettingsManager.h:132
std::map< DtUUID, ObjectSetting > ObjectSettingsMap
Definition: objectSettingsManager.h:56
a write settings lock on a setting object.
Definition: DtWriteSettingsLock.h:47
Base class that all gui settings must derive from. Must implement read/write methods.
Definition: guiScenarioSettingsManager.h:31
makVrv::DtUnicode name
Definition: objectSettingsManager.h:143
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
ObjectSettingStruct()
Definition: objectSettingsManager.h:117
Base class to provide boost signal/slot management.
The Master DtObjectSettingsManager.
Definition: objectSettingsManager.h:103
Definition: objectSettingsManager.h:43
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: objectSettingsManager.h:46
std::set< makVrv::DtElementEntry::ElementType > validFor
Definition: objectSettingsManager.h:145
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Definition: objectSettingsManager.h:42
A signaler for the shared interest management settings.
Definition: objectSettingsManager.h:229
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
ObjectSetting setting
Definition: objectSettingsManager.h:142
SettingsValidationFunction validation
Definition: objectSettingsManager.h:144
Contains makVrv::DtElementEntry class.
makVrv::event_signal< void()> signal_settingsLoaded
Definition: objectSettingsManager.h:253

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)