![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtObserverStateRecord.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtObserverStateRecord_H_ 00014 #define DtObserverStateRecord_H_ 00015 00016 #include <makArchives/makArchives.h> 00017 #include <makArchives/DtObserverSettingsRecord.h> 00018 #include <set> 00019 00020 namespace makArchives 00021 { 00024 class DT_DLL_MAKARCHIVES DtObserverStateRecord 00025 { 00026 00027 public: 00028 00030 DtObserverStateRecord(); 00031 00033 DtObserverStateRecord(const DtObserverStateRecord& orig); 00034 00036 DtObserverStateRecord& operator=(const DtObserverStateRecord& orig); 00037 00039 ~DtObserverStateRecord(); 00040 00042 00043 00044 void setObserverSettingsRecord(const DtObserverSettingsRecord& rec); 00045 const DtObserverSettingsRecord& observerSettingsRecord() const; 00046 00047 void setAttachedToDisplayNames( const std::set<std::string>& displayNames ); 00048 const std::set<std::string>& attachedToDisplayNames() const; 00049 00050 void setSecondaryAttachedToDisplayNames( const std::set<std::string>& displayNames ); 00051 const std::set<std::string>& secondaryAttachedToDisplayNames() const; 00052 00053 void getObserverOffsetVector( double& x, double& y, double& z ) const; 00054 void setObserverOffsetVector( double x, double y, double z ); 00055 00056 void getObserverRotationOffset( double& x, double& y, double& z, double& w ) const; 00057 void setObserverRotationOffset( double x, double y, double z, double w ); 00058 00059 void getPosition( double &x, double &y, double& z ) const; 00060 void setPosition( double x, double y, double z ); 00061 00062 void getOrientation( double& x, double& y, double& z, double& w ) const; 00063 void setOrientation( double x, double y, double z, double w ); 00064 00065 void setDisplayName(const std::string&); 00066 const std::string& displayName() const; 00067 00068 void setViewResolution(double resolution); 00069 double viewResolution() const; 00070 00072 void setViewMagnification( double magnification ); 00073 00075 double viewMagnification() const; 00076 00077 void setSetIntoObserver(bool); 00078 bool setIntoObserver() const; 00079 00080 void setPartAttachment(int partId); 00081 int partAttachment() const; 00082 00084 00085 protected: 00086 00087 friend class boost::serialization::access; 00088 00092 template<class Archive> 00093 void serialize(Archive & ar, const unsigned int version) 00094 { 00095 ar & BOOST_SERIALIZATION_NVP(myObserverSettingsRecord); 00096 ar & BOOST_SERIALIZATION_NVP(myAttachedToDisplayNames); 00097 ar & BOOST_SERIALIZATION_NVP(myObserverOffsetVectorX); 00098 ar & BOOST_SERIALIZATION_NVP(myObserverOffsetVectorY); 00099 ar & BOOST_SERIALIZATION_NVP(myObserverOffsetVectorZ); 00100 ar & BOOST_SERIALIZATION_NVP(myObserverRotationOffsetX); 00101 ar & BOOST_SERIALIZATION_NVP(myObserverRotationOffsetY); 00102 ar & BOOST_SERIALIZATION_NVP(myObserverRotationOffsetZ); 00103 ar & BOOST_SERIALIZATION_NVP(myObserverRotationOffsetW); 00104 ar & BOOST_SERIALIZATION_NVP(myPosX); 00105 ar & BOOST_SERIALIZATION_NVP(myPosY); 00106 ar & BOOST_SERIALIZATION_NVP(myPosZ); 00107 ar & BOOST_SERIALIZATION_NVP(myOrientationX); 00108 ar & BOOST_SERIALIZATION_NVP(myOrientationY); 00109 ar & BOOST_SERIALIZATION_NVP(myOrientationZ); 00110 ar & BOOST_SERIALIZATION_NVP(myOrientationW); 00111 00112 if (version >= 1) 00113 { 00114 ar & BOOST_SERIALIZATION_NVP(myDisplayName); 00115 } 00116 00117 if ( version >= 2) 00118 { 00119 if(version < 6) 00120 { 00121 ar & boost::serialization::make_nvp("myZoomFactor",myViewResolution); 00122 } 00123 else 00124 { 00125 ar & BOOST_SERIALIZATION_NVP(myViewResolution); 00126 } 00127 } 00128 00129 if ( version >= 3) 00130 { 00131 ar & BOOST_SERIALIZATION_NVP(mySecondaryAttachedToDisplayNames); 00132 } 00133 00134 if ( version >= 4) 00135 { 00136 ar & BOOST_SERIALIZATION_NVP(myPartAttachment); 00137 } 00138 00139 if ( version >= 5 ) 00140 { 00141 ar & BOOST_SERIALIZATION_NVP( myViewMagnification ); 00142 } 00143 } 00144 00145 protected: 00146 00147 DtObserverSettingsRecord myObserverSettingsRecord; 00148 std::set<std::string> myAttachedToDisplayNames; 00149 double myObserverOffsetVectorX; 00150 double myObserverOffsetVectorY; 00151 double myObserverOffsetVectorZ; 00152 double myObserverRotationOffsetX; 00153 double myObserverRotationOffsetY; 00154 double myObserverRotationOffsetZ; 00155 double myObserverRotationOffsetW; 00156 double myPosX; 00157 double myPosY; 00158 double myPosZ; 00159 double myOrientationX; 00160 double myOrientationY; 00161 double myOrientationZ; 00162 double myOrientationW; 00163 std::string myDisplayName; 00164 double myViewResolution; 00165 std::set<std::string> mySecondaryAttachedToDisplayNames; 00166 int myPartAttachment; 00167 double myViewMagnification; 00168 00169 00170 00174 bool mySetIntoObserver; 00175 }; 00176 } 00177 00178 BOOST_CLASS_VERSION(makArchives::DtObserverStateRecord,6) 00179 00180 #endif 00181