VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtVrlinkEntityEmitterVolumeVisualizer.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 DtEllipsoidArcModelAgent;
25 
26  namespace DT_PROTOCOL_NAMESPACE
27  {
28 
29  class DtVrlinkEmitterStateListener;
30  class DtEmitterSystemExistenceListener;
31 
35  {
36  public:
37 
44  DtVrlinkEntityEmitterVolumeVisualizer( DtBaseConnection& simulation, DtStateListener& listener, int modelSet );
45 
50 
53 
59  virtual void createModelAgents();
60 
63  virtual void destroyModelAgents();
64 
70  virtual void setVisualizerDefinition( const DtVisualizerDefinition& visDef );
71 
73 
74  protected:
75 
78 
85  virtual void slot_emitterSystemDiscovered( DtVrlinkEmitterStateListener* listener );
86 
92  virtual void slot_emitterSystemToBeDestroyed( const DtVrlinkEmitterStateListener* listener );
93 
95 
98 
104  virtual void slot_emitterBeamDiscovered( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
105 
111  virtual void slot_emitterBeamToBeRemoved( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
112 
118  virtual void slot_relativePositionSet( const DtVrlinkEmitterStateListener* listener, const DtVector32& position );
119 
121 
124 
131  virtual void slot_azimuthRangeSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, DtFloat32 azimuthCenter, DtFloat32 azimuthSweep );
132 
139  virtual void slot_elevationRangeSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, DtFloat32 elevationCenter, DtFloat32 elevationSweep );
140 
146  virtual void slot_beamFrequencySet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
147 
153  virtual void slot_beamPulseWidthSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
154 
160  virtual void slot_beamEmittedPowerSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, const DtFloat32 power );
161 
163 
166 
175  virtual void registerEmitterSystem( DtVrlinkEmitterStateListener* listener );
176 
182  virtual DtSignalConnectionManager* createSignalConnections( DtVrlinkEmitterStateListener* listener );
183 
188  virtual void destroyEmitterSystem( const DtVrlinkEmitterStateListener* listener );
189 
194  void destroyEmitterSystemInternal( const DtVrlinkEmitterStateListener* listener );
195 
202  virtual void updateBeamVisualization( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
203 
209  virtual DtEllipsoidArcModelAgent* findOrCreateBeamModel( const DtEmitterBeamRepository* bsr );
210 
215  virtual DtEllipsoidArcModelAgent* findBeamModel( const DtEmitterBeamRepository* bsr );
216 
220  virtual void destroyEmitterBeam( const DtEmitterBeamRepository* bsr );
221 
227  virtual void updateBeamVisibility( const DtEmitterBeamRepository* bsr );
228 
235  virtual void updateBeamScale( const DtEmitterBeamRepository* bsr );
236 
241  virtual void updateBeamColors( const DtEmitterBeamRepository* bsr );
242 
246  virtual void setBeamRelativePosition( const DtEmitterBeamRepository* bsr, const DtVector32& position );
247 
253  virtual void setBeamAzimuthRange( const DtEmitterBeamRepository* bsr );
254 
261  virtual void setBeamElevationRange( const DtEmitterBeamRepository* bsr );
262 
265  virtual void setBeamInsideColor( const DtEmitterBeamRepository* bsr,
266  float r, float g, float b, float a );
267 
270  virtual void setBeamOutsideColor( const DtEmitterBeamRepository* bsr,
271  float r, float g, float b, float a );
272 
276  virtual void setBeamScale( const DtEmitterBeamRepository* bsr, float scale );
277 
286 
287  virtual void computeColorForFrequency( double hi, double low,
288  double act, float innerColor[4], float outerColor[4] );
289 
297  static void hsv2rgb( float hue, float sat, float val, float color[3] );
298 
300 
301  protected:
302 
303  // \brief Stores information about each emitter system for this entity
304  typedef boost::unordered_map<const DtVrlinkEmitterStateListener*,DtSignalConnectionManager*> EmitterSystemConnectionsMap;
305 
306  // \brief Stores the beam model id's for each emitter beam's model
307  typedef boost::unordered_map<const DtEmitterBeamRepository*,DtUniqueID> BeamModelIdMap;
308 
311 
314 
317 
320 
323 
328 
329  float myNearColor[4];
330  float myFarColor[4];
331 
332  };
333 
335  }
336 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)