![]() |
VR-Forces 4.0.4 Class Documentation
|
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 )