VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSymbolDecorationUpdater.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtDe.h>
14 #include <vrvCore/DtIntersector.h>
15 #include <vrvUtil/DtUnicode.h>
16 #include <vrvCore/DtTickable.h>
18 
19 #include <matrix/vlTaitBryan.h>
20 
21 #include <string>
22 #include <map>
24 
25 namespace makVrv
26 {
27  class DtAttributeGroupWidget;
28  class DtSceneObject;
29  class DtCachedIntersectorsContainer;
30  class DtCoordinateSystem;
31  class DtDisplayUnitsConverter;
32  class DtSymbolDecorationUpdateCallbackFactory;
33  class DtDeadReckonUpdater;
34 
40  : public DtTickable
41  {
42  public:
43 
45  const static DtUnicode OrientationName;
46  const static DtUnicode HeadingName;
50  const static DtUnicode MachNumberName;
51  const static DtUnicode SpeedName;
52  const static DtUnicode GroundSpeedName;
53  const static DtUnicode LocationName;
54  const static DtUnicode HatAGLName;
55  const static DtUnicode HatMSLName;
56 
57  public:
58 
63 
65  virtual ~DtSymbolDecorationUpdater();
66 
69  virtual bool needsUpdate( DtTime tNow );
70 
72  virtual void update( DtTime tNow );
73 
75  virtual void setSceneObject( DtSceneObject* sceneObjectId );
76 
79  virtual void attachAttributeGroupWidget( DtUniqueID id );
80 
83  virtual void setIndicatedAirSpeed(double indicatedAirSpeed);
84 
87  virtual void setTrueAirSpeed(double trueAirSpeed);
88 
91  virtual void setMachNumber(double machNumber);
92 
95  virtual void setUseHighestTerrainLod( bool useHighest );
96 
99  virtual bool useHighestTerrainLod() const;
100 
103  virtual void associateIdWithIndex(
104  DtUnicode idString,
105  unsigned int index );
106 
108  virtual void unAssociateId( const DtUnicode& idString );
109 
112  virtual int lookupDecorationIndex( const DtUnicode& idString ) const;
113 
116  virtual DtAttributeGroupWidget* attributeGroupWidget();
117 
119  virtual void setDisplayUnitCollection( std::string& displayUnitCollection );
120 
121  protected:
122 
128  virtual void updateObjectTypeSpecificDisplayUnits();
129 
133  virtual void slot_sceneObjectToBeDeleted( const DtUniqueID& id );
134  virtual void slot_drUpdaterDeleted();
135 
136  virtual void slot_suppressMagneticNorthNotationEnabledChanged( bool isEnabled );
137 
139  virtual void slot_displayUnitChanged(
140  const DtUnicode& displayUnitCollectionName,
141  const DtUnicode& displayUnitName,
142  unsigned int newUnit,
143  unsigned int oldUnit );
144 
147  virtual void slot_displayUnitDecimalsChanged(
148  const DtUnicode& displayUnitCollectionName,
149  const DtUnicode& displayUnitName,
150  unsigned int newDecimals,
151  unsigned int oldDecimals );
152 
154  virtual void slot_onCoordinateSystemChanged();
155 
156  protected:
159 
161 
164 
167 
170 
173 
177 
180 
199  std::vector<DtUnicode> myOrientationStrs;
200  DtVector myLastLocalPos;
201  DtTaitBryan myLastLocalOri;
202 
204  /* Cached Display Unit Information */
206 
208 
210 
213  unsigned int myDistanceDecimals;
215 
218  unsigned int myAltitudeDecimals;
220 
225 
228  unsigned int mySpeedDecimals;
230 
233  unsigned int myOrientationDecimals;
235 
240 
244 
248 
252 
255  double myMachNumber;
256 
258  typedef std::map<DtUnicode, unsigned int> DecorationIdMap;
259 
262 
265 
266  // When the class is destructed, the scene object may or may not
267  // exist. Using a separate connection variable makes it possible to
268  // 'disconnect' even if the scene object has been deleted.
269  boost::signalslib::connection mySceneObjectConnection;
270  boost::signalslib::connection myDrUpdaterConnection;
271 
272  DtCachedIntersectorsContainer* myCachedIntersectorsContainer = nullptr;
273 
274  };
275 }
VelocityUnits
Enumeration of the different velocity units.
Definition: DtDisplayUnitsSettingsRecord.h:73
unsigned int myDistanceDecimals
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:213
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
static const DtUnicode HeadingName
Definition: DtSymbolDecorationUpdater.h:46
DtDisplayUnitsConverter::AccelerationUnits myAccelerationUnit
Used for the Acceleration symbol decorations.
Definition: DtSymbolDecorationUpdater.h:222
static const DtUnicode GroundSpeedName
Definition: DtSymbolDecorationUpdater.h:52
static const DtUnicode SpeedName
Definition: DtSymbolDecorationUpdater.h:51
DtUnicode myLastSpeedText
Definition: DtSymbolDecorationUpdater.h:195
DtUnicode myNorthNotation
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:238
DtDeadReckonUpdater is a scene object updater that is given kinematic updates and updates a scene obj...
Definition: DtDeadReckonUpdater.h:28
DtUnicode myAltitudeNotation
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:219
NorthUnits
Enumeration of the different north units.
Definition: DtDisplayUnitsSettingsRecord.h:151
DtUnicode myObjectTypeSpecificDisplayUnitCollectionName
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:207
DecorationIdMap myDecorationIdMap
Map of decoration id string -&gt; label index.
Definition: DtSymbolDecorationUpdater.h:261
DtUnicode myLastLocationText
Definition: DtSymbolDecorationUpdater.h:196
Contains makVrv::DtDe class.
An abstract base class for objects that require updates. This object automatically adds itself to a D...
Definition: DtTickable.h:26
DtDisplayUnitsConverter::VelocityUnits mySpeedUnit
Used for the Velocity symbol decoration.
Definition: DtSymbolDecorationUpdater.h:227
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
boost::signalslib::connection mySceneObjectConnection
Definition: DtSymbolDecorationUpdater.h:269
std::vector< DtUnicode > myOrientationStrs
Definition: DtSymbolDecorationUpdater.h:199
const DtDisplayUnitsConverter & myDisplayUnitsConverter
Definition: DtSymbolDecorationUpdater.h:163
DtAttributeGroupWidget * myAttributeGroupWidget
The attribute group widget to update.
Definition: DtSymbolDecorationUpdater.h:179
DtUniqueID myUniqueId
The updater&#39;s unique id.
Definition: DtSymbolDecorationUpdater.h:166
Contains the DtDisplayUnitsSettingsManager class declaration.
DtDisplayUnitsConverter::DistanceUnits myDistanceUnit
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:212
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:57
DtUnicode myLastHatAGLText
Definition: DtSymbolDecorationUpdater.h:197
DtTaitBryan myLastLocalOri
Definition: DtSymbolDecorationUpdater.h:201
DtCoordinateSystem * myCoordinateSystem
Definition: DtSymbolDecorationUpdater.h:162
static const DtUnicode MachNumberName
Definition: DtSymbolDecorationUpdater.h:50
Class for a widget that displays remote graphics attribute groups.
Definition: DtAttributeGroupWidget.h:20
DtDisplayUnitsConverter::NorthUnits myNorthUnit
Used for the Heading and Orientation symbol decorations.
Definition: DtSymbolDecorationUpdater.h:237
Contains makVrv:DtIntersector class.
static const DtUnicode AccelerationName
Definition: DtSymbolDecorationUpdater.h:47
std::map< DtUnicode, unsigned int > DecorationIdMap
Map of decoration id string -&gt; label index.
Definition: DtSymbolDecorationUpdater.h:258
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool mySuppressMagneticNorthNotationEnabled
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:205
The DtSymbolDecorationUpdateCallbackFactory will create DtSymbolDecorationUpdateCallbacks that plug i...
Definition: DtSymbolDecorationUpdateCallbackFactory.h:27
DtDisplayUnitsConverter::OrientationUnits myOrientationUnit
Used for the Heading and Orientation symbol decorations.
Definition: DtSymbolDecorationUpdater.h:232
DtUnicode myAccelerationNotation
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:224
Utility class for doing global unit conversion. All conversions functions use the following naming co...
Definition: DtDisplayUnitsSettingsManager.h:62
makArchives::DtDisplayUnitsSettingsRecord::CoordSys myCoordinateSystemType
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:209
unsigned int myAltitudeDecimals
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:218
unsigned int myCoordinateSystemDecimals
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:214
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
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:102
DtUnicode myLastMachNumberText
Definition: DtSymbolDecorationUpdater.h:194
static const DtUnicode OrientationName
Strings representing names used to look up decoration indices.
Definition: DtSymbolDecorationUpdater.h:45
The DtCachedIntersectorsContainer class contains instances of cached intersectors of different model ...
Definition: DtCachedIntersectorsContainer.h:43
static const DtUnicode HatAGLName
Definition: DtSymbolDecorationUpdater.h:54
static const DtUnicode HatMSLName
Definition: DtSymbolDecorationUpdater.h:55
Contains the declaration for makVrv::DtTickable.
boost::signalslib::connection myDrUpdaterConnection
Definition: DtSymbolDecorationUpdater.h:270
DtDisplayUnitsConverter::DistanceUnits myAltitudeUnit
Used for the Location and Altitude (MSL and AGL) symbol decorations.
Definition: DtSymbolDecorationUpdater.h:217
const DtSymbolDecorationUpdateCallbackFactory & mySymbolDecorationUpdaterFactory
Definition: DtSymbolDecorationUpdater.h:160
DtVector myLastLocalPos
Definition: DtSymbolDecorationUpdater.h:200
double myIndicatedAirSpeed
The indicated air speed for the entity associated with this updater. This is a raw network value pass...
Definition: DtSymbolDecorationUpdater.h:247
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:44
bool myUseHighestTerrainLod
Use whatever&#39;s paged in or use the height map (slow)
Definition: DtSymbolDecorationUpdater.h:264
DtModelSetId myModelSet
This updater is registered as a modelset-specific tickable; this is the modelset it&#39;s registered with...
Definition: DtSymbolDecorationUpdater.h:176
static const DtUnicode IndicatedAirSpeedName
Definition: DtSymbolDecorationUpdater.h:48
DtUnicode myLastOrientationText
Definition: DtSymbolDecorationUpdater.h:189
unsigned int mySpeedDecimals
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:228
double myTrueAirSpeed
The true air speed for the entity associated with this updater. This is a raw network value passed in...
Definition: DtSymbolDecorationUpdater.h:251
double myLastSymbolUpdateTime
The last time the symbols were updated; used to slow down updating if once per frame is undesirable...
Definition: DtSymbolDecorationUpdater.h:243
DtUnicode myLastIndicatedAirSpeedText
Definition: DtSymbolDecorationUpdater.h:192
DtSceneObject * mySceneObject
Pointer to the scene object being updated.
Definition: DtSymbolDecorationUpdater.h:169
DtUnicode myLastTrueAirSpeedText
Definition: DtSymbolDecorationUpdater.h:193
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
Contains the DtDisplayUnitsSettingsRecord class declaration.
unsigned int myAccelerationDecimals
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:223
bool myCoordinateChanged
Definition: DtSymbolDecorationUpdater.h:188
DtUnicode myLastAccelerationText
Definition: DtSymbolDecorationUpdater.h:191
DtDe & myDe
Pointer to the display engine.
Definition: DtSymbolDecorationUpdater.h:158
DtUnicode myLastHatMSLText
Definition: DtSymbolDecorationUpdater.h:198
DtModelSetId
Definition: DtModelSetEnums.h:19
static const DtUnicode LocationName
Definition: DtSymbolDecorationUpdater.h:53
DtUnicode myLastHeadingText
Definition: DtSymbolDecorationUpdater.h:190
DtUnicode mySpeedNotation
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:229
DtUnicode myOrientationNotation
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:234
DtSymbolDecorationUpdater updates symbol decorations while considering the object-type, e.g. Fixed Wing, of the entity the updater is associated with and the display unit settings for that object-type.
Definition: DtSymbolDecorationUpdater.h:39
bool myOrientationChanged
Definition: DtSymbolDecorationUpdater.h:187
DtDeadReckonUpdater * myDrUpdater
A pointer to the current dead reckoning updater.
Definition: DtSymbolDecorationUpdater.h:172
AccelerationUnits
Enumeration of the different acceleration units.
Definition: DtDisplayUnitsSettingsRecord.h:89
double myMachNumber
The mach number for the entity associated with this updater. This is a raw network value passed in vi...
Definition: DtSymbolDecorationUpdater.h:255
unsigned int myOrientationDecimals
Used for the Location symbol decoration.
Definition: DtSymbolDecorationUpdater.h:233
static const DtUnicode TrueAirSpeedName
Definition: DtSymbolDecorationUpdater.h:49
bool myDecorationIndexChanged
The computed data that was used the last time for changing a setting. For example: a call to myAttrib...
Definition: DtSymbolDecorationUpdater.h:186
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)