VR-Forces 4.8 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 #include <boost/signals2.hpp>
31 
32 namespace makVrv
33 {
34  class DtEventQueueInterface;
35  class DtSharedSettingsManager;
36  class DtDe;
37 }
38 
39 namespace makVrf
40 {
42  {
48 
49  UserStart = 0x01000000
50  };
51 
55  {
56  public:
57  typedef std::map<DtUUID, ObjectSetting> ObjectSettingsMap;
58 
64 
68  static std::string className();
69 
71  virtual ~DtSharedObjectSettings();
72 
74  virtual void removeSettings(const DtUUID&);
75 
76  void setSettings(const DtUUID&, ObjectSetting);
77  ObjectSetting settingsFor(const DtUUID&) const;
78 
80  virtual bool hasSetting(const DtUUID&) const;
81 
82  void setFlagState(const DtUUID&, ObjectSetting, bool onOff);
83 
85  bool flagState(const DtUUID&, ObjectSetting) const;
86 
87  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
88  virtual void read(boost::archive::xml_iarchive& ar, int version);
89 
90  const ObjectSettingsMap& settingsMap() const;
91 
92  virtual void settingsLoaded();
93 
94  protected:
95 
98 
99  protected:
101  };
102 
105  {
106  public:
107  typedef boost::function<bool (const makVrv::DtSelectionManager::IdSet&)> SettingsValidationFunction;
108 
110  {
111  ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set<makVrv::DtElementEntry::ElementType> e)
112  : setting(s)
113  , name(s)
114  , validFor(e)
115  {
116  }
117 
119  : setting((ObjectSetting)0)
120  , validFor()
121  {
122  validFor.insert( makVrv::DtElementEntry::Unknown );
123  }
124 
126  : setting(s.setting)
127  , name(s.name)
128  , validFor(s.validFor)
129  , validation(s.validation)
130  {
131  }
132 
134  {
135  setting = s.setting;
136  name = s.name;
137  validFor = s.validFor;
138  validation = s.validation;
139 
140  return *this;
141  }
142 
146  std::set<makVrv::DtElementEntry::ElementType> validFor;
147  };
148 
149  typedef std::vector<ObjectSettingStruct> ObjectSettings;
150 
151  public:
153  virtual ~DtObjectSettingsManager();
154 
156  static DtObjectSettingsManager& instance(makVrv::DtDe& de);
157  static void registerInstance(makVrv::DtDe&, DtObjectSettingsManager*);
158 
160  virtual void removeSettings(const DtUUID&);
161 
163  virtual void removeAll();
164 
165  virtual void setSettings(const DtUUID&, ObjectSetting);
166  ObjectSetting settingsFor(const DtUUID&) const;
167 
169  virtual DtRwColor iconColorSettings(const DtUUID&) const;
170 
172  virtual void setIconColorSettings(DtUUID&, DtRwColor color);
173  virtual void setIconColorSettings(const std::vector<DtUUID>& names, DtRwColor color);
174 
175  //check if the icon color has changed
176  virtual bool iconColorChanged(const DtUUID&);
177 
178  typedef std::map<DtUUID, DtRwColor> IconColorMap;
179  boost::signals2::signal<void(DtRwColor, std::vector<makVrv::DtUniqueID>)> signal_iconColorSettingsChanged;
180 
182  ObjectSetting, std::set<makVrv::DtElementEntry::ElementType> validFor, SettingsValidationFunction = boost::bind(&DtObjectSettingsManager::alwaysValid));
183  virtual void removeSetting(ObjectSetting);
184  ObjectSetting settingFor(const makVrv::DtUnicode&);
185  makVrv::DtUnicode settingNameFor(ObjectSetting);
186 
188  bool flagState(const DtUUID&, ObjectSetting) const;
189  virtual void setFlagState(const DtUUID&, ObjectSetting, bool onOff);
190  const ObjectSettings& objectSettings() const;
191 
192  virtual bool hasSetting(const DtUUID&) const;
193  virtual bool hasRadarCoverage(const makVrv::DtSelectionManager::IdSet&);
194 
196  virtual void protect();
197 
199  virtual bool validFor(ObjectSetting, const makVrv::DtSelectionManager::IdSet&) const;
200 
201  protected:
202  static bool alwaysValid();
203 
204  virtual void init();
205 
206  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
207  virtual void read(boost::archive::xml_iarchive& ar, int version);
208 
210  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
211 
213  virtual void slot_onObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* p);
214 
216  virtual void slot_uuidChanged(makVrv::DtUniqueID, const DtUUID& oldUUID, const DtUUID& newUUID);
217 
218  protected:
223 
224  typedef std::map<DtUUID, bool> ProtectedFromRemoval;
226  };
227 
231  {
232  public:
233 
238 
242 
246  static DtSharedObjectSettingsSignaler* findInstance(
248 
251 
256 
257  protected:
259 
260  private:
263  };
264 }
ObjectSettingsMap mySettings
Definition: objectSettingsManager.h:100
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
std::map< DtUUID, bool > ProtectedFromRemoval
Definition: objectSettingsManager.h:224
makVrv::event_signal< void(DtUUID, ObjectSetting)> signal_settingsChanged
Definition: objectSettingsManager.h:253
a read settings lock on a setting object.
Definition: DtReadSettingsLock.h:51
Virtual base class.
Definition: DtVirtualBaseClass.h:22
ObjectSetting
Definition: objectSettingsManager.h:41
A unicode string.
Definition: DtUnicode.h:33
The shared simulation settings.
Definition: objectSettingsManager.h:54
boost::function< bool(const makVrv::DtSelectionManager::IdSet &)> SettingsValidationFunction
Definition: objectSettingsManager.h:107
Definition: objectSettingsManager.h:45
Definition: objectSettingsManager.h:109
makVrv::DtDe & myDe
Definition: objectSettingsManager.h:219
ObjectSettings myObjectSettings
Definition: objectSettingsManager.h:220
Contains makVrv:DtSelectionManager class.
Definition: objectSettingsManager.h:46
Definition: objectSettingsManager.h:49
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:45
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
makVrv::DtSignalConnectionManager myConnectionManager
Definition: objectSettingsManager.h:222
std::map< DtUUID, DtRwColor > IconColorMap
Definition: objectSettingsManager.h:178
std::vector< ObjectSettingStruct > ObjectSettings
Definition: objectSettingsManager.h:149
ObjectSettingStruct(const ObjectSettingStruct &s)
Definition: objectSettingsManager.h:125
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:29
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:221
Contains the DtSharedSettings class declaration.
Definition: DtElementEntry.h:28
ProtectedFromRemoval myProtectedFromRemoval
Definition: objectSettingsManager.h:225
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
Contains makVrv::DtEntityState class.
ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set< makVrv::DtElementEntry::ElementType > e)
Definition: objectSettingsManager.h:111
ObjectSettingStruct & operator=(const ObjectSettingStruct &s)
Definition: objectSettingsManager.h:133
std::map< DtUUID, ObjectSetting > ObjectSettingsMap
Definition: objectSettingsManager.h:57
a write settings lock on a setting object.
Definition: DtWriteSettingsLock.h:50
Base class that all gui settings must derive from. Must implement read/write methods.
Definition: guiScenarioSettingsManager.h:31
makVrv::DtUnicode name
Definition: objectSettingsManager.h:144
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
ObjectSettingStruct()
Definition: objectSettingsManager.h:118
Base class to provide boost signal/slot management.
The Master DtObjectSettingsManager.
Definition: objectSettingsManager.h:104
Definition: objectSettingsManager.h:44
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: objectSettingsManager.h:47
std::set< makVrv::DtElementEntry::ElementType > validFor
Definition: objectSettingsManager.h:146
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Definition: objectSettingsManager.h:43
A signaler for the shared interest management settings.
Definition: objectSettingsManager.h:230
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
ObjectSetting setting
Definition: objectSettingsManager.h:143
SettingsValidationFunction validation
Definition: objectSettingsManager.h:145
Contains makVrv::DtElementEntry class.
makVrv::event_signal< void()> signal_settingsLoaded
Definition: objectSettingsManager.h:254

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)