VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rangeRingsManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 
15 #include <vrfGuiCore/vrfGuiCore.h>
17 #include <vrvCore/DtUniqueID.h>
19 #include <vrvUtil/event_signal.h>
20 #include <vrvUtil/DtUnicode.h>
21 #include <vlpi/netStructs.h>
22 
23 #include <set>
24 
25 namespace makVrv
26 {
27  class DtRecordSettingsBackupInterface;
28  class DtEventQueueInterface;
29  class DtSharedSettingsManager;
30  class DtDe;
31 }
32 
33 namespace makVrf
34 {
38  {
39  public:
40 
46 
50  static std::string className();
51 
53  virtual ~DtSharedRangeRingsSettings() override;
54 
55  virtual void setFill2D(bool);
56  virtual bool fill2D() const;
57 
58  virtual void setShowRangeSphere(bool);
59  virtual bool showRangeSphere() const;
60 
61  virtual void setShowWeaponNameLabel( bool );
62  virtual bool showWeaponNameLabel() const;
63 
64  virtual void setShowEntityNameLabel( bool );
65  virtual bool showEntityNameLabel() const;
66 
67  virtual void setShowRangeValueLabel( bool );
68  virtual bool showRangeValueLabel() const;
69 
70  virtual void setShowByDefault( bool );
71  virtual bool showByDefault() const;
72 
73  virtual void setShowForSelected( bool );
74  virtual bool showForSelected() const;
75 
76  virtual void setShowPhysicalFootprint( bool );
77  virtual bool showPhysicalFootprint() const;
78 
79  virtual void setSphereOpacityModifier(double);
80  virtual double sphereOpacityModifier() const;
81 
84  virtual void setAttackAnimationForRingEnabled(const std::string&, bool);
85  virtual bool attackAnimationForRingEnabled(const std::string&) const;
86 
87  virtual const DtRangeRingsSettingsRecord::ColorOptions& colorOptions() const;
88  virtual DtRangeRingsSettingsRecord::ColorOption colorOption(const std::string&) const;
89 
90  virtual void setColorOptions(const DtRangeRingsSettingsRecord::ColorOptions&);
91  virtual bool getColor(const std::string& type, int force, float& r, float& g, float& b, float& a, makVrv::DtUnicode&) const;
92  virtual void setColor(const std::string& type, int color, const makVrv::DtUnicode&);
93  virtual void removeColorOption(const std::string& type);
94 
95  virtual void getRecord(DtRangeRingsSettingsRecord& rec) const;
96  virtual void setFromRecord(const DtRangeRingsSettingsRecord& rec);
97 
100  virtual void getSplitRecord(std::vector<DtRangeRingsSettingsRecord>& rec,
101  std::vector<std::string>& fileNames) {};
102 
106  DtRangeRingsSettingsRecord& combinedRec) {};
107 
109  virtual void addColorOptionIfMissing(const std::string& option, int color, const makVrv::DtUnicode& label,
110  bool visible = true);
111 
114  virtual bool getColorByCategory(const std::string& type, int& color) const;
115 
116  virtual makVrv::DtUnicode labelForType(const std::string&) const;
117  virtual void setVisible(const std::string& type, bool);
118  virtual bool visible(const std::string& type) const;
119  virtual bool wasRequested(const std::string&) const;
120 
121  virtual void setSectorSizeProperty(const std::string&);
122  virtual const std::string& sectorSizeProperty() const;
123 
124  virtual bool hasNewOptions() const;
125  virtual void getAndClearOptions(std::set<std::string>& newOptions, std::set<std::string>& newOptionsRequested);
126 
127  protected:
128  virtual void colorFromForce(int force, float& r, float& g, float& b);
129 
130  protected:
131 
134 
135  protected:
136  bool myFill2D;
141 
145 
147 
149 
150  std::map<std::string, bool> myRequested;
151  std::map<std::string, bool> myAttackAnimationEnabled;
152  std::string mySectorSizeProperty;
153 
154  std::set<std::string> myNewColorOptions;
155  std::set<std::string> myNewOptionRequested;
156  };
157 
160  {
161  public:
163  virtual ~DtRangeRingsManager() override;
164 
166  static DtRangeRingsManager& instance(makVrv::DtDe& de);
167  static void registerInstance(makVrv::DtDe&, DtRangeRingsManager*);
168 
170  virtual void loadDefaults(bool fromFactory = false);
171 
173  virtual void saveAsDefaults();
174 
176  {
177  return mySettingsBackup;
178  }
179 
181  {
182  return mySettingsBackup;
183  }
184 
186  void exportSettings(const std::string& fileName);
187 
189  void importSettings(const std::string& fileName);
190 
191  void setAutoSave(bool b);
192  bool autoSave() const;
193 
194  virtual void getRecord(DtRangeRingsSettingsRecord& rec) const;
195  virtual void setFromRecord(const DtRangeRingsSettingsRecord& rec);
196 
199  virtual void getSplitRecord(std::vector<DtRangeRingsSettingsRecord>& rec,
200  std::vector<std::string>& fileNames) {};
201 
205  DtRangeRingsSettingsRecord& combinedRec) {};
206 
207  virtual void setFill2D(bool b);
208  virtual bool fill2D() const;
209 
210  virtual void setShowRangeSphere( bool onOff );
211  virtual bool showRangeSphere() const;
212 
213  virtual void setShowWeaponNameLabel( bool );
214  virtual bool showWeaponNameLabel() const;
215 
216  virtual void setShowEntityNameLabel( bool );
217  virtual bool showEntityNameLabel() const;
218 
219  virtual void setShowRangeValueLabel( bool );
220  virtual bool showRangeValueLabel() const;
221 
222  virtual void setShowByDefault( bool );
223  virtual bool showByDefault() const;
224 
225  virtual void setShowForSelected( bool );
226  virtual bool showForSelected() const;
227 
228  virtual void setShowPhysicalFootprint( bool );
229  virtual bool showPhysicalFootprint() const;
230 
231  virtual void setSphereOpacityModifier(double);
232  virtual double sphereOpacityModifier() const;
233 
234  virtual const DtRangeRingsSettingsRecord::ColorOptions& colorOptions() const;
235  virtual DtRangeRingsSettingsRecord::ColorOption colorOption(const std::string&) const;
236  virtual void setColorOptions(const DtRangeRingsSettingsRecord::ColorOptions&);
237  virtual bool getColor(const std::string& type, int force, float& r, float& g, float& b, float& a, makVrv::DtUnicode&) const;
238  virtual void setColor(const std::string& type, int color, const makVrv::DtUnicode&);
239  virtual void setVisible(const std::string& type, bool);
240  virtual bool visible(const std::string& type) const;
241 
244  virtual void setAttackAnimationForRingEnabled(const std::string&, bool);
245  virtual bool attackAnimationForRingEnabled(const std::string&) const;
246 
247  virtual void removeColorOption(const std::string& type);
248  virtual bool wasRequested(const std::string&) const;
249 
251  virtual void addColorOptionIfMissing(const std::string& option, int color, const makVrv::DtUnicode& label,
252  bool visible = true);
253 
254  virtual makVrv::DtUnicode labelForType(const std::string&) const;
255 
256  virtual std::string sectorSizeProperty() const;
257  virtual void setSectorSizeProperty(const std::string&);
258 
259  protected:
260  virtual void completeSetup();
261 
262  protected:
265  };
266 
270  {
271  public:
272 
277 
281 
285  static DtSharedRangeRingsSettingsSignaler* findInstance(
287 
289  virtual ~DtSharedRangeRingsSettingsSignaler() override;
290 
298 
304 
305  protected:
307 
308  private:
311  };
312 }
313 
314 inline const bool operator==(const std::vector<DtNetFloat32>& lhs, const std::vector<double>& rhs)
315 {
316  if (lhs.size() != rhs.size())
317  {
318  return false;
319  }
320  else
321  {
322  std::vector<DtNetFloat32>::const_iterator lhsIter = lhs.begin();
323  std::vector<DtNetFloat32>::const_iterator lhsEnd = lhs.end();
324  std::vector<double>::const_iterator rhsIter = rhs.begin();
325  std::vector<double>::const_iterator rhsEnd = rhs.end();
326 
327  for (;lhsIter != lhsEnd; ++lhsIter, ++rhsIter)
328  {
329  if (*rhsIter != *lhsIter)
330  {
331  return false;
332  }
333  }
334  }
335 
336  return true;
337 }
338 
339 inline const bool operator!=(const std::vector<DtNetFloat32>& lhs, const std::vector<double>& rhs)
340 {
341  return !(operator==(lhs, rhs));
342 }
343 
344 inline const bool operator==(const std::vector<double>& lhs, const std::vector<DtNetFloat32>& rhs)
345 {
346  if (lhs.size() != rhs.size())
347  {
348  return false;
349  }
350  else
351  {
352  std::vector<double>::const_iterator lhsIter = lhs.begin();
353  std::vector<double>::const_iterator lhsEnd = lhs.end();
354  std::vector<DtNetFloat32>::const_iterator rhsIter = rhs.begin();
355  std::vector<DtNetFloat32>::const_iterator rhsEnd = rhs.end();
356 
357  for (;lhsIter != lhsEnd; ++lhsIter, ++rhsIter)
358  {
359  if (*rhsIter != *lhsIter)
360  {
361  return false;
362  }
363  }
364  }
365 
366  return true;
367 }
368 
369 inline const bool operator!=(const std::vector<double>& lhs, const std::vector<DtNetFloat32>& rhs)
370 {
371  return !(operator==(lhs, rhs));
372 }
bool myShowRangeSphere
Definition: rangeRingsManager.h:137
makVrv::event_signal< void()> signal_colorsChanged
Definition: rangeRingsManager.h:296
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
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
std::set< std::string > myNewColorOptions
Definition: rangeRingsManager.h:154
The shared simulation settings.
Definition: rangeRingsManager.h:37
Definition: rangeRingsSettingsRecord.h:45
bool myShowRangeValueLabel
Definition: rangeRingsManager.h:140
bool myShowForSelected
Definition: rangeRingsManager.h:143
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
makVrv::event_signal< void()> signal_showPhysicalFootprintChanged
Definition: rangeRingsManager.h:301
const makVrv::DtRecordSettingsBackupInterface * settingsBackup() const
Definition: rangeRingsManager.h:175
std::string mySectorSizeProperty
Definition: rangeRingsManager.h:152
makVrv::event_signal< void(std::string, bool)> signal_attackAnimationForRingChanged
Definition: rangeRingsManager.h:297
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
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
A signaler for the shared interest management settings.
Definition: rangeRingsManager.h:269
virtual void getSplitRecord(std::vector< DtRangeRingsSettingsRecord > &rec, std::vector< std::string > &fileNames)
To support writing element definitions in folders as multiple files not implemented.
Definition: rangeRingsManager.h:199
The event queue interface is a cross thread event queue used to emit event_signal across thread bound...
Definition: DtEventQueueInterface.h:27
bool myShowEntityNameLabel
Definition: rangeRingsManager.h:139
makVrv::DtRecordSettingsBackupInterface * settingsBackup()
Definition: rangeRingsManager.h:180
Contains makVrv::DtVirtualBaseClass class.
virtual void getSplitRecord(std::vector< DtRangeRingsSettingsRecord > &rec, std::vector< std::string > &fileNames)
To support writing element definitions in folders as multiple files not implemented.
Definition: rangeRingsManager.h:100
bool myFill2D
Definition: rangeRingsManager.h:136
Contains the DtSharedSettings class declaration.
std::map< std::string, bool > myAttackAnimationEnabled
Definition: rangeRingsManager.h:151
a write settings lock on a setting object. The object can be read and modified, but no other threads ...
Definition: DtWriteSettingsLock.h:47
std::map< std::string, bool > myRequested
Definition: rangeRingsManager.h:150
DtRangeRingsSettingsRecord::ColorOptions myColorOptions
Definition: rangeRingsManager.h:148
double mySphereOpacityModifier
Definition: rangeRingsManager.h:146
makVrv::event_signal< void(std::string, bool)> signal_visibilityChanged
Definition: rangeRingsManager.h:294
bool myShowPhysicalFootprint
Definition: rangeRingsManager.h:144
makVrv::event_signal< void(bool)> signal_rangeSphereToggled
Definition: rangeRingsManager.h:293
bool myShowWeaponNameLabel
Definition: rangeRingsManager.h:138
The Master DtRangeRingsManager.
Definition: rangeRingsManager.h:159
makVrv::event_signal< void(double)> signal_sphereOpacityModifierChanged
Definition: rangeRingsManager.h:302
makVrv::DtDe & myDe
Definition: rangeRingsManager.h:263
Contains makVrv::DtUniqueID type.
virtual void addRecords(DtRangeRingsSettingsRecord &recs, DtRangeRingsSettingsRecord &combinedRec)
To support writing element definitions in folders as multiple files not implemented.
Definition: rangeRingsManager.h:204
makVrv::event_signal< void(bool)> signal_fill2DChanged
Definition: rangeRingsManager.h:292
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:76
DT_DLL_terrainCS bool operator!=(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
Definition: rangeRingsSettingsRecord.h:29
The makVrv::DtRecordSettingsBackupInterface provides an interface to record-based backups...
Definition: DtRecordSettingsBackup.h:23
std::set< std::string > myNewOptionRequested
Definition: rangeRingsManager.h:155
std::map< std::string, ColorOption > ColorOptions
Definition: rangeRingsSettingsRecord.h:89
makVrv::DtRecordSettingsBackupInterface * mySettingsBackup
Definition: rangeRingsManager.h:264
makVrv::event_signal< void()> signal_labelSettingsChanged
Definition: rangeRingsManager.h:295
bool myShowByDefault
Definition: rangeRingsManager.h:142
virtual void addRecords(DtRangeRingsSettingsRecord &recs, DtRangeRingsSettingsRecord &combinedRec)
To support writing element definitions in folders as multiple files not implemented.
Definition: rangeRingsManager.h:105
makVrv::event_signal< void()> signal_showByDefaultChanged
Definition: rangeRingsManager.h:299
makVrv::event_signal< void()> signal_showForSelectedChanged
Definition: rangeRingsManager.h:300

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)