VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rangeRingVisualizer.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2013 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
15 #include <vrvUtil/DtUnicode.h>
17 #include <vrfGuiCore/DtAttachableUpdaterWithLevelOrientationAgent.hpp>
19 #include <matrix/vlVector.h>
20 #include <vrfutil/rwUUID.h>
22 
23 #include <boost/signals2.hpp>
24 
25 #include <map>
26 #include <set>
27 
28 namespace makVrf
29 {
30  #define DtRangeRingKey(name, index)( DtString(name) + DtString("_") + DtString(index))
31 
32  class DtCommonStateListenerExtensions;
33 
37  {
38  protected:
39  enum ShowFlags
40  {
41  ShowNone = 0,
42  ShowAll = 0x00000001,
43  ShowPhysicalFootprintOnly = 0x00000002
44  };
45 
47  {
49  virtual ~RingStructDrawingData() {};
50  };
51 
52  struct RingStruct
53  {
54  RingStruct() : myExtensionIndex(0), myVisible(true), myRange(0.), myDrawingData(0)
55  {
56  myColor[0] = myColor[1] = myColor[2] = myColor[3] = 0.;
57  };
58 
59  virtual ~RingStruct() {};
60 
61  int myExtensionIndex;
62  bool myVisible;
63  std::vector<double> myWedgeSizes;
64  float myColor[4];
65  double myRange;
67  DtVector myOffsetPosition;
68  std::string myKey;
69 
71  };
72 
73  public:
74 
77  makVrv::DtStateListener& listener, makVrv::DtSceneObjectAgent*, makVrv::DtModelSetId modelSet );
78 
80  virtual ~DtRangeRingVisualizer() override;
81 
82  //initialize method called in the creator class
83  virtual void initialize_settings();
84 
85  virtual void setModelDefinitionForAgents() override;
86 
87  //override of parent method - destroys all subordinate visualizers if turned off
88  virtual void implementVisibility(bool visible) override;
89 
90  virtual void destroyModelAgents() override;
91 
92  protected:
93  virtual std::string rangeRingKey(const DtRangeItem& rangeItem, int extensionIndex) const;
94  virtual void initialize() override;
95 
96  virtual void getColor(unsigned int color, float& r, float& g, float& b, float& a) const;
97 
98  virtual void createModelAgents() override;
99 
100  virtual void tryToDraw();
101 
102  virtual void updateRangeRingsCount(ShowFlags flags = ShowAll);
103 
105  virtual void setRangeRingsScale(float);
106 
108  virtual void updateRangeRingInformation(RingStruct&);
109  virtual void updateRangeRingsInformation();
110 
111  virtual void setRangeRingsGeometry();
112  virtual void setRangeRingsColors();
113 
114  virtual void slot_entityRangeRingsEnabled(const DtUUID&, int setting);
115  virtual void slot_selectionDisplayAvailableChangedFor(int setting);
116 
118  virtual void slot_setSelected(bool) override;
119  virtual void displayScaleChanged(double oldScale, double newScale);
120 
121  protected:
123 
125  virtual void updateScaleOfRings() = 0;
126 
127  //Creates a new set of ring visualizers, populates a struct and adds it to myRangeRings
128  virtual void createRing(const DtRangeItem&, int extensionIndex) = 0;
129 
130  //After a ring is created, update the ring with options specific to this visualizer
131  virtual void updateRingOptions(RingStruct&) = 0;
132 
134  virtual void destroyOuterRing(RingStruct&) = 0;
135 
137  virtual void setRangeRingGeometry(RingStruct&) = 0;
138 
140  virtual void setRangeRingColors(RingStruct&) = 0;
141 
142  protected:
143  typedef std::map<std::string, RingStruct> RangeRings;
145 
147  float myScale;
148 
150 
151  typedef std::map<double, std::set<std::string> > RangeRingRanges;
153 
154  typedef std::map<int, makVrv::DtUnicode> LabelText;
156 
158  boost::signals2::scoped_connection myTurnOffIfSelectedConnection;
159  };
160 }
UUID is a unique ID wrapper class.
Definition: uuid.h:59
DtCommonStateListenerExtensions * myExtensions
Definition: rangeRingVisualizer.h:146
RingStruct()
Definition: rangeRingVisualizer.h:54
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
bool myVisible
Definition: rangeRingVisualizer.h:62
RangeRings myRangeRings
Definition: rangeRingVisualizer.h:144
Definition: rangeRingVisualizer.h:52
std::map< std::string, RingStruct > RangeRings
Definition: rangeRingVisualizer.h:143
Contains the DtUnitConverterCollection class declaration.
Contains the DtUUID class declaration.
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
std::vector< double > myWedgeSizes
Definition: rangeRingVisualizer.h:63
Definition: entityStateListenerExtensions.h:38
std::string myKey
Definition: rangeRingVisualizer.h:68
std::map< int, makVrv::DtUnicode > LabelText
Definition: rangeRingVisualizer.h:154
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
Definition: rangeItem.h:149
bool mySettingsInitialized
Definition: rangeRingVisualizer.h:157
boost::signals2::scoped_connection myTurnOffIfSelectedConnection
Definition: rangeRingVisualizer.h:158
makVrv::DtUnicode myLabelText
Definition: rangeRingVisualizer.h:66
Contains makVrv:DtStateVisualizer class.
ShowFlags
Definition: rangeRingVisualizer.h:39
double myRange
Definition: rangeRingVisualizer.h:65
std::map< double, std::set< std::string > > RangeRingRanges
Definition: rangeRingVisualizer.h:151
virtual ~RingStruct()
Definition: rangeRingVisualizer.h:59
RingStructDrawingData * myDrawingData
Definition: rangeRingVisualizer.h:70
The DtStateVisualizer is an abstract class. Developers derive from this to create logic that &quot;directs...
Definition: DtStateVisualizer.h:30
bool myEntityRangeRingsEnabled
Definition: rangeRingVisualizer.h:149
Base class to provide boost signal/slot management.
DtVector myOffsetPosition
Definition: rangeRingVisualizer.h:67
virtual ~RingStructDrawingData()
Definition: rangeRingVisualizer.h:49
DtModelSetId
Definition: DtModelSetEnums.h:19
LabelText myLabelText
Definition: rangeRingVisualizer.h:155
Definition: rangeRingVisualizer.h:46
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:26
RingStructDrawingData()
Definition: rangeRingVisualizer.h:48
float myScale
Definition: rangeRingVisualizer.h:147
RangeRingRanges myRangeRingRanges
Definition: rangeRingVisualizer.h:152

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)