VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVrlinkEntityEmitterVolumeVisualizer.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 DtEllipsoidArcModelAgent;
25 
26  namespace DT_PROTOCOL_NAMESPACE
27  {
28 
29  class DtVrlinkEmitterStateListener;
30  class DtEmitterSystemExistenceListener;
32 
36  {
37  public:
38 
45  DtVrlinkEntityEmitterVolumeVisualizer( DtBaseConnection& simulation, DtStateListener& listener, int modelSet );
46 
51 
54 
60  virtual void createModelAgents();
61 
64  virtual void destroyModelAgents();
65 
71  virtual void setVisualizerDefinition( const DtVisualizerDefinition& visDef );
72 
74 
75  protected:
76 
79 
86  virtual void slot_emitterSystemDiscovered( DtVrlinkEmitterStateListener* listener );
87 
93  virtual void slot_emitterSystemToBeDestroyed( const DtVrlinkEmitterStateListener* listener );
94 
96 
99 
105  virtual void slot_emitterBeamDiscovered( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
106 
112  virtual void slot_emitterBeamToBeRemoved( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
113 
119  virtual void slot_relativePositionSet( const DtVrlinkEmitterStateListener* listener, const DtVector32& position );
120 
122 
125 
132  virtual void slot_azimuthRangeSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, DtFloat32 azimuthCenter, DtFloat32 azimuthSweep );
133 
140  virtual void slot_elevationRangeSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, DtFloat32 elevationCenter, DtFloat32 elevationSweep );
141 
147  virtual void slot_beamFrequencySet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
148 
154  virtual void slot_beamPulseWidthSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
155 
161  virtual void slot_beamEmittedPowerSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, const DtFloat32 power );
162 
164 
167 
176  virtual void registerEmitterSystem( DtVrlinkEmitterStateListener* listener );
177 
183  virtual DtSignalConnectionManager* createSignalConnections( DtVrlinkEmitterStateListener* listener );
184 
189  virtual void destroyEmitterSystem( const DtVrlinkEmitterStateListener* listener );
190 
195  void destroyEmitterSystemInternal( const DtVrlinkEmitterStateListener* listener );
196 
203  virtual void updateBeamVisualization( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
204 
210  virtual DtEllipsoidArcModelAgent* findOrCreateBeamModel( const DtEmitterBeamRepository* bsr );
211 
216  virtual DtEllipsoidArcModelAgent* findBeamModel( const DtEmitterBeamRepository* bsr );
217 
221  virtual void destroyEmitterBeam( const DtEmitterBeamRepository* bsr );
222 
228  virtual void updateBeamVisibility( const DtEmitterBeamRepository* bsr );
229 
238  virtual void updateBeamScale( const DtEmitterBeamRepository* bsr );
239 
244  virtual void updateBeamColors( const DtEmitterBeamRepository* bsr );
245 
249  virtual void setBeamRelativePosition( const DtEmitterBeamRepository* bsr, const DtVector32& position );
250 
256  virtual void setBeamAzimuthRange( const DtEmitterBeamRepository* bsr );
257 
264  virtual void setBeamElevationRange( const DtEmitterBeamRepository* bsr );
265 
268  virtual void setBeamInsideColor( const DtEmitterBeamRepository* bsr,
269  float r, float g, float b, float a );
270 
273  virtual void setBeamOutsideColor( const DtEmitterBeamRepository* bsr,
274  float r, float g, float b, float a );
275 
279  virtual void setBeamScale( const DtEmitterBeamRepository* bsr, float scale );
280 
289 
290  virtual void computeColorForFrequency( double hi, double low,
291  double act, float innerColor[4], float outerColor[4] );
292 
300  static void hsv2rgb( float hue, float sat, float val, float color[3] );
301 
303 
304  protected:
305 
306  // \brief Stores information about each emitter system for this entity
307  typedef boost::unordered_map<const DtVrlinkEmitterStateListener*,DtSignalConnectionManager*> EmitterSystemConnectionsMap;
308 
309  // \brief Stores the beam model id's for each emitter beam's model
310  typedef boost::unordered_map<const DtEmitterBeamRepository*,DtUniqueID> BeamModelIdMap;
311 
314 
317 
320 
323 
326 
331 
332  float myNearColor[4];
333  float myFarColor[4];
334 
336 
337  };
338 
340  }
341 }
Protocol independent emitter volume visualizer.
Definition: DtEntityEmitterVolumeVisualizer.h:27
Listens for new emitter systems and keeps track of them.
Definition: DtEmitterSystemExistenceListener.h:43
Contains the makVrv:DtEntityEmitterVolumeVisualizer class declaration.
Definition: DtStateVisualizer.h:322
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:34
float DtFloat32
Definition: vrvControlStructTypes.h:35
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtStateVisualizerCreatorTemplate< DtVrlinkEntityEmitterVolumeVisualizer > DtVrlinkEntityEmitterVolumeVisualizerCreator
Definition: DtVrlinkEntityEmitterVolumeVisualizer.h:339
#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

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)