VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSymbolDecorationVisualizer.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>
14 
17 
19 
20 #include <vrvMath/DtVector4.h>
21 
23 
24 #include <vlutil/vlExceptions.h>
25 
26 #include <matrix/vlVector.h>
27 
28 #include <vector>
29 #include <string>
30 #include <unordered_map>
31 
32 namespace makVrv
33 {
34 
35  class DtAttributeGroupWidgetAgent;
36  class DtPinnableProjectedWidgetModelAgent;
37  class DtSymbolDecorationUpdaterAgent;
38  class DtOverlayDirectionLineModelAgent;
39  class DtLineIndicatorSymbolDecorationUpdaterAgent;
40  class DtLocationSymbolDecoration;
41  class DtAccelerationSymbolDecoration;
42  class DtVelocitySymbolDecoration;
43  class DtOrientationSymbolDecoration;
44  class DtObjectTypeStateListener;
45  class DtSymbolDecoration;
46 
49  {
50  TopRight,
51  TopLeft,
52  BottomLeft,
54  };
55 
81  : public DtStateVisualizer
82  {
83  public:
85  using DecorationIdMap = std::unordered_map<std::string, DtSymbolDecoration*>;
86 
91  using DecorationProperties = std::vector<std::string>;
92 
93  public:
101  DtStateListener& listener, DtSceneObjectAgent* sceneObject, DtModelSetId modelSet );
102 
105  virtual ~DtSymbolDecorationVisualizer();
106 
108  DtSymbolDecorationVisualizer() = delete;
109 
112 
114  DtSymbolDecorationVisualizer& operator=( const DtSymbolDecorationVisualizer& ) = delete;
115 
116  public:
117 
119  virtual void createModelAgents() override;
120 
122  virtual void destroyModelAgents() override;
123 
125  virtual void setModelDefinitionForAgents() override;
126 
128  virtual void setOrigin(const DtVector&);
129 
132  virtual void connectToListenerSignals() override;
133 
136  virtual void setInitialValuesFromVisualizerDefinition() override;
137 
146  virtual void slot_setSelected(bool) override;
147 
149  virtual DtAttributeGroupWidgetAgent* widget();
150 
152  virtual DtSymbolDecorationUpdaterAgent* widgetUpdater();
153 
160  virtual unsigned int nextLabelIndex();
161 
166  virtual void setLabelIndexForDecorationByName(unsigned int index, const std::string& name);
167 
170  virtual bool labelIndexForDecorationByName(unsigned int& index, const std::string& name) const;
171 
173  virtual void initialize() override;
174 
176  virtual DtSceneObjectAgent* sceneObject();
177 
182  virtual void setForceColor(float r, float g, float b, float a);
183 
189  virtual void setScale(float scale);
190 
196  virtual void setLineIndicatorScale(float scale);
197 
200  virtual int lineIndicatorWidth();
201 
205  virtual void setLineIndicatorWidth(int lineWidth);
206 
210  virtual DtVector4<float> headingLineIndicatorColor() const;
211 
214  virtual void setHeadingLineIndicatorColor(const DtVector4<float>& lineColor);
215 
219  virtual DtVector4<float> velocityLineIndicatorColor() const;
220 
223  virtual void setVelocityLineIndicatorColor(const DtVector4<float>& lineColor);
224 
226  virtual void setShowBorder(bool b);
227 
229  virtual bool useHighestTerrainLod() const;
232  virtual void setUseHighestTerrainLod(bool trueOrFalse);
234 
236  virtual DtSymbolDecoration* findSymbolDecoration(
237  const std::string& decorationId);
238 
242  virtual void setQuadrantLocation(DtSymbolDecorationQuadrant);
243 
245  virtual void setOffset(double x, double y);
246 
248  const DtVector& offset() const;
249 
254  virtual void setIsPinned(bool myPinned);
255 
260  virtual bool isPinned() const;
261 
264  virtual void setLodOutAltitude(double lodOutAltitude);
265 
268  virtual double lodOutAltitude() const;
269 
274  virtual void setFixedScalingEnabled(bool fixedScalingEnabled);
275 
280  virtual void setAltitudeBasedConfigurations(
282 
284  virtual void setHasMouseCursor(bool);
285  virtual bool hasMouseCursor() const;
286 
288  virtual DtLineIndicatorSymbolDecorationUpdaterAgent* findOrCreateLineIndicatorSymbolDecorationUpdaterAgent();
289 
291  virtual void slot_decorationEnabled( DtModelSetId modelSet, const std::string& type, const std::string& decoration);
292 
294  virtual void slot_decorationDisabled( DtModelSetId modelSet, const std::string& type, const std::string& decoration);
295 
298  virtual void slot_mouseOverDecorationEnabled( DtModelSetId modelSet, const std::string& type, const std::string& decoration );
299  virtual void slot_mouseOverDecorationDisabled( DtModelSetId modelSet, const std::string& type, const std::string& decoration );
301 
303  virtual void slot_foregroundColorChanged(float r, float g, float b);
304 
306  virtual void slot_backgroundColorChanged(float r, float g, float b);
307 
309  virtual void slot_backgroundOpacityChanged(float a);
310 
312  virtual void slot_lodOutAltitudeChanged(double a);
313 
315  virtual void slot_shadowTextChanged(bool enabled);
316 
319  virtual void slot_symbolDecorationSetChanged(const std::string& setId);
320 
322  virtual void slot_setScale(float scale);
323 
325  virtual void slot_setEnabled(bool enabled, bool instanceOnly = false);
326 
328  virtual void slot_colorByForceChanged(bool enabled);
329 
331  virtual void slot_displayUnitCollectionChanged(const std::string& displayUnitCollection );
332  protected:
333 
334  virtual DtObjectTypeStateListener& objectTypeStateListener();
335 
338  virtual void updateAltitudeBasedHeadingIndicatorProperties();
339 
342  virtual void updateForcedAltitudeBasedConfigurationEnabledState();
343 
345  virtual void updateLodOutAltitudeProperties();
346 
350  virtual void updateLodOutAltitudeState();
351 
354  virtual void updateBackgroundState();
355 
357  virtual void setBorderState();
358 
361  virtual void updateColor();
362 
365  virtual void implementVisibility(bool visible) override;
366 
368  void cleanup();
369 
370  protected:
371 
375 
379 
383 
386 
388  DtAttributeGroupWidgetAgent* myWidget;
389 
392  DtPinnableProjectedWidgetModelAgent* myWidgetModel;
393 
396  DtSymbolDecorationUpdaterAgent* myWidgetUpdater;
397 
400  DtLineIndicatorSymbolDecorationUpdaterAgent* myLineIndicatorUpdater;
401 
403  float myForegroundColor[3];
404 
406  float myBackgroundColor[4];
407 
409  float myBorderColor[4];
410 
413 
416  float myForceColor[3];
417 
419  float myScale;
420 
422 
426 
429 
432 
435 
438 
440  std::string myFontFile;
441 
443  std::string myDecorationSetName;
444 
447 
449  float myTextR;
450 
452  float myTextG;
453 
455  float myTextB;
456 
458  float myTextA;
459 
461  bool myEnabled;
462 
465 
468 
471 
474 
476  unsigned int myHoverGroupId;
477 
479  unsigned int myHoverTextGroupId;
480 
482  unsigned int mySelectedGroupId;
483 
485  unsigned int mySelectedTextGroupId;
486 
489 
492 
495 
499 
503 
507 
510 
514 
518 
523 
525 
528 
531 
533 
537 
539 
542 
545  };
546 
547 }
bool myEnabled
Whether or not decoration visualizers are enabled.
Definition: DtSymbolDecorationVisualizer.h:461
Contains the DtAltitudeBasedScaleConfigurationRecord class declaration.
float myTextA
Text color alpha value.
Definition: DtSymbolDecorationVisualizer.h:458
unsigned int mySymbolDecorationTextGroupId
Overlay group id for the symbol decoration text (foreground) when not selected.
Definition: DtSymbolDecorationVisualizer.h:491
bool myIndicatorOffsetSet
Set if decorationOffset is specificed Means Quadrant cannot override the offset.
Definition: DtSymbolDecorationVisualizer.h:536
unsigned int mySelectedTextGroupId
Overlay group id for the symbol decoration text (foreground) when selected.
Definition: DtSymbolDecorationVisualizer.h:485
bool myShowBorder
Whether or not borders are shown.
Definition: DtSymbolDecorationVisualizer.h:470
DtVector4< float > myVelocityLineIndicatorColor
Definition: DtSymbolDecorationVisualizer.h:530
DtSignalConnectionManager myModelAgentConns
Manager for connections specific to the model agent Both this class and it&#39;s parent need their own co...
Definition: DtSymbolDecorationVisualizer.h:374
Base class for symbol decorations.
Definition: DtSymbolDecoration.h:19
DtAttributeGroupWidget::DtOriginPlacementPolicy myOriginPlacementPolicy
Definition: DtSymbolDecorationVisualizer.h:421
makArchives::DtSymbolDecorationSettingsRecord::DecorationSet DecorationSet
a decoration set is a set of creator names for the enabled decorations
Definition: DtSymbolDecorationSettings.h:41
DtObjectTypeStateListener * myObjectTypeStateListener
Definition: DtSymbolDecorationVisualizer.h:544
double myLodOutAltitude
The altitude at which all symbol decorations will no longer appear The default value is 100000 meters...
Definition: DtSymbolDecorationVisualizer.h:517
DtVector myWidgetOffsetUnscaled
Unscaled 2d offset of decorations from scene object origin z value is ignored.
Definition: DtSymbolDecorationVisualizer.h:425
bool myApplyLodOutAltitudeToHeadingIndicatorEnabled
whether or not to apply the lod out altitude property to the heading indicator symbol decoration as w...
Definition: DtSymbolDecorationVisualizer.h:513
4 dimensional vector
float myWidgetColumnPadding
Padding between label columns, in pixels.
Definition: DtSymbolDecorationVisualizer.h:434
DtSymbolDecorationUpdaterAgent * myWidgetUpdater
Updater to keep the labels and heading indicator updated with distributed side state.
Definition: DtSymbolDecorationVisualizer.h:396
float myTextR
Text color red value.
Definition: DtSymbolDecorationVisualizer.h:449
bool myHasMouseCursor
Definition: DtSymbolDecorationVisualizer.h:538
DecorationProperties myDecorationProperties
Map from a symbol decorations visualization index and the name of the symbol decoration.
Definition: DtSymbolDecorationVisualizer.h:378
Contains the DtAttributeGroupWidget class declaration.
bool myVerticalCenter
whether or not to center the attribute group vertically around its origin
Definition: DtSymbolDecorationVisualizer.h:506
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
bool myFixedScalingEnabled
Definition: DtSymbolDecorationVisualizer.h:532
bool myColorByForce
Color by force instead of foreground color.
Definition: DtSymbolDecorationVisualizer.h:494
bool myInstanceEnabled
Whether or not this decoration visualizer is independently enabled.
Definition: DtSymbolDecorationVisualizer.h:464
DtOriginPlacementPolicy
Policy that determines where the origin of the widget is.
Definition: DtAttributeGroupWidget.h:24
makArchives::DtAltitudeBasedScaleConfigurationRecordCollection myHeadingIndicatorScalesByMinimumAltitude
Definition: DtSymbolDecorationVisualizer.h:543
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Contains makVrv:DtStateVisualizer class.
Contains the DtSymbolDecorationSettings class declaration.
DtAttributeGroupWidgetAgent * myWidget
Widget to show a layout of labels.
Definition: DtSymbolDecorationVisualizer.h:388
unsigned int myHoverGroupId
Overlay group id for the symbol decoration shadow/background when hovered over with mouse cursor...
Definition: DtSymbolDecorationVisualizer.h:476
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtSymbolDecorationQuadrant
Defines the possible quadrant locations where symbol decorations can be rendered. ...
Definition: DtSymbolDecorationVisualizer.h:48
double myVelocityIndicatorMinimumSpeed
Definition: DtSymbolDecorationVisualizer.h:541
double myVelocityBasedScaleComputationFactor
Definition: DtSymbolDecorationVisualizer.h:540
DtVector4< float > myHeadingLineIndicatorColor
Definition: DtSymbolDecorationVisualizer.h:527
DtPinnableProjectedWidgetModelAgent * myWidgetModel
Projecting widget to place the label widget at the 2d projection of the scene object&#39;s location...
Definition: DtSymbolDecorationVisualizer.h:392
std::string myDecorationSetName
Name of decoration set to use.
Definition: DtSymbolDecorationVisualizer.h:443
float myHeadingLineLengthUnscaled
Length of heading line in pixels.
Definition: DtSymbolDecorationVisualizer.h:431
std::string myFontFile
Font file for creating labels.
Definition: DtSymbolDecorationVisualizer.h:440
DecorationIdMap myMouseOverDecorationIdMap
Definition: DtSymbolDecorationVisualizer.h:382
DtLineIndicatorSymbolDecorationUpdaterAgent * myLineIndicatorUpdater
Updater to keep the labels and heading indicator updated with distributed side state.
Definition: DtSymbolDecorationVisualizer.h:400
The DtStateVisualizer is an abstract class. Developers derive from this to create logic that &quot;directs...
Definition: DtStateVisualizer.h:30
bool myUseHighestTerrainLod
Tell the updater whether use the height map when calculating altitudes on streamed terrains (slower) ...
Definition: DtSymbolDecorationVisualizer.h:498
bool myHeadingLineIndicatorColorOverridden
Definition: DtSymbolDecorationVisualizer.h:526
bool myLodOutAltitudeOverridden
Whether or not the lod out altitude is overridden. If overridden, the lod out altitude from the visua...
Definition: DtSymbolDecorationVisualizer.h:522
unsigned int mySymbolDecorationGroupId
Overlay group id for the symbol decoration shadow/background when not selected.
Definition: DtSymbolDecorationVisualizer.h:488
Base class to provide boost signal/slot management.
bool myBackgroundHidden
Whether the background is hidden - see updateBackgroundState().
Definition: DtSymbolDecorationVisualizer.h:412
The DtObjectTypeStateListener is a base class used by elements that have object types ( including ent...
Definition: DtObjectTypeStateListener.h:31
DecorationIdMap myDecorationIdMap
Map from creator names to decoration instances.
Definition: DtSymbolDecorationVisualizer.h:381
float myScale
Scale as a percentage of initial size.
Definition: DtSymbolDecorationVisualizer.h:419
bool myVelocityLineIndicatorColorOverridden
Definition: DtSymbolDecorationVisualizer.h:529
std::unordered_map< std::string, DtSymbolDecoration * > DecorationIdMap
Map type from symbol decoration name to symbol decoration.
Definition: DtSymbolDecorationVisualizer.h:85
unsigned int mySelectedGroupId
Overlay group id for the symbol decoration shadow/background when selected.
Definition: DtSymbolDecorationVisualizer.h:482
DtModelSetId
Definition: DtModelSetEnums.h:19
float myBorderWidth
The line width of the border - if shown.
Definition: DtSymbolDecorationVisualizer.h:467
voidpf uLong offset
Definition: ioapi.h:42
std::vector< DtAltitudeBasedScaleConfigurationRecord > DtAltitudeBasedScaleConfigurationRecordCollection
Definition: DtAltitudeBasedScaleConfigurationRecord.h:45
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:26
float myWidgetRowPadding
Padding between label rows, in pixels.
Definition: DtSymbolDecorationVisualizer.h:437
unsigned int myHoverTextGroupId
Overlay group id for the symbol decoration text (foreground) when hovered over with mouse cursor...
Definition: DtSymbolDecorationVisualizer.h:479
std::vector< std::string > DecorationProperties
Properties for symbol decorations.
Definition: DtSymbolDecorationVisualizer.h:91
DtSymbolDecorationSettings::DecorationSet myDecorationSet
Decoration set used to create decorations.
Definition: DtSymbolDecorationVisualizer.h:385
float myTextG
Text color green value.
Definition: DtSymbolDecorationVisualizer.h:452
int myLineIndicatorWidth
Definition: DtSymbolDecorationVisualizer.h:524
A visualizer for symbol decorations. Symbol decorations are visuals, usually text labels...
Definition: DtSymbolDecorationVisualizer.h:80
bool myHorizontalCenter
whether or not to center the attribute group horizontally around its origin
Definition: DtSymbolDecorationVisualizer.h:502
float myTextB
Text color blue value.
Definition: DtSymbolDecorationVisualizer.h:455
bool myPinnedFlag
whether or not the widget this visualizer controls is pinned
Definition: DtSymbolDecorationVisualizer.h:509
std::string myDisplayUnitCollectionName
Name of the Display Unit Collection to use, pulled from the visualizer definition.
Definition: DtSymbolDecorationVisualizer.h:446
bool myShadowText
Whether or not text is shadowed.
Definition: DtSymbolDecorationVisualizer.h:473
float myFontSizeUnscaled
Font size in points.
Definition: DtSymbolDecorationVisualizer.h:428
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)