VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 <boost/unordered_map.hpp>
23 
24 #include <vector>
25 
26 namespace makVrv
27 {
28 
29  class DtCoordinateSystem;
31 
34 
38  {
39  public:
40 
47 
48  struct UnitEntry
49  {
53 
54  UnitEntry( DtUnicode name, DtUnicode notation, int decimals )
55  {
56  myUnitname = name;
57  myNotation = notation;
58  myDecimals = decimals;
59  }
60  };
61 
63  {
64  std::vector<UnitEntry> myUnits;
66 
68  : myCurrentIndex( 0 )
69  {
70  }
71 
72  std::string currentDisplayUnitNotation() const
73  {
74  std::string str;
75  myUnits[myCurrentIndex].myNotation.toUtf8(str);
76  return str;
77  }
78  };
79 
80  typedef boost::unordered_map<CoordSys, int> CoordSysDecimalsMap;
81  typedef boost::unordered_map<CoordSys, DtUnicode> CoordSysNotationsMap;
82 
84  {
89  : myCurrentIndex( makArchives::DtDisplayUnitsSettingsRecord::CoordSysDatabase )
90  {
91  }
92  };
93 
96 
99 
100  void setDisplayUnitAttributes( DtUnitConverterCollection::DisplayUnitType attr,
101  const DisplayAttributes& data );
102 
109  bool getDisplayUnitAttributes(
111  DisplayAttributes& value ) const;
112 
117  DisplayAttributes* findDisplayUnitAttributes(
119 
125  const DisplayAttributes* findDisplayUnitAttributes(
127 
129  void setCoordinateSystemAttributes( const CoordinateSystemAttributes& data );
130 
132  CoordinateSystemAttributes* coordSysAttributes();
133 
135  const CoordinateSystemAttributes* coordinateSystemAttributes() const;
136 
138  void getCoordinateSystemAttributes( CoordinateSystemAttributes& csAttr ) const;
139 
142 
143  void setCoordinateSystem( CoordSys cs );
144  void setDistanceUnits( DistanceUnits distUnits );
145  void setAltitudeUnits( DistanceUnits altUnits );
146  void setVelocityUnits( VelocityUnits velocityUnits );
147  void setOrientationUnits( OrientationUnits oriUnits );
148  void setAccelerationUnits( AccelerationUnits accelUnits );
149  void setRotationalVelocityUnits( RotVelocityUnits wUnits );
150 
151  void setCoordinateSystemDecimals( CoordSys cs, int decimals );
152  void setDistanceUnitDecimals( DistanceUnits distUnit, int decimals );
153  void setAltitudeUnitDecimals( DistanceUnits altUnit, int decimals );
154  void setVelocityUnitDecimals( VelocityUnits velocityUnit, int decimals );
155  void setOrientationUnitDecimals( OrientationUnits oriUnit, int decimals );
156  void setAccelerationUnitDecimals( AccelerationUnits accelUnit, int decimals );
157  void setRotationalVelocityUnitDecimals( RotVelocityUnits wUnit, int decimals );
158 
160 
163 
164  int coordinateSystemDecimals( CoordSys cs ) const;
165  int distanceUnitDecimals( DistanceUnits distUnit ) const;
166  int altitudeUnitDecimals( DistanceUnits altUnit ) const;
167  int velocityUnitDecimals( VelocityUnits velocityUnit ) const;
168  int orientationUnitDecimals( OrientationUnits oriUnit ) const;
169  int accelerationUnitDecimals( AccelerationUnits accelUnit ) const;
170  int rotationalVelocityUnitDecimals( RotVelocityUnits wUnit ) const;
171 
172  DtUnicode coordinateSystemNotation( CoordSys cs ) const;
173  DtUnicode distanceUnitNotation( DistanceUnits distUnit ) const;
174  DtUnicode altitudeUnitNotation( DistanceUnits altUnit ) const;
175  DtUnicode velocityUnitNotation( VelocityUnits velocityUnit ) const;
176  DtUnicode orientationUnitNotation( OrientationUnits oriUnit ) const;
177  DtUnicode accelerationUnitNotation( AccelerationUnits accelUnit ) const;
178  DtUnicode rotationalVelocityUnitNotation( RotVelocityUnits wUnit ) const;
179 
181 
184 
185  CoordSys currentCoordinateSystem() const;
186  DistanceUnits currentDistanceUnits() const;
187  DistanceUnits currentAltitudeUnits() const;
188  VelocityUnits currentVelocityUnits() const;
189  OrientationUnits currentOrientationUnits() const;
190  AccelerationUnits currentAccelerationUnits() const;
191  RotVelocityUnits currentRotationalVelocityUnits() const;
192 
193  int currentCoordinateSystemDecimals() const;
194  int currentDistanceUnitDecimals() const;
195  int currentAltitudeUnitDecimals() const;
196  int currentVelocityUnitDecimals() const;
197  int currentOrientationUnitDecimals() const;
198  int currentAccelerationUnitDecimals() const;
199  int currentRotationalVelocityUnitDecimals() const;
200 
201  DtUnicode currentCoordinateSystemNotation() const;
202  DtUnicode currentDistanceUnitNotation() const;
203  DtUnicode currentAltitudeUnitNotation() const;
204  DtUnicode currentVelocityUnitNotation() const;
205  DtUnicode currentOrientationUnitNotation() const;
206  DtUnicode currentAccelerationUnitNotation() const;
207  DtUnicode currentRotationalVelocityUnitNotation() const;
208 
210 
211  void coordinateSystemLabels( const DtCoordinateSystem& displayCS,
212  DtUnicode& x, DtUnicode& y, DtUnicode& z ) const;
213 
214  void coordinateSystemLabels( const DtCoordinateSystem& displayCS,
215  CoordSys coordSys,
216  DtUnicode& x, DtUnicode& y, DtUnicode& z ) const;
217 
218  DtUnicode xyUnitNotation(
219  const DtCoordinateSystem& displayCS ) const;
220 
221  DtUnicode xyUnitNotation( const DtCoordinateSystem& displayCS,
222  CoordSys coordSys ) const;
223 
224  DtUnicode zUnitNotation(
225  const DtCoordinateSystem& displayCS ) const;
226 
227  DtUnicode zUnitNotation( const DtCoordinateSystem& displayCS,
228  CoordSys coordSys ) const;
229 
233  std::vector<std::string> convertPositionToStringList(
234  const DtCoordinateSystem& displayCS,
235  CoordSys coordSys,
236  const DtVector& pos ) const;
237 
241  std::vector<std::string> convertPositionToStringList(
242  const DtCoordinateSystem& displayCS, const DtVector& pos ) const;
243 
246 
248  void setFromRecord( const makArchives::DtDisplayUnitsSettingsRecord& rec );
249 
251  void getRecord( makArchives::DtDisplayUnitsSettingsRecord& rec ) const;
252 
254  virtual const DtDisplayUnitsSettingsBackup* settingsBackup() const;
255 
257  virtual DtDisplayUnitsSettingsBackup* settingsBackup();
258 
260  virtual void backup();
261 
263 
264  protected:
265 
270 
274 
276  CoordSys currentCoordSysIndex() const;
277 
279  int currentCoordSysDecimals() const;
280 
283 
284  int currentDisplayUnitIndex(
286 
287  int currentDisplayUnitDecimals(
289 
290  DtUnicode currentDisplayUnitNotation(
292 
293  DtUnicode currentDisplayUnitName(
295 
296  void currentDisplayUnitData(
298  DtUnicode& name, DtUnicode& notation, int& decimals ) const;
299 
301 
302  std::string valueToText( double value, int decimals ) const;
303 
304  static std::string className();
305 
309  void initEntries();
310 
311  protected:
312 
314  typedef boost::unordered_map<DtUnitConverterCollection::DisplayUnitType,
316 
318 
320 
322 
323  };
324 
325 }

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)