VR-Forces 5.0.1 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>
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 
110  {
111  public:
112  typedef boost::function<bool (const makVrv::DtSelectionManager::IdSet&)> SettingsValidationFunction;
113 
115  {
116  ObjectSettingStruct(ObjectSetting s, makVrv::DtUnicode n, std::set<makVrv::DtElementEntry::ElementType> e)
117  : setting(s)
118  , name(s)
119  , validFor(e)
120  {
121  }
122 
124  : setting((ObjectSetting)0)
125  , validFor()
126  {
127  validFor.insert( makVrv::DtElementEntry::Unknown );
128  }
129 
131  : setting(s.setting)
132  , name(s.name)
133  , validFor(s.validFor)
134  , validation(s.validation)
135  {
136  }
137 
139  {
140  setting = s.setting;
141  name = s.name;
142  validFor = s.validFor;
143  validation = s.validation;
144 
145  return *this;
146  }
147 
151  std::set<makVrv::DtElementEntry::ElementType> validFor;
152  };
153 
154  typedef std::vector<ObjectSettingStruct> ObjectSettings;
155 
156  public:
158  virtual ~DtObjectSettingsManager();
159 
161  static DtObjectSettingsManager& instance(makVrv::DtDe& de);
162  static void registerInstance(makVrv::DtDe&, DtObjectSettingsManager*);
163 
165  virtual void removeSettings(const DtUUID&);
166 
168  virtual void removeAll();
169 
170  virtual void setSettings(const DtUUID&, ObjectSetting);
171  ObjectSetting settingsFor(const DtUUID&) const;
172 
174  virtual DtRwColor iconColorSettings(const DtUUID&) const;
175 
177  virtual void setIconColorSettings(DtUUID&, DtRwColor color);
178  virtual void setIconColorSettings(const std::vector<DtUUID>& names, DtRwColor color);
179 
180  //check if the icon color has changed
181  virtual bool iconColorChanged(const DtUUID&);
182 
183  typedef std::map<DtUUID, DtRwColor> IconColorMap;
184  boost::signals2::signal<void(DtRwColor, std::vector<makVrv::DtUniqueID>)> signal_iconColorSettingsChanged;
185 
187  ObjectSetting, std::set<makVrv::DtElementEntry::ElementType> validFor, SettingsValidationFunction = boost::bind(&DtObjectSettingsManager::alwaysValid));
188  virtual void removeSetting(ObjectSetting);
189  ObjectSetting settingFor(const makVrv::DtUnicode&);
190  makVrv::DtUnicode settingNameFor(ObjectSetting);
191 
193  bool flagState(const DtUUID&, ObjectSetting) const;
194  virtual void setFlagState(const DtUUID&, ObjectSetting, bool onOff);
195  const ObjectSettings& objectSettings() const;
196 
197  virtual bool hasSetting(const DtUUID&) const;
198  virtual bool hasRadarCoverage(const makVrv::DtSelectionManager::IdSet&);
199 
201  virtual void protect();
202 
204  virtual bool validFor(ObjectSetting, const makVrv::DtSelectionManager::IdSet&) const;
205 
206  protected:
207  static bool alwaysValid();
208 
209  virtual void init();
210 
211  virtual void write(boost::archive::xml_oarchive& ar, int version) const;
212  virtual void read(boost::archive::xml_iarchive& ar, int version);
213 
215  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
216 
218  virtual void slot_onObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* p);
219 
221  virtual void slot_uuidChanged(makVrv::DtUniqueID, const DtUUID& oldUUID, const DtUUID& newUUID);
222 
223  protected:
228 
229  typedef std::map<DtUUID, bool> ProtectedFromRemoval;
231  };
232 
236  {
237  public:
238 
243 
247 
251  static DtSharedObjectSettingsSignaler* findInstance(
253 
256 
261 
262  protected:
264 
265  private:
268  };
269 }
ObjectSettingsMap mySettings
Definition: objectSettingsManager.h:99
UUID is a unique ID wrapper class.
Definition: rwUUID.h:226
std::map< DtUUID, bool > ProtectedFromRemoval
Definition: objectSettingsManager.h:229
makVrv::event_signal< void(DtUUID, ObjectSetting)> signal_settingsChanged
Definition: objectSettingsManager.h:258
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:40
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:53
boost::function< bool(const makVrv::DtSelectionManager::IdSet &)> SettingsValidationFunction
Definition: objectSettingsManager.h:112
Definition: objectSettingsManager.h:44
Definition: objectSettingsManager.h:114
makVrv::DtDe & myDe
Definition: objectSettingsManager.h:224
ObjectSettings myObjectSettings
Definition: objectSettingsManager.h:225
Contains makVrv:DtSelectionManager class.
Definition: objectSettingsManager.h:45
Definition: objectSettingsManager.h:48
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:227
std::map< DtUUID, DtRwColor > IconColorMap
Definition: objectSettingsManager.h:183
std::vector< ObjectSettingStruct > ObjectSettings
Definition: objectSettingsManager.h:154
ObjectSettingStruct(const ObjectSettingStruct &s)
Definition: objectSettingsManager.h:130
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:226
Contains the DtSharedSettings class declaration.
Definition: DtElementEntry.h:28
ProtectedFromRemoval myProtectedFromRemoval
Definition: objectSettingsManager.h:230
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:116
ObjectSettingStruct & operator=(const ObjectSettingStruct &s)
Definition: objectSettingsManager.h:138
std::map< DtUUID, ObjectSetting > ObjectSettingsMap
Definition: objectSettingsManager.h:56
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:149
ObjectSettingStruct()
Definition: objectSettingsManager.h:123
Base class to provide boost signal/slot management.
The Master DtObjectSettingsManager.
Definition: objectSettingsManager.h:109
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:151
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:42
A signaler for the shared interest management settings.
Definition: objectSettingsManager.h:235
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
ObjectSetting setting
Definition: objectSettingsManager.h:148
SettingsValidationFunction validation
Definition: objectSettingsManager.h:150
Contains makVrv::DtElementEntry class.
makVrv::event_signal< void()> signal_settingsLoaded
Definition: objectSettingsManager.h:259

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)