VR-Forces 5.0.2 Developer's Guide
 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 
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>
26 
27 #include <vrfutil/rwUUID.h>
28 #include <vrfutil/rwColor.h>
29 
30 #include <boost/function.hpp>
31 
32 namespace makVrv
33 {
34  class DtEventQueueInterface;
35  class DtSharedSettingsManager;
36  class DtDe;
37 }
38 
39 namespace makVrf
40 {
42  {
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 
111  {
112  public:
113  typedef boost::function<bool (const makVrv::DtSelectionManager::IdSet&)> SettingsValidationFunction;
114 
116  {
117  ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set<makVrv::DtElementEntry::ElementType> e)
118  : setting(s)
119  , name(s)
120  , validFor(e)
121  {
122  }
123 
125  : setting((ObjectSetting)0)
126  , validFor()
127  {
128  validFor.insert( makVrv::DtElementEntry::Unknown );
129  }
130 
132  : setting(s.setting)
133  , name(s.name)
134  , validFor(s.validFor)
135  , validation(s.validation)
136  {
137  }
138 
140  {
141  setting = s.setting;
142  name = s.name;
143  validFor = s.validFor;
144  validation = s.validation;
145 
146  return *this;
147  }
148 
152  std::set<makVrv::DtElementEntry::ElementType> validFor;
153  };
154 
155  typedef std::vector<ObjectSettingStruct> ObjectSettings;
156 
157  public:
159  virtual ~DtObjectSettingsManager();
160 
162  static DtObjectSettingsManager& instance(makVrv::DtDe& de);
163  static void registerInstance(makVrv::DtDe&, DtObjectSettingsManager*);
164 
166  virtual void removeSettings(const DtUUID&);
167 
169  virtual void removeAll();
170 
171  virtual void setSettings(const DtUUID&, ObjectSetting);
172  ObjectSetting settingsFor(const DtUUID&) const;
173 
175  virtual DtRwColor iconColorSettings(const DtUUID&) const;
176 
178  virtual void setIconColorSettings(DtUUID&, DtRwColor color);
179  virtual void setIconColorSettings(const std::vector<DtUUID>& names, DtRwColor color);
180 
181  //check if the icon color has changed
182  virtual bool iconColorChanged(const DtUUID&);
183 
184  typedef std::map<DtUUID, DtRwColor> IconColorMap;
185  boost::signals2::signal<void(DtRwColor, std::vector<makVrv::DtUniqueID>)> signal_iconColorSettingsChanged;
186 
188  ObjectSetting, std::set<makVrv::DtElementEntry::ElementType> validFor, SettingsValidationFunction = boost::bind(&DtObjectSettingsManager::alwaysValid));
189  virtual void removeSetting(ObjectSetting);
190  ObjectSetting settingFor(const makVrv::DtUnicode&);
191  makVrv::DtUnicode settingNameFor(ObjectSetting);
192 
194  bool flagState(const DtUUID&, ObjectSetting) const;
195  virtual void setFlagState(const DtUUID&, ObjectSetting, bool onOff);
196  const ObjectSettings& objectSettings() const;
197 
198  virtual bool hasSetting(const DtUUID&) const;
199  virtual bool hasRadarCoverage(const makVrv::DtSelectionManager::IdSet&);
200 
202  virtual void protect();
203 
205  virtual bool validFor(ObjectSetting, const makVrv::DtSelectionManager::IdSet&) const;
206 
208  virtual void slot_attributesModified(const makVrv::DtElementAttributeManager::EntryAttributesList& l);
209 
210  protected:
211  static bool alwaysValid();
212 
213  virtual void init();
214 
215  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
216  virtual void read(boost::archive::xml_iarchive& ar, int version);
217 
219  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
220 
222  virtual void slot_onObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* p);
223 
225  virtual void slot_uuidChanged(makVrv::DtUniqueID, const DtUUID& oldUUID, const DtUUID& newUUID);
226 
227  protected:
232 
233  typedef std::map<DtUUID, bool> ProtectedFromRemoval;
235  };
236 
240  {
241  public:
242 
247 
251 
255  static DtSharedObjectSettingsSignaler* findInstance(
257 
260 
265 
266  protected:
268 
269  private:
272  };
273 }
ObjectSettingsMap mySettings
Definition: objectSettingsManager.h:100
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
std::map< DtUUID, bool > ProtectedFromRemoval
Definition: objectSettingsManager.h:233
makVrv::event_signal< void(DtUUID, ObjectSetting)> signal_settingsChanged
Definition: objectSettingsManager.h:262
a read settings lock on a setting object. The object can only get read access aka const functions...
Definition: DtReadSettingsLock.h:48
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
ObjectSetting
Definition: objectSettingsManager.h:41
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
The shared simulation settings.
Definition: objectSettingsManager.h:54
boost::function< bool(const makVrv::DtSelectionManager::IdSet &)> SettingsValidationFunction
Definition: objectSettingsManager.h:113
Definition: objectSettingsManager.h:45
Definition: objectSettingsManager.h:115
makVrv::DtDe & myDe
Definition: objectSettingsManager.h:228
ObjectSettings myObjectSettings
Definition: objectSettingsManager.h:229
Contains makVrv:DtSelectionManager class.
Definition: objectSettingsManager.h:46
Definition: objectSettingsManager.h:49
Contains the DtUUID class declaration.
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:231
std::map< DtUUID, DtRwColor > IconColorMap
Definition: objectSettingsManager.h:184
std::vector< ObjectSettingStruct > ObjectSettings
Definition: objectSettingsManager.h:155
ObjectSettingStruct(const ObjectSettingStruct &s)
Definition: objectSettingsManager.h:131
Contains makVrv::event_signal class.
The base class for all shared settings. Actual settings class should have the following members/decla...
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:230
Contains the DtSharedSettings class declaration.
std::vector< EntryAttributes > EntryAttributesList
Define the type used to signal changes to one or more attributes for one or more elements.
Definition: DtElementAttributeManager.h:45
Definition: DtElementEntry.h:28
ProtectedFromRemoval myProtectedFromRemoval
Definition: objectSettingsManager.h:234
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtVrlinkSimulatedEntityState class.
ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set< makVrv::DtElementEntry::ElementType > e)
Definition: objectSettingsManager.h:117
ObjectSettingStruct & operator=(const ObjectSettingStruct &s)
Definition: objectSettingsManager.h:139
std::map< DtUUID, ObjectSetting > ObjectSettingsMap
Definition: objectSettingsManager.h:57
a write settings lock on a setting object. The object can be read and modified, but no other threads ...
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:150
ObjectSettingStruct()
Definition: objectSettingsManager.h:124
Base class to provide boost signal/slot management.
The Master DtObjectSettingsManager.
Definition: objectSettingsManager.h:110
Definition: objectSettingsManager.h:48
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:152
Contains the DtElementAttributeManager class declaration.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
Definition: objectSettingsManager.h:43
A signaler for the shared interest management settings.
Definition: objectSettingsManager.h:239
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
ObjectSetting setting
Definition: objectSettingsManager.h:149
SettingsValidationFunction validation
Definition: objectSettingsManager.h:151
Contains makVrv::DtElementEntry class.
makVrv::event_signal< void()> signal_settingsLoaded
Definition: objectSettingsManager.h:263

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)