VR-Forces 4.0.4 Class Documentation
include/vrvVrl/DtVrlinkEntitySensorVolumeVisualizer.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002  * Copyright (c) 2010 MAK Technologies, Inc.
00003  * All rights reserved.
00004  *****************************************************************************/ 
00005 /*****************************************************************************
00006  * $RCSfile: DtVrlinkEntitySensorVolumeVisualizer.h,v $ $Revision: 1.0 $ $State: Exp $
00007  *****************************************************************************/
00008 
00012 
00013 #pragma once
00014 
00015 #ifndef DT_PROTOCOL_NAMESPACE
00016 #error Namespace Protocol Macro DT_PROTOCOL_NAMESPACE not defined.
00017 #endif
00018 
00019 #include <vrvCore/DtEntitySensorVolumeVisualizer.h>
00020 
00021 class DtEmitterBeamRepository;
00022 
00023 namespace makVrv
00024 {
00025 
00026    class DtSignalConnectionManager;
00027    class DtEllipsoidArcModelAgent;
00028 
00029    namespace DT_PROTOCOL_NAMESPACE
00030    {
00031 
00032       class DtVrlinkEmitterStateListener;
00033       class DtEmitterSystemExistenceListener;
00034 
00037       class DL_DLL_IGCONVRLINK DtVrlinkEntitySensorVolumeVisualizer : public DtEntitySensorVolumeVisualizer
00038       {
00039       public:
00040 
00047          DtVrlinkEntitySensorVolumeVisualizer( DtBaseConnection& simulation, DtStateListener& listener, int modelSet );
00048 
00052          virtual ~DtVrlinkEntitySensorVolumeVisualizer();
00053 
00056 
00062          virtual void createModelAgents();
00063 
00066          virtual void destroyModelAgents();
00067 
00073          virtual void setVisualizerDefinition( const DtVisualizerDefinition& visDef );
00074 
00076 
00077       protected:
00078 
00081 
00088          virtual void slot_emitterSystemDiscovered( DtVrlinkEmitterStateListener* listener );
00089 
00095          virtual void slot_emitterSystemToBeDestroyed( const DtVrlinkEmitterStateListener* listener );
00096 
00098 
00101 
00107          virtual void slot_emitterBeamDiscovered( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
00108 
00114          virtual void slot_emitterBeamToBeRemoved( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
00115 
00121          virtual void slot_relativePositionSet( const DtVrlinkEmitterStateListener* listener, const DtVector& position );
00122 
00124 
00127 
00134          virtual void slot_azimuthRangeSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, DtFloat32 azimuthCenter, DtFloat32 azimuthSweep );
00135 
00142          virtual void slot_elevationRangeSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, DtFloat32 elevationCenter, DtFloat32 elevationSweep );
00143 
00149          virtual void slot_beamFrequencySet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
00150 
00156          virtual void slot_beamPulseWidthSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, const DtFloat32 pulseWidth );
00157 
00163          virtual void slot_beamEmittedPowerSet( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr, const DtFloat32 power );
00164 
00166 
00169 
00178          virtual void registerEmitterSystem( DtVrlinkEmitterStateListener* listener );
00179 
00185          virtual DtSignalConnectionManager* createSignalConnections( DtVrlinkEmitterStateListener* listener );
00186 
00191          virtual void destroyEmitterSystem( const DtVrlinkEmitterStateListener* listener );
00192 
00197          void destroyEmitterSystemInternal( const DtVrlinkEmitterStateListener* listener );
00198 
00205          virtual void updateBeamVisualization( const DtVrlinkEmitterStateListener* listener, const DtEmitterBeamRepository* bsr );
00206 
00212          virtual DtEllipsoidArcModelAgent* findOrCreateBeamModel( const DtEmitterBeamRepository* bsr );
00213 
00218          virtual DtEllipsoidArcModelAgent* findBeamModel( const DtEmitterBeamRepository* bsr );
00219 
00223          virtual void destroyEmitterBeam( const DtEmitterBeamRepository* bsr );
00224 
00230          virtual void updateBeamVisibility( const DtEmitterBeamRepository* bsr );
00231 
00238          virtual void updateBeamScale( const DtEmitterBeamRepository* bsr );
00239 
00244          virtual void updateBeamColors( const DtEmitterBeamRepository* bsr );
00245 
00249          virtual void setBeamRelativePosition( const DtEmitterBeamRepository* bsr, const DtVector& position );
00250 
00256          virtual void setBeamAzimuthRange( const DtEmitterBeamRepository* bsr );
00257 
00264          virtual void setBeamElevationRange( const DtEmitterBeamRepository* bsr );
00265 
00268          virtual void setBeamInsideColor( const DtEmitterBeamRepository* bsr,
00269             float r, float g, float b, float a );
00270 
00273          virtual void setBeamOutsideColor( const DtEmitterBeamRepository* bsr,
00274             float r, float g, float b, float a );
00275 
00279          virtual void setBeamScale( const DtEmitterBeamRepository* bsr, float scale );
00280 
00289 
00290          virtual void computeColorForFrequency( double hi, double low,
00291             double act, float innerColor[4], float outerColor[4] );
00292 
00300          static void hsv2rgb( float hue, float sat, float val, float color[3] );
00301 
00303 
00304       protected:
00305 
00306          // \brief Stores information about each emitter system for this entity
00307          typedef boost::unordered_map<const DtVrlinkEmitterStateListener*,DtSignalConnectionManager*> EmitterSystemConnectionsMap;
00308 
00309          // \brief Stores the beam model id's for each emitter beam's model
00310          typedef boost::unordered_map<const DtEmitterBeamRepository*,DtUniqueID> BeamModelIdMap;
00311 
00313          DtEmitterSystemExistenceListener* myEmitterSystemExistenceListener;
00314 
00316          DtVrlinkEntityStateListener* myEntityListener;
00317 
00319          EmitterSystemConnectionsMap myEmitterSystemConnections;
00320 
00322          BeamModelIdMap myBeamModelIds;
00323 
00324          double myLinearScale;
00325          double myExponentialScale;
00326 
00327          double myHighPulseFrequency;
00328          double myLowPulseFrequency;
00329          double myHighFrequency;
00330          double myLowFrequency;
00331 
00332          float myNearColor[4];
00333          float myFarColor[4];
00334 
00335       };
00336 
00337       typedef DtStateVisualizerCreatorTemplate<DtVrlinkEntitySensorVolumeVisualizer> DtVrlinkEntitySensorVolumeVisualizerCreator;
00338    }
00339 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)