VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtSharedRadioCommunicationsSettings.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002  * Copyright (c) 2012 MAK Technologies, Inc.
00003  * All rights reserved.
00004  ******************************************************************************/
00005 
00009 
00010 #pragma once
00011 
00012 #include <vrvCore/vrvCore.h>
00013 
00014 #include <vrvCore/DtSharedSettings.h>
00015 
00016 #include <vrvCore/DtRecordSettingsBackup.h>
00017 
00018 #include <makArchives/DtRadioCommunicationsSettingsRecord.h>
00019 
00020 #include <boost/unordered_map.hpp>
00021 
00022 #include <vrvUtil/event_signal.h>
00023 
00024 #include <vector>
00025 
00026 namespace makVrv
00027 {
00028 
00029    class DtSharedRadioCommunicationsSettings;
00030 
00031    typedef DtSharedRecordSettingsBackup<DtSharedRadioCommunicationsSettings,
00032       makArchives::DtRadioCommunicationsSettingsRecord> DtRadioCommunicationsSettingsBackup;
00033 
00036    class DT_DLL_VRVCORE DtSharedRadioCommunicationsSettings : public DtSharedSettings
00037    {
00038    protected:
00039 
00041       typedef makArchives::DtRadioCommunicationsSettingsRecord::CommLineMode
00042          CommLineMode;
00043 
00045       typedef makArchives::DtRadioCommunicationsSettingsRecord::DefaultColoringMode
00046          DefaultColoringMode;
00047 
00048    public:
00049 
00051       virtual ~DtSharedRadioCommunicationsSettings();
00052 
00055 
00058 
00061       virtual float commLineLifetime() const;
00062       virtual void setCommLineLifetime( float lifetime );
00064 
00067       virtual float squawkIndicatorLifetime() const;
00068       virtual void setSquawkIndicatorLifetime( float lifetime );
00070 
00073       virtual float commLineAnimationRate() const;
00074       virtual void setCommLineAnimationRate( float rate );
00076 
00079       virtual float squawkIndicatorAnimationRate() const;
00080       virtual void setSquawkIndicatorAnimationRate( float rate );
00082 
00085       virtual bool displayCommLines() const;
00086       virtual void setDisplayCommLines( bool show );
00088 
00091       virtual bool displaySquawkIndicators() const;
00092       virtual void setDisplaySquawkIndicators( bool show );
00094 
00097       virtual bool displayRadioCommunications() const;
00098       virtual void setDisplayRadioCommunications( bool show );
00100 
00103       virtual CommLineMode commLineRenderMode() const;
00104       virtual void setCommLineRenderMode( CommLineMode mode );
00106 
00109       virtual double greatCircleExaggerationAmount() const;
00110       virtual void setGreatCircleExaggerationAmount( double amount );
00112 
00115       virtual DefaultColoringMode defaultColoringMode() const;
00116       virtual void setDefaultColoringMode( DefaultColoringMode mode );
00118 
00120 
00123 
00125       virtual bool showDefaultFrequency() const;
00126       virtual void setShowDefaultFrequency( bool show );
00127 
00129       virtual void getDefaultFrequencyColor( float& r, float& g, float& b ) const;
00130       virtual void setDefaultFrequencyColor( float r, float g, float b );
00131 
00133 
00136 
00138       virtual void getFrequencyRange( int rangeIndex, float& lowFreq, float& highFreq ) const;
00139       virtual int addFrequencyRange( float lowFreq, float highFreq );
00140 
00142       virtual void getFrequencyRangeColor( int rangeIndex, float& r, float& g, float& b ) const;
00143       virtual void setFrequencyRangeColor( int rangeIndex, float r, float g, float b );
00144 
00146       virtual bool showFrequencyRangeFrequency( int rangeIndex ) const;
00147       virtual void setShowFrequencyRangeFrequency( int rangeIndex, bool show );
00148 
00150       virtual int numFrequencyRanges() const;
00151 
00153       virtual void clearFrequencyRanges();
00154 
00156 
00158 
00161 
00163       void setFromRecord( const makArchives::DtRadioCommunicationsSettingsRecord& rec );
00164 
00166       void getRecord( makArchives::DtRadioCommunicationsSettingsRecord& rec ) const;
00167 
00169       virtual const DtRadioCommunicationsSettingsBackup* settingsBackup() const;
00170 
00172       virtual DtRadioCommunicationsSettingsBackup* settingsBackup();
00173 
00175       virtual void backup();
00176 
00178 
00180       static std::string className();
00181 
00182    protected:
00183 
00185       friend class DtReadSettingsLock<DtSharedRadioCommunicationsSettings>;
00187       friend class DtWriteSettingsLock<DtSharedRadioCommunicationsSettings>;
00188 
00190       DtSharedRadioCommunicationsSettings( DtSharedSettingsManager& manager );
00191 
00192    protected:
00193 
00197       struct FrequencyRangeAttributes
00198       {
00199 
00200          FrequencyRangeAttributes()
00201             : myHighFrequency( -1 )
00202             , myLowFrequency( -1 )
00203             , myShowFrequencyFlag( true )
00204          {
00205             // Default myColor: magenta
00206             myColor[0] = myColor[2] = 1.0;
00207             myColor[1] = 0.0;
00208          }
00209 
00210          float myHighFrequency;
00211          float myLowFrequency;
00212          bool myShowFrequencyFlag;
00213          float myColor[3];
00214 
00215       };
00216 
00217    protected:
00218 
00220       typedef std::vector<FrequencyRangeAttributes> FrequencyRangeAttributesList;
00221 
00222       FrequencyRangeAttributesList myFrequencyRangeAttributes;
00223 
00224       float myDefaultFrequencyRangeColor[3];
00225       bool myShowDefaultFrequencyFlag;
00226 
00227       float myCommLineLifetime;
00228       float mySquawkIndicatorLifetime;
00229 
00230       float myCommLineAnimationRate;
00231       float mySquawkIndicatorAnimationRate;
00232 
00233       bool myDisplayCommLinesFlag;
00234       bool myDisplaySquawkIndicatorsFlag;
00235       bool myDisplayRadioCommunicationsFlag;
00236       CommLineMode myCommunicationLineRenderMode;
00237       float myGreatCircleExaggerationAmount;
00238       DefaultColoringMode myDefaultColoringMode;
00239 
00240       DtRadioCommunicationsSettingsBackup* mySettingsBackup;
00241 
00242    };
00243 
00244 }

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)