00001 /*! 00002 \mainpage 00003 <!----------------------------------------------------------------------------> 00004 <!----------------------------------------------------------------------------> 00005 <!----------------------------------------------------------------------------> 00006 <hr><hr> 00007 <h2>What's new?</h2> 00008 <p> 00009 [Mar. 15th 2005] 00010 The first version of QVM was released. 00011 </p> 00012 00013 <!----------------------------------------------------------------------------> 00014 <!----------------------------------------------------------------------------> 00015 <!----------------------------------------------------------------------------> 00016 <hr><hr> 00017 <h2>Introduction</h2> 00018 <p> 00019 QVM is a quaternion, vector, and matrix class set in C++ for 3D kinematics. 00020 </p> 00021 00022 <p> 00023 This library does not handle general matrix-vector problems but is specialized for 3D kinetic problems. 00024 </p> 00025 00026 <!----------------------------------------------------------------------------> 00027 <!----------------------------------------------------------------------------> 00028 <!----------------------------------------------------------------------------> 00029 <h2>Important Specification</h2> 00030 <ul> 00031 <li> 00032 The namespace for QVM is "QVM". 00033 </li> 00034 00035 <li> 00036 The quaternion class is "QVM::quat". 00037 </li> 00038 <li> 00039 The 3D vector class is "QVM::vec". 00040 </li> 00041 <li> 00042 The 3x3 matrix class is "QVM::mat". 00043 </li> 00044 00045 <li> 00046 The operator <code>"*"</code> means the matrix product. 00047 </li> 00048 <li> 00049 The operator <code>"%"</code> means the inner product. 00050 </li> 00051 <li> 00052 The operator <code>"/"</code> means the outer product. 00053 </li> 00054 <li> 00055 QVM doesn't distingish column-vector and row-vector. 00056 For example, <code>v1*v2</code> returns <code>mat</code> as the result of the matrix product between column-vector <code>v1</code> and row-vector <code>v2</code>. 00057 On the other hand, <code>v1%v2</code> returns <code>double</code> as the result of the inner product, 00058 and <code>v1/v2</code> returns <code>vec</code> as the result of the outer product. 00059 </li> 00060 00061 <li> 00062 To convert <code>quat</code> to <code>vec</code>, use 00063 <code>vec im(const quat&)</code> function. 00064 </li> 00065 <li> 00066 To convert <code>vec</code> to <code>quat</code>, use 00067 <code>vr2q(const vec&, const double&)</code> function or 00068 <code>vt2q(const vec&, const double&)</code> function. 00069 See \ref pg-convert for the detail. 00070 </li> 00071 00072 <li> 00073 To rotate a vector in a coordinate system, use <code>rotate(const vec&, const quat&)</code> function. 00074 See \ref pg-rotate for the detail. 00075 </li> 00076 00077 </ul> 00078 00079 <!----------------------------------------------------------------------------> 00080 <!----------------------------------------------------------------------------> 00081 <!----------------------------------------------------------------------------> 00082 <h2>License</h2> 00083 QVM is an open-source, free, and unguaranteed software. 00084 00085 <!----------------------------------------------------------------------------> 00086 <!----------------------------------------------------------------------------> 00087 <!----------------------------------------------------------------------------> 00088 <h2>Author and Cooperators</h2> 00089 Author: 00090 Yuki ONISHI 00091 00092 <!----------------------------------------------------------------------------> 00093 <!----------------------------------------------------------------------------> 00094 <!----------------------------------------------------------------------------> 00095 <h2>Bug Report</h2> 00096 Please send bug reports to 00097 <a href="mailto:yuki.onishi@nifty.com">yuki.onishi@nifty.com</a>. 00098 I also welcome any kind of comments. 00099 00100 <!----------------------------------------------------------------------------> 00101 <!----------------------------------------------------------------------------> 00102 <!----------------------------------------------------------------------------> 00103 <h2>Links</h2> 00104 00105 <!----------------------------------------------------------------------------> 00106 <!----------------------------------------------------------------------------> 00107 <!----------------------------------------------------------------------------> 00108 <center><h3>Have fun.</h3></center> 00109 00110 */