VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIntervisibilityVertexVisualizer.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
13 
14 #include <matrix/vlVector.h>
15 #include <vector>
16 
17 namespace makVrv
18 {
19 
20  class DtCoordinateSystem;
21  class DtAttachableUpdaterAgent;
22  class DtAttributeGroupWidgetAgent;
23  class DtProjectedWidgetModelAgent;
24  class DtEnvironmentalVisualizerSet;
25  class DtEnvironmentalStateListener;
26  class DtIntervisibilityStateListener;
27  class DtIntervisibilityVertexTicker;
28 
35  {
36  public:
37 
40  DtStateListener& listener, int modelSet );
41 
44  DtSceneObjectAgent* sceneObject, int modelSet );
45 
48 
50  {
51  return *myIntervisibilityListener;
52  }
53 
55  virtual void setColor( float r, float g, float b, float a );
56 
59  virtual void setStartPoint( const DtVector& vec );
60 
63  virtual void setEndPoint( const DtVector& vec );
64 
67  virtual void setStartAttachPoint( DtElementID elementId );
68 
70  virtual void setStartPointOffset( const DtVector& vec );
71 
74  virtual void setEndAttachPoint( DtElementID elementId );
75 
77  virtual void setEndPointOffset( const DtVector& vec );
78 
80  virtual void setSelected( int index, bool isSelected );
81 
84  virtual void slot_setSelected(bool) override;
85 
87  virtual void setFixedDistanceMode( bool isFixedDistMode );
88 
90  virtual int indexOfVertex( DtUniqueID id ) const;
91 
93  virtual const DtStateVisualizer::TypeInfo& typeInfo() const;
94 
96  static const DtStateVisualizer::TypeInfo& theTypeInfo();
97 
98  protected:
99  struct VertexInformation;
100 
101  virtual void createStartPoint();
102  virtual void createEndPoint();
103  virtual void createModelAgents();
104  virtual void destroyModelAgents();
105  virtual DtUniqueID elementIdToSceneId( DtElementID elementId ) const;
106 
108  virtual DtEnvironmentalVisualizerSet* createVertexVisualizer( VertexInformation& vertexInfo );
109 
110  virtual void createRangeInfoWidget( VertexInformation& vertexInfo );
111 
114  virtual void setInitialValuesFromVisualizerDefinition() override;
115 
116  virtual void setColor( DtEnvironmentalVisualizerSet&, float, float, float, float );
117  virtual void setIndicatorsEnabled( DtEnvironmentalVisualizerSet&, bool );
118  virtual void setShowInfoPopupOnSelect( DtEnvironmentalVisualizerSet&, bool );
119  virtual void setWidgetEventsEnabled( DtEnvironmentalVisualizerSet&, bool );
120  virtual void setHatLineVisible( DtEnvironmentalVisualizerSet&, bool );
121  virtual void updateHatLine( DtEnvironmentalVisualizerSet& visSet );
122  virtual void setIndicatorModelDefinitions( DtEnvironmentalVisualizerSet& v,
123  const std::string& normalTheme, const std::string& activeTheme,
124  const std::string& selectedTheme, const std::string& multiSelectedTheme );
125  virtual void setEditing( bool isEditing );
126  virtual void setRangeInfoLabelBackgroundColor( float r, float g, float b, float a );
127  virtual void setRangeInfoLabelsEnabled( bool enabled );
128  virtual void setShowAltChangeField( bool show );
129  virtual void setShowLocationField( bool show );
130  virtual void setShowHeadingField( bool show );
131  virtual void setShowRangeField( bool show );
132 
134  void setTacticalGraphicsIndicatorsEnabled( bool isEnabled );
135 
137  void setHatLinesEnabled( bool isEnabled );
138 
141  void setHatLinesOnSelectionOnly( bool isSelectedOnly );
142 
143  virtual void setupFixedDistanceForEndVertex();
144  virtual void setupUpdaterForEndVertex();
145 
146  virtual void updateRangeInfoOverlayGroup();
147  virtual void updateRangeInfoVisibility();
148  virtual void updateRangeInfoFields();
149  virtual void updateRangeInfoText();
150 
153  virtual DtVector endPoint() const;
154 
157  virtual DtVector startPoint() const;
158 
159  DtUnicode formatLocationString( const DtCoordinateSystem& coordSys,
160  const std::vector<std::string>& locs );
161 
162  protected:
163 
165  {
167  : sceneObjectAgent( nullptr )
168  , listener( nullptr )
169  , vertex( nullptr )
170  , rangeInfoWidget( nullptr )
171  , rangeInfoWidgetModel( nullptr )
172  , selected( false )
173  , attachedTo( 0 )
174  , updater( nullptr )
175  , elementID( 0 )
176  {
177  }
179  DtSceneObjectAgent* sceneObjectAgent;
185  DtAttributeGroupWidgetAgent* rangeInfoWidget;
187  DtProjectedWidgetModelAgent* rangeInfoWidgetModel;
191  DtAttachableUpdaterAgent* updater;
193  bool selected;
196  };
197 
198  protected:
199 
201 
203 
206 
216  bool myShowEnd;
217 
226 
228  DtIntervisibilityVertexTicker* myTicker;
229  };
230 
231 
236 }
DtElementID elementID
The vertex&#39;s element id.
Definition: DtIntervisibilityVertexVisualizer.h:195
DtProjectedWidgetModelAgent * rangeInfoWidgetModel
The vertex&#39;s range info widget model (if created).
Definition: DtIntervisibilityVertexVisualizer.h:187
VertexInformation()
Definition: DtIntervisibilityVertexVisualizer.h:166
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
VertexInformation myEndPoint
Definition: DtIntervisibilityVertexVisualizer.h:205
bool myShowInfoOnSelect
Definition: DtIntervisibilityVertexVisualizer.h:209
bool myShowRangeField
Definition: DtIntervisibilityVertexVisualizer.h:225
Contains makVrv:DtSceneObjectVisualizer class. This class wraps the visualization of scene objects...
bool myWidgetEventsEnabled
Definition: DtIntervisibilityVertexVisualizer.h:208
float myRangeInfoBackgroundColorG
Definition: DtIntervisibilityVertexVisualizer.h:219
DtEnvironmentalVisualizerSet * vertex
The visualizer set for visualizing the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:183
DtUnicode myVertexVisualizerDefinition
Definition: DtIntervisibilityVertexVisualizer.h:202
Definition: DtStateVisualizer.h:305
bool myShowLocationField
Definition: DtIntervisibilityVertexVisualizer.h:223
DtEnvironmentalStateListener * listener
The environmental state listener for the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:181
bool myShowEnd
Definition: DtIntervisibilityVertexVisualizer.h:216
Base class for visualizing generic objects in the scene.
Definition: DtSceneObjectVisualizer.h:24
DtElementID attachedTo
The id of the element the vertex is attached to.
Definition: DtIntervisibilityVertexVisualizer.h:189
DtIntervisibilityStateListener * myIntervisibilityListener
Definition: DtIntervisibilityVertexVisualizer.h:200
DtIntervisibilityStateListener & intervisibilityStateListener()
Definition: DtIntervisibilityVertexVisualizer.h:49
The DtIntervisibilityStateListener is a class that will allow intervisibility objects to use start/en...
Definition: DtIntervisibilityStateListener.h:24
bool myShowAltChangeField
Definition: DtIntervisibilityVertexVisualizer.h:222
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:38
bool myHatLinesEnabled
Definition: DtIntervisibilityVertexVisualizer.h:212
VertexInformation myStartPoint
Definition: DtIntervisibilityVertexVisualizer.h:204
bool myShowStart
Definition: DtIntervisibilityVertexVisualizer.h:215
DtAttributeGroupWidgetAgent * rangeInfoWidget
The vertex&#39;s range info widget (if created).
Definition: DtIntervisibilityVertexVisualizer.h:185
bool myShowRangeInformation
Definition: DtIntervisibilityVertexVisualizer.h:210
float myRangeInfoBackgroundColorA
Definition: DtIntervisibilityVertexVisualizer.h:221
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
float myRangeInfoBackgroundColorR
Definition: DtIntervisibilityVertexVisualizer.h:218
DtIntervisibilityVertexTicker * myTicker
A tick-able object to update this object on a regular basis.
Definition: DtIntervisibilityVertexVisualizer.h:228
The DtIntervisibilityVertexVisualizer will show at most two points – the start and end point of the i...
Definition: DtIntervisibilityVertexVisualizer.h:33
This visualizer set class holds is designed to only hold DtEnvironmentalStateVisualizer based classes...
Definition: DtEnvironmentalVisualizerSet.h:27
bool myEditingFlag
Definition: DtIntervisibilityVertexVisualizer.h:214
bool myHatLinesOnSelectionOnly
Definition: DtIntervisibilityVertexVisualizer.h:211
bool myFixedDistanceMode
Definition: DtIntervisibilityVertexVisualizer.h:213
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
The DtEnvironmentalStateListener is a class that deals with basic environmental process code (such as...
Definition: DtEnvironmentalStateListener.h:29
float myRangeInfoBackgroundColorB
Definition: DtIntervisibilityVertexVisualizer.h:220
DtSceneObjectAgent * sceneObjectAgent
The scene object agent used for the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:179
bool selected
The selected state of the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:193
DtAttachableUpdaterAgent * updater
The updater used to position the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:191
DtStateVisualizerCreatorTemplate< DtIntervisibilityVertexVisualizer > DtIntervisibilityVertexVisualizerCreator
Creator that will be registered with the state visualizer factory to create this class.
Definition: DtIntervisibilityVertexVisualizer.h:235
bool myIndicatorsEnabled
Definition: DtIntervisibilityVertexVisualizer.h:207
bool myShowHeadingField
Definition: DtIntervisibilityVertexVisualizer.h:224
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:25
Struct to hold metadata about each functional visualizer type This allows users of the factory to get...
Definition: DtStateVisualizer.h:56
Definition: DtIntervisibilityVertexVisualizer.h:164

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)