diff options
Diffstat (limited to 'doc/latex/classmeow_1_1Rotation3D.tex')
-rw-r--r-- | doc/latex/classmeow_1_1Rotation3D.tex | 446 |
1 files changed, 446 insertions, 0 deletions
diff --git a/doc/latex/classmeow_1_1Rotation3D.tex b/doc/latex/classmeow_1_1Rotation3D.tex new file mode 100644 index 0000000..01db639 --- /dev/null +++ b/doc/latex/classmeow_1_1Rotation3D.tex @@ -0,0 +1,446 @@ +\hypertarget{classmeow_1_1Rotation3D}{\section{meow\-:\-:Rotation3\-D$<$ Scalar $>$ Class Template Reference} +\label{classmeow_1_1Rotation3D}\index{meow\-::\-Rotation3\-D$<$ Scalar $>$@{meow\-::\-Rotation3\-D$<$ Scalar $>$}} +} + + +Rotation a point/vector alone an axis with given angle in 3\-D world. + + + + +{\ttfamily \#include \char`\"{}Linear\-Transformations.\-h\char`\"{}} + +Inheritance diagram for meow\-:\-:Rotation3\-D$<$ Scalar $>$\-:\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.000000cm]{classmeow_1_1Rotation3D} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\hyperlink{classmeow_1_1Rotation3D_a90c102c7f74e8a36ac0d24bef6b06337}{Rotation3\-D} () +\item +\hyperlink{classmeow_1_1Rotation3D_ab566bace2339705305d7e18c36116d2a}{Rotation3\-D} (\hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} const \&b) +\item +\hyperlink{classmeow_1_1Rotation3D_aa9ce2a9c913ea08ba7fb43aed4784a2b}{$\sim$\-Rotation3\-D} () +\item +\hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} \& \hyperlink{classmeow_1_1Rotation3D_a8ce437d591d81cc81be959d6f27e71c9}{copy\-From} (\hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} const \&b) +\begin{DoxyCompactList}\small\item\em Copy data. \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} \& \hyperlink{classmeow_1_1Rotation3D_ac2919c38518ea677a85df8757bd8f0d9}{reference\-From} (\hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} const \&b) +\begin{DoxyCompactList}\small\item\em Reference data. \end{DoxyCompactList}\item +Scalar \hyperlink{classmeow_1_1Rotation3D_ac6488df50303b564262065350186549a}{parameter} (size\-\_\-t i) const +\begin{DoxyCompactList}\small\item\em same as {\ttfamily theta(i)} \end{DoxyCompactList}\item +Scalar \hyperlink{classmeow_1_1Rotation3D_a0a7c3b7f605caf7bc54f80b25b317972}{parameter} (size\-\_\-t i, Scalar const \&s) +\begin{DoxyCompactList}\small\item\em same as {\ttfamily theta(i, s)} \end{DoxyCompactList}\item +Scalar const \& \hyperlink{classmeow_1_1Rotation3D_aeceaa78749d4bd9f5d638591298073dd}{theta} (size\-\_\-t i) const +\begin{DoxyCompactList}\small\item\em Get the {\ttfamily i} -\/th theta. \end{DoxyCompactList}\item +Scalar const \& \hyperlink{classmeow_1_1Rotation3D_a77a863b230bcacdfaf5a534f17268170}{theta} (size\-\_\-t i, Scalar const \&s) +\begin{DoxyCompactList}\small\item\em Set the {\ttfamily i} -\/th theta. \end{DoxyCompactList}\item +void \hyperlink{classmeow_1_1Rotation3D_a757a196f261a28693061c5e16be97ab6}{axis\-Angle} (\hyperlink{classmeow_1_1Vector}{Vector}$<$ Scalar $>$ const \&axis, Scalar const \&angle) +\begin{DoxyCompactList}\small\item\em Setting. \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} \& \hyperlink{classmeow_1_1Rotation3D_a29ca99627654b9d136c12f6e0e2c91c5}{add} (\hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} const \&r) +\begin{DoxyCompactList}\small\item\em Concat another rotation transformation. \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ \hyperlink{classmeow_1_1Rotation3D_a566ebd46881ef0165aab55a4cf4ca169}{transformate} (\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ const \&x) const +\begin{DoxyCompactList}\small\item\em Do the transformate. \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ \hyperlink{classmeow_1_1Rotation3D_a4846e5870c41f3694678d8acf032b8df}{jacobian} (\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ const \&x) const +\begin{DoxyCompactList}\small\item\em Return the jacobian matrix (derivate by the input vector) of this transformate. \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ \hyperlink{classmeow_1_1Rotation3D_a201c56debd6cc0f4e75cb06148197726}{jacobian} (\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ const \&x, size\-\_\-t i) const +\begin{DoxyCompactList}\small\item\em Return the jacobian matrix of this transformate. \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ \hyperlink{classmeow_1_1Rotation3D_aa872f44ce5b53faadddc9493697cfe13}{transformate\-Inv} (\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ const \&x) const +\begin{DoxyCompactList}\small\item\em Do the inverse transformate. \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ \hyperlink{classmeow_1_1Rotation3D_ae12a31cabc1260bd7256734f0e04acfb}{jacobian\-Inv} (\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ const \&x) const +\begin{DoxyCompactList}\small\item\em Return the jacobian matrix of the inverse form of this transformate. \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ \hyperlink{classmeow_1_1Rotation3D_af2a38c66668f6dcc11005e8f42b81f2f}{jacobian\-Inv} (\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ const \&x, size\-\_\-t i) const +\begin{DoxyCompactList}\small\item\em Return the jacobian matrix of the inverse form of this transformate. \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Matrix}{Matrix}$<$ Scalar $>$ \hyperlink{classmeow_1_1Rotation3D_a513851c5d53274b76fd9511ba1aea484}{matrix\-Inv} () const +\begin{DoxyCompactList}\small\item\em Return the inverse matrix. \end{DoxyCompactList}\item +\hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} \& \hyperlink{classmeow_1_1Rotation3D_a3e0095d1f506d6f11c434d55e454aca6}{operator=} (\hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} const \&b) +\begin{DoxyCompactList}\small\item\em same as {\ttfamily copy\-From(b)} \end{DoxyCompactList}\end{DoxyCompactItemize} +\subsection*{Additional Inherited Members} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Scalar$>$class meow\-::\-Rotation3\-D$<$ Scalar $>$} + +Rotation a point/vector alone an axis with given angle in 3\-D world. + +\begin{DoxyAuthor}{Author} +cat\-\_\-leopard +\end{DoxyAuthor} + + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classmeow_1_1Rotation3D_a90c102c7f74e8a36ac0d24bef6b06337}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!Rotation3\-D@{Rotation3\-D}} +\index{Rotation3\-D@{Rotation3\-D}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{Rotation3\-D}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::{\bf Rotation3\-D} ( +\begin{DoxyParamCaption} +{} +\end{DoxyParamCaption} +)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Rotation3D_a90c102c7f74e8a36ac0d24bef6b06337} +Constructor with no rotation \hypertarget{classmeow_1_1Rotation3D_ab566bace2339705305d7e18c36116d2a}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!Rotation3\-D@{Rotation3\-D}} +\index{Rotation3\-D@{Rotation3\-D}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{Rotation3\-D}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::{\bf Rotation3\-D} ( +\begin{DoxyParamCaption} +\item[{{\bf Rotation3\-D}$<$ Scalar $>$ const \&}]{b} +\end{DoxyParamCaption} +)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Rotation3D_ab566bace2339705305d7e18c36116d2a} +Constructor and copy data \hypertarget{classmeow_1_1Rotation3D_aa9ce2a9c913ea08ba7fb43aed4784a2b}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!$\sim$\-Rotation3\-D@{$\sim$\-Rotation3\-D}} +\index{$\sim$\-Rotation3\-D@{$\sim$\-Rotation3\-D}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{$\sim$\-Rotation3\-D}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::$\sim${\bf Rotation3\-D} ( +\begin{DoxyParamCaption} +{} +\end{DoxyParamCaption} +)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Rotation3D_aa9ce2a9c913ea08ba7fb43aed4784a2b} +Destructor + +\subsection{Member Function Documentation} +\hypertarget{classmeow_1_1Rotation3D_a29ca99627654b9d136c12f6e0e2c91c5}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!add@{add}} +\index{add@{add}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{add}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Rotation3\-D}\& {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::add ( +\begin{DoxyParamCaption} +\item[{{\bf Rotation3\-D}$<$ Scalar $>$ const \&}]{r} +\end{DoxyParamCaption} +)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Rotation3D_a29ca99627654b9d136c12f6e0e2c91c5} + + +Concat another rotation transformation. + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em r} & another rotation transformation \\ +\hline +\end{DoxyParams} +\hypertarget{classmeow_1_1Rotation3D_a757a196f261a28693061c5e16be97ab6}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!axis\-Angle@{axis\-Angle}} +\index{axis\-Angle@{axis\-Angle}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{axis\-Angle}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ void {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::axis\-Angle ( +\begin{DoxyParamCaption} +\item[{{\bf Vector}$<$ Scalar $>$ const \&}]{axis, } +\item[{Scalar const \&}]{angle} +\end{DoxyParamCaption} +)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Rotation3D_a757a196f261a28693061c5e16be97ab6} + + +Setting. + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em axis} & axis \\ +\hline +\mbox{\tt in} & {\em angle} & angle \\ +\hline +\end{DoxyParams} +\hypertarget{classmeow_1_1Rotation3D_a8ce437d591d81cc81be959d6f27e71c9}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!copy\-From@{copy\-From}} +\index{copy\-From@{copy\-From}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{copy\-From}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Rotation3\-D}\& {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::copy\-From ( +\begin{DoxyParamCaption} +\item[{{\bf Rotation3\-D}$<$ Scalar $>$ const \&}]{b} +\end{DoxyParamCaption} +)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Rotation3D_a8ce437d591d81cc81be959d6f27e71c9} + + +Copy data. + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em b} & another \hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} class. \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +{\ttfamily $\ast$this} +\end{DoxyReturn} +\hypertarget{classmeow_1_1Rotation3D_a4846e5870c41f3694678d8acf032b8df}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!jacobian@{jacobian}} +\index{jacobian@{jacobian}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{jacobian}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Matrix}$<$Scalar$>$ {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::jacobian ( +\begin{DoxyParamCaption} +\item[{{\bf Matrix}$<$ Scalar $>$ const \&}]{x} +\end{DoxyParamCaption} +) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classmeow_1_1Rotation3D_a4846e5870c41f3694678d8acf032b8df} + + +Return the jacobian matrix (derivate by the input vector) of this transformate. + +The matrix we return is\-: \[ \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \] Where the definition of $ \vec{n} $ and $ \phi $ is the same as the definition in the description of the method {\bfseries \hyperlink{classmeow_1_1Rotation3D_a566ebd46881ef0165aab55a4cf4ca169}{transformate()}} . + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em x} & the input vector (in this case it is a useless parameter) \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +a matrix +\end{DoxyReturn} + + +Reimplemented from \hyperlink{classmeow_1_1Transformation_a97b459877b4e508193071fa166a126c9}{meow\-::\-Transformation$<$ Scalar $>$}. + +\hypertarget{classmeow_1_1Rotation3D_a201c56debd6cc0f4e75cb06148197726}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!jacobian@{jacobian}} +\index{jacobian@{jacobian}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{jacobian}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Matrix}$<$Scalar$>$ {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::jacobian ( +\begin{DoxyParamCaption} +\item[{{\bf Matrix}$<$ Scalar $>$ const \&}]{x, } +\item[{size\-\_\-t}]{i} +\end{DoxyParamCaption} +) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classmeow_1_1Rotation3D_a201c56debd6cc0f4e75cb06148197726} + + +Return the jacobian matrix of this transformate. + +Here we need to discussion in three case\-: +\begin{DoxyItemize} +\item {\itshape i} = 0, derivate by the x axis of the vector theta \[ \left[ \begin{array}{ccc} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \\ \end{array} \right] \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +\item {\itshape i} = 1, derivate by the y axis of the vector theta \[ \left[ \begin{array}{ccc} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \\ \end{array} \right] \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +\item {\itshape i} = 2, derivate by the z axis of the vector theta \[ \left[ \begin{array}{ccc} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \\ \end{array} \right] \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] +\end{DoxyItemize}Where $ (x,y,z) $ is the input vector, $ \vec{n}, \phi $ is the same one in the description of {\bfseries \hyperlink{classmeow_1_1Rotation3D_a566ebd46881ef0165aab55a4cf4ca169}{transformate()}}. + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em x} & the input vector \\ +\hline +\mbox{\tt in} & {\em i} & the index of the parameters(theta) to dervite \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +a matrix +\end{DoxyReturn} + + +Reimplemented from \hyperlink{classmeow_1_1Transformation_a18590a4501b79a9ad38eb8fa3c966eb8}{meow\-::\-Transformation$<$ Scalar $>$}. + +\hypertarget{classmeow_1_1Rotation3D_ae12a31cabc1260bd7256734f0e04acfb}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!jacobian\-Inv@{jacobian\-Inv}} +\index{jacobian\-Inv@{jacobian\-Inv}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{jacobian\-Inv}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Matrix}$<$Scalar$>$ {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::jacobian\-Inv ( +\begin{DoxyParamCaption} +\item[{{\bf Matrix}$<$ Scalar $>$ const \&}]{x} +\end{DoxyParamCaption} +) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classmeow_1_1Rotation3D_ae12a31cabc1260bd7256734f0e04acfb} + + +Return the jacobian matrix of the inverse form of this transformate. + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em x} & the input vector \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +a matrix +\end{DoxyReturn} + + +Reimplemented from \hyperlink{classmeow_1_1Transformation_a0186764bb80869bd80b81efb5bb1ee95}{meow\-::\-Transformation$<$ Scalar $>$}. + +\hypertarget{classmeow_1_1Rotation3D_af2a38c66668f6dcc11005e8f42b81f2f}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!jacobian\-Inv@{jacobian\-Inv}} +\index{jacobian\-Inv@{jacobian\-Inv}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{jacobian\-Inv}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Matrix}$<$Scalar$>$ {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::jacobian\-Inv ( +\begin{DoxyParamCaption} +\item[{{\bf Matrix}$<$ Scalar $>$ const \&}]{x, } +\item[{size\-\_\-t}]{i} +\end{DoxyParamCaption} +) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classmeow_1_1Rotation3D_af2a38c66668f6dcc11005e8f42b81f2f} + + +Return the jacobian matrix of the inverse form of this transformate. + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em x} & the input vector \\ +\hline +\mbox{\tt in} & {\em i} & the index of the parameters(theta) to dervite \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +a matrix +\end{DoxyReturn} + + +Reimplemented from \hyperlink{classmeow_1_1Transformation_a4e7e3b24d0879eddc53951dfb357db0b}{meow\-::\-Transformation$<$ Scalar $>$}. + +\hypertarget{classmeow_1_1Rotation3D_a513851c5d53274b76fd9511ba1aea484}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!matrix\-Inv@{matrix\-Inv}} +\index{matrix\-Inv@{matrix\-Inv}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{matrix\-Inv}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Matrix}$<$Scalar$>$ {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::matrix\-Inv ( +\begin{DoxyParamCaption} +{} +\end{DoxyParamCaption} +) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classmeow_1_1Rotation3D_a513851c5d53274b76fd9511ba1aea484} + + +Return the inverse matrix. + +In this case, the inverse matrix is equal to the transpose of the matrix + +\begin{DoxyReturn}{Returns} +a matrix +\end{DoxyReturn} + + +Reimplemented from \hyperlink{classmeow_1_1LinearTransformation_a60ead2898f321c5d77d099e1dc3e103c}{meow\-::\-Linear\-Transformation$<$ Scalar $>$}. + +\hypertarget{classmeow_1_1Rotation3D_a3e0095d1f506d6f11c434d55e454aca6}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!operator=@{operator=}} +\index{operator=@{operator=}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Rotation3\-D}\& {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::operator= ( +\begin{DoxyParamCaption} +\item[{{\bf Rotation3\-D}$<$ Scalar $>$ const \&}]{b} +\end{DoxyParamCaption} +)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Rotation3D_a3e0095d1f506d6f11c434d55e454aca6} + + +same as {\ttfamily copy\-From(b)} + +\hypertarget{classmeow_1_1Rotation3D_ac6488df50303b564262065350186549a}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!parameter@{parameter}} +\index{parameter@{parameter}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{parameter}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ Scalar {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::parameter ( +\begin{DoxyParamCaption} +\item[{size\-\_\-t}]{i} +\end{DoxyParamCaption} +) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classmeow_1_1Rotation3D_ac6488df50303b564262065350186549a} + + +same as {\ttfamily theta(i)} + + + +Implements \hyperlink{classmeow_1_1Transformation_a09e71e5af508d7c0e09fdbeaacbe4365}{meow\-::\-Transformation$<$ Scalar $>$}. + +\hypertarget{classmeow_1_1Rotation3D_a0a7c3b7f605caf7bc54f80b25b317972}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!parameter@{parameter}} +\index{parameter@{parameter}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{parameter}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ Scalar {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::parameter ( +\begin{DoxyParamCaption} +\item[{size\-\_\-t}]{i, } +\item[{Scalar const \&}]{s} +\end{DoxyParamCaption} +)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classmeow_1_1Rotation3D_a0a7c3b7f605caf7bc54f80b25b317972} + + +same as {\ttfamily theta(i, s)} + + + +Implements \hyperlink{classmeow_1_1Transformation_a2a90b93490712232b81a628b5057526f}{meow\-::\-Transformation$<$ Scalar $>$}. + +\hypertarget{classmeow_1_1Rotation3D_ac2919c38518ea677a85df8757bd8f0d9}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!reference\-From@{reference\-From}} +\index{reference\-From@{reference\-From}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{reference\-From}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Rotation3\-D}\& {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::reference\-From ( +\begin{DoxyParamCaption} +\item[{{\bf Rotation3\-D}$<$ Scalar $>$ const \&}]{b} +\end{DoxyParamCaption} +)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Rotation3D_ac2919c38518ea677a85df8757bd8f0d9} + + +Reference data. + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em b} & another \hyperlink{classmeow_1_1Rotation3D}{Rotation3\-D} class. \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +{\ttfamily $\ast$this} +\end{DoxyReturn} +\hypertarget{classmeow_1_1Rotation3D_aeceaa78749d4bd9f5d638591298073dd}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!theta@{theta}} +\index{theta@{theta}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{theta}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ Scalar const\& {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::theta ( +\begin{DoxyParamCaption} +\item[{size\-\_\-t}]{i} +\end{DoxyParamCaption} +) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Rotation3D_aeceaa78749d4bd9f5d638591298073dd} + + +Get the {\ttfamily i} -\/th theta. + +{\ttfamily i} can only be 1, 2 or 3 + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em i} & index \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +{\ttfamily i} -\/th theta +\end{DoxyReturn} +\hypertarget{classmeow_1_1Rotation3D_a77a863b230bcacdfaf5a534f17268170}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!theta@{theta}} +\index{theta@{theta}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{theta}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ Scalar const\& {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::theta ( +\begin{DoxyParamCaption} +\item[{size\-\_\-t}]{i, } +\item[{Scalar const \&}]{s} +\end{DoxyParamCaption} +)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1Rotation3D_a77a863b230bcacdfaf5a534f17268170} + + +Set the {\ttfamily i} -\/th theta. + +{\ttfamily i} can only be 1, 2 or 3 + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em i} & index \\ +\hline +\mbox{\tt in} & {\em s} & new theta value \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +{\ttfamily i} -\/th theta +\end{DoxyReturn} +\hypertarget{classmeow_1_1Rotation3D_a566ebd46881ef0165aab55a4cf4ca169}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!transformate@{transformate}} +\index{transformate@{transformate}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{transformate}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Matrix}$<$Scalar$>$ {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::transformate ( +\begin{DoxyParamCaption} +\item[{{\bf Matrix}$<$ Scalar $>$ const \&}]{x} +\end{DoxyParamCaption} +) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classmeow_1_1Rotation3D_a566ebd46881ef0165aab55a4cf4ca169} + + +Do the transformate. + +Assume\-: +\begin{DoxyItemize} +\item The input vector is $ (x ,y ,z ) $ +\item The output vector is $ (x',y',z') $ +\item The parameters theta is $ \vec{\theta}=(\theta_x,\theta_y,\theta_z) $ +\end{DoxyItemize}Then we have\-: \[ \left[ \begin{array}{c} x' \\ y' \\ z' \\ \end{array} \right] = \left[ \begin{array}{ccc} 2(n_x^2 - 1) \sin^2\phi + 1 & 2n_x n_y \sin^2\phi - 2n_z\cos \phi\sin \phi & 2n_x n_z \sin^2\phi + 2n_y\cos \phi\sin \phi \\ 2n_y n_x \sin^2\phi + 2n_z\cos \phi\sin \phi & 2(n_y^2 - 1) \sin^2\phi + 1 & 2n_y n_z \sin^2\phi - 2n_x\cos \phi\sin \phi \\ 2n_z n_x \sin^2\phi - 2n_y\cos \phi\sin \phi & 2n_z n_y \sin^2\phi + 2n_x\cos \phi\sin \phi & 2(n_z^2 - 1) \sin^2\phi + 1 \\ \end{array} \right] \left[ \begin{array}{c} x \\ y \\ z \\ \end{array} \right] \] Where\-: +\begin{DoxyItemize} +\item $ \phi $ is the helf of length of $ \vec{\theta} $ , which means $ \phi = \frac{\left|\vec{\theta}\right|}{2} = \frac{1}{2}\sqrt{\theta_x^2 + \theta_y^2 + \theta_z^2} $ +\item $ \vec{n} $ is the normalized form of $ \vec{\theta} $ , which means $ \vec{n} = (n_x,n_y,n_z) = \vec{\theta} / 2\phi $ +\end{DoxyItemize} + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em x} & the input vector \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +the output matrix +\end{DoxyReturn} + + +Implements \hyperlink{classmeow_1_1Transformation_aa0c299b9ad13020a9eb460de01378ddc}{meow\-::\-Transformation$<$ Scalar $>$}. + +\hypertarget{classmeow_1_1Rotation3D_aa872f44ce5b53faadddc9493697cfe13}{\index{meow\-::\-Rotation3\-D@{meow\-::\-Rotation3\-D}!transformate\-Inv@{transformate\-Inv}} +\index{transformate\-Inv@{transformate\-Inv}!meow::Rotation3D@{meow\-::\-Rotation3\-D}} +\subsubsection[{transformate\-Inv}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf Matrix}$<$Scalar$>$ {\bf meow\-::\-Rotation3\-D}$<$ Scalar $>$\-::transformate\-Inv ( +\begin{DoxyParamCaption} +\item[{{\bf Matrix}$<$ Scalar $>$ const \&}]{x} +\end{DoxyParamCaption} +) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classmeow_1_1Rotation3D_aa872f44ce5b53faadddc9493697cfe13} + + +Do the inverse transformate. + + +\begin{DoxyParams}[1]{Parameters} +\mbox{\tt in} & {\em x} & the input vector \\ +\hline +\end{DoxyParams} +\begin{DoxyReturn}{Returns} +the output vector +\end{DoxyReturn} + + +Reimplemented from \hyperlink{classmeow_1_1Transformation_aa9a476c677e7efc805c0fbdccfb48b38}{meow\-::\-Transformation$<$ Scalar $>$}. + + + +The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize} +\item +meowpp/math/\hyperlink{LinearTransformations_8h}{Linear\-Transformations.\-h}\end{DoxyCompactItemize} |