VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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  class DtRangeRingUpdaterAgent;
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  DtRangeRingUpdaterAgent* 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<double> myWedgeSizes;
67  unsigned int myStipplePattern;
68  };
69 
70  public:
71 
74  makVrv::DtStateListener& listener, int modelSet );
75 
77  virtual ~Dt2DRangeRingVisualizer();
78 
79  //connect method called in the creator class
80  virtual void connect();
81 
82  //initialize method called in the creator class
83  virtual void initialize_settings();
84 
86  virtual void setVisualizerDefinition( const makVrv::DtVisualizerDefinition& visDef );
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 
97  static const makVrv::DtStateVisualizer::TypeInfo& theTypeInfo();
98 
100  static const makVrv::DtVisualizerSchema& theDtRangeRingSchema();
101 
102  protected:
103  virtual void updateRangeRingInformation(RingStruct& rangeItem);
104 
105  virtual void slot_displayUnitChanged(makVrv::DtUnitConverterCollection::DisplayUnitType, int, int);
106 
107  //Creates a new set of ring visualizers, populates a struct and adds it to myRangeRings
108  virtual void createRing(const DtRangeItem&, int extensionIndex);
109 
111  virtual void setRangeRingsLabels();
112 
113  virtual DtVrfOverlayEllipseArcModelAgent* create2DRingAgent(makVrv::DtSceneObjectAgent*);
114 
115  virtual void setAttackAnimationForRingEnabled(const std::string& ring, bool b);
116 
117  virtual void setRangeRingsFill( bool fill );
118  virtual void destroyModelAgents();
119 
120  protected:
121  virtual void updateRangeRingsCount(ShowFlags flags = ShowAll);
122 
124  virtual void updateScaleOfRings();
125 
126  //After a ring is created, update the ring with options specific to this visualizer
127  virtual void updateRingOptions(RingStruct&);
128 
130  virtual void destroyOuterRing(RingStruct&);
131 
133  virtual void setRangeRingGeometry(RingStruct&);
134 
136  virtual void setRangeRingColors(RingStruct&);
137 
139  virtual void setRangeRingLabels(RingStruct&);
140 
142  virtual void checkAndUpdateStipplePatternForRangeRing(const RingStruct&);
143  virtual void updateStipplePatternsForRange(double);
144 
145  protected:
146  std::string myFontFile;
148 
152  bool myFill;
153  };
154  //The creator class is normally templated in visualizers, but I want to split out the
156 
158  {
159  public:
160 
163 
166 
167  virtual DtRangeRingVisualizerCreator* clone() const;
168 
170  virtual makVrv::DtStateVisualizer* create(makVrv::DtBaseConnection& simulation, makVrv::DtStateListener& listener, int modelSet) const;
171 
174 
175  virtual const std::string& tag();
176  };
177 
178 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)