VR-Forces 4.1.1 Class Documentation
DtVrlink2DEntityEmitterVolumeVisualizer.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2012 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;
31 
35  {
36  public:
37 
41  DtVrlink2DEntityEmitterVolumeVisualizer( DtBaseConnection& simulation, DtStateListener& listener, int modelSet );
42 
47 
50 
56  virtual void createModelAgents();
57 
61  virtual void destroyModelAgents();
62 
69  virtual void setVisualizerDefinition( const DtVisualizerDefinition& visDef );
70 
72 
73  protected:
74 
75  // ! \brief Receives notification of emitter volume visibility changes
79  virtual void slot_entityEmitterVolumeVisibilityChanged( bool visible );
80 
83 
90  virtual void slot_emitterSystemDiscovered( DtVrlinkEmitterStateListener* listener );
91 
97  virtual void slot_emitterSystemToBeDestroyed( DtVrlinkEmitterStateListener* listener );
98 
100 
103 
109  virtual void slot_emitterBeamDiscovered( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
110 
116  virtual void slot_emitterBeamToBeRemoved( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
117 
123  virtual void slot_relativePositionSet( const DtVrlinkEmitterStateListener* listener, const DtVector& position );
124 
126 
129 
136  virtual void slot_azimuthRangeSet( const DtEmitterBeamRepository* bsr, DtFloat32 azimuthCenter, DtFloat32 azimuthSweep );
137 
144  virtual void slot_elevationRangeSet( const DtEmitterBeamRepository* bsr, DtFloat32 elevationCenter, DtFloat32 elevationSweep );
145 
151  virtual void slot_beamFrequencySet( const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
152 
158  virtual void slot_beamPulseWidthSet( const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
159 
165  virtual void slot_beamEmittedPowerSet( const DtEmitterBeamRepository* bsr, const DtFloat32 power );
166 
168 
171 
175  virtual void showHideEmitterVolumes( bool visible );
176 
183  virtual void registerEmitterSystem( DtVrlinkEmitterStateListener* listener );
184 
190  virtual DtSignalConnectionManager* createSignalConnections( DtVrlinkEmitterStateListener* listener );
191 
197  virtual void destroyEmitterSystem( const DtVrlinkEmitterStateListener* listener );
198 
205  virtual void updateBeamVisualization( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
206 
212  virtual DtOverlayEllipseArcModelAgent* findOrCreateBeamModel( const DtEmitterBeamRepository* bsr );
213 
218  virtual DtOverlayEllipseArcModelAgent* findBeamModel( const DtEmitterBeamRepository* bsr );
219 
223  virtual void destroyEmitterBeam( const DtEmitterBeamRepository* bsr );
224 
230  virtual void updateBeamVisibility( const DtEmitterBeamRepository* bsr );
231 
234  virtual bool setBeamModelVisible( const DtUniqueID& beamModelId, bool visibility );
235 
244  virtual void updateBeamScale( const DtEmitterBeamRepository* bsr );
245 
250  virtual void updateBeamColors( const DtEmitterBeamRepository* bsr );
251 
255  virtual void setBeamRelativePosition( const DtEmitterBeamRepository* bsr, const DtVector& position );
256 
262  virtual void setBeamAzimuthRange( const DtEmitterBeamRepository* bsr );
263 
267  virtual void setBeamElevationRange( const DtEmitterBeamRepository* bsr );
268 
271  virtual void setBeamInsideColor( const DtEmitterBeamRepository* bsr,
272  float r, float g, float b, float a );
273 
276  virtual void setBeamOutsideColor( const DtEmitterBeamRepository* bsr,
277  float r, float g, float b, float a );
278 
282  virtual void setBeamScale( const DtEmitterBeamRepository* bsr, float scale );
283 
292  virtual void computeColorForFrequency( double hi, double low,
293  double act, float innerColor[4], float outerColor[4] );
294 
302  static void hsv2rgb( float hue, float sat, float val, float color[3] );
303 
305 
306  protected:
307 
314  void destroyEmitterSystemInternal( const DtVrlinkEmitterStateListener* listener );
315 
320  void destroyEmitterBeamInternal( const DtEmitterBeamRepository* bsr );
321 
324  typedef boost::unordered_map<const DtVrlinkEmitterStateListener*,DtSignalConnectionManager*> EmitterSystemConnectionsMap;
325 
328  typedef boost::unordered_map<const DtEmitterBeamRepository*,DtUniqueID> BeamModelIdMap;
329 
332 
335 
338 
341 
343 
346 
351 
352  float myNearColor[4];
353  float myFarColor[4];
354 
355  };
356 
358  }
359 }

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)