VR-Forces 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 #include <matrix/vlVector.h>
14 #include <vector>
15 
16 namespace makVrv
17 {
18 
19  class DtCoordinateSystem;
20  class DtAttachableUpdaterAgent;
21  class DtAttributeGroupWidgetAgent;
22  class DtProjectedWidgetModelAgent;
23  class DtEnvironmentalVisualizerSet;
24  class DtEnvironmentalStateListener;
25  class DtIntervisibilityStateListener;
26  class DtIntervisibilityVertexTicker;
27 
33  : public DtStateVisualizer
34  {
35  public:
38  DtSceneObjectAgent* sceneObject, DtModelSetId modelSet );
39 
42 
44  {
45  return *myIntervisibilityListener;
46  }
47 
49  virtual void setColor( float r, float g, float b, float a );
50 
53  virtual void setStartPoint( const DtVector& vec );
54 
57  virtual void setEndPoint( const DtVector& vec );
58 
61  virtual void setStartAttachPoint( DtElementID elementId );
62 
64  virtual void setStartPointOffset( const DtVector& vec );
65 
68  virtual void setEndAttachPoint( DtElementID elementId );
69 
71  virtual void setEndPointOffset( const DtVector& vec );
72 
74  virtual void setSelected( int index, bool isSelected );
75 
78  virtual void slot_setSelected(bool) override;
79 
81  virtual void setFixedDistanceMode( bool isFixedDistMode );
82 
84  virtual int indexOfVertex( DtUniqueID id ) const;
85 
87  virtual const DtStateVisualizer::TypeInfo& typeInfo() const;
88 
90  static const DtStateVisualizer::TypeInfo& theTypeInfo();
91 
92  protected:
93  struct VertexInformation;
94 
95  virtual void createStartPoint();
96  virtual void createEndPoint();
97  virtual void createModelAgents();
98  virtual void destroyModelAgents();
99  virtual DtUniqueID elementIdToSceneId( DtElementID elementId ) const;
100 
102  virtual DtEnvironmentalVisualizerSet* createVertexVisualizer( VertexInformation& vertexInfo );
103 
106  virtual void setInitialValuesFromVisualizerDefinition() override;
107 
108  virtual void setColor( DtEnvironmentalVisualizerSet&, float, float, float, float );
109  virtual void setIndicatorsEnabled( DtEnvironmentalVisualizerSet&, bool );
110  virtual void setWidgetEventsEnabled( DtEnvironmentalVisualizerSet&, bool );
111  virtual void setHatLineVisible( DtEnvironmentalVisualizerSet&, bool );
112  virtual void updateHatLine( DtEnvironmentalVisualizerSet& visSet );
113  virtual void setIndicatorModelDefinitions( DtEnvironmentalVisualizerSet& v,
114  const std::string& normalTheme, const std::string& activeTheme,
115  const std::string& selectedTheme, const std::string& multiSelectedTheme );
116  virtual void setEditing( bool isEditing );
117 
119  void setTacticalGraphicsIndicatorsEnabled( bool isEnabled );
120 
122  void setHatLinesEnabled( bool isEnabled );
123 
126  void setHatLinesOnSelectionOnly( bool isSelectedOnly );
127 
128  virtual void setupFixedDistanceForEndVertex();
129  virtual void setupUpdaterForEndVertex();
130 
133  virtual DtVector endPoint() const;
134 
137  virtual DtVector startPoint() const;
138 
139  DtUnicode formatLocationString( const DtCoordinateSystem& coordSys,
140  const std::vector<std::string>& locs );
141 
144  virtual void setModelDefinitionForAgents() override;
145  protected:
146 
148  {
150  : sceneObjectAgent( nullptr )
151  , listener( nullptr )
152  , vertex( nullptr )
153  , selected( false )
154  , attachedTo( 0 )
155  , updater( nullptr )
156  , elementID( 0 )
157  {
158  }
160  DtSceneObjectAgent* sceneObjectAgent;
168  DtAttachableUpdaterAgent* updater;
170  bool selected;
173  };
174 
175  protected:
176 
178 
180 
183 
192  bool myShowEnd;
193 
195  DtIntervisibilityVertexTicker* myTicker;
196  };
197 
198 
203 }
DtElementID elementID
The vertex&#39;s element id.
Definition: DtIntervisibilityVertexVisualizer.h:172
VertexInformation()
Definition: DtIntervisibilityVertexVisualizer.h:149
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:182
bool myShowInfoOnSelect
Definition: DtIntervisibilityVertexVisualizer.h:186
bool myWidgetEventsEnabled
Definition: DtIntervisibilityVertexVisualizer.h:185
DtEnvironmentalVisualizerSet * vertex
The visualizer set for visualizing the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:164
DtUnicode myVertexVisualizerDefinition
Definition: DtIntervisibilityVertexVisualizer.h:179
Definition: DtStateVisualizer.h:274
DtEnvironmentalStateListener * listener
The environmental state listener for the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:162
bool myShowEnd
Definition: DtIntervisibilityVertexVisualizer.h:192
DtElementID attachedTo
The id of the element the vertex is attached to.
Definition: DtIntervisibilityVertexVisualizer.h:166
DtIntervisibilityStateListener * myIntervisibilityListener
Definition: DtIntervisibilityVertexVisualizer.h:177
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
DtIntervisibilityStateListener & intervisibilityStateListener()
Definition: DtIntervisibilityVertexVisualizer.h:43
The DtIntervisibilityStateListener is a class that will allow intervisibility objects to use start/en...
Definition: DtIntervisibilityStateListener.h:24
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
bool myHatLinesEnabled
Definition: DtIntervisibilityVertexVisualizer.h:188
VertexInformation myStartPoint
Definition: DtIntervisibilityVertexVisualizer.h:181
bool myShowStart
Definition: DtIntervisibilityVertexVisualizer.h:191
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Contains makVrv:DtStateVisualizer class.
DtIntervisibilityVertexTicker * myTicker
A tick-able object to update this object on a regular basis.
Definition: DtIntervisibilityVertexVisualizer.h:195
The DtIntervisibilityVertexVisualizer will show at most two points – the start and end point of the i...
Definition: DtIntervisibilityVertexVisualizer.h:32
This visualizer set class holds is designed to only hold DtEnvironmentalStateVisualizer based classes...
Definition: DtEnvironmentalVisualizerSet.h:27
bool myEditingFlag
Definition: DtIntervisibilityVertexVisualizer.h:190
bool myHatLinesOnSelectionOnly
Definition: DtIntervisibilityVertexVisualizer.h:187
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool myFixedDistanceMode
Definition: DtIntervisibilityVertexVisualizer.h:189
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
The DtStateVisualizer is an abstract class. Developers derive from this to create logic that &quot;directs...
Definition: DtStateVisualizer.h:30
The DtEnvironmentalStateListener is a class that deals with basic environmental process code (such as...
Definition: DtEnvironmentalStateListener.h:30
DtSceneObjectAgent * sceneObjectAgent
The scene object agent used for the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:160
bool selected
The selected state of the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:170
DtAttachableUpdaterAgent * updater
The updater used to position the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:168
DtStateVisualizerCreatorTemplate< DtIntervisibilityVertexVisualizer > DtIntervisibilityVertexVisualizerCreator
Creator that will be registered with the state visualizer factory to create this class.
Definition: DtIntervisibilityVertexVisualizer.h:202
bool myIndicatorsEnabled
Definition: DtIntervisibilityVertexVisualizer.h:184
DtModelSetId
Definition: DtModelSetEnums.h:19
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:26
Struct to hold metadata about each functional visualizer type This allows users of the factory to get...
Definition: DtStateVisualizer.h:54
Definition: DtIntervisibilityVertexVisualizer.h:147

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)