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