VR-Forces 5.0.3 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>
21 #include <vrfutil/rwUUID.h>
22 
23 namespace makVrf
24 {
25  #define DtRangeRingKey(name, index)( DtString(name) + DtString("_") + DtString(index))
26 
27  class DtCommonStateListenerExtensions;
28 
32  {
33  protected:
34  enum ShowFlags
35  {
36  ShowNone = 0,
37  ShowAll = 0x00000001,
38  ShowPhysicalFootprintOnly = 0x00000002
39  };
40 
42  {
44  virtual ~RingStructDrawingData() {};
45  };
46 
47  struct RingStruct
48  {
49  RingStruct() : myExtensionIndex(0), myVisible(true), myRange(0.), myDrawingData(0)
50  {
51  myColor[0] = myColor[1] = myColor[2] = myColor[3] = 0.;
52  };
53 
54  virtual ~RingStruct() {};
55 
56  int myExtensionIndex;
57  bool myVisible;
58  std::vector<double> myWedgeSizes;
59  float myColor[4];
60  double myRange;
63  std::string myKey;
64 
66  };
67 
68  public:
69 
72  makVrv::DtStateListener& listener, int modelSet );
73 
75  makVrv::DtStateListener& listener, makVrv::DtSceneObjectAgent*, int modelSet );
76 
78  virtual ~DtRangeRingVisualizer();
79 
80  //initialize method called in the creator class
81  virtual void initialize_settings();
82 
83  virtual void setModelDefinitionForAgents();
84 
85  //override of parent method - destroys all subordinate visualizers if turned off
86  virtual void implementVisibility(bool visible) override;
87 
88  virtual void destroyModelAgents() override;
89 
90  protected:
91  virtual void initialize() override;
92 
93  virtual void getColor(unsigned int color, float& r, float& g, float& b, float& a) const;
94 
95  virtual void createModelAgents();
96 
97  virtual void tryToDraw();
98 
99  virtual void updateRangeRingsCount(ShowFlags flags = ShowAll);
100 
102  virtual void setRangeRingsScale(float);
103 
105  virtual void updateRangeRingInformation(RingStruct&);
106  virtual void updateRangeRingsInformation();
107 
108  virtual void setRangeRingsGeometry();
109  virtual void setRangeRingsColors();
110 
111  virtual void slot_entityRangeRingsEnabled(const DtUUID&, int setting);
112 
114  virtual void slot_setSelected(bool) override;
115  virtual void displayScaleChanged(double oldScale, double newScale);
116 
117  protected:
119 
121  virtual void updateScaleOfRings() = 0;
122 
123  //Creates a new set of ring visualizers, populates a struct and adds it to myRangeRings
124  virtual void createRing(const DtRangeItem&, int extensionIndex) = 0;
125 
126  //After a ring is created, update the ring with options specific to this visualizer
127  virtual void updateRingOptions(RingStruct&) = 0;
128 
130  virtual void destroyOuterRing(RingStruct&) = 0;
131 
133  virtual void setRangeRingGeometry(RingStruct&) = 0;
134 
136  virtual void setRangeRingColors(RingStruct&) = 0;
137 
138  protected:
139  typedef std::map<std::string, RingStruct> RangeRings;
141 
143  float myScale;
144 
146 
147  typedef std::map<double, std::set<std::string> > RangeRingRanges;
149 
150  typedef std::map<int, makVrv::DtUnicode> LabelText;
152 
154  };
155 }
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
DtCommonStateListenerExtensions * myExtensions
Definition: rangeRingVisualizer.h:142
RingStruct()
Definition: rangeRingVisualizer.h:49
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
bool myVisible
Definition: rangeRingVisualizer.h:57
RangeRings myRangeRings
Definition: rangeRingVisualizer.h:140
Definition: rangeRingVisualizer.h:47
std::map< std::string, RingStruct > RangeRings
Definition: rangeRingVisualizer.h:139
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:58
Definition: entityStateListenerExtensions.h:36
std::string myKey
Definition: rangeRingVisualizer.h:63
std::map< int, makVrv::DtUnicode > LabelText
Definition: rangeRingVisualizer.h:150
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:38
Definition: rangeItem.h:149
bool mySettingsInitialized
Definition: rangeRingVisualizer.h:153
makVrv::DtUnicode myLabelText
Definition: rangeRingVisualizer.h:61
Contains makVrv:DtStateVisualizer class.
ShowFlags
Definition: rangeRingVisualizer.h:34
double myRange
Definition: rangeRingVisualizer.h:60
std::map< double, std::set< std::string > > RangeRingRanges
Definition: rangeRingVisualizer.h:147
virtual ~RingStruct()
Definition: rangeRingVisualizer.h:54
RingStructDrawingData * myDrawingData
Definition: rangeRingVisualizer.h:65
The DtStateVisualizer is an abstract class. Developers derive from this to create logic that &quot;directs...
Definition: DtStateVisualizer.h:32
bool myEntityRangeRingsEnabled
Definition: rangeRingVisualizer.h:145
Base class to provide boost signal/slot management.
DtVector myOffsetPosition
Definition: rangeRingVisualizer.h:62
virtual ~RingStructDrawingData()
Definition: rangeRingVisualizer.h:44
LabelText myLabelText
Definition: rangeRingVisualizer.h:151
Definition: rangeRingVisualizer.h:41
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:25
RingStructDrawingData()
Definition: rangeRingVisualizer.h:43
float myScale
Definition: rangeRingVisualizer.h:143
RangeRingRanges myRangeRingRanges
Definition: rangeRingVisualizer.h:148

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)