![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef vlTaitBryan_H_ 00007 #define vlTaitBryan_H_ 00008 00012 00013 #include <vlutil/vlMachineTypes.h> 00014 #include "vlVector.h" 00015 #include <iosfwd> 00016 00017 #ifdef DtUSE_UTILITIES_NAMESPACE 00018 namespace DtUSE_UTILITIES_NAMESPACE 00019 { 00020 #endif 00021 00022 class DtQuaternion; 00023 00042 class DT_DLL_MATRIX DtTaitBryan 00043 { 00044 public: 00045 00047 DtTaitBryan(); 00048 00050 DtTaitBryan(double psi, double theta, double phi); 00051 00053 DtTaitBryan(const DtTaitBryan &tait); 00054 00058 DtTaitBryan(const DtQuaternion &quat); 00059 00061 DtTaitBryan &operator=(const DtTaitBryan &tait); 00062 00066 int operator==(const DtTaitBryan& other) const; 00067 00071 int operator!=(const DtTaitBryan& other) const; 00072 00074 DtString string() const; 00075 void printDataToStream(std::ostream &str) const; 00076 00080 DtFloat64 psi() const; 00081 void setPsi(DtFloat64 psi); 00083 00086 DtFloat64 theta() const; 00087 void setTheta(DtFloat64 theta); 00089 00092 DtFloat64 phi() const; 00093 void setPhi(DtFloat64 phi); 00095 00096 00097 protected: 00098 00099 DtFloat64 myPsi; 00100 DtFloat64 myTheta; 00101 DtFloat64 myPhi; 00102 }; 00103 00104 typedef double DtEParm[4]; 00105 00111 DT_DLL_MATRIX void DtEuler_to_BodyToRef(const DtTaitBryan &euler, DtDcm& body2ref); 00113 DT_DLL_MATRIX void DtEuler_to_RefToBody(const DtTaitBryan &euler, DtDcm& ref2body); 00115 00121 DT_DLL_MATRIX void DtBodyToRef_to_Euler(const DtDcm& body2ref, DtTaitBryan *euler); 00123 DT_DLL_MATRIX void DtRefToBody_to_Euler(const DtDcm& ref2body, DtTaitBryan *euler); 00125 00130 DT_DLL_MATRIX void DtEulerToEuler(const DtTaitBryan &in, 00131 const DtDcm& in2out, 00132 DtTaitBryan *out); 00133 00135 DT_DLL_MATRIX std::ostream & operator << (std::ostream &str, const DtTaitBryan &sr); 00136 00138 #define vlTaitBryan_inl 00139 #include "vlTaitBryan.inl" 00140 #undef vlTaitBryan_inl 00141 00142 #ifdef DtUSE_UTILITIES_NAMESPACE 00143 } 00144 #endif 00145 00146 #endif 00147 00148