VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTacticalGraphicNameVisualizer.h
Go to the documentation of this file.
1 /***************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ***************************************************************************/
5 
15 
16 #pragma once
17 
18 #include <vrvCore/vrvCore.h>
21 #include <vrvCore/DtSymbolDecorationUpdaterAgent.hpp>
23 
24 namespace makVrv
25 {
26  namespace vrvTacticalGraphicUtilities
27  {
29  }
30 
31  class DtWidgetLabelAgent;
32  class DtPinnableProjectedWidgetModelAgent;
33 
37  public DtStateVisualizer
38  {
39  public:
41  typedef std::vector<DtVector> VertexList;
42 
44  {
45  MidpointOfVertices,
46  FirstVertex
47  };
48 
50  {
51  MaxExtents,
52  TwoTimesDistanceBetweenFirstAndSecondVertices
53  };
54 
56  {
57  UpwardByLineHeight,
58  UpwardByHalfLineHeight,
59  Leading,
60  Trailing,
61  EndUpwardByLineHeight,
62  EndUpwardByHalfLineHeight
63  };
64 
66  {
67  DistanceBetweenFirstAndSecondVertices, // distance between vertex 0 and vertex 1
68  EntireLengthOfLine // sum of distances between all vertices
69  };
70 
71  public:
79  DtStateListener& listener, DtSceneObjectAgent* sceneObject, DtModelSetId modelSet);
80 
84 
87 
90 
93 
95  virtual void initialize() override;
96 
98  virtual void connectToListenerSignals() override;
99 
102  virtual void setTacticalGraphicsNameEnabled( bool enabled, bool instanceOnly = false );
103 
105  virtual const DtStateVisualizer::TypeInfo& typeInfo() const;
106 
108  static const DtStateVisualizer::TypeInfo& theTypeInfo();
109 
111  virtual void createModelAgents() override;
112 
114  virtual void destroyModelAgents() override;
115 
118  virtual std::string fontFile();
119 
121  virtual void setFontFile(std::string fontFile);
122 
125  virtual int fontSize() const;
126 
128  virtual void setFontSize(int size);
129 
131  virtual void setLocalVertexList(const VertexList&);
132 
134  const VertexList& localVertexList() const;
135 
137  virtual void setColor(float r, float g, float b, float a);
138 
140  void getColor(float& r, float& g, float& b, float& a) const;
141 
143  virtual void setClosedFigure(bool);
144 
146  bool closedFigure() const;
147 
149  virtual void setLabelPosition(DtVector& labelPosition);
150 
152  const DtVector& labelPosition() const;
153 
156  virtual void setIsTimeSensitive(bool);
157 
160  virtual bool isTimeSensitive() const;
161 
164  virtual void slot_colorChanged(float r, float g, float b, float a);
165 
168  virtual void slot_fontChanged(const std::string& fontFile, int fontSize);
169 
172  virtual void slot_closedFigureChanged(bool isClosedFigure);
173 
174  virtual void slot_activationDeactivationTimeSet();
175 
178  virtual void slot_nameChanged(const std::string& name);
179 
187  virtual std::string createDateTimeLabel(time_t totalSeconds) const;
188 
191  virtual void setIsFriendlyForceColorOverrideEnabled(bool enabled);
192 
195  virtual bool isFriendlyForceColorOverrideEnabled() const;
196 
199  virtual void slot_vertexAdded(const DtVector&);
200 
203  virtual void slot_vertexRemoved(int index);
204 
207  virtual void slot_vertexInserted(int index, const DtVector&);
208 
211  virtual void slot_vertexMoved(int index, const DtVector&);
212 
215  virtual void slot_vertexListUpdated(const VertexList&);
216 
218  virtual void slot_physicalLineHeightChanged(float height);
219 
221  virtual void setLabelOffset( int xOffset, int yOffset );
222 
223  protected:
225  virtual void setModelDefinitionForAgents() override;
226 
229  virtual void updateLabelPosition();
230 
232  virtual void updateLabelString();
233 
235  virtual void updateTextColor();
236 
238  virtual DtUnicode createAreaInformationString() const;
239 
241  virtual DtUnicode createLinearInformationString() const;
242 
245  virtual void calculateLineLabelAngle(const std::vector<DtVector>& vertexList);
246 
249  virtual void setInitialValuesFromVisualizerDefinition();
250 
253  void setFriendlyForceColorStyle(vrvTacticalGraphicUtilities::FriendlyForceColorStyle style);
254 
255  protected:
257 
259  float myColor[4];
260 
262  float mySelectedColor[4];
263 
265 
266  DtWidgetLabelAgent* myWidget;
267 
268  DtPinnableProjectedWidgetModelAgent* myWidgetModel;
269 
274 
278 
279  std::string myFontFile;
280 
282 
286 
288  std::string myTitle;
289 
291  std::string myArrowTitle;
292 
296 
299  std::string myName;
300 
303 
305  double myLabelAngle;
306 
309 
312 
316 
319 
322 
327 
329  std::pair<int,int> myLabelOffset;
330  };
331 
336 
337 }
DtVector myLabelPosition
The position of the graphic label.
Definition: DtTacticalGraphicNameVisualizer.h:302
DtArealInformationPositionPolicy
Definition: DtTacticalGraphicNameVisualizer.h:43
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
std::vector< DtVector > VertexList
used to store a list of the object&#39;s vertices
Definition: DtTacticalGraphicNameVisualizer.h:41
DtLinearNameWorldBoundsPolicy
Definition: DtTacticalGraphicNameVisualizer.h:65
DtTacticalGraphicStateListener * myTacticalGraphicListener
Definition: DtTacticalGraphicNameVisualizer.h:264
std::string myTitleAndNameSeparationString
string used to separate the title and name used for areal information - comes from visual definition ...
Definition: DtTacticalGraphicNameVisualizer.h:294
TacticalGraphic Symbol decoration visualizer.
Definition: DtTacticalGraphicNameVisualizer.h:36
DtWidgetLabelAgent * myWidget
Definition: DtTacticalGraphicNameVisualizer.h:266
int myFontSize
Definition: DtTacticalGraphicNameVisualizer.h:281
double myMinimumWorldDistanceForNameLabels
For name labels, i.e. this for lines only. Areas have &#39;information&#39; labels since they can contain mor...
Definition: DtTacticalGraphicNameVisualizer.h:277
voidpf void uLong size
Definition: ioapi.h:39
DtArealInformationWorldBoundsPolicy
Definition: DtTacticalGraphicNameVisualizer.h:49
std::string myArrowTitle
arrow title, preceeds arrow but after name - comes from visual definition
Definition: DtTacticalGraphicNameVisualizer.h:291
Definition: DtStateVisualizer.h:274
The DtTacticalGraphicStateListener is a class that deals with basic TacticalGraphic process code (suc...
Definition: DtTacticalGraphicStateListener.h:27
DtPinnableProjectedWidgetModelAgent * myWidgetModel
Definition: DtTacticalGraphicNameVisualizer.h:268
Contains the DtSharedDisplayUnitsSettings class declaration.
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
DtArealInformationPositionPolicy myArealInformationPositionPolicy
Definition: DtTacticalGraphicNameVisualizer.h:272
int myArrowAscii
ASCII integer to use for the linear arrow character Only use for paired coulde arrows.
Definition: DtTacticalGraphicNameVisualizer.h:285
Contains makVrv:DtTacticalGraphicStateListener class.
bool myClosedFigure
Whether or not figure is a closed figure (area vs. line)
Definition: DtTacticalGraphicNameVisualizer.h:321
DtLinearNamePositionPolicy
Definition: DtTacticalGraphicNameVisualizer.h:55
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool myIsLinearArrowRendered
Whether or not the arrow is rendered for linear tactical graphics.
Definition: DtTacticalGraphicNameVisualizer.h:311
Contains makVrv:DtStateVisualizer class.
std::string myArrowTitleAndNameSeparationString
Definition: DtTacticalGraphicNameVisualizer.h:295
DtLinearNameWorldBoundsPolicy myLinearNameWorldBoundsPolicy
Definition: DtTacticalGraphicNameVisualizer.h:271
double myLabelAngle
Angle of the label.
Definition: DtTacticalGraphicNameVisualizer.h:305
vrvTacticalGraphicUtilities::FriendlyForceColorStyle myFriendlyForceColorStyle
Definition: DtTacticalGraphicNameVisualizer.h:326
bool myIsLabelFlipped
Has the label been flipped due to line orientation.
Definition: DtTacticalGraphicNameVisualizer.h:318
bool myIsTimeSensitive
Used to turn the additional area info (altitude and time) on or off Defaults to true.
Definition: DtTacticalGraphicNameVisualizer.h:315
The DtStateVisualizer is an abstract class. Developers derive from this to create logic that &quot;directs...
Definition: DtStateVisualizer.h:30
std::pair< int, int > myLabelOffset
In pixels.
Definition: DtTacticalGraphicNameVisualizer.h:329
DtStateVisualizerCreatorTemplate< DtTacticalGraphicNameVisualizer > DtTacticalGraphicNameVisualizerCreator
Creator that will be registered with the state visualizer factory to create this class.
Definition: DtTacticalGraphicNameVisualizer.h:335
DtLinearNamePositionPolicy myLinearNamePositionPolicy
Definition: DtTacticalGraphicNameVisualizer.h:270
DtArealInformationWorldBoundsPolicy myArealInformationWorldBoundsPolicy
Definition: DtTacticalGraphicNameVisualizer.h:273
FriendlyForceColorStyle
Enumeration used to specify the current friendly force color style By default, the friendly force col...
Definition: DtTacticalGraphicUtilities.h:107
std::string myFontFile
Definition: DtTacticalGraphicNameVisualizer.h:279
DtModelSetId
Definition: DtModelSetEnums.h:19
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:26
double myLabelMaxWorldDistance
The maximum world distance of the label.
Definition: DtTacticalGraphicNameVisualizer.h:308
Struct to hold metadata about each functional visualizer type This allows users of the factory to get...
Definition: DtStateVisualizer.h:54
bool myIsFriendlyForceColorOverrideEnabled
When this visualizer if used by a friendly aligned graphic, can its color be overridden by 2525d blac...
Definition: DtTacticalGraphicNameVisualizer.h:325
std::string myTitle
title used for areal information - comes from visual definition
Definition: DtTacticalGraphicNameVisualizer.h:288
VertexList myVertexList
Definition: DtTacticalGraphicNameVisualizer.h:256
std::string myName
label used for object visualization contains the graphic name only, no additional info included ...
Definition: DtTacticalGraphicNameVisualizer.h:299
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)