VR-Forces 4.10 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) 2020 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 #include <unordered_map>
24 
25 namespace makVrv
26 {
27 
28  class DtCoordinateSystem;
30 
33 
162  {
163  public:
164 
165  friend class DisplayAttributes;
166 
176 
178  struct UnitEntry
179  {
180  DtUnicode myUnitName; // The display name for this unit of measurement
181  DtUnicode myNotation; // The notation for this unit of measurement
182  unsigned int myEnumerationValue;
183 
184  UnitEntry( DtUnicode name, DtUnicode notation, unsigned int enumValue )
185  : myUnitName( name )
186  , myNotation( notation )
187  , myEnumerationValue( enumValue )
188  {
189  // intentional noop
190  }
191  };
192 
194 
196  typedef std::vector<UnitEntry> Units;
197 
202  typedef std::unordered_map<makArchives::DtDisplayUnitsSettingsRecord::DisplayUnitType, Units> UnitMap;
203 
205  typedef std::map<std::string, DisplayAttributes> DisplayUnitMap;
206 
208  typedef std::unordered_map<std::string, DisplayUnitMap> DisplayUnitCollectionMap;
209 
221 
240 
241  public:
243  virtual ~DtSharedDisplayUnitsSettings();
244 
247 
256  void setUnitAttributes(
258  const Units& data);
259 
264  bool getUnitAttributes(
266  Units& value) const;
267 
269  const DisplayUnitCollectionMap& displayUnitCollectionMap() const;
270 
272  DisplayUnitCollectionMap& displayUnitCollectionMap();
273 
278  void setDisplayUnitAttributes(
279  const DtUnicode& displayUnitCollectionName,
280  const DtUnicode& displayUnitName,
281  const DisplayAttributes& data );
282 
288  bool getDisplayUnitAttributes(
289  const DtUnicode& displayUnitCollectionName,
290  const DtUnicode& displayUnitName,
291  DisplayAttributes& value ) const;
292 
297  DisplayAttributes* findDisplayUnitAttributes(
298  const DtUnicode& displayUnitCollectionName,
299  const DtUnicode& displayUnitName );
300 
305  const DisplayAttributes* findDisplayUnitAttributes(
306  const DtUnicode& displayUnitCollectionName,
307  const DtUnicode& displayUnitName ) const;
308 
312  void setSuppressMagneticNorthNotationEnabled(bool isEnabled);
313 
316  bool isSuppressMagneticNorthNotationEnabled() const;
317 
319 
322 
327  void setCoordinateSystem( CoordSys cs );
328 
330 
333 
344  void setDisplayUnitUnit(
345  const DtUnicode& displayUnitCollectionName,
346  const DtUnicode& displayUnitName,
347  unsigned int unitEnumerationValue
348  );
349 
354  void setDisplayUnitDecimals(
355  const DtUnicode& displayUnitCollectionName,
356  const DtUnicode& displayUnitName,
357  unsigned int decimals
358  );
359 
369  unsigned int displayUnitUnit(
370  const DtUnicode& displayUnitCollectionName,
371  const DtUnicode& displayUnitName) const;
372 
378  unsigned int displayUnitDecimals(
379  const DtUnicode& displayUnitCollectionName,
380  const DtUnicode& displayUnitName) const;
381 
387  DtUnicode displayUnitNotation(
388  const DtUnicode& displayUnitCollectionName,
389  const DtUnicode& displayUnitName) const;
390 
392 
395  DtUnicode coordinateSystemNotation(CoordSys cs) const;
396  DtUnicode distanceUnitNotation(DistanceUnits distUnit) const;
397  DtUnicode velocityUnitNotation(VelocityUnits velocityUnit) const;
398  DtUnicode orientationUnitNotation(OrientationUnits oriUnit) const;
399  DtUnicode accelerationUnitNotation(AccelerationUnits accelUnit) const;
400  DtUnicode rotationalVelocityUnitNotation(RotVelocityUnits wUnit) const;
401  DtUnicode temperatureUnitNotation(TemperatureUnits tempUnit) const;
402  DtUnicode pressureUnitNotation(PressureUnits pressureUnit) const;
403  DtUnicode northUnitNotation(NorthUnits northUnit) const;
405 
408 
409  CoordSys currentCoordinateSystem() const;
410  int currentCoordinateSystemDecimals() const;
411  DtUnicode currentCoordinateSystemNotation() const;
412 
414 
423  void coordinateSystemLabels( const DtCoordinateSystem& displayCS,
424  DtUnicode& x, DtUnicode& y, DtUnicode& z ) const;
425 
435  void coordinateSystemLabels( const DtCoordinateSystem& displayCS,
436  CoordSys coordSys,
437  DtUnicode& x, DtUnicode& y, DtUnicode& z ) const;
438 
439  DtUnicode xyUnitNotation(
440  const DtCoordinateSystem& displayCS ) const;
441 
442  DtUnicode xyUnitNotation( const DtCoordinateSystem& displayCS,
443  CoordSys coordSys ) const;
444 
445  DtUnicode zUnitNotation(
446  const DtCoordinateSystem& displayCS ) const;
447 
448  DtUnicode zUnitNotation( const DtCoordinateSystem& displayCS,
449  CoordSys coordSys ) const;
450 
455  std::vector<DtUnicode> convertPositionToNotatedStringList(
456  const DtCoordinateSystem& displayCS,
457  CoordSys coordSys,
458  const DtVector& pos,
459  DistanceUnits coordinateSystemUnit,
460  unsigned int coordinateSystemDecimals,
461  DistanceUnits altitudeUnit,
462  unsigned int altitudeDecimals ) const;
463 
467  std::vector<DtUnicode> convertPositionToNotatedStringList(
468  const DtCoordinateSystem& displayCS,
469  const DtVector& pos,
470  DistanceUnits coordinateSystemUnit,
471  unsigned int coordinateSystemDecimals,
472  DistanceUnits altitudeUnit,
473  unsigned int altitudeDecimals ) const;
474 
478  std::vector<std::string> convertPositionToStringList(
479  const DtCoordinateSystem& displayCS,
480  CoordSys coordSys,
481  const DtVector& pos,
482  DistanceUnits coordinateSystemUnit,
483  unsigned int coordinateSystemDecimals,
484  DistanceUnits altitudeUnit,
485  unsigned int altitudeDecimals ) const;
486 
490  std::vector<std::string> convertPositionToStringList(
491  const DtCoordinateSystem& displayCS, const DtVector& pos,
492  DistanceUnits coordinateSystemUnit,
493  unsigned int coordinateSystemDecimals,
494  DistanceUnits altitudeUnit,
495  unsigned int altitudeDecimals ) const;
496 
499 
501  void setFromRecord( const makArchives::DtDisplayUnitsSettingsRecord& rec );
502 
504  void getRecord( makArchives::DtDisplayUnitsSettingsRecord& rec ) const;
505 
507  virtual const DtDisplayUnitsSettingsBackup* settingsBackup() const;
508 
510  virtual DtDisplayUnitsSettingsBackup* settingsBackup();
511 
513  virtual void backup();
514 
516 
517  protected:
518 
523 
527 
529  CoordSys currentCoordSysIndex() const;
530 
532  int currentCoordSysDecimals() const;
533 
534  std::string valueToText( double value, int decimals ) const;
535 
536  static const std::string& className();
537 
541  void initEntries();
542 
543  protected:
544 
547 
549 
551 
552  };
553 
554 }
VelocityUnits
Enumeration of the different velocity units.
Definition: DtDisplayUnitsSettingsRecord.h:72
a read settings lock on a setting object.
Definition: DtReadSettingsLock.h:48
bool mySurpressMagneticNorthNotationEnabled
Definition: DtSharedDisplayUnitsSettings.h:548
Attributes for a &#39;Unit&#39; of measurement, e.g. Meters or Minutes.
Definition: DtSharedDisplayUnitsSettings.h:178
DtSharedRecordSettingsBackup< DtSharedDisplayUnitsSettings, makArchives::DtDisplayUnitsSettingsRecord > DtDisplayUnitsSettingsBackup
Definition: DtSharedDisplayUnitsSettings.h:29
A unicode string.
Definition: DtUnicode.h:33
makArchives::DtDisplayUnitsSettingsRecord::RotVelocityUnits RotVelocityUnits
Definition: DtSharedDisplayUnitsSettings.h:172
makArchives::DtDisplayUnitsSettingsRecord::CoordSys CoordSys
Definition: DtSharedDisplayUnitsSettings.h:167
UnitEntry(DtUnicode name, DtUnicode notation, unsigned int enumValue)
Definition: DtSharedDisplayUnitsSettings.h:184
UnitMap myUnits
Definition: DtSharedDisplayUnitsSettings.h:545
static const DtUnicode theAccelerationDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:228
static const DtUnicode theTemperatureDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:235
std::vector< UnitEntry > Units
A vector of unit names and unit notations.
Definition: DtSharedDisplayUnitsSettings.h:196
static const DtUnicode theSmallDistanceDisplayUnitName
The DtUnicode names used for the display units.
Definition: DtSharedDisplayUnitsSettings.h:223
static const DtUnicode theDefaultDisplayUnitCollectionName
Definition: DtSharedDisplayUnitsSettings.h:213
static const DtUnicode theLifeFormDisplayUnitCollectionName
Definition: DtSharedDisplayUnitsSettings.h:216
static const DtUnicode theWeatherDisplayUnitCollectionName
Definition: DtSharedDisplayUnitsSettings.h:212
static const DtUnicode theAltitudeDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:225
std::unordered_map< makArchives::DtDisplayUnitsSettingsRecord::DisplayUnitType, Units > UnitMap
A mapping of display unit types to the unit of measurements that can measure that display unit type...
Definition: DtSharedDisplayUnitsSettings.h:202
NorthUnits
Enumeration of the different north units.
Definition: DtDisplayUnitsSettingsRecord.h:149
static const DtUnicode theSensorViewCoordinateSystemDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:232
static const DtUnicode theSpeedDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:226
static const DtUnicode theVisibilityDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:233
Contains the DtUnitConverterCollection class declaration.
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits OrientationUnits
Definition: DtSharedDisplayUnitsSettings.h:171
unsigned int myEnumerationValue
Definition: DtSharedDisplayUnitsSettings.h:182
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
std::unordered_map< std::string, DisplayUnitMap > DisplayUnitCollectionMap
A mapping of a display unit collection&#39;s name to the collection of display units. ...
Definition: DtSharedDisplayUnitsSettings.h:208
makArchives::DtDisplayUnitsSettingsRecord::AccelerationUnits AccelerationUnits
Definition: DtSharedDisplayUnitsSettings.h:170
std::map< std::string, DisplayAttributes > DisplayUnitMap
A mapping of a display unit&#39;s name to the attributes for that display unit.
Definition: DtSharedDisplayUnitsSettings.h:205
The base class for all shared settings.
Definition: DtSharedSettings.h:45
PressureUnits
Enumeration of the different pressure units.
Definition: DtDisplayUnitsSettingsRecord.h:136
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:56
makArchives::DtDisplayUnitsSettingsRecord::PressureUnits PressureUnits
Definition: DtSharedDisplayUnitsSettings.h:174
RotVelocityUnits
Enumeration of the different rotational velocity units.
Definition: DtDisplayUnitsSettingsRecord.h:111
static const DtUnicode theHeadingDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:230
static const DtUnicode theRotationalVelocityDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:227
static const DtUnicode theFixedWingDisplayUnitCollectionName
Definition: DtSharedDisplayUnitsSettings.h:214
static const DtUnicode theOrientationDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:229
static const DtUnicode theDirectionDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:239
DisplayUnitCollectionMap myDisplayUnits
Definition: DtSharedDisplayUnitsSettings.h:546
Attributes for a &#39;Display Unit&#39;.
Definition: DtDisplayUnitsSettingsRecord.h:177
static const DtUnicode theRotaryWingDisplayUnitCollectionName
Definition: DtSharedDisplayUnitsSettings.h:215
static const DtUnicode theDistanceDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:224
static const DtUnicode theApplicationDisplayUnitCollectionName
The DtUnicode names used for the display unit collections.
Definition: DtSharedDisplayUnitsSettings.h:211
makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits DistanceUnits
Definition: DtSharedDisplayUnitsSettings.h:168
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
static const DtUnicode theCoordinateSystemDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:231
Contains the DtSharedSettings class declaration.
static const DtUnicode theWindSpeedDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:238
DtUnicode myNotation
Definition: DtSharedDisplayUnitsSettings.h:181
static const DtUnicode theSpaceDisplayUnitCollectionName
Definition: DtSharedDisplayUnitsSettings.h:220
a write settings lock on a setting object.
Definition: DtWriteSettingsLock.h:47
makArchives::DtDisplayUnitsSettingsRecord::NorthUnits NorthUnits
Definition: DtSharedDisplayUnitsSettings.h:175
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:41
OrientationUnits
Enumeration of the different orientation units.
Definition: DtDisplayUnitsSettingsRecord.h:101
DtDisplayUnitsSettingsBackup * mySettingsBackup
Definition: DtSharedDisplayUnitsSettings.h:550
DisplayUnitType
Enumeration of the different display unit types.
Definition: DtDisplayUnitsSettingsRecord.h:159
TemperatureUnits
Enumeration of the different temperature units.
Definition: DtDisplayUnitsSettingsRecord.h:125
DtUnicode myUnitName
Definition: DtSharedDisplayUnitsSettings.h:180
makArchives::DtDisplayUnitsSettingsRecord::VelocityUnits VelocityUnits
Definition: DtSharedDisplayUnitsSettings.h:169
static const DtUnicode theSurfaceDisplayUnitCollectionName
Definition: DtSharedDisplayUnitsSettings.h:218
makArchives::DtDisplayUnitsSettingsRecord::DisplayUnitAttributes DisplayAttributes
Definition: DtSharedDisplayUnitsSettings.h:193
Contains the DtDisplayUnitsSettingsRecord class declaration.
This class will maintain information about the units, display units, and coordinate systems used in V...
Definition: DtSharedDisplayUnitsSettings.h:161
static const DtUnicode thePressureDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:234
static const DtUnicode theGroundDisplayUnitCollectionName
Definition: DtSharedDisplayUnitsSettings.h:217
static const DtUnicode thePrecipitationDepthDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:236
The makVrv::DtSharedRecordSettingsBackup is a templaced class that settings records will use in order...
Definition: DtRecordSettingsBackup.h:197
AccelerationUnits
Enumeration of the different acceleration units.
Definition: DtDisplayUnitsSettingsRecord.h:88
static const DtUnicode thePrecipitationRateDisplayUnitName
Definition: DtSharedDisplayUnitsSettings.h:237
makArchives::DtDisplayUnitsSettingsRecord::TemperatureUnits TemperatureUnits
Definition: DtSharedDisplayUnitsSettings.h:173
static const DtUnicode theSubsurfaceDisplayUnitCollectionName
Definition: DtSharedDisplayUnitsSettings.h:219
Contains the display units shared settings.
Definition: DtDisplayUnitsSettingsRecord.h:25
Contains DLL export macros.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)