VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vrfObjectDataState.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 
13 #include <vrfGuiCore/vrfGuiCore.h>
14 
15 #include <vrvCore/DtSimState.h>
16 #include <vrvCore/DtStateView.h>
20 #include <vrvUtil/DtMessage.h>
21 #include <vlutil/vlString.h>
22 #include <matrix/vlVector.h>
23 #include <vector>
24 #include <string>
25 
26 namespace makVrv
27 {
28  class DtMessage;
29 }
30 
31 namespace makVrf
32 {
34  {
35  int myType;
36  double myRange;
38  std::string myName;
39  int myColor;
40  std::vector<double> myWedgeSizes;
41 
42  void getColor(float& r, float& g, float& b, float& a) const
43  {
44  a = (float)((myColor & 0xFF000000) >> 24) / 255.0;
45  r = (float)((myColor & 0x00FF0000) >> 16) / 255.0f;
46  g = (float)((myColor & 0x0000FF00) >> 8) / 255.0f;
47  b = (float)(myColor & 0x000000FF) / 255.0f;
48  }
49 
50  bool operator==(const DtRangeItem& rhs) const
51  {
52  return ((myType == rhs.myType) &&
53  (myRange == rhs.myRange) &&
54  (myName == rhs.myName) &&
55  (myColor == rhs.myColor) &&
56  (myWedgeSizes == rhs.myWedgeSizes) &&
57  (myOffsetPosition == rhs.myOffsetPosition));
58  }
59  };
60 
63  {
64  public:
68 
70  virtual ~DtVrfObjectDataState();
71 
72  bool operator==(const DtVrfObjectDataState& rhs) const;
73 
74  bool operator!=(const DtVrfObjectDataState& rhs) const
75  {
76  return !(*this == rhs);
77  }
78 
79  public:
80  std::string myObjectType;
81  std::string myObjectLabel;
82  std::string myEchelonIdString;
83  std::string myOverlayParent;
84  std::string myUUID;
85  std::map<std::string, std::string> myExtendedData;
93  bool myHasPlan;
96  std::string myRulesOfEngagement;
99  std::vector<DtRangeItem> myRangeItems;
100  };
101 
104 
107 
110 
113 
114  template <typename T> makVrv::DtMessage& operator << (makVrv::DtMessage& msg, const std::vector<T>& t)
115  {
116  msg << t.size();
117 
118  typename std::vector<T>::const_iterator iter = t.begin();
119 
120  while (iter != t.end())
121  {
122  msg << (*iter);
123  ++iter;
124  }
125 
126  return msg;
127  }
128 
129  template <typename K, typename V> makVrv::DtMessage& operator << (makVrv::DtMessage& msg, const std::map<K, V>& t)
130  {
131  msg << t.size();
132 
133  typename std::map<K, V>::const_iterator iter = t.begin();
134 
135  while (iter != t.end())
136  {
137  msg << iter->first;
138  msg << iter->second;
139  ++iter;
140  }
141 
142  return msg;
143  }
144 
145  template <typename T> makVrv::DtMessage& operator >> (makVrv::DtMessage& msg, std::vector<T>& t)
146  {
147  size_t iLimit;
148  size_t i;
149  msg >> iLimit;
150 
151  for (i = 0; i < iLimit; i++)
152  {
153  T item;
154 
155  msg >> item;
156  t.push_back(item);
157  }
158 
159  return msg;
160  }
161 
162  template <typename K, typename V> makVrv::DtMessage& operator >> (makVrv::DtMessage& msg, std::map<K, V>& t)
163  {
164  size_t iLimit;
165  size_t i;
166  msg >> iLimit;
167 
168  for (i = 0; i < iLimit; i++)
169  {
170  K key;
171  V value;
172 
173  msg >> key;
174  msg >> value;
175  t[key] = value;
176  }
177 
178  return msg;
179  }
180 
183 
186 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)