aboutsummaryrefslogtreecommitdiffstats
path: root/doc/latex/classmeow_1_1Rotation3D.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/latex/classmeow_1_1Rotation3D.tex')
-rw-r--r--doc/latex/classmeow_1_1Rotation3D.tex446
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}