VR-Forces 4.8 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  : myUnitname(name)
54  , myNotation(notation)
55  , myDecimals(decimals)
56  {
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 const 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 }
VelocityUnits
Enumeration of the different velocity units.
Definition: DtDisplayUnitsSettingsRecord.h:64
a read settings lock on a setting object.
Definition: DtReadSettingsLock.h:51
Definition: DtSharedDisplayUnitsSettings.h:46
DtSharedRecordSettingsBackup< DtSharedDisplayUnitsSettings, makArchives::DtDisplayUnitsSettingsRecord > DtDisplayUnitsSettingsBackup
Definition: DtSharedDisplayUnitsSettings.h:28
A unicode string.
Definition: DtUnicode.h:33
makArchives::DtDisplayUnitsSettingsRecord::RotVelocityUnits RotVelocityUnits
Definition: DtSharedDisplayUnitsSettings.h:44
makArchives::DtDisplayUnitsSettingsRecord::CoordSys CoordSys
Definition: DtSharedDisplayUnitsSettings.h:39
boost::unordered_map< DtUnitConverterCollection::DisplayUnitType, DisplayAttributes > EntryMap
Map type that maps display unit types to its display attributes.
Definition: DtSharedDisplayUnitsSettings.h:313
CoordSys myCurrentIndex
Definition: DtSharedDisplayUnitsSettings.h:85
Contains the DtUnitConverterCollection class declaration.
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:45
makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits OrientationUnits
Definition: DtSharedDisplayUnitsSettings.h:43
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
int myDecimals
Definition: DtSharedDisplayUnitsSettings.h:50
makArchives::DtDisplayUnitsSettingsRecord::AccelerationUnits AccelerationUnits
Definition: DtSharedDisplayUnitsSettings.h:42
The base class for all shared settings.
Definition: DtSharedSettings.h:45
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:53
std::string currentDisplayUnitNotation() const
Definition: DtSharedDisplayUnitsSettings.h:70
CoordinateSystemAttributes myCoordSysEntries
Definition: DtSharedDisplayUnitsSettings.h:317
RotVelocityUnits
Enumeration of the different rotational velocity units.
Definition: DtDisplayUnitsSettingsRecord.h:95
Definition: DtSharedDisplayUnitsSettings.h:81
EntryMap myEntries
Definition: DtSharedDisplayUnitsSettings.h:315
CoordinateSystemAttributes()
Definition: DtSharedDisplayUnitsSettings.h:86
makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits DistanceUnits
Definition: DtSharedDisplayUnitsSettings.h:40
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::unordered_map< CoordSys, int > CoordSysDecimalsMap
Definition: DtSharedDisplayUnitsSettings.h:78
Contains the DtSharedSettings class declaration.
DisplayAttributes()
Definition: DtSharedDisplayUnitsSettings.h:65
DtUnicode myNotation
Definition: DtSharedDisplayUnitsSettings.h:49
a write settings lock on a setting object.
Definition: DtWriteSettingsLock.h:50
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
OrientationUnits
Enumeration of the different orientation units.
Definition: DtDisplayUnitsSettingsRecord.h:87
DtDisplayUnitsSettingsBackup * mySettingsBackup
Definition: DtSharedDisplayUnitsSettings.h:319
int myCurrentIndex
Definition: DtSharedDisplayUnitsSettings.h:63
CoordSysDecimalsMap myDecimals
Definition: DtSharedDisplayUnitsSettings.h:83
Definition: DtSharedDisplayUnitsSettings.h:60
makArchives::DtDisplayUnitsSettingsRecord::VelocityUnits VelocityUnits
Definition: DtSharedDisplayUnitsSettings.h:41
CoordSysNotationsMap myNotations
Definition: DtSharedDisplayUnitsSettings.h:84
DtUnicode myUnitname
Definition: DtSharedDisplayUnitsSettings.h:48
Contains the DtDisplayUnitsSettingsRecord class declaration.
This class will maintain information about the display units used.
Definition: DtSharedDisplayUnitsSettings.h:35
DisplayUnitType
Indicates a type of display unit.
Definition: DtUnitConverterCollection.h:36
std::vector< UnitEntry > myUnits
Definition: DtSharedDisplayUnitsSettings.h:62
The makVrv::DtSharedRecordSettingsBackup is a templaced class that settings records will use in order...
Definition: DtRecordSettingsBackup.h:200
boost::unordered_map< CoordSys, DtUnicode > CoordSysNotationsMap
Definition: DtSharedDisplayUnitsSettings.h:79
AccelerationUnits
Enumeration of the different acceleration units.
Definition: DtDisplayUnitsSettingsRecord.h:76
Contains the display units shared settings.
Definition: DtDisplayUnitsSettingsRecord.h:25
UnitEntry(DtUnicode name, DtUnicode notation, int decimals)
Definition: DtSharedDisplayUnitsSettings.h:52
Contains DLL export macros.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)