VR-Forces 5.0.1 Developer's Guide
 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  DtSceneObjectAgent* sceneObject, int modelSet );
49 
54 
57 
63  virtual void createModelAgents();
64 
68  virtual void destroyModelAgents();
69 
72  virtual void setInitialValuesFromVisualizerDefinition() override;
73 
75 
76  protected:
77 
78 
81 
88  virtual void slot_emitterSystemDiscovered( DtVrlinkEmitterStateListener* listener );
89 
95  virtual void slot_emitterSystemToBeDestroyed( DtVrlinkEmitterStateListener* listener );
96 
98 
101 
107  virtual void slot_emitterBeamDiscovered( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
108 
114  virtual void slot_emitterBeamToBeRemoved( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
115 
121  virtual void slot_relativePositionSet( const DtVrlinkEmitterStateListener* listener, const DtVector32& position );
122 
124 
127 
134  virtual void slot_azimuthRangeSet( const DtEmitterBeamRepository* bsr, DtFloat32 azimuthCenter, DtFloat32 azimuthSweep );
135 
142  virtual void slot_elevationRangeSet( const DtEmitterBeamRepository* bsr, DtFloat32 elevationCenter, DtFloat32 elevationSweep );
143 
149  virtual void slot_beamFrequencySet( const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
150 
156  virtual void slot_beamPulseWidthSet( const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
157 
163  virtual void slot_beamEmittedPowerSet( const DtEmitterBeamRepository* bsr, const DtFloat32 power );
164 
166 
169 
175  virtual void showHideEmitterVolumes( bool visible, bool instanceOnly);
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 
246  virtual void updateBeamScale( const DtEmitterBeamRepository* bsr );
247 
252  virtual void updateBeamColors( const DtEmitterBeamRepository* bsr );
253 
257  virtual void setBeamRelativePosition( const DtEmitterBeamRepository* bsr, const DtVector32& position );
258 
264  virtual void setBeamAzimuthRange( const DtEmitterBeamRepository* bsr );
265 
269  virtual void setBeamElevationRange( const DtEmitterBeamRepository* bsr );
270 
273  virtual void setBeamInsideColor( const DtEmitterBeamRepository* bsr,
274  float r, float g, float b, float a );
275 
278  virtual void setBeamOutsideColor( const DtEmitterBeamRepository* bsr,
279  float r, float g, float b, float a );
280 
284  virtual void setBeamScale( const DtEmitterBeamRepository* bsr, float scale );
285 
294  virtual void computeColorForFrequency( double hi, double low,
295  double act, float innerColor[4], float outerColor[4] );
296 
304  static void hsv2rgb( float hue, float sat, float val, float color[3] );
305 
307 
308  protected:
309 
316  virtual void destroyEmitterSystemInternal( const DtVrlinkEmitterStateListener* listener );
317 
322  virtual void destroyEmitterBeamInternal( const DtEmitterBeamRepository* bsr );
323 
324  virtual void implementVisibility(bool visible) override;
325 
326  DtEntityStateListener& entityStateListener();
327  const DtEntityStateListener& entityStateListener() const;
328 
329 
330  protected:
331 
334  typedef boost::unordered_map<const DtVrlinkEmitterStateListener*,DtSignalConnectionManager*> EmitterSystemConnectionsMap;
335 
338  typedef boost::unordered_map<const DtEmitterBeamRepository*,DtUniqueID> BeamModelIdMap;
339 
342 
345 
348 
354 
359 
360  float myNearColor[4];
361  float myFarColor[4];
362 
364  };
365 
367  }
368 }
double myLowPulseFrequency
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:356
Listens for new emitter systems and keeps track of them.
Definition: DtEmitterSystemExistenceListener.h:42
2D Emitter volume visualizer
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:35
BeamModelIdMap myBeamModelIds
Maps emitter beams to their beam model id&#39;s.
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:350
Definition: DtStateVisualizer.h:305
double myHighPulseFrequency
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:355
DtEmitterSystemExistenceListener * myEmitterSystemExistenceListener
The EmitterSystemExistenceListener instance.
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:341
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:39
bool myEmitterVolumesVisible
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:351
Contains the makVrv:Dt2DEntityEmitterVolumeVisualizer class declaration.
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
float DtFloat32
Definition: vrvControlStructTypes.h:35
double myLowFrequency
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:358
DtStateVisualizerCreatorTemplate< DtVrlink2DEntityEmitterVolumeVisualizer > DtVrlink2DEntityEmitterVolumeVisualizerCreator
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:366
boost::unordered_map< const DtEmitterBeamRepository *, DtUniqueID > BeamModelIdMap
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:338
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
double myExponentialScale
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:353
DtVrlinkEntityStateListener * myEntityListener
Same as myListener, but casted for convenience.
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:344
double myLinearScale
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:352
Protocol independent emitter volume visualizer.
Definition: Dt2DEntityEmitterVolumeVisualizer.h:25
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:25
boost::unordered_map< const DtVrlinkEmitterStateListener *, DtSignalConnectionManager * > EmitterSystemConnectionsMap
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:334
bool myUseCorrectedBeamScaleFormula
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:363
EmitterSystemConnectionsMap myEmitterSystemConnections
Maps emitter system listeners to their connection managers.
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:347
double myHighFrequency
Definition: DtVrlink2DEntityEmitterVolumeVisualizer.h:357
DtEntityStateListener.
Definition: DtEntityStateListener.h:132

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)