VR-Forces 4.8 Class Documentation
 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) 2013 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
13 #include <vrvCore/DtSceneObject.h>
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 
46  {
47  return *myIntervisibilityListener;
48  }
49 
51  virtual void setColor( float r, float g, float b, float a );
52 
55  virtual void setStartPoint( const DtVector& vec );
56 
59  virtual void setEndPoint( const DtVector& vec );
60 
63  virtual void setStartAttachPoint( DtElementID elementId );
64 
66  virtual void setStartPointOffset( const DtVector& vec );
67 
70  virtual void setEndAttachPoint( DtElementID elementId );
71 
73  virtual void setEndPointOffset( const DtVector& vec );
74 
76  virtual void setSelected( int index, bool isSelected );
77 
79  virtual void setSelected( bool isSelected );
80 
82  virtual void setFixedDistanceMode( bool isFixedDistMode );
83 
85  virtual int indexOfVertex( DtUniqueID id ) const;
86 
88  virtual const DtStateVisualizer::TypeInfo& typeInfo() const;
89 
91  static const DtStateVisualizer::TypeInfo& theTypeInfo();
92 
93  protected:
94 
95  struct VertexInformation;
96 
97  virtual void createStartPoint();
98  virtual void createEndPoint();
99  virtual void createModelAgents();
100  virtual void destroyModelAgents();
101  virtual DtUniqueID elementIdToSceneId( DtElementID elementId ) const;
102 
104  virtual DtEnvironmentalVisualizerSet* createVertexVisualizer( VertexInformation& vertexInfo );
105 
106  virtual void createRangeInfoWidget( VertexInformation& vertexInfo );
107 
108  virtual void setVisualizerDefinition( const DtVisualizerDefinition& visDef );
109 
110  virtual void slot_mouseDown( DtMouseState& mouseState,
111  const DtUniqueID& id, const std::string& displayEngineName,
112  const std::string& windowName, const std::string& channelName,
113  DtStateVisualizer* v );
114 
115  virtual void slot_mouseUp( DtMouseState& mouseState, const DtUniqueID& id,
116  const std::string& displayEngineName, const std::string& windowName,
117  const std::string& channelName, DtStateVisualizer* v );
118 
119  virtual void slot_mouseDblClick( DtMouseState& mouseState,
120  const DtUniqueID& id, const std::string& displayEngineName,
121  const std::string& windowName, const std::string& channelName,
122  DtStateVisualizer* v );
123 
124  virtual void setColor( DtEnvironmentalVisualizerSet&, float, float, float, float );
125  virtual void setIndicatorsEnabled( DtEnvironmentalVisualizerSet&, bool );
126  virtual void setShowInfoPopupOnSelect( DtEnvironmentalVisualizerSet&, bool );
127  virtual void setWidgetEventsEnabled( DtEnvironmentalVisualizerSet&, bool );
128  virtual void setHatLineVisible( DtEnvironmentalVisualizerSet&, bool );
129  virtual void updateHatLine( DtEnvironmentalVisualizerSet& visSet );
130  virtual void setIndicatorModelDefinitions( DtEnvironmentalVisualizerSet& v,
131  const std::string& normalTheme, const std::string& activeTheme,
132  const std::string& selectedTheme, const std::string& multiSelectedTheme );
133  virtual void setEditing( bool isEditing );
134  virtual void setRangeInfoLabelBackgroundColor( float r, float g, float b, float a );
135  virtual void setRangeInfoLabelsEnabled( bool enabled );
136  virtual void setShowAltChangeField( bool show );
137  virtual void setShowLocationField( bool show );
138  virtual void setShowHeadingField( bool show );
139  virtual void setShowRangeField( bool show );
140 
142  void setHatLinesEnabled( bool isEnabled );
143 
146  void setHatLinesOnSelectionOnly( bool isSelectedOnly );
147 
148  virtual void setupFixedDistanceForEndVertex();
149  virtual void setupUpdaterForEndVertex();
150 
151  virtual void updateRangeInfoOverlayGroup();
152  virtual void updateRangeInfoVisibility();
153  virtual void updateRangeInfoFields();
154  virtual void updateRangeInfoText();
155 
158  virtual DtVector endPoint() const;
159 
162  virtual DtVector startPoint() const;
163 
164  DtUnicode formatLocationString( const DtCoordinateSystem& coordSys,
165  const std::vector<std::string>& locs );
166 
167  protected:
168 
170  {
172  : listener( 0 )
173  , vertex( 0 )
174  , rangeInfoWidget( 0 )
175  , rangeInfoWidgetModel( 0 )
176  , selected( false )
177  , attachedTo( 0 )
178  , updater( 0 )
179  , elementID( 0 )
180  {
181  }
182 
188  DtAttributeGroupWidgetAgent* rangeInfoWidget;
190  DtProjectedWidgetModelAgent* rangeInfoWidgetModel;
194  DtAttachableUpdaterAgent* updater;
196  bool selected;
199  };
200 
201  protected:
202 
204 
206 
209 
219  bool myShowEnd;
220 
229 
231  DtIntervisibilityVertexTicker* myTicker;
232  };
233 
234 
239 }
DtElementID elementID
The vertex&#39;s element id.
Definition: DtIntervisibilityVertexVisualizer.h:198
DtProjectedWidgetModelAgent * rangeInfoWidgetModel
The vertex&#39;s range info widget model (if created).
Definition: DtIntervisibilityVertexVisualizer.h:190
VertexInformation()
Definition: DtIntervisibilityVertexVisualizer.h:171
A unicode string.
Definition: DtUnicode.h:33
VertexInformation myEndPoint
Definition: DtIntervisibilityVertexVisualizer.h:208
bool myShowInfoOnSelect
Definition: DtIntervisibilityVertexVisualizer.h:212
bool myShowRangeField
Definition: DtIntervisibilityVertexVisualizer.h:228
Contains makVrv:DtSceneObjectVisualizer class.
bool myWidgetEventsEnabled
Definition: DtIntervisibilityVertexVisualizer.h:211
float myRangeInfoBackgroundColorG
Definition: DtIntervisibilityVertexVisualizer.h:222
DtEnvironmentalVisualizerSet * vertex
The visualizer set for visualizing the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:186
DtUnicode myVertexVisualizerDefinition
Definition: DtIntervisibilityVertexVisualizer.h:205
Definition: DtStateVisualizer.h:309
bool myShowLocationField
Definition: DtIntervisibilityVertexVisualizer.h:226
DtEnvironmentalStateListener * listener
The environmental state listener for the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:184
bool myShowEnd
Definition: DtIntervisibilityVertexVisualizer.h:219
Base class for visualizing generic objects in the scene.
Definition: DtSceneObjectVisualizer.h:27
DtElementID attachedTo
The id of the element the vertex is attached to.
Definition: DtIntervisibilityVertexVisualizer.h:192
DtIntervisibilityStateListener * myIntervisibilityListener
Definition: DtIntervisibilityVertexVisualizer.h:203
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
DtIntervisibilityStateListener & intervisibilityStateListener()
Definition: DtIntervisibilityVertexVisualizer.h:45
The DtIntervisibilityStateListener is a class that will allow intervisibility objects to use start/en...
Definition: DtIntervisibilityStateListener.h:24
bool myShowAltChangeField
Definition: DtIntervisibilityVertexVisualizer.h:225
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:37
bool myHatLinesEnabled
Definition: DtIntervisibilityVertexVisualizer.h:215
VertexInformation myStartPoint
Definition: DtIntervisibilityVertexVisualizer.h:207
bool myShowStart
Definition: DtIntervisibilityVertexVisualizer.h:218
DtAttributeGroupWidgetAgent * rangeInfoWidget
The vertex&#39;s range info widget (if created).
Definition: DtIntervisibilityVertexVisualizer.h:188
bool myShowRangeInformation
Definition: DtIntervisibilityVertexVisualizer.h:213
float myRangeInfoBackgroundColorA
Definition: DtIntervisibilityVertexVisualizer.h:224
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
float myRangeInfoBackgroundColorR
Definition: DtIntervisibilityVertexVisualizer.h:221
This class encapsulates the state associated with a mouse button event.
Definition: DtMouseState.h:23
DtIntervisibilityVertexTicker * myTicker
A tick-able object to update this object on a regular basis.
Definition: DtIntervisibilityVertexVisualizer.h:231
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:217
bool myHatLinesOnSelectionOnly
Definition: DtIntervisibilityVertexVisualizer.h:214
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
bool myFixedDistanceMode
Definition: DtIntervisibilityVertexVisualizer.h:216
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
The DtStateVisualizer is an abstract class.
Definition: DtStateVisualizer.h:30
The DtEnvironmentalStateListener is a class that deals with basic environmental process code (such as...
Definition: DtEnvironmentalStateListener.h:24
A definition of a visualizer.
Definition: DtVisualizerDefinition.h:22
float myRangeInfoBackgroundColorB
Definition: DtIntervisibilityVertexVisualizer.h:223
bool selected
The selected state of the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:196
DtAttachableUpdaterAgent * updater
The updater used to position the vertex.
Definition: DtIntervisibilityVertexVisualizer.h:194
DtStateVisualizerCreatorTemplate< DtIntervisibilityVertexVisualizer > DtIntervisibilityVertexVisualizerCreator
Creator that will be registered with the state visualizer factory to create this class.
Definition: DtIntervisibilityVertexVisualizer.h:238
bool myIndicatorsEnabled
Definition: DtIntervisibilityVertexVisualizer.h:210
bool myShowHeadingField
Definition: DtIntervisibilityVertexVisualizer.h:227
The DtStateListener is an abstract class.
Definition: DtStateListener.h:21
Struct to hold metadata about each functional visualizer type This allows users of the factory to get...
Definition: DtStateVisualizer.h:54
Contains makVrv::DtSceneObject class.
Definition: DtIntervisibilityVertexVisualizer.h:169

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)