VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDisplayUnitsSettingsManager.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 
15 
18 
19 namespace makVrv
20 {
21 
22  class DtDe;
23  class DtCoordinateDisplay;
24  class DtDisplayUnitsSettingsSynchronizerAgent;
25 
60  {
61  public:
62 
72 
75 
77  DtCoordinateDisplay* currentCoordinateDisplay();
78 
80  const DtCoordinateDisplay* currentCoordinateDisplay() const;
81 
84 
85  CoordSys currentCoordinateDisplaySystem() const;
86 
92  DistanceUnits currentDistanceUnit(
93  const DtUnicode& displayUnitCollectionName,
94  const DtUnicode& displayUnitName) const;
95 
101  VelocityUnits currentVelocityUnit(
102  const DtUnicode& displayUnitCollectionName,
103  const DtUnicode& displayUnitName) const;
104 
110  OrientationUnits currentOrientationUnit(
111  const DtUnicode& displayUnitCollectionName,
112  const DtUnicode& displayUnitName) const;
113 
119  NorthUnits currentNorthUnit(
120  const DtUnicode& displayUnitCollectionName,
121  const DtUnicode& displayUnitName) const;
122 
128  AccelerationUnits currentAccelerationUnit(
129  const DtUnicode& displayUnitCollectionName,
130  const DtUnicode& displayUnitName) const;
131 
137  RotVelocityUnits currentRotationalVelocityUnit(
138  const DtUnicode& displayUnitCollectionName,
139  const DtUnicode& displayUnitName) const;
140 
146  TemperatureUnits currentTemperatureUnit(
147  const DtUnicode& displayUnitCollectionName,
148  const DtUnicode& displayUnitName) const;
149 
155  PressureUnits currentPressureUnit(
156  const DtUnicode& displayUnitCollectionName,
157  const DtUnicode& displayUnitName) const;
158 
164  unsigned int displayUnitUnit(
165  const DtUnicode& displayUnitCollectionName,
166  const DtUnicode& displayUnitName) const;
167 
173  unsigned int displayUnitDecimals(
174  const DtUnicode& displayUnitCollectionName,
175  const DtUnicode& displayUnitName) const;
176 
182  DtUnicode displayUnitNotation(
183  const DtUnicode& displayUnitCollectionName,
184  const DtUnicode& displayUnitName) const;
185 
187 
190 
191  DtUnicode coordinateSystemNotation( CoordSys cs ) const;
192  DtUnicode distanceUnitNotation( DistanceUnits distUnit ) const;
193  DtUnicode velocityUnitNotation( VelocityUnits velocityUnit ) const;
194  DtUnicode orientationUnitNotation( OrientationUnits oriUnit ) const;
195  DtUnicode accelerationUnitNotation( AccelerationUnits accelUnit ) const;
196  DtUnicode rotationalVelocityUnitNotation( RotVelocityUnits wUnit ) const;
197  DtUnicode temperatureUnitNotation( TemperatureUnits tempUnit ) const;
198  DtUnicode pressureUnitNotation( PressureUnits pressureUnit ) const;
199  DtUnicode northUnitNotation( NorthUnits wUnit ) const;
200 
202 
205 
207  void coordinateSystemLabels(DtUnicode& x, DtUnicode& y, DtUnicode& z );
208 
210  void coordinateSystemLabels(
211  CoordSys coordSystem,
212  DtUnicode& x, DtUnicode& y, DtUnicode& z );
213 
215  void regularExpressionValidators( std::string& x,
216  std::string& y, std::string& z );
217 
219  void regularExpressionValidators(
220  CoordSys cs,
221  std::string& x, std::string& y, std::string& z );
222 
226  std::vector<DtUnicode> convertPositionToNotatedStringList(
227  CoordSys coordSys,
228  const DtVector& pos,
229  DistanceUnits coordinateSystemUnit,
230  unsigned int coordinateSystemDecimals,
231  DistanceUnits altitudeUnit,
232  unsigned int altitudeDecimals );
233 
236  std::vector<DtUnicode> convertPositionToNotatedStringList(
237  const DtVector& pos,
238  DistanceUnits coordinateSystemUnit,
239  unsigned int coordinateSystemDecimals,
240  DistanceUnits altitudeUnit,
241  unsigned int altitudeDecimals ) const;
242 
246  std::vector<std::string> convertPositionToStringList( CoordSys coordSys,
247  const DtVector& pos,
248  DistanceUnits coordinateSystemUnit,
249  unsigned int coordinateSystemDecimals,
250  DistanceUnits altitudeUnit,
251  unsigned int altitudeDecimals );
252 
256  std::vector<std::string> convertPositionToStringList(
257  const DtVector& pos,
258  DistanceUnits coordinateSystemUnit,
259  unsigned int coordinateSystemDecimals,
260  DistanceUnits altitudeUnit,
261  unsigned int altitudeDecimals ) const;
262 
264 
267 
269  double convertAngleUnitNativeToDisplay(
270  double angle,
271  OrientationUnits unit ) const;
272 
274  double convertAngleUnitDisplayToNative(
275  double angle,
276  OrientationUnits unit ) const;
277 
285  std::string convertAngleUnitNativeToDisplayString(
286  double angle,
287  OrientationUnits unit,
288  unsigned int decimals,
289  bool additionalFormatting = false ) const;
290 
298  DtUnicode convertAngleUnitNativeToNotatedDisplayString(
299  double angle,
300  OrientationUnits unit,
301  unsigned int decimals,
302  bool additionalFormatting = false) const;
303 
305 
308 
317  double convertHeadingUnitNativeToDisplay(
318  const DtVector& geocLoc,
319  double heading,
320  NorthUnits unit,
321  bool convertDisplayToDegrees=true) const;
322 
331  double convertHeadingUnitDisplayToNative(
332  const DtVector& geocLoc,
333  double heading,
334  NorthUnits unit,
335  bool convertNativeToRadians=true) const;
336 
339  double convertLocationToDeclination(const DtVector& geocLoc) const;
340 
348  DtUnicode convertHeadingUnitNativeToNotatedDisplayString(
349  const DtVector& geocLoc,
350  double heading,
351  NorthUnits unit ) const;
352 
354 
357 
359  double convertDistanceUnitNativeToDisplay(
360  double distance,
361  DistanceUnits unit ) const;
362 
364  double convertDistanceUnitDisplayToNative(
365  double distance,
366  DistanceUnits unit ) const;
367 
370  std::string convertDistanceUnitNativeToDisplayString(
371  double dist,
372  DistanceUnits unit,
373  unsigned int decimals ) const;
374 
377  DtUnicode convertDistanceUnitNativeToNotatedDisplayString(
378  double dist,
379  DistanceUnits unit,
380  unsigned int decimals) const;
381 
383 
386 
388  DtVector convertVelocityUnitNativeToDisplay(
389  const DtVector& vel,
390  VelocityUnits unit ) const;
391 
394  DtVector convertVelocityUnitDisplayToNative(
395  const DtVector& vel,
396  VelocityUnits unit) const;
397 
400  DtVector convertVelocitySystemAndUnitGeocentricToDisplay(
401  const DtVector& geocLoc,
402  const DtVector& geocVel,
403  VelocityUnits unit ) const;
404 
407  std::string convertVelocityUnitNativeToDisplayString(
408  const DtVector& vel,
409  VelocityUnits unit,
410  unsigned int decimals ) const;
411 
415  std::string convertVelocitySystemAndUnitGeocentricToDisplayString(
416  const DtVector& geocLoc,
417  const DtVector& geocVel,
418  VelocityUnits unit,
419  unsigned int decimals) const;
420 
422 
425 
427  DtVector convertAccelerationUnitNativeToDisplay(
428  const DtVector& accel,
429  AccelerationUnits unit ) const;
430 
433  DtVector convertAccelerationUnitDisplayToNative(
434  const DtVector& accel,
435  AccelerationUnits unit) const;
436 
439  std::string convertAccelerationUnitNativeToDisplayString(
440  const DtVector& accel,
441  AccelerationUnits unit,
442  unsigned int decimals ) const;
443 
445  DtVector convertAccelerationSystemAndUnitGeocentricToDisplay(
446  const DtVector& geocLoc,
447  const DtVector& accel,
448  AccelerationUnits unit ) const;
449 
452  std::string convertAccelerationSystemAndUnitGeocentricToDisplayString(
453  const DtVector& geocLoc, const DtVector& accel,
454  AccelerationUnits unit,
455  unsigned int decimals ) const;
456 
458 
461 
463  DtTaitBryan convertOrientationUnitNativeToDisplay(
464  const DtTaitBryan& ori,
465  OrientationUnits unit ) const;
466 
468  DtTaitBryan convertOrientationUnitDisplayToNative(
469  const DtTaitBryan& ori,
470  OrientationUnits unit ) const;
471 
483  std::vector<std::string> convertOrientationUnitNativeToDisplayStrings(
484  const DtTaitBryan& ori,
485  OrientationUnits unit,
486  unsigned int decimals,
487  NorthUnits northUnit,
488  bool formatPsi = false,
489  bool formatTheta = false,
490  bool formatPhi = false ) const;
491 
503  std::vector<DtUnicode> convertOrientationUnitNativeToNotatedDisplayStrings(
504  const DtTaitBryan& ori,
505  OrientationUnits unit,
506  unsigned int decimals,
507  NorthUnits northUnit,
508  bool formatPsi = false,
509  bool formatTheta = false,
510  bool formatPhi = false) const;
511 
513 
516 
518  DtVector convertRotationalVelocityUnitNativeToDisplay(
519  const DtVector& rotVel,
520  RotVelocityUnits unit ) const;
521 
523  DtVector convertRotationalVelocityUnitDisplayToNative(
524  const DtVector& rotVel,
525  RotVelocityUnits unit) const;
526 
528  std::string convertRotationalVelocityUnitNativeToDisplayString(
529  const DtVector& rotVel,
530  RotVelocityUnits unit,
531  unsigned int decimals ) const;
532 
534  DtVector convertRotationalVelocitySystemAndUnitGeocentricToDisplay(
535  const DtVector& rotVel,
536  RotVelocityUnits unit ) const;
537 
540  std::string
541  convertRotationalVelocitySystemAndUnitGeocentricToDisplayString(
542  const DtVector& rotVel,
543  RotVelocityUnits unit,
544  unsigned int decimals ) const;
545 
547 
548 
551 
553  double convertSpeedUnitNativeToDisplay(
554  const DtVector& velocity,
555  VelocityUnits unit ) const;
556 
558  double convertSpeedUnitNativeToDisplay(
559  double speed,
560  VelocityUnits unit ) const;
561 
563  double convertSpeedUnitDisplayToNative(
564  double speed,
565  VelocityUnits unit ) const;
566 
568  double convertSpeedSystemAndUnitGeocentricToDisplay(
569  const DtVector& geocLoc,
570  const DtVector& velocity,
571  VelocityUnits unit ) const;
572 
575  std::string convertSpeedUnitNativeToDisplayString(
576  const DtVector& velocity,
577  VelocityUnits unit,
578  unsigned int decimals ) const;
579 
582  std::string convertSpeedUnitNativeToDisplayString(
583  double speed,
584  VelocityUnits unit,
585  unsigned int decimals ) const;
586 
589  std::string convertSpeedSystemAndUnitGeocentricToDisplayString(
590  const DtVector& geocLoc,
591  const DtVector& velocity,
592  VelocityUnits unit,
593  unsigned int decimals ) const;
594 
596 
599 
602  double convertAccelerationMagnitudeUnitNativeToDisplay(
603  const DtVector& accel,
604  AccelerationUnits unit ) const;
605 
608  double convertAccelerationMagnitudeUnitNativeToDisplay(
609  double accel,
610  AccelerationUnits unit) const;
611 
613  double convertAccelerationMagnitudeUnitDisplayToNative(
614  double acc,
615  AccelerationUnits unit) const;
616 
619  std::string convertAccelerationMagnitudeUnitNativeToDisplayString(
620  const DtVector& accel,
621  AccelerationUnits unit,
622  unsigned int decimals ) const;
623 
626  std::string convertAccelerationMagnitudeUnitNativeToDisplayString(
627  double accel,
628  AccelerationUnits unit,
629  unsigned int decimals ) const;
630 
633  double convertAccelerationMagnitudeSystemAndUnitGeocentricToDisplay(
634  const DtVector& geocLoc,
635  const DtVector& accel,
636  AccelerationUnits unit ) const;
637 
640  std::string
641  convertAccelerationMagnitudeSystemAndUnitGeocentricToDisplayString(
642  const DtVector& geocLoc,
643  const DtVector& accel,
644  AccelerationUnits unit,
645  unsigned int decimals ) const;
647 
648 
650 
653 
655  DtTaitBryan convertHeadingPitchRollSystemAndUnitGeocentricToDisplay(
656  const DtVector& geocLoc,
657  const DtTaitBryan& geocOri,
658  OrientationUnits unit ) const;
659 
663  std::vector<DtUnicode>
664  convertHeadingPitchRollSystemAndUnitGeocentricToNotatedDisplayStrings(
665  const DtVector& geocLoc,
666  const DtTaitBryan& geocOri,
667  OrientationUnits unit,
668  unsigned int decimals,
669  NorthUnits northUnit,
670  bool formatHeading = false,
671  bool formatPitch = false,
672  bool formatRoll = false ) const;
673 
685  std::vector<std::string>
686  convertHeadingPitchRollSystemAndUnitGeocentricToDisplayStrings(
687  const DtVector& geocLoc,
688  const DtTaitBryan& geocOri,
689  OrientationUnits unit,
690  unsigned int decimals,
691  NorthUnits northUnit,
692  bool formatHeading = false,
693  bool formatPitch = false,
694  bool formatRoll = false ) const;
695 
697 
698 
701 
703  double convertTemperatureUnitNativeToDisplay(
704  double temperature,
705  TemperatureUnits unit) const;
706 
708  double convertTemperatureUnitDisplayToNative(
709  double temperature,
710  TemperatureUnits unit) const;
711 
714  std::string convertTemperatureUnitNativeToDisplayString(
715  double temperature,
716  TemperatureUnits unit,
717  unsigned int decimals) const;
718 
720 
723 
725  double convertPressureUnitNativeToDisplay(
726  double pressure,
727  PressureUnits unit) const;
728 
730  double convertPressureUnitDisplayToNative(
731  double pressure,
732  PressureUnits unit) const;
733 
736  std::string convertPressureUnitNativeToDisplayString(
737  double pressure,
738  PressureUnits unit,
739  unsigned int decimals) const;
740 
742 
743  protected:
744 
753  static std::string orientationValueToText( double value, int decimals, bool additionalFormatting );
754 
764  static std::string orientationValuesToText(
765  const DtVector& ori,
766  int decimals,
767  bool formatPsi = false,
768  bool formatTheta = false,
769  bool formatPhi = false );
770 
772  static std::string valueToText( double value, int decimals );
773 
776  static std::string valuesToText( const DtVector& localVelocity, int decimals );
777 
778  protected:
779 
782 
783  };
784 
785 
789  : public DtBaseSharedSettingsManager<makArchives::DtDisplayUnitsSettingsRecord,
790  DtSharedDisplayUnitsSettings>
791  {
792  public:
793 
795  static DtDisplayUnitsSettingsManager& instance( DtDe& de );
796 
799 
801  void connectInputSignals();
802 
805 
813  void setCoordinateSystem( DtDisplayUnitsConverter::CoordSys cs );
814 
820  void setDisplayUnitUnit(
821  const DtUnicode& displayUnitCollectionName,
822  const DtUnicode& displayUnitName,
823  unsigned int unitEnumValue
824  );
825 
830  void setDisplayUnitDecimals(
831  const DtUnicode& displayUnitCollectionName,
832  const DtUnicode& displayUnitName,
833  unsigned int decimals
834  );
835 
837 
840 
843  virtual void setFromRecord( const makArchives::DtDisplayUnitsSettingsRecord& rec );
844 
846 
849  void setSuppressMagneticNorthNotationEnabled(bool isEnabled);
850 
853  bool isSuppressMagneticNorthNotationEnabled() const;
854 
856  DtDisplayUnitsConverter& converter();
857 
860  void slot_quit();
861 
862  protected:
863 
865  template <typename ManagerClass>
866  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
867 
869  template <typename ManagerClass>
870  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
871 
874 
881  virtual void slot_initializeSynchronizer();
882 
887  virtual void slot_displayEngineAdded( const DtDeRecord& deRec );
888 
890  virtual void slot_backupRestored(const DtSettingsBackup* s);
891 
892  protected:
893 
895 
896  DtDisplayUnitsSettingsSynchronizerAgent* mySettingsSynchronizer;
897 
898  };
899 
900 }
DtDisplayUnitsConverter * myDisplayUnitsConverter
Definition: DtDisplayUnitsSettingsManager.h:894
Base class for shared settings managers.
Definition: DtBaseSettingsManager.h:332
VelocityUnits
Enumeration of the different velocity units.
Definition: DtDisplayUnitsSettingsRecord.h:72
A unicode string.
Definition: DtUnicode.h:33
makArchives::DtDisplayUnitsSettingsRecord::NorthUnits NorthUnits
Definition: DtDisplayUnitsSettingsManager.h:71
Abstract interface class for all coordinate system displays.
Definition: DtCoordinateDisplay.h:24
A Record of an IG instance.
Definition: DtDeRecord.h:24
makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits OrientationUnits
Definition: DtDisplayUnitsSettingsManager.h:67
DtDisplayUnitsSettingsSynchronizerAgent * mySettingsSynchronizer
Definition: DtDisplayUnitsSettingsManager.h:896
NorthUnits
Enumeration of the different north units.
Definition: DtDisplayUnitsSettingsRecord.h:149
makArchives::DtDisplayUnitsSettingsRecord::PressureUnits PressureUnits
Definition: DtDisplayUnitsSettingsManager.h:70
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
makArchives::DtDisplayUnitsSettingsRecord::RotVelocityUnits RotVelocityUnits
Definition: DtDisplayUnitsSettingsManager.h:68
PressureUnits
Enumeration of the different pressure units.
Definition: DtDisplayUnitsSettingsRecord.h:136
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:56
Contains the DtSharedDisplayUnitsSettings class declaration.
RotVelocityUnits
Enumeration of the different rotational velocity units.
Definition: DtDisplayUnitsSettingsRecord.h:111
makArchives::DtDisplayUnitsSettingsRecord::AccelerationUnits AccelerationUnits
Definition: DtDisplayUnitsSettingsManager.h:66
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits DistanceUnits
Definition: DtDisplayUnitsSettingsManager.h:64
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:847
Provides a method of doign settings backup.
Definition: DtSettingsBackup.h:23
Utility class for doing global unit conversion.
Definition: DtDisplayUnitsSettingsManager.h:59
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
Manager for the display units settings.
Definition: DtDisplayUnitsSettingsManager.h:788
TemperatureUnits
Enumeration of the different temperature units.
Definition: DtDisplayUnitsSettingsRecord.h:125
makArchives::DtDisplayUnitsSettingsRecord::TemperatureUnits TemperatureUnits
Definition: DtDisplayUnitsSettingsManager.h:69
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function.
Definition: DtDe.h:809
makArchives::DtDisplayUnitsSettingsRecord::VelocityUnits VelocityUnits
Definition: DtDisplayUnitsSettingsManager.h:65
makArchives::DtDisplayUnitsSettingsRecord::CoordSys CoordSys
Definition: DtDisplayUnitsSettingsManager.h:63
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
const DtCoordinateSystem & myCoordinateSystem
Definition: DtDisplayUnitsSettingsManager.h:780
The makVrv::DtSettingsBackup is a lightweight class that must be subclassed from if an object wants t...
AccelerationUnits
Enumeration of the different acceleration units.
Definition: DtDisplayUnitsSettingsRecord.h:88
Contains the display units shared settings.
Definition: DtDisplayUnitsSettingsRecord.h:25
Contains the DtBaseSettingsManager class declaration.
Contains DLL export macros.
DtSharedSettingsManager & mySharedSettingsManager
Definition: DtDisplayUnitsSettingsManager.h:781

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)