VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSharedDisplayUnitsSettings.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright (c) 2012 MAK Technologies, Inc.
3  * All rights reserved.
4  ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 
16 
18 
20 #include <vrvUtil/DtUnicode.h>
21 
22 #include <vector>
23 
24 namespace makVrv
25 {
26 
27  class DtCoordinateSystem;
29 
32 
36  {
37  public:
38 
45 
46  struct UnitEntry
47  {
51 
52  UnitEntry( DtUnicode name, DtUnicode notation, int decimals )
53  {
54  myUnitname = name;
55  myNotation = notation;
56  myDecimals = decimals;
57  }
58  };
59 
61  {
62  std::vector<UnitEntry> myUnits;
64 
66  : myCurrentIndex( 0 )
67  {
68  }
69 
70  std::string currentDisplayUnitNotation() const
71  {
72  std::string str;
73  myUnits[myCurrentIndex].myNotation.toUtf8(str);
74  return str;
75  }
76  };
77 
78  typedef boost::unordered_map<CoordSys, int> CoordSysDecimalsMap;
79  typedef boost::unordered_map<CoordSys, DtUnicode> CoordSysNotationsMap;
80 
82  {
87  : myCurrentIndex( makArchives::DtDisplayUnitsSettingsRecord::CoordSysDatabase )
88  {
89  }
90  };
91 
94 
97 
98  void setDisplayUnitAttributes( DtUnitConverterCollection::DisplayUnitType attr,
99  const DisplayAttributes& data );
100 
107  bool getDisplayUnitAttributes(
109  DisplayAttributes& value ) const;
110 
115  DisplayAttributes* findDisplayUnitAttributes(
117 
123  const DisplayAttributes* findDisplayUnitAttributes(
125 
127  void setCoordinateSystemAttributes( const CoordinateSystemAttributes& data );
128 
130  CoordinateSystemAttributes* coordSysAttributes();
131 
133  const CoordinateSystemAttributes* coordinateSystemAttributes() const;
134 
136  void getCoordinateSystemAttributes( CoordinateSystemAttributes& csAttr ) const;
137 
140 
141  void setCoordinateSystem( CoordSys cs );
142  void setDistanceUnits( DistanceUnits distUnits );
143  void setAltitudeUnits( DistanceUnits altUnits );
144  void setVelocityUnits( VelocityUnits velocityUnits );
145  void setOrientationUnits( OrientationUnits oriUnits );
146  void setAccelerationUnits( AccelerationUnits accelUnits );
147  void setRotationalVelocityUnits( RotVelocityUnits wUnits );
148 
149  void setCoordinateSystemDecimals( CoordSys cs, int decimals );
150  void setDistanceUnitDecimals( DistanceUnits distUnit, int decimals );
151  void setAltitudeUnitDecimals( DistanceUnits altUnit, int decimals );
152  void setVelocityUnitDecimals( VelocityUnits velocityUnit, int decimals );
153  void setOrientationUnitDecimals( OrientationUnits oriUnit, int decimals );
154  void setAccelerationUnitDecimals( AccelerationUnits accelUnit, int decimals );
155  void setRotationalVelocityUnitDecimals( RotVelocityUnits wUnit, int decimals );
156 
158 
161 
162  int coordinateSystemDecimals( CoordSys cs ) const;
163  int distanceUnitDecimals( DistanceUnits distUnit ) const;
164  int altitudeUnitDecimals( DistanceUnits altUnit ) const;
165  int velocityUnitDecimals( VelocityUnits velocityUnit ) const;
166  int orientationUnitDecimals( OrientationUnits oriUnit ) const;
167  int accelerationUnitDecimals( AccelerationUnits accelUnit ) const;
168  int rotationalVelocityUnitDecimals( RotVelocityUnits wUnit ) const;
169 
170  DtUnicode coordinateSystemNotation( CoordSys cs ) const;
171  DtUnicode distanceUnitNotation( DistanceUnits distUnit ) const;
172  DtUnicode altitudeUnitNotation( DistanceUnits altUnit ) const;
173  DtUnicode velocityUnitNotation( VelocityUnits velocityUnit ) const;
174  DtUnicode orientationUnitNotation( OrientationUnits oriUnit ) const;
175  DtUnicode accelerationUnitNotation( AccelerationUnits accelUnit ) const;
176  DtUnicode rotationalVelocityUnitNotation( RotVelocityUnits wUnit ) const;
177 
179 
182 
183  CoordSys currentCoordinateSystem() const;
184  DistanceUnits currentDistanceUnits() const;
185  DistanceUnits currentAltitudeUnits() const;
186  VelocityUnits currentVelocityUnits() const;
187  OrientationUnits currentOrientationUnits() const;
188  AccelerationUnits currentAccelerationUnits() const;
189  RotVelocityUnits currentRotationalVelocityUnits() const;
190 
191  int currentCoordinateSystemDecimals() const;
192  int currentDistanceUnitDecimals() const;
193  int currentAltitudeUnitDecimals() const;
194  int currentVelocityUnitDecimals() const;
195  int currentOrientationUnitDecimals() const;
196  int currentAccelerationUnitDecimals() const;
197  int currentRotationalVelocityUnitDecimals() const;
198 
199  DtUnicode currentCoordinateSystemNotation() const;
200  DtUnicode currentDistanceUnitNotation() const;
201  DtUnicode currentAltitudeUnitNotation() const;
202  DtUnicode currentVelocityUnitNotation() const;
203  DtUnicode currentOrientationUnitNotation() const;
204  DtUnicode currentAccelerationUnitNotation() const;
205  DtUnicode currentRotationalVelocityUnitNotation() const;
206 
208 
209  void coordinateSystemLabels( const DtCoordinateSystem& displayCS,
210  DtUnicode& x, DtUnicode& y, DtUnicode& z ) const;
211 
212  void coordinateSystemLabels( const DtCoordinateSystem& displayCS,
213  CoordSys coordSys,
214  DtUnicode& x, DtUnicode& y, DtUnicode& z ) const;
215 
216  DtUnicode xyUnitNotation(
217  const DtCoordinateSystem& displayCS ) const;
218 
219  DtUnicode xyUnitNotation( const DtCoordinateSystem& displayCS,
220  CoordSys coordSys ) const;
221 
222  DtUnicode zUnitNotation(
223  const DtCoordinateSystem& displayCS ) const;
224 
225  DtUnicode zUnitNotation( const DtCoordinateSystem& displayCS,
226  CoordSys coordSys ) const;
227 
231  std::vector<std::string> convertPositionToStringList(
232  const DtCoordinateSystem& displayCS,
233  CoordSys coordSys,
234  const DtVector& pos ) const;
235 
239  std::vector<std::string> convertPositionToStringList(
240  const DtCoordinateSystem& displayCS, const DtVector& pos ) const;
241 
244 
246  void setFromRecord( const makArchives::DtDisplayUnitsSettingsRecord& rec );
247 
249  void getRecord( makArchives::DtDisplayUnitsSettingsRecord& rec ) const;
250 
252  virtual const DtDisplayUnitsSettingsBackup* settingsBackup() const;
253 
255  virtual DtDisplayUnitsSettingsBackup* settingsBackup();
256 
258  virtual void backup();
259 
261 
262  protected:
263 
268 
272 
274  CoordSys currentCoordSysIndex() const;
275 
277  int currentCoordSysDecimals() const;
278 
281 
282  int currentDisplayUnitIndex(
284 
285  int currentDisplayUnitDecimals(
287 
288  DtUnicode currentDisplayUnitNotation(
290 
291  DtUnicode currentDisplayUnitName(
293 
294  void currentDisplayUnitData(
296  DtUnicode& name, DtUnicode& notation, int& decimals ) const;
297 
299 
300  std::string valueToText( double value, int decimals ) const;
301 
302  static std::string className();
303 
307  void initEntries();
308 
309  protected:
310 
312  typedef boost::unordered_map<DtUnitConverterCollection::DisplayUnitType,
314 
316 
318 
320 
321  };
322 
323 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)