VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
2DRangeRingVisualizer.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2013 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrfGuiCore/vrfGuiCore.h>
14 #include <vrvUtil/DtUnicode.h>
15 #include <vrfGuiCore/DtAttachableUpdaterWithLevelOrientationAgent.hpp>
17 #include <matrix/vlVector.h>
19 
20 namespace makVrv
21 {
22  class DtWidgetLabelAgent;
23  class DtProjectedWidgetModelAgent;
24  class DtVisualizerDefinition;
25  class DtAttachableUpdaterAgent;
26  class DtOverlaySegmentedLineModelAgent;
27  class DtLineModelUpdaterAgent;
28 }
29 
30 namespace makVrf
31 {
32  class DtAttachableUpdaterWithLevelOrientationAgent;
33  class DtVrfOverlayEllipseArcModelAgent;
34  class DtAttackAnimationAgent;
35 
39  {
40  protected:
41 
43  {
45  virtual ~RingStructDrawingData2D() override;
46 
47  //This struct has separate instances of scene objects and updater agents for
51  DtVrfOverlayEllipseArcModelAgent* myRangeRing;
52 
53  makVrv::DtSceneObjectAgent* myRingSceneObjectAgent;
54  makVrv::DtSceneObjectAgent* myLineSceneObjectAgent;
55  DtAttachableUpdaterWithLevelOrientationAgent* myRingUpdaterAgent;
56  DtAttachableUpdaterWithLevelOrientationAgent* myLineUpdaterAgent;
57  makVrv::DtOverlaySegmentedLineModelAgent* myVerticalLine;
58  DtAttackAnimationAgent* myAttackAnimationAgent;
59 
60  //Label components
61  makVrv::DtSceneObjectAgent* myLabelSceneObjectAgent;
62  DtAttachableUpdaterWithLevelOrientationAgent* myLabelUpdaterAgent;
63  makVrv::DtProjectedWidgetModelAgent* myLabelProjectedWidgetModelAgent;
64  makVrv::DtWidgetLabelAgent* myLabel;
65  std::vector<DtNetFloat32> myWedgeSizes;
66  unsigned int myStipplePattern;
67  };
68 
69  public:
70 
73  makVrv::DtStateListener& listener, makVrv::DtSceneObjectAgent*, makVrv::DtModelSetId modelSet );
74 
76  virtual ~Dt2DRangeRingVisualizer() override;
77 
78  //connect method called in the creator class
79  virtual void initialize() override;
80 
81  //initialize method called in the creator class
82  virtual void initialize_settings() override;
83 
85  virtual void setVisualizerDefinition( const makVrv::DtVisualizerDefinition& visDef ) override;
86 
88  virtual void setWedgeSpacing(float);
89  virtual float wedgeSpacing() const;
90  //override of parent method - destroys all subordinate visualizers if turned off
91 
93  virtual const makVrv::DtStateVisualizer::TypeInfo& typeInfo() const override;
94 
95  virtual void setFixedIconScalingEnabled(bool fixedScalingEnabled);
96 
98  static const makVrv::DtStateVisualizer::TypeInfo& theTypeInfo();
99 
101  static const makVrv::DtVisualizerSchema& theDtRangeRingSchema();
102 
103  protected:
104  virtual void setInitialValuesFromVisualizerDefinition() override;
105 
106  virtual void updateRangeRingInformation(RingStruct& rangeItem) override;
107 
108  virtual void slot_displayUnitChanged(const makVrv::DtUnicode&);
109 
110  //Creates a new set of ring visualizers, populates a struct and adds it to myRangeRings
111  virtual void createRing(const DtRangeItem&, int extensionIndex) override;
112 
114  virtual void setRangeRingsLabels();
115 
116  virtual DtVrfOverlayEllipseArcModelAgent* create2DRingAgent(makVrv::DtSceneObjectAgent*);
117 
118  virtual void setAttackAnimationForRingEnabled(const std::string& ring, bool b);
119 
120  virtual void setRangeRingsFill( bool fill );
121  virtual void destroyModelAgents() override;
122 
123  protected:
124  virtual void updateRangeRingsCount(ShowFlags flags = ShowAll) override;
125 
127  virtual void updateScaleOfRings() override;
128 
129  //After a ring is created, update the ring with options specific to this visualizer
130  virtual void updateRingOptions(RingStruct&) override;
131 
133  virtual void destroyOuterRing(RingStruct&) override;
134 
136  virtual void setRangeRingGeometry(RingStruct&) override;
137 
139  virtual void setRangeRingColors(RingStruct&) override;
140 
142  virtual void setRangeRingLabels(RingStruct&);
143 
145  virtual void checkAndUpdateStipplePatternForRangeRing(const RingStruct&);
146  virtual void updateStipplePatternsForRange(double);
147 
148  protected:
149  std::string myFontFile;
151 
155  bool myFill;
156  bool myFixedScalingEnabled = false;
158  };
159  //The creator class is normally templated in visualizers, but I want to split out the
161 
165 }
DtVrfOverlayEllipseArcModelAgent * myRangeRing
the label and the ring/ line components. The reason for this is that a projected label widget and the...
Definition: 2DRangeRingVisualizer.h:51
float myWedgeSpacing
Amount of degrees to take on/off the end of the wedge to give the look of spacing. Default is one degree.
Definition: 2DRangeRingVisualizer.h:154
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
A visualizer for displaying range rings.
Definition: rangeRingVisualizer.h:36
std::string myFontFile
Definition: 2DRangeRingVisualizer.h:149
DtAttackAnimationAgent * myAttackAnimationAgent
Definition: 2DRangeRingVisualizer.h:58
Definition: rangeRingVisualizer.h:52
Definition: DtStateVisualizer.h:274
std::vector< DtNetFloat32 > myWedgeSizes
Definition: 2DRangeRingVisualizer.h:65
makVrv::DtSceneObjectAgent * myLineSceneObjectAgent
Definition: 2DRangeRingVisualizer.h:54
Contains the DtUnitConverterCollection class declaration.
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
unsigned int myStipplePattern
Definition: 2DRangeRingVisualizer.h:66
Contains the makVrv::DtRangeRingVisualizer class declaration. This is the base class for use in creat...
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
makVrv::DtOverlaySegmentedLineModelAgent * myVerticalLine
Definition: 2DRangeRingVisualizer.h:57
bool myFill
Definition: 2DRangeRingVisualizer.h:155
Definition: rangeItem.h:149
makVrv::DtWidgetLabelAgent * myLabel
Definition: 2DRangeRingVisualizer.h:64
makVrv::DtProjectedWidgetModelAgent * myLabelProjectedWidgetModelAgent
Definition: 2DRangeRingVisualizer.h:63
Definition: 2DRangeRingVisualizer.h:42
ShowFlags
Definition: rangeRingVisualizer.h:39
makArchives::DtAltitudeBasedScaleConfigurationRecordCollection myLabelScalesByMinimumAltitude
Definition: 2DRangeRingVisualizer.h:157
DtAttachableUpdaterWithLevelOrientationAgent * myRingUpdaterAgent
Definition: 2DRangeRingVisualizer.h:55
float myFontSizeUnscaled
Definition: 2DRangeRingVisualizer.h:150
DtAttachableUpdaterWithLevelOrientationAgent * myLineUpdaterAgent
Definition: 2DRangeRingVisualizer.h:56
A visualizer for displaying range rings.
Definition: 2DRangeRingVisualizer.h:38
makVrv::DtSceneObjectAgent * myLabelSceneObjectAgent
Definition: 2DRangeRingVisualizer.h:61
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:26
DtAttachableUpdaterWithLevelOrientationAgent * myLabelUpdaterAgent
Definition: 2DRangeRingVisualizer.h:62
DtModelSetId
Definition: DtModelSetEnums.h:19
makVrv::DtSceneObjectAgent * myRingSceneObjectAgent
Definition: 2DRangeRingVisualizer.h:53
std::vector< DtAltitudeBasedScaleConfigurationRecord > DtAltitudeBasedScaleConfigurationRecordCollection
Definition: DtAltitudeBasedScaleConfigurationRecord.h:45
Definition: rangeRingVisualizer.h:46
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:26
Definition: DtVisualizerSchema.h:19
Struct to hold metadata about each functional visualizer type This allows users of the factory to get...
Definition: DtStateVisualizer.h:54
Contains the DtEntitySettingsRecord class declaration.

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)