\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}


Definition at line 20 of file Linear\-Transformations.\-h.



\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 

Definition at line 69 of file Linear\-Transformations.\-h.

\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 

Definition at line 75 of file Linear\-Transformations.\-h.

\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 

Definition at line 82 of file Linear\-Transformations.\-h.



\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}


Definition at line 171 of file Linear\-Transformations.\-h.

\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}


Definition at line 160 of file Linear\-Transformations.\-h.

\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}


Definition at line 91 of file Linear\-Transformations.\-h.

\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 $>$}.



Definition at line 243 of file Linear\-Transformations.\-h.

\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 $>$}.



Definition at line 320 of file Linear\-Transformations.\-h.

\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 $>$}.



Definition at line 354 of file Linear\-Transformations.\-h.

\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 $>$}.



Definition at line 365 of file Linear\-Transformations.\-h.

\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 $>$}.



Definition at line 391 of file Linear\-Transformations.\-h.

\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)} 



Definition at line 397 of file Linear\-Transformations.\-h.

\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 $>$}.



Definition at line 112 of file Linear\-Transformations.\-h.

\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 $>$}.



Definition at line 119 of file Linear\-Transformations.\-h.

\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}


Definition at line 103 of file Linear\-Transformations.\-h.

\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}


Definition at line 131 of file Linear\-Transformations.\-h.

\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}


Definition at line 144 of file Linear\-Transformations.\-h.

\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 $>$}.



Definition at line 213 of file Linear\-Transformations.\-h.

\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 $>$}.



Definition at line 344 of file Linear\-Transformations.\-h.



The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
meowpp/math/\hyperlink{LinearTransformations_8h}{Linear\-Transformations.\-h}\end{DoxyCompactItemize}
