VR-Forces 5.0.1 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>
20 
21 namespace makVrv
22 {
23  class DtWidgetLabelAgent;
24  class DtProjectedWidgetModelAgent;
25  class DtVisualizerDefinition;
26  class DtAttachableUpdaterAgent;
27  class DtOverlaySegmentedLineModelAgent;
28  class DtLineModelUpdaterAgent;
29 }
30 
31 namespace makVrf
32 {
33  class DtAttachableUpdaterWithLevelOrientationAgent;
34  class DtVrfOverlayEllipseArcModelAgent;
35  class DtAttackAnimationAgent;
36 
40  {
41  protected:
42 
44  {
46  virtual ~RingStructDrawingData2D();
47 
48  //This struct has separate instances of scene objects and updater agents for
52  DtVrfOverlayEllipseArcModelAgent* myRangeRing;
53 
54  makVrv::DtSceneObjectAgent* myRingSceneObjectAgent;
55  makVrv::DtSceneObjectAgent* myLineSceneObjectAgent;
56  DtAttachableUpdaterWithLevelOrientationAgent* myRingUpdaterAgent;
57  DtAttachableUpdaterWithLevelOrientationAgent* myLineUpdaterAgent;
58  makVrv::DtOverlaySegmentedLineModelAgent* myVerticalLine;
59  DtAttackAnimationAgent* myAttackAnimationAgent;
60 
61  //Label components
62  makVrv::DtSceneObjectAgent* myLabelSceneObjectAgent;
63  DtAttachableUpdaterWithLevelOrientationAgent* myLabelUpdaterAgent;
64  makVrv::DtProjectedWidgetModelAgent* myLabelProjectedWidgetModelAgent;
65  makVrv::DtWidgetLabelAgent* myLabel;
66  std::vector<DtNetFloat32> myWedgeSizes;
67  unsigned int myStipplePattern;
68  };
69 
70  public:
71 
74  makVrv::DtStateListener& listener, int modelSet );
76  makVrv::DtStateListener& listener, makVrv::DtSceneObjectAgent*, int modelSet );
77 
79  virtual ~Dt2DRangeRingVisualizer();
80 
81  //connect method called in the creator class
82  virtual void initialize() override;
83 
84  //initialize method called in the creator class
85  virtual void initialize_settings() override;
86 
88  virtual void setVisualizerDefinition( const makVrv::DtVisualizerDefinition& visDef ) override;
89 
91  virtual void setWedgeSpacing(float);
92  virtual float wedgeSpacing() const;
93  //override of parent method - destroys all subordinate visualizers if turned off
94 
96  virtual const makVrv::DtStateVisualizer::TypeInfo& typeInfo() const;
97 
98  virtual void setFixedIconScalingEnabled(bool fixedScalingEnabled);
99 
101  static const makVrv::DtStateVisualizer::TypeInfo& theTypeInfo();
102 
104  static const makVrv::DtVisualizerSchema& theDtRangeRingSchema();
105 
106  protected:
107  virtual void setInitialValuesFromVisualizerDefinition() override;
108 
109  virtual void updateRangeRingInformation(RingStruct& rangeItem);
110 
111  virtual void slot_displayUnitChanged(const makVrv::DtUnicode&);
112 
113  //Creates a new set of ring visualizers, populates a struct and adds it to myRangeRings
114  virtual void createRing(const DtRangeItem&, int extensionIndex);
115 
117  virtual void setRangeRingsLabels();
118 
119  virtual DtVrfOverlayEllipseArcModelAgent* create2DRingAgent(makVrv::DtSceneObjectAgent*);
120 
121  virtual void setAttackAnimationForRingEnabled(const std::string& ring, bool b);
122 
123  virtual void setRangeRingsFill( bool fill );
124  virtual void destroyModelAgents();
125 
126  protected:
127  virtual void updateRangeRingsCount(ShowFlags flags = ShowAll);
128 
130  virtual void updateScaleOfRings();
131 
132  //After a ring is created, update the ring with options specific to this visualizer
133  virtual void updateRingOptions(RingStruct&);
134 
136  virtual void destroyOuterRing(RingStruct&);
137 
139  virtual void setRangeRingGeometry(RingStruct&);
140 
142  virtual void setRangeRingColors(RingStruct&);
143 
145  virtual void setRangeRingLabels(RingStruct&);
146 
148  virtual void checkAndUpdateStipplePatternForRangeRing(const RingStruct&);
149  virtual void updateStipplePatternsForRange(double);
150 
151  protected:
152  std::string myFontFile;
154 
158  bool myFill;
159  bool myFixedScalingEnabled = false;
161  };
162  //The creator class is normally templated in visualizers, but I want to split out the
164 
168 }
DtVrfOverlayEllipseArcModelAgent * myRangeRing
the label and the ring/ line components. The reason for this is that a projected label widget and the...
Definition: 2DRangeRingVisualizer.h:52
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:157
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:31
std::string myFontFile
Definition: 2DRangeRingVisualizer.h:152
DtAttackAnimationAgent * myAttackAnimationAgent
Definition: 2DRangeRingVisualizer.h:59
Definition: rangeRingVisualizer.h:47
Definition: DtStateVisualizer.h:305
std::vector< DtNetFloat32 > myWedgeSizes
Definition: 2DRangeRingVisualizer.h:66
makVrv::DtSceneObjectAgent * myLineSceneObjectAgent
Definition: 2DRangeRingVisualizer.h:55
Contains the DtUnitConverterCollection class declaration.
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
unsigned int myStipplePattern
Definition: 2DRangeRingVisualizer.h:67
Contains the makVrv::DtRangeRingVisualizer class declaration. This is the base class for use in creat...
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:39
makVrv::DtOverlaySegmentedLineModelAgent * myVerticalLine
Definition: 2DRangeRingVisualizer.h:58
bool myFill
Definition: 2DRangeRingVisualizer.h:158
Definition: rangeItem.h:149
makVrv::DtWidgetLabelAgent * myLabel
Definition: 2DRangeRingVisualizer.h:65
makVrv::DtProjectedWidgetModelAgent * myLabelProjectedWidgetModelAgent
Definition: 2DRangeRingVisualizer.h:64
Definition: 2DRangeRingVisualizer.h:43
std::vector< DtDynamicScaleConfiguration > DtDynamicScaleConfigurationCollection
Definition: DtEntitySettingsRecord.h:54
ShowFlags
Definition: rangeRingVisualizer.h:34
DtAttachableUpdaterWithLevelOrientationAgent * myRingUpdaterAgent
Definition: 2DRangeRingVisualizer.h:56
float myFontSizeUnscaled
Definition: 2DRangeRingVisualizer.h:153
DtAttachableUpdaterWithLevelOrientationAgent * myLineUpdaterAgent
Definition: 2DRangeRingVisualizer.h:57
A visualizer for displaying range rings.
Definition: 2DRangeRingVisualizer.h:39
makVrv::DtSceneObjectAgent * myLabelSceneObjectAgent
Definition: 2DRangeRingVisualizer.h:62
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:22
DtAttachableUpdaterWithLevelOrientationAgent * myLabelUpdaterAgent
Definition: 2DRangeRingVisualizer.h:63
makVrv::DtSceneObjectAgent * myRingSceneObjectAgent
Definition: 2DRangeRingVisualizer.h:54
Definition: rangeRingVisualizer.h:41
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:25
Definition: DtVisualizerSchema.h:19
makArchives::DtDynamicScaleConfigurationCollection myLabelScalesByMinimumAltitude
Definition: 2DRangeRingVisualizer.h:160
Struct to hold metadata about each functional visualizer type This allows users of the factory to get...
Definition: DtStateVisualizer.h:56
Contains the DtEntitySettingsRecord class declaration.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)