![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtObserverSettingsRecord.h,v $ $Revision: 1.5 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtObserverSettingsRecord_H_ 00014 #define DtObserverSettingsRecord_H_ 00015 00016 #include <makArchives/makArchives.h> 00017 00018 #include <string> 00019 00020 namespace makArchives 00021 { 00024 class DT_DLL_MAKARCHIVES DtObserverSettingsRecord 00025 { 00026 public: 00027 00028 enum AttachType 00029 { 00030 AttachTypeTether, 00031 AttachTypeMimic, 00032 AttachTypeFollow, 00033 AttachTypeTrack, 00034 AttachTypeTetherTrack, 00035 AttachTypeMimicTrack, 00036 AttachTypeModelView, 00037 AttachTypeSpaceFollow 00038 }; 00039 00041 DtObserverSettingsRecord(); 00042 00044 DtObserverSettingsRecord(const DtObserverSettingsRecord& orig); 00045 00047 DtObserverSettingsRecord& operator=(const DtObserverSettingsRecord& orig); 00048 00050 ~DtObserverSettingsRecord(); 00051 00053 00054 00055 void setObserverMode( const std::string& observerMode ); 00056 const std::string& observerMode() const; 00057 00058 void setAttachType( AttachType type ); 00059 AttachType attachType() const; 00060 00061 void setHideModelOnAttach( bool hide ); 00062 bool hideModelOnAttach() const; 00063 00064 void setOrientToTargetConstraint( bool orient ); 00065 bool orientToTargetConstraint() const; 00066 00067 void setOrbitSpeedGain( int gain ); 00068 int orbitSpeedGain() const; 00069 00070 void setRotationSpeedGain( int gain ); 00071 int rotationSpeedGain() const; 00072 00073 void setLinearScaledSpeedGain( int gain ); 00074 int linearScaledSpeedGain() const; 00075 00076 void setLinearUnscaledSpeedGain( int gain ); 00077 int linearUnscaledSpeedGain() const; 00078 00081 00082 void setOrbitSpeed( double speed ); 00083 double orbitSpeed() const; 00084 00085 void setRotationSpeed( double speed ); 00086 double rotationSpeed() const; 00087 00088 void setLinearSpeed( double speed ); 00089 double linearSpeed() const; 00090 00092 00093 00094 protected: 00095 00096 friend class boost::serialization::access; 00097 00101 template<class Archive> 00102 void serialize(Archive & ar, const unsigned int version) 00103 { 00104 ar & BOOST_SERIALIZATION_NVP(myAttachType); 00105 ar & BOOST_SERIALIZATION_NVP(myHideModelOnAttach); 00106 ar & BOOST_SERIALIZATION_NVP(myOrientToTargetConstraint); 00107 // no longer used 00108 ar & BOOST_SERIALIZATION_NVP(mySpeedScaling); 00109 // no longer used 00110 ar & BOOST_SERIALIZATION_NVP(myConstrainToTerrain); 00111 ar & BOOST_SERIALIZATION_NVP(myOrbitSpeedGain); 00112 ar & BOOST_SERIALIZATION_NVP(myRotationSpeedGain); 00113 ar & BOOST_SERIALIZATION_NVP(myLinearScaledSpeedGain); 00114 ar & BOOST_SERIALIZATION_NVP(myLinearUnscaledSpeedGain); 00115 //ar & BOOST_SERIALIZATION_NVP(myGainPrecision); 00116 ar & BOOST_SERIALIZATION_NVP(myOrbitSpeed); 00117 ar & BOOST_SERIALIZATION_NVP(myRotationSpeed); 00118 ar & BOOST_SERIALIZATION_NVP(myLinearSpeed); 00119 if ( version >= 2 ) 00120 { 00121 ar & BOOST_SERIALIZATION_NVP(myObserverMode); 00122 } 00123 } 00124 00125 protected: 00126 00127 std::string myObserverMode; 00128 AttachType myAttachType; 00129 bool myHideModelOnAttach; 00130 bool myOrientToTargetConstraint; 00131 bool mySpeedScaling; 00132 bool myConstrainToTerrain; 00133 int myOrbitSpeedGain; 00134 int myRotationSpeedGain; 00135 int myLinearScaledSpeedGain; 00136 int myLinearUnscaledSpeedGain; 00137 //int myGainPrecision; 00138 double myOrbitSpeed; 00139 double myRotationSpeed; 00140 double myLinearSpeed; 00141 00142 }; 00143 } 00144 00145 BOOST_CLASS_VERSION(makArchives::DtObserverSettingsRecord, 2) 00146 00147 #endif 00148