VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtIntervisibilitySettingsManager.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 <vrvUtil/DtBaseSettingsManager.h>
00015 
00016 #include <vrvCore/DtSettingsBackup.h>
00017 #include <vrvCore/DtUniqueID.h>
00018 #include <vrvCore/DtElementEntry.h>
00019 #include <makArchives/DtIntervisibilitySettingsRecord.h>
00020 
00021 #include <boost/signals.hpp>
00022 #include <boost/unordered_map.hpp>
00023 
00024 class DtVector;
00025 
00026 namespace makVrv
00027 {
00028 
00029    class DtDe;
00030    class DtIntervisibilityElement;
00031    class DtIntervisibilityEventProcessor;
00032 
00035    class DT_DLL_VRVCORE DtIntervisibilitySettingsManager
00036       : public DtBaseSettingsManager<makArchives::DtIntervisibilitySettingsRecord>
00037    {
00038    public:
00039 
00041       static DtIntervisibilitySettingsManager& instance( DtDe& de );
00042 
00044       virtual ~DtIntervisibilitySettingsManager();
00045 
00048 
00050       void setIntervisibilityEnabled( bool enabled );
00052       bool intervisibilityEnabled() const;
00053 
00055       void setLeftClickMakesObjectsPermanent( bool enabled );
00057       bool leftClickMakesObjectsPermanent() const;
00058 
00060       void setOriginIntervisibilityElevation( double height );
00062       double originIntervisibilityElevation() const;
00063 
00065       void setEndPointIntervisibilityElevation( double height );
00067       double endPointIntervisibilityElevation() const;
00068 
00070       void setFanModeSamplingRate( double radAngle );
00072       double fanModeSamplingRate() const;
00073 
00076       void setEntityFanUpdateRate( double interval );
00079       double entityFanUpdateRate() const;
00080 
00082       void setHatLinesEnabled( bool hatEnabled );
00084       bool hatLinesEnabled() const;
00085 
00087       void setHatLinesOnSelectionOnly( bool selOnly );
00089       bool hatLinesOnSelectionOnly() const;
00090 
00092       void setVisibleColor( float r, float g, float b, float a );
00094       void visibleColor( float& r, float& g, float& b, float& a ) const;
00095 
00097       void setBlockedColor( float r, float g, float b, float a );
00099       void blockedColor( float& r, float& g, float& b, float& a ) const;
00100 
00102       void setCircleColor( float r, float g, float b, float a );
00104       void circleColor( float& r, float& g, float& b, float& a ) const;
00105 
00107       void setRangeInfoLabelsEnabled( bool enabled );
00109       bool rangeInfoLabelsEnabled() const;
00110 
00112       void setRangeInfoLabelBackgroundColor( float r, float g, float b );
00114       void rangeInfoLabelBackgroundColor( float& r, float& g, float& b );
00115 
00117       void setRangeInfoLabelBackgroundOpacity( float opacity );
00119       float rangeInfoLabelBackgroundOpacity() const;
00120 
00122       void setRangeInfoAltChangeFieldEnabled( bool enabled );
00124       bool rangeInfoAltChangeFieldEnabled() const;
00125 
00127       void setRangeInfoLocationFieldEnabled( bool enabled );
00129       bool rangeInfoLocationFieldEnabled() const;
00130 
00132       void setRangeInfoHeadingFieldEnabled( bool enabled );
00134       bool rangeInfoHeadingFieldEnabled() const;
00135 
00137       void setRangeInfoRangeFieldEnabled( bool enabled );
00139       bool rangeInfoRangeFieldEnabled() const;
00140 
00142 
00145 
00146       boost::signal<void (bool)> signal_intervisibilityEnabledSet;
00147       boost::signal<void (bool)> signal_leftClickMakesObjectsPermanentSet;
00148       boost::signal<void (double)> signal_originIntervisibilityElevationSet;
00149       boost::signal<void (double)> signal_endPointIntervisibilityElevationSet;
00150       boost::signal<void (double)> signal_fanModeSamplingRateSet;
00151       boost::signal<void (double)> signal_entityFanUpdateRateSet;
00152       boost::signal<void (bool)> signal_hatLinesEnabledSet;
00153       boost::signal<void (bool)> signal_hatLinesOnSelectionOnlySet;
00154       boost::signal<void (float r, float g, float b, float a)> signal_visibleColorSet;
00155       boost::signal<void (float r, float g, float b, float a)> signal_blockedColorSet;
00156       boost::signal<void (float r, float g, float b, float a)> signal_circleColorSet;
00157       boost::signal<void (bool)> signal_rangeInfoLabelsEnabledSet;
00158       boost::signal<void (float r, float g, float b, float a)> signal_rangeInfoBackgroundColorSet;
00159       boost::signal<void (bool)> signal_rangeInfoAltChangeFieldEnabledChanged;
00160       boost::signal<void (bool)> signal_rangeInfoLocationFieldEnabledChanged;
00161       boost::signal<void (bool)> signal_rangeInfoHeadingFieldEnabledChanged;
00162       boost::signal<void (bool)> signal_rangeInfoRangeFieldEnabledChanged;
00163 
00165 
00168 
00170       virtual void setFromRecord( const makArchives::DtIntervisibilitySettingsRecord& rec );
00171 
00173       virtual void getRecord( makArchives::DtIntervisibilitySettingsRecord& rec ) const;
00174 
00176 
00179 
00181       virtual bool isAttachableObjectType( DtElementEntry::ObjectType t ) const;
00182 
00184       virtual bool isAttachableObjectType( DtUniqueID elementId ) const;
00185 
00187 
00188    protected:
00189 
00191       template <typename ManagerClass>
00192       friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
00193 
00195       template <typename ManagerClass>
00196       friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
00197 
00199       DtIntervisibilitySettingsManager( DtDe& de );
00200 
00201    protected:
00202 
00203       bool myIntervisibilityEnabled;
00204       bool myLeftClickMakesObjectsPermanent;
00205 
00206       bool myHatLinesEnabled;
00207       bool myHatLinesOnSelectionOnly;
00208 
00209       double myOriginIntervisibilityElevation;
00210       double myEndPointIntervisibilityElevation;
00211       double myFanModeSamplingRate;
00212       double myEntityFanUpdateRate;
00213 
00214       float myVisibleColor[4];
00215       float myBlockedColor[4];
00216       float myCircleColor[4];
00217 
00218       bool myRangeInfoLabelsEnabled;
00219       float myRangeInfoBackgroundColor[4];
00220       bool myRangeInfoAltChangeFieldEnabled;
00221       bool myRangeInfoLocationFieldEnabled;
00222       bool myRangeInfoHeadingFieldEnabled;
00223       bool myRangeInfoRangeFieldEnabled;
00224 
00225    };
00226 
00227 }
00228 

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)