VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVrlink2DEntityEmitterVolumeVisualizer.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 #ifndef DT_PROTOCOL_NAMESPACE
13 #error Namespace Protocol Macro DT_PROTOCOL_NAMESPACE not defined.
14 #endif
15 
17 
19 
20 namespace makVrv
21 {
22 
23  class DtSignalConnectionManager;
24  class DtOverlayEllipseArcModelAgent;
25 
26  namespace DT_PROTOCOL_NAMESPACE
27  {
28 
29  class DtVrlinkEmitterStateListener;
30  class DtEmitterSystemExistenceListener;
32 
36  {
37  public:
38 
42  DtVrlink2DEntityEmitterVolumeVisualizer( DtBaseConnection& simulation, DtStateListener& listener, int modelSet );
43 
48 
51 
57  virtual void createModelAgents();
58 
62  virtual void destroyModelAgents();
63 
70  virtual void setVisualizerDefinition( const DtVisualizerDefinition& visDef );
71 
73 
74  protected:
75 
76  // ! \brief Receives notification of emitter volume visibility changes
80  virtual void slot_entityEmitterVolumeVisibilityChanged( bool visible );
81 
84 
91  virtual void slot_emitterSystemDiscovered( DtVrlinkEmitterStateListener* listener );
92 
98  virtual void slot_emitterSystemToBeDestroyed( DtVrlinkEmitterStateListener* listener );
99 
101 
104 
110  virtual void slot_emitterBeamDiscovered( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
111 
117  virtual void slot_emitterBeamToBeRemoved( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
118 
124  virtual void slot_relativePositionSet( const DtVrlinkEmitterStateListener* listener, const DtVector32& position );
125 
127 
130 
137  virtual void slot_azimuthRangeSet( const DtEmitterBeamRepository* bsr, DtFloat32 azimuthCenter, DtFloat32 azimuthSweep );
138 
145  virtual void slot_elevationRangeSet( const DtEmitterBeamRepository* bsr, DtFloat32 elevationCenter, DtFloat32 elevationSweep );
146 
152  virtual void slot_beamFrequencySet( const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
153 
159  virtual void slot_beamPulseWidthSet( const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
160 
166  virtual void slot_beamEmittedPowerSet( const DtEmitterBeamRepository* bsr, const DtFloat32 power );
167 
169 
172 
176  virtual void showHideEmitterVolumes( bool visible );
177 
184  virtual void registerEmitterSystem( DtVrlinkEmitterStateListener* listener );
185 
191  virtual DtSignalConnectionManager* createSignalConnections( DtVrlinkEmitterStateListener* listener );
192 
198  virtual void destroyEmitterSystem( const DtVrlinkEmitterStateListener* listener );
199 
206  virtual void updateBeamVisualization( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
207 
213  virtual DtOverlayEllipseArcModelAgent* findOrCreateBeamModel( const DtEmitterBeamRepository* bsr );
214 
219  virtual DtOverlayEllipseArcModelAgent* findBeamModel( const DtEmitterBeamRepository* bsr );
220 
224  virtual void destroyEmitterBeam( const DtEmitterBeamRepository* bsr );
225 
231  virtual void updateBeamVisibility( const DtEmitterBeamRepository* bsr );
232 
235  virtual bool setBeamModelVisible( const DtUniqueID& beamModelId, bool visibility );
236 
247  virtual void updateBeamScale( const DtEmitterBeamRepository* bsr );
248 
253  virtual void updateBeamColors( const DtEmitterBeamRepository* bsr );
254 
258  virtual void setBeamRelativePosition( const DtEmitterBeamRepository* bsr, const DtVector32& position );
259 
265  virtual void setBeamAzimuthRange( const DtEmitterBeamRepository* bsr );
266 
270  virtual void setBeamElevationRange( const DtEmitterBeamRepository* bsr );
271 
274  virtual void setBeamInsideColor( const DtEmitterBeamRepository* bsr,
275  float r, float g, float b, float a );
276 
279  virtual void setBeamOutsideColor( const DtEmitterBeamRepository* bsr,
280  float r, float g, float b, float a );
281 
285  virtual void setBeamScale( const DtEmitterBeamRepository* bsr, float scale );
286 
295  virtual void computeColorForFrequency( double hi, double low,
296  double act, float innerColor[4], float outerColor[4] );
297 
305  static void hsv2rgb( float hue, float sat, float val, float color[3] );
306 
308 
309  protected:
310 
317  void destroyEmitterSystemInternal( const DtVrlinkEmitterStateListener* listener );
318 
323  void destroyEmitterBeamInternal( const DtEmitterBeamRepository* bsr );
324 
327  typedef boost::unordered_map<const DtVrlinkEmitterStateListener*,DtSignalConnectionManager*> EmitterSystemConnectionsMap;
328 
331  typedef boost::unordered_map<const DtEmitterBeamRepository*,DtUniqueID> BeamModelIdMap;
332 
335 
338 
341 
344 
346 
349 
354 
355  float myNearColor[4];
356  float myFarColor[4];
357 
359  };
360 
362  }
363 }
double myLowPulseFrequency
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:351
Listens for new emitter systems and keeps track of them.
Definition: DtEmitterSystemExistenceListener.h:43
2D Emitter volume visualizer
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:35
BeamModelIdMap myBeamModelIds
Maps emitter beams to their beam model id&#39;s.
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:343
Definition: DtStateVisualizer.h:322
double myHighPulseFrequency
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:350
DtEmitterSystemExistenceListener * myEmitterSystemExistenceListener
The EmitterSystemExistenceListener instance.
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:334
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:34
bool myEmitterVolumesVisible
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:345
Contains the makVrv:Dt2DEntityEmitterVolumeVisualizer class declaration.
float DtFloat32
Definition: vrvControlStructTypes.h:35
double myLowFrequency
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:353
DtStateVisualizerCreatorTemplate< DtVrlink2DEntityEmitterVolumeVisualizer > DtVrlink2DEntityEmitterVolumeVisualizerCreator
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:361
boost::unordered_map< const DtEmitterBeamRepository *, DtUniqueID > BeamModelIdMap
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:331
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
double myExponentialScale
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:348
DtVrlinkEntityStateListener * myEntityListener
Same as myListener, but casted for convenience.
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:337
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
double myLinearScale
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:347
Protocol independent emitter volume visualizer.
Definition: Dt2DEntityEmitterVolumeVisualizer.h:25
#define DT_PROTOCOL_NAMESPACE
Make VR-Vantage VRLink code export with library #ifdef DL_DLL_IGCONVRLINK #undef DL_DLL_IGCONVRLINK #...
Definition: export.h:32
A definition of a visualizer.
Definition: DtVisualizerDefinition.h:22
The DtStateListener is an abstract class.
Definition: DtStateListener.h:21
boost::unordered_map< const DtVrlinkEmitterStateListener *, DtSignalConnectionManager * > EmitterSystemConnectionsMap
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:327
bool myUseCorrectedBeamScaleFormula
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:358
EmitterSystemConnectionsMap myEmitterSystemConnections
Maps emitter system listeners to their connection managers.
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:340
double myHighFrequency
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:352

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)