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>
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, makVrv::DtSceneObjectAgent*, makVrv::DtModelSetId modelSet );
75 
77  virtual ~Dt2DRangeRingVisualizer();
78 
79  //connect method called in the creator class
80  virtual void initialize() override;
81 
82  //initialize method called in the creator class
83  virtual void initialize_settings() override;
84 
86  virtual void setVisualizerDefinition( const makVrv::DtVisualizerDefinition& visDef ) override;
87 
89  virtual void setWedgeSpacing(float);
90  virtual float wedgeSpacing() const;
91  //override of parent method - destroys all subordinate visualizers if turned off
92 
94  virtual const makVrv::DtStateVisualizer::TypeInfo& typeInfo() const;
95 
96  virtual void setFixedIconScalingEnabled(bool fixedScalingEnabled);
97 
99  static const makVrv::DtStateVisualizer::TypeInfo& theTypeInfo();
100 
102  static const makVrv::DtVisualizerSchema& theDtRangeRingSchema();
103 
104  protected:
105  virtual void setInitialValuesFromVisualizerDefinition() override;
106 
107  virtual void updateRangeRingInformation(RingStruct& rangeItem);
108 
109  virtual void slot_displayUnitChanged(const makVrv::DtUnicode&);
110 
111  //Creates a new set of ring visualizers, populates a struct and adds it to myRangeRings
112  virtual void createRing(const DtRangeItem&, int extensionIndex);
113 
115  virtual void setRangeRingsLabels();
116 
117  virtual DtVrfOverlayEllipseArcModelAgent* create2DRingAgent(makVrv::DtSceneObjectAgent*);
118 
119  virtual void setAttackAnimationForRingEnabled(const std::string& ring, bool b);
120 
121  virtual void setRangeRingsFill( bool fill );
122  virtual void destroyModelAgents();
123 
124  protected:
125  virtual void updateRangeRingsCount(ShowFlags flags = ShowAll);
126 
128  virtual void updateScaleOfRings();
129 
130  //After a ring is created, update the ring with options specific to this visualizer
131  virtual void updateRingOptions(RingStruct&);
132 
134  virtual void destroyOuterRing(RingStruct&);
135 
137  virtual void setRangeRingGeometry(RingStruct&);
138 
140  virtual void setRangeRingColors(RingStruct&);
141 
143  virtual void setRangeRingLabels(RingStruct&);
144 
146  virtual void checkAndUpdateStipplePatternForRangeRing(const RingStruct&);
147  virtual void updateStipplePatternsForRange(double);
148 
149  protected:
150  std::string myFontFile;
152 
156  bool myFill;
157  bool myFixedScalingEnabled = false;
159  };
160  //The creator class is normally templated in visualizers, but I want to split out the
162 
166 }
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:155
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:33
std::string myFontFile
Definition: 2DRangeRingVisualizer.h:150
DtAttackAnimationAgent * myAttackAnimationAgent
Definition: 2DRangeRingVisualizer.h:59
Definition: rangeRingVisualizer.h:49
Definition: DtStateVisualizer.h:274
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:35
makVrv::DtOverlaySegmentedLineModelAgent * myVerticalLine
Definition: 2DRangeRingVisualizer.h:58
bool myFill
Definition: 2DRangeRingVisualizer.h:156
Definition: rangeItem.h:149
makVrv::DtWidgetLabelAgent * myLabel
Definition: 2DRangeRingVisualizer.h:65
makVrv::DtProjectedWidgetModelAgent * myLabelProjectedWidgetModelAgent
Definition: 2DRangeRingVisualizer.h:64
Definition: 2DRangeRingVisualizer.h:43
ShowFlags
Definition: rangeRingVisualizer.h:36
makArchives::DtAltitudeBasedScaleConfigurationRecordCollection myLabelScalesByMinimumAltitude
Definition: 2DRangeRingVisualizer.h:158
DtAttachableUpdaterWithLevelOrientationAgent * myRingUpdaterAgent
Definition: 2DRangeRingVisualizer.h:56
float myFontSizeUnscaled
Definition: 2DRangeRingVisualizer.h:151
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:26
DtAttachableUpdaterWithLevelOrientationAgent * myLabelUpdaterAgent
Definition: 2DRangeRingVisualizer.h:63
DtModelSetId
Definition: DtModelSetEnums.h:19
makVrv::DtSceneObjectAgent * myRingSceneObjectAgent
Definition: 2DRangeRingVisualizer.h:54
std::vector< DtAltitudeBasedScaleConfigurationRecord > DtAltitudeBasedScaleConfigurationRecordCollection
Definition: DtAltitudeBasedScaleConfigurationRecord.h:45
Definition: rangeRingVisualizer.h:43
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 Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)