VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfExtendedIntervisibilitySettings.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 #include <boost/signals2.hpp>
12 
13 namespace makVrv
14 {
15  class DtDe;
16 }
17 
18 #define DtIntervisibilitySettingsLine "line"
19 #define DtIntervisibilitySettingsFan "fan"
20 #define DtIntervisibilitySettingsObjectFan "object_fan"
21 
22 namespace makVrf
23 {
27  {
28  public:
29  struct Color
30  {
31  Color() : r(0.0f), g(0.0f), b(0.0f), a(0.0f) {};
32  Color(unsigned int color)
33  {
34  r = ((float)COLOR_R(color) / 255.0f);
35  g = ((float)COLOR_G(color) / 255.0f);
36  b = ((float)COLOR_B(color) / 255.0f);
37  a = ((float)COLOR_A(color) / 255.0f);
38  }
39 
40  explicit Color(unsigned int iR, unsigned int iG, unsigned int iB, unsigned int iA)
41  : r((float)iR / 255.0f)
42  , g((float)iG / 255.0f)
43  , b((float)iB / 255.0f)
44  , a((float)iA / 255.0f)
45  {
46  }
47 
48  explicit Color(float iR, float iG, float iB, float iA)
49  : r(iR)
50  , g(iG)
51  , b(iB)
52  , a(iA)
53  {
54  }
55 
56  Color(const Color& orig) : r(orig.r), g(orig.g), b(orig.b), a(orig.a) {};
57  Color& operator=(const Color& orig) { r = orig.r; g = orig.g; b = orig.b; a = orig.a; return* this; };
58  bool compare(float c1, float c2) const { return ((int)(c1 * 255.0f) == (int)(c2 * 255.0f)); };
59  bool operator==(const Color& orig) const { return (compare(r, orig.r) && compare(g, orig.g) && compare(b, orig.b) && compare(a, orig.a)); };
60  bool operator!=(const Color& orig) const { return !(*this == orig); };
61  unsigned int color() const
62  {
63  return COLOR_TO_INT((int)(r * 255.0f), (int)(g * 255.0f), (int)(b * 255.0f), (int)(a * 255.0f));
64  }
65 
66  float r, g, b, a;
67  };
68 
69  enum Flags
70  {
71  UseBackendForIntersections = 0x00000001,
72  IntersectTerrain = 0x00000002,
73  IntersectFeatures = 0x00000004,
74  IntersectEntities = 0x00000008,
75  WaitForServer = 0x00000010,
76 
77  Defaults = UseBackendForIntersections | IntersectTerrain
78  };
79 
81  {
84 
85  int flags;
86  double alpha;
89  unsigned int waitingForServerColor;
90 
91  friend class boost::serialization::access;
92 
94  {
95  return Color(COLOR_R(waitingForServerColor), COLOR_G(waitingForServerColor),
96  COLOR_B(waitingForServerColor), COLOR_A(waitingForServerColor));
97  }
98 
100  {
101  return ((flags & UseBackendForIntersections) != 0);
102  }
103 
104  bool intersectTerrain() const
105  {
106  return ((flags & IntersectTerrain) != 0);
107  }
108 
109  bool intersectFeatures() const
110  {
111  return ((flags & IntersectFeatures) != 0);
112  }
113 
114  bool intersectEntities() const
115  {
116  return ((flags & IntersectEntities) != 0);
117  }
118 
119  bool waitForServer() const
120  {
121  return ((flags & WaitForServer) != 0);
122  }
123 
125 
129  template<class Archive>
130  void serialize(Archive & ar, const unsigned int version)
131  {
132  ar & BOOST_SERIALIZATION_NVP(flags);
133  ar & BOOST_SERIALIZATION_NVP(waitTimeRequest);
134  ar & BOOST_SERIALIZATION_NVP(fanModeSamplingRate);
135  ar & BOOST_SERIALIZATION_NVP(waitingForServerColor);
136  }
137  };
138 
139  public:
142 
144 
146  virtual void setUseBackendForIntersections(const std::string& key, bool);
147  virtual bool useBackendForIntersections(const std::string& key) const;
148 
150  virtual void setIntersectTerrain(const std::string& key, bool);
151  virtual bool intersectTerrain(const std::string& key) const;
152 
154  virtual void setIntersectFeatures(const std::string& key, bool);
155  virtual bool intersectFeatures(const std::string& key) const;
156 
158  virtual void setIntersectEntities(const std::string& key, bool);
159  virtual bool intersectEntities(const std::string& key) const;
160 
162  virtual void setFanModeSamplingRate(const std::string& key, double);
163  virtual double fanModeSamplingRate(const std::string& key) const;
164 
166  virtual DtVrfGuiApplicationSetting* clone() const;
167 
169  virtual std::string classType() const;
170 
171  virtual const IntervisibilitySettings& settingsFor(const std::string& key) const;
172  virtual IntervisibilitySettings& settingsFor(const std::string& key);
173 
175  virtual void write(boost::archive::xml_oarchive& out, const unsigned int);
176  virtual void read(boost::archive::xml_iarchive& in, const unsigned int);
177 
181  virtual void setWaitTimeRequest(const std::string& key, double);
182  virtual double waitTimeRequest(const std::string& key) const;
183 
185  virtual void setWaitingForServerColor(const std::string& key, unsigned int);
186  virtual unsigned int waitingForServerColor(const std::string& key) const;
187 
188  virtual void setWaitForServer(const std::string& key, bool);
189  virtual bool waitForServer(const std::string& key) const;
190 
192  virtual int dataVersion() { return 1; };
193 
194  protected:
195  virtual void setFlag(const std::string& key, Flags, bool);
196  virtual bool flagSet(const std::string&, Flags) const;
197 
198  protected:
199  typedef std::map<std::string, IntervisibilitySettings> ExtendedSettings;
201  };
202 
207  {
208  public:
210 
212 
213  virtual const DtVrfExtendedIntervisibilitySettingsData::IntervisibilitySettings& settingsFor(const std::string& key) const;
214  virtual DtVrfExtendedIntervisibilitySettingsData::IntervisibilitySettings& settingsFor(const std::string& key);
215 
217  virtual void setUseBackendForIntersections(const std::string& key, bool);
218  virtual bool useBackendForIntersections(const std::string& key) const;
219 
221  virtual void setIntersectTerrain(const std::string& key, bool);
222  virtual bool intersectTerrain(const std::string& key) const;
223 
225  virtual void setIntersectFeatures(const std::string& key, bool);
226  virtual bool intersectFeatures(const std::string& key) const;
227 
229  virtual void setIntersectEntities(const std::string& key, bool);
230  virtual bool intersectEntities(const std::string& key) const;
231 
235  virtual void setWaitTimeRequest(const std::string& key, double);
236  virtual double waitTimeRequest(const std::string& key) const;
237 
238  static DtVrfExtendedIntervisibilitySettings& instance( makVrv::DtDe& de );
239  static void registerInstance(makVrv::DtDe&, DtVrfExtendedIntervisibilitySettings*);
240 
242  virtual void setWaitingForServerColor(const std::string&, unsigned int);
243  virtual unsigned int waitingForServerColor(const std::string&) const;
244 
246  virtual void setFanModeSamplingRate(const std::string& key, double);
247  virtual double fanModeSamplingRate(const std::string& key) const;
248 
249  virtual void setWaitForServer(const std::string&, bool);
250  virtual bool waitForServer(const std::string&) const;
251 
253  boost::signals2::signal<void (const std::string&, DtVrfExtendedIntervisibilitySettingsData::IntervisibilitySettings)> signal_extendedIntervisibilityOptionsChanged;
254 
255  protected:
257  };
258 }
double waitTimeRequest
Definition: vrfExtendedIntervisibilitySettings.h:87
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: vrfExtendedIntervisibilitySettings.h:130
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Definition: vrfExtendedIntervisibilitySettings.h:29
#define COLOR_B(c)
Definition: radarCoverageAltitudeSettings.h:32
bool useBackendForIntersections() const
Definition: vrfExtendedIntervisibilitySettings.h:99
unsigned int waitingForServerColor
Definition: vrfExtendedIntervisibilitySettings.h:89
Color(unsigned int iR, unsigned int iG, unsigned int iB, unsigned int iA)
Definition: vrfExtendedIntervisibilitySettings.h:40
int flags
Definition: vrfExtendedIntervisibilitySettings.h:85
bool intersectEntities() const
Definition: vrfExtendedIntervisibilitySettings.h:114
bool waitForServer() const
Definition: vrfExtendedIntervisibilitySettings.h:119
bool operator==(const Color &orig) const
Definition: vrfExtendedIntervisibilitySettings.h:59
Color()
Definition: vrfExtendedIntervisibilitySettings.h:31
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Color(const Color &orig)
Definition: vrfExtendedIntervisibilitySettings.h:56
unsigned int color() const
Definition: vrfExtendedIntervisibilitySettings.h:61
ExtendedSettings myExtendedSettings
Definition: vrfExtendedIntervisibilitySettings.h:200
Definition: vrfGuiApplicationSettings.h:37
float r
Definition: vrfExtendedIntervisibilitySettings.h:66
#define COLOR_TO_INT(r, g, b, a)
Simple map of altitude in meters and colors as ARGB as an unsigned interger.
Definition: radarCoverageAltitudeSettings.h:29
Color waitingForServerColorRGBA() const
Definition: vrfExtendedIntervisibilitySettings.h:93
makVrv::DtDe & myDe
Definition: vrfExtendedIntervisibilitySettings.h:256
float g
Definition: vrfExtendedIntervisibilitySettings.h:66
float b
Definition: vrfExtendedIntervisibilitySettings.h:66
bool intersectFeatures() const
Definition: vrfExtendedIntervisibilitySettings.h:109
DT_DLL_gdb bool intersectTerrain(DtTerrainDatabase &terrainDatabase, const DtVector &localLocation, DtChordIntersectionRecord &record, DtGdbNode::DtIntersectRecordType irtFlag, DtVectorNetworkRecord *vectorRecord, DtVectorNetworkIntersectionRecord *vectorIntersectionRecord)
Color(unsigned int color)
Definition: vrfExtendedIntervisibilitySettings.h:32
#define COLOR_G(c)
Definition: radarCoverageAltitudeSettings.h:31
Flags
Definition: vrfExtendedIntervisibilitySettings.h:69
This class will be used to store the extended intervisibility states and will be referenced by the Dt...
Definition: vrfExtendedIntervisibilitySettings.h:26
bool operator!=(const Color &orig) const
Definition: vrfExtendedIntervisibilitySettings.h:60
#define COLOR_R(c)
Definition: radarCoverageAltitudeSettings.h:30
float a
Definition: vrfExtendedIntervisibilitySettings.h:66
bool intersectTerrain() const
Definition: vrfExtendedIntervisibilitySettings.h:104
#define COLOR_A(c)
Definition: radarCoverageAltitudeSettings.h:33
Color(float iR, float iG, float iB, float iA)
Definition: vrfExtendedIntervisibilitySettings.h:48
double fanModeSamplingRate
Definition: vrfExtendedIntervisibilitySettings.h:88
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
boost::signals2::signal< void(const std::string &, DtVrfExtendedIntervisibilitySettingsData::IntervisibilitySettings)> signal_extendedIntervisibilityOptionsChanged
Signal sent any time an option changes.
Definition: vrfExtendedIntervisibilitySettings.h:253
double alpha
Definition: vrfExtendedIntervisibilitySettings.h:86
Color & operator=(const Color &orig)
Definition: vrfExtendedIntervisibilitySettings.h:57
The DtVrfExtendedIntervisibilitySettings class will use the DtVrfGuiApplicationSettings class to keep...
Definition: vrfExtendedIntervisibilitySettings.h:206
virtual int dataVersion()
Override in subclass to version data.
Definition: vrfExtendedIntervisibilitySettings.h:192
bool compare(float c1, float c2) const
Definition: vrfExtendedIntervisibilitySettings.h:58
std::map< std::string, IntervisibilitySettings > ExtendedSettings
Definition: vrfExtendedIntervisibilitySettings.h:199
Definition: vrfExtendedIntervisibilitySettings.h:80

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)