VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSymbolDecorationVisualizer.h
Go to the documentation of this file.
1 /**************************************************************************
2  * Copyright (c) 2020 MAK Technologies, Inc.
3  * All rights reserved.
4  **************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
17 
19 
20 #include <boost/unordered_map.hpp>
21 
22 namespace makVrv
23 {
24 
25  class DtAttributeGroupWidgetAgent;
26  class DtPinnableProjectedWidgetModelAgent;
27  class DtSymbolDecorationUpdaterAgent;
28  class DtOverlayDirectionLineModelAgent;
29  class DtHeadingLineUpdaterAgent;
30  class DtSignalConnectionManager;
31  class DtLocationSymbolDecoration;
32  class DtAccelerationSymbolDecoration;
33  class DtVelocitySymbolDecoration;
34  class DtOrientationSymbolDecoration;
35 
39  : public DtStateVisualizer
40  {
41  public:
43  typedef boost::unordered_map<std::string, DtSymbolDecoration*>
45 
48  typedef boost::unordered_map<unsigned int, std::string> DecorationIndexMap;
49 
50  public:
51 
58  DtStateListener& listener, int modelSet,
59  const std::string& decorationTag);
60 
64 
66  virtual void createModelAgents();
67 
69  virtual void destroyModelAgents();
70 
72  virtual void setModelDefinitionForAgents();
73 
75  virtual void setOrigin(const DtVector&);
76 
79  virtual void setVisualizerDefinition(const DtVisualizerDefinition& visDef);
80 
88  virtual void setSelected(bool isSelected);
89 
97  virtual void setHasMouseCursor(bool hasMouseCursor);
98 
100  virtual DtAttributeGroupWidgetAgent* widget();
101 
103  virtual DtSymbolDecorationUpdaterAgent* widgetUpdater();
104 
110  virtual unsigned int nextLabelIndex();
111 
113  virtual void setLabelIndexForDecorationByName(unsigned int index, const std::string& name);
114 
117  virtual bool labelIndexForDecorationByName(unsigned int& index, const std::string& name) const;
118 
120  inline virtual void initialize()
121  {
123 
124  myDecorationIndexMap[0] = "Name";
125  myDecorationIndexMap[1] = "Heading";
126  myDecorationIndexMap[2] = "Speed";
127  myDecorationIndexMap[3] = "Location";
128  myDecorationIndexMap[4] = "Altitude Above Ground Level (AGL)";
129  myDecorationIndexMap[5] = "Altitude Above Mean Sea Level (MSL)";
130  myDecorationIndexMap[6] = "Orientation";
131  myDecorationIndexMap[7] = "Acceleration";
132 
133  myNextLabelIndex = 8;
134  }
135 
137  virtual DtSceneObjectAgent* sceneObject();
138 
142  virtual void setDecorationsVisible(bool);
143 
148  virtual void setForceColor(float r, float g, float b, float a);
149 
151  virtual void slot_decorationEnabled(const std::string& decoration);
152 
154  virtual void slot_decorationDisabled(const std::string& decoration);
155 
157  virtual void slot_foregroundColorChanged(float r, float g, float b);
158 
160  virtual void slot_backgroundColorChanged(float r, float g, float b);
161 
163  virtual void slot_backgroundOpacityChanged(float a);
164 
166  virtual void slot_shadowTextChanged(bool enabled);
167 
170  virtual void slot_symbolDecorationSetChanged(const std::string& setId);
171 
173  virtual void slot_setScale(float scale);
174 
176  virtual void slot_setEnabled(bool enabled);
177 
179  virtual void slot_colorByForceChanged(bool enabled);
180 
182  virtual void setScale(float scale);
183 
185  virtual void setShowBorder(bool b);
186 
188  virtual bool useHighestTerrainLod() const;
191  virtual void setUseHighestTerrainLod(bool trueOrFalse);
193 
195  virtual DtSymbolDecoration* findSymbolDecoration(
196  const std::string& decorationId);
197 
199  virtual void setOffset(double x, double y);
200 
202  const DtVector& offset() const;
203 
204  virtual void setPinned(bool myPinned);
205 
206  protected:
207 
210  virtual void updateBackgroundState();
211 
213  virtual void setBorderState();
214 
217  virtual void updateColor();
218 
219  protected:
220 
224 
228 
231 
234 
236  DtAttributeGroupWidgetAgent* myWidget;
237 
240  DtPinnableProjectedWidgetModelAgent* myWidgetModel;
241 
244  DtSymbolDecorationUpdaterAgent* myWidgetUpdater;
245 
247  float myForegroundColor[3];
248 
250  float myBackgroundColor[4];
251 
253  float myBorderColor[4];
254 
257 
260  float myForceColor[3];
261 
263  float myScale;
264 
268 
271 
274 
277 
280 
282  std::string myFontFile;
283 
285  std::string myDecorationSetName;
286 
290  std::string myDecorationTag;
291 
293  float myTextR;
294 
296  float myTextG;
297 
299  float myTextB;
300 
302  float myTextA;
303 
305  unsigned int myNextLabelIndex;
306 
308  bool myEnabled;
309 
312 
315 
318 
320  unsigned int myHoverGroupId;
321 
323  unsigned int myHoverTextGroupId;
324 
326  unsigned int mySelectedGroupId;
327 
329  unsigned int mySelectedTextGroupId;
330 
333 
336 
339 
343 
347 
351 
354 
355  private:
356 
357  void cleanup();
358 
359  };
360 
361 }
bool myEnabled
Whether or not the decoration visualizer is enabled.
Definition: DtSymbolDecorationVisualizer.h:308
float myTextA
Text color alpha value.
Definition: DtSymbolDecorationVisualizer.h:302
unsigned int mySymbolDecorationTextGroupId
Overlay group id for the symbol decoration text (foreground) when not selected.
Definition: DtSymbolDecorationVisualizer.h:335
unsigned int mySelectedTextGroupId
Overlay group id for the symbol decoration text (foreground) when selected.
Definition: DtSymbolDecorationVisualizer.h:329
DecorationIndexMap myDecorationIndexMap
Map from a symbol decorations visualization index and the name of the symbol decoration.
Definition: DtSymbolDecorationVisualizer.h:227
bool myShowBorder
Whether or not borders are shown.
Definition: DtSymbolDecorationVisualizer.h:314
DtSignalConnectionManager myModelAgentConns
Manager for boost connections specific to the model agent Both this class and it&#39;s parent need their ...
Definition: DtSymbolDecorationVisualizer.h:223
Base class for symbol decorations.
Definition: DtSymbolDecoration.h:19
unsigned int myNextLabelIndex
Next free index for a label.
Definition: DtSymbolDecorationVisualizer.h:305
DtVector myWidgetOffsetUnscaled
Unscaled 2d offset of decorations from scene object origin z value is ignored.
Definition: DtSymbolDecorationVisualizer.h:267
float myWidgetColumnPadding
Padding between label columns, in pixels.
Definition: DtSymbolDecorationVisualizer.h:276
DtSymbolDecorationUpdaterAgent * myWidgetUpdater
Updater to keep the labels and heading indicator updated with distributed side state.
Definition: DtSymbolDecorationVisualizer.h:244
float myTextR
Text color red value.
Definition: DtSymbolDecorationVisualizer.h:293
bool myVerticalCenter
whether or not to center the attribute group vertically around its origin
Definition: DtSymbolDecorationVisualizer.h:350
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:34
std::string myDecorationTag
Tag used when finding decoration creators specific to a subclass of this visualizer; this variable sh...
Definition: DtSymbolDecorationVisualizer.h:290
bool myColorByForce
Color by force instead of foreground color.
Definition: DtSymbolDecorationVisualizer.h:338
Contains makVrv:DtEntityStateListener class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Contains makVrv:DtStateVisualizer class.
boost::unordered_map< unsigned int, std::string > DecorationIndexMap
Map from a symbol decorations visualization index and the name of the symbol decoration.
Definition: DtSymbolDecorationVisualizer.h:48
Contains the DtSymbolDecorationSettings class declaration.
DtAttributeGroupWidgetAgent * myWidget
Widget to show a layout of labels.
Definition: DtSymbolDecorationVisualizer.h:236
unsigned int myHoverGroupId
Overlay group id for the symbol decoration shadow/background when hovered over with mouse cursor...
Definition: DtSymbolDecorationVisualizer.h:320
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::unordered_map< std::string, DtSymbolDecoration * > DecorationIdMap
Map type from symbol decoration name to symbol decoration.
Definition: DtSymbolDecorationVisualizer.h:44
DtPinnableProjectedWidgetModelAgent * myWidgetModel
Projecting widget to place the label widget at the 2d projection of the scene object&#39;s location...
Definition: DtSymbolDecorationVisualizer.h:240
std::string myDecorationSetName
Name of decoration set to use.
Definition: DtSymbolDecorationVisualizer.h:285
float myHeadingLineLengthUnscaled
Length of heading line in pixels.
Definition: DtSymbolDecorationVisualizer.h:273
std::string myFontFile
Font file for creating labels.
Definition: DtSymbolDecorationVisualizer.h:282
The DtStateVisualizer is an abstract class.
Definition: DtStateVisualizer.h:32
virtual void initialize()
Set default symbol decorations indices.
Definition: DtSymbolDecorationVisualizer.h:120
bool myUseHighestTerrainLod
Tell the updater whether use the height map when calculating altitudes on streamed terrains (slower) ...
Definition: DtSymbolDecorationVisualizer.h:342
std::set< std::string > DecorationSet
a decoration set is a set of creator names for the enabled decorations
Definition: DtSymbolDecorationSettings.h:39
unsigned int mySymbolDecorationGroupId
Overlay group id for the symbol decoration shadow/background when not selected.
Definition: DtSymbolDecorationVisualizer.h:332
Base class to provide boost signal/slot management.
bool myBackgroundHidden
Whether the background is hidden - see updateBackgroundState().
Definition: DtSymbolDecorationVisualizer.h:256
A definition of a visualizer.
Definition: DtVisualizerDefinition.h:22
DecorationIdMap myDecorationIdMap
Map from creator names to decoration instances.
Definition: DtSymbolDecorationVisualizer.h:230
float myScale
Scale as a percentage of initial size.
Definition: DtSymbolDecorationVisualizer.h:263
unsigned int mySelectedGroupId
Overlay group id for the symbol decoration shadow/background when selected.
Definition: DtSymbolDecorationVisualizer.h:326
float myBorderWidth
The line width of the border - if shown.
Definition: DtSymbolDecorationVisualizer.h:311
voidpf uLong offset
Definition: ioapi.h:42
The DtStateListener is an abstract class.
Definition: DtStateListener.h:21
float myWidgetRowPadding
Padding between label rows, in pixels.
Definition: DtSymbolDecorationVisualizer.h:279
unsigned int myHoverTextGroupId
Overlay group id for the symbol decoration text (foreground) when hovered over with mouse cursor...
Definition: DtSymbolDecorationVisualizer.h:323
virtual void initialize()
Initialize the visualizer.
DtSymbolDecorationSettings::DecorationSet myDecorationSet
Decoration set used to create decorations.
Definition: DtSymbolDecorationVisualizer.h:233
float myTextG
Text color green value.
Definition: DtSymbolDecorationVisualizer.h:296
Symbol decoration visualizer.
Definition: DtSymbolDecorationVisualizer.h:38
bool myHorizontalCenter
whether or not to center the attribute group horizontally around its origin
Definition: DtSymbolDecorationVisualizer.h:346
float myTextB
Text color blue value.
Definition: DtSymbolDecorationVisualizer.h:299
bool myPinnedFlag
whether or not the widget this visualizer controls is pinned
Definition: DtSymbolDecorationVisualizer.h:353
bool myShadowText
Whether or not text is shadowed.
Definition: DtSymbolDecorationVisualizer.h:317
float myFontSizeUnscaled
Font size in points.
Definition: DtSymbolDecorationVisualizer.h:270
Contains DLL export macros.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)