VR-Forces 4.0.4 Class Documentation
include/makArchives/DtIntervisibilitySettingsRecord.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 <makArchives/makArchives.h>
00013 
00014 namespace makArchives
00015 {
00016 
00019    class DT_DLL_MAKARCHIVES DtIntervisibilitySettingsRecord
00020    {
00021    public:
00022 
00024       DtIntervisibilitySettingsRecord();
00025 
00027       DtIntervisibilitySettingsRecord( const DtIntervisibilitySettingsRecord& copy );
00028 
00030       DtIntervisibilitySettingsRecord& operator = ( const DtIntervisibilitySettingsRecord& obj );
00031 
00033       ~DtIntervisibilitySettingsRecord();
00034 
00036       bool operator == ( const DtIntervisibilitySettingsRecord& rhs ) const;
00037 
00039       inline bool operator != ( const DtIntervisibilitySettingsRecord& rhs ) const
00040       {
00041          return !( *this == rhs );
00042       }
00043 
00046 
00048       void setIntervisibilityEnabled( bool enabled );
00050       bool intervisibilityEnabled() const;
00051 
00053       void setLeftClickMakesObjectsPermanent( bool enabled );
00055       bool leftClickMakesObjectsPermanent() const;
00056 
00058       void setOriginIntervisibilityElevation( double height );
00060       double originIntervisibilityElevation() const;
00061 
00063       void setEndPointIntervisibilityElevation( double height );
00065       double endPointIntervisibilityElevation() const;
00066 
00068       void setFanModeSamplingRate( double radAngle );
00070       double fanModeSamplingRate() const;
00071 
00074       void setEntityFanUpdateRate( double interval );
00077       double entityFanUpdateRate() const;
00078 
00080       void setHatLinesEnabled( bool hatEnabled );
00082       bool hatLinesEnabled() const;
00083 
00085       void setHatLinesOnSelectionOnly( bool selOnly );
00087       bool hatLinesOnSelectionOnly() const;
00088 
00090       void setVisibleColor( float r, float g, float b, float a );
00092       void visibleColor( float& r, float& g, float& b, float& a ) const;
00093 
00095       void setBlockedColor( float r, float g, float b, float a );
00097       void blockedColor( float& r, float& g, float& b, float& a ) const;
00098 
00100       void setCircleColor( float r, float g, float b, float a );
00102       void circleColor( float& r, float& g, float& b, float& a ) const;
00103 
00105       void setRangeInfoLabelsEnabled( bool enabled );
00107       bool rangeInfoLabelsEnabled() const;
00108 
00110       void setRangeInfoLabelBackgroundColor( float r, float g, float b, float a );
00112       void rangeInfoLabelBackgroundColor( float& r, float& g, float& b, float& a ) const;
00113 
00115       void setRangeInfoAltChangeFieldEnabled( bool enabled );
00117       bool rangeInfoAltChangeFieldEnabled() const;
00118 
00120       void setRangeInfoLocationFieldEnabled( bool enabled );
00122       bool rangeInfoLocationFieldEnabled() const;
00123 
00125       void setRangeInfoHeadingFieldEnabled( bool enabled );
00127       bool rangeInfoHeadingFieldEnabled() const;
00128 
00130       void setRangeInfoRangeFieldEnabled( bool enabled );
00132       bool rangeInfoRangeFieldEnabled() const;
00133 
00135 
00136    protected:
00137 
00138       friend class boost::serialization::access;
00139 
00143       template<class Archive>
00144          void serialize(Archive & ar, const unsigned int version)
00145       {
00146          ar & BOOST_SERIALIZATION_NVP(myLeftClickMakesObjectsPermanent);
00147          ar & BOOST_SERIALIZATION_NVP(myOriginIntervisibilityElevation);
00148          ar & BOOST_SERIALIZATION_NVP(myEndPointIntervisibilityElevation);
00149          ar & BOOST_SERIALIZATION_NVP(myFanModeSamplingRate);
00150          ar & BOOST_SERIALIZATION_NVP(myEntityFanUpdateRate);
00151          ar & BOOST_SERIALIZATION_NVP(myHatLinesEnabled);
00152          ar & BOOST_SERIALIZATION_NVP(myHatLinesOnSelectionOnly);
00153 
00154          ar & BOOST_SERIALIZATION_NVP(myVisibleColorR);
00155          ar & BOOST_SERIALIZATION_NVP(myVisibleColorG);
00156          ar & BOOST_SERIALIZATION_NVP(myVisibleColorB);
00157          ar & BOOST_SERIALIZATION_NVP(myVisibleColorA);
00158 
00159          ar & BOOST_SERIALIZATION_NVP(myBlockedColorR);
00160          ar & BOOST_SERIALIZATION_NVP(myBlockedColorG);
00161          ar & BOOST_SERIALIZATION_NVP(myBlockedColorB);
00162          ar & BOOST_SERIALIZATION_NVP(myBlockedColorA);
00163 
00164          ar & BOOST_SERIALIZATION_NVP(myCircleColorR);
00165          ar & BOOST_SERIALIZATION_NVP(myCircleColorG);
00166          ar & BOOST_SERIALIZATION_NVP(myCircleColorB);
00167          ar & BOOST_SERIALIZATION_NVP(myCircleColorA);
00168 
00169          if ( version >= 2 )
00170          {
00171             ar & BOOST_SERIALIZATION_NVP( myIntervisibilityEnabled );
00172          }
00173 
00174          if ( version >= 3 )
00175          {
00176             ar & BOOST_SERIALIZATION_NVP( myRangeInfoLabelsEnabled );
00177             ar & BOOST_SERIALIZATION_NVP( myRangeInfoLabelBackgroundColorR );
00178             ar & BOOST_SERIALIZATION_NVP( myRangeInfoLabelBackgroundColorG );
00179             ar & BOOST_SERIALIZATION_NVP( myRangeInfoLabelBackgroundColorB );
00180             ar & BOOST_SERIALIZATION_NVP( myRangeInfoLabelBackgroundColorA );
00181             ar & BOOST_SERIALIZATION_NVP( myRangeInfoAltChangeFieldEnabledFlag );
00182             ar & BOOST_SERIALIZATION_NVP( myRangeInfoLocationFieldEnabledFlag );
00183             ar & BOOST_SERIALIZATION_NVP( myRangeInfoHeadingFieldEnabledFlag );
00184             ar & BOOST_SERIALIZATION_NVP( myRangeInfoRangeFieldEnabledFlag );
00185          }
00186       }
00187 
00188    protected:
00189 
00190       bool myIntervisibilityEnabled;
00191       bool myLeftClickMakesObjectsPermanent;
00192 
00193       bool myHatLinesEnabled;
00194       bool myHatLinesOnSelectionOnly;
00195 
00196       double myOriginIntervisibilityElevation;
00197       double myEndPointIntervisibilityElevation;
00198       double myFanModeSamplingRate;
00199       double myEntityFanUpdateRate;
00200 
00201       float myVisibleColorR, myVisibleColorG, myVisibleColorB, myVisibleColorA;
00202       float myBlockedColorR, myBlockedColorG, myBlockedColorB, myBlockedColorA;
00203       float myCircleColorR, myCircleColorG, myCircleColorB, myCircleColorA;
00204 
00205       bool myRangeInfoLabelsEnabled;
00206 
00207       float myRangeInfoLabelBackgroundColorR, myRangeInfoLabelBackgroundColorG;
00208       float myRangeInfoLabelBackgroundColorB, myRangeInfoLabelBackgroundColorA;
00209 
00210       bool myRangeInfoAltChangeFieldEnabledFlag;
00211       bool myRangeInfoLocationFieldEnabledFlag;
00212       bool myRangeInfoHeadingFieldEnabledFlag;
00213       bool myRangeInfoRangeFieldEnabledFlag;
00214 
00215    };
00216 
00217 }
00218 
00219 BOOST_CLASS_VERSION( makArchives::DtIntervisibilitySettingsRecord, 3 )

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)