\hypertarget{classACG_1_1QuaternionT}{}\section{A\+CG\+:\+:QuaternionT$<$ Scalar $>$ Class Template Reference}
\label{classACG_1_1QuaternionT}\index{A\+C\+G\+::\+Quaternion\+T$<$ Scalar $>$@{A\+C\+G\+::\+Quaternion\+T$<$ Scalar $>$}}


{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Math/\+Quaternion\+T.\+hh$>$}

Inheritance diagram for A\+CG\+:\+:QuaternionT$<$ Scalar $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classACG_1_1QuaternionT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a795b639021ec8a98b067ec611c6ec474}\label{classACG_1_1QuaternionT_a795b639021ec8a98b067ec611c6ec474}} 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ Scalar, 4 $>$ {\bfseries Base}
\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_af4ecf28af0a66e95a11b21a281b1db48}\label{classACG_1_1QuaternionT_af4ecf28af0a66e95a11b21a281b1db48}} 
typedef \hyperlink{classACG_1_1QuaternionT}{QuaternionT}$<$ Scalar $>$ {\bfseries Quaternion}
\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a5fbdb36fac070ea6bfb96f018b5d3e65}\label{classACG_1_1QuaternionT_a5fbdb36fac070ea6bfb96f018b5d3e65}} 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ Scalar, 3 $>$ {\bfseries Vec3}
\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_af7eeff5888d77bf535f989f8b76a063b}\label{classACG_1_1QuaternionT_af7eeff5888d77bf535f989f8b76a063b}} 
typedef \hyperlink{classOpenMesh_1_1VectorT}{VectorT}$<$ Scalar, 4 $>$ {\bfseries Vec4}
\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a06a59a6bfc1547274872d371493ca7c0}\label{classACG_1_1QuaternionT_a06a59a6bfc1547274872d371493ca7c0}} 
typedef \hyperlink{classACG_1_1Matrix4x4T}{Matrix4x4T}$<$ Scalar $>$ {\bfseries Matrix}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_ac486fa9841074f0503fa9d20e7451078}\label{classACG_1_1QuaternionT_ac486fa9841074f0503fa9d20e7451078}} 
\hyperlink{classACG_1_1QuaternionT_ac486fa9841074f0503fa9d20e7451078}{QuaternionT} (Scalar \+\_\+w=1.\+0, Scalar \+\_\+x=0.\+0, Scalar \+\_\+y=0.\+0, Scalar \+\_\+z=0.\+0)
\begin{DoxyCompactList}\small\item\em construct from 4 Scalars (default) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_aa4d2a729ccb755e6245531921b1a1690}\label{classACG_1_1QuaternionT_aa4d2a729ccb755e6245531921b1a1690}} 
\hyperlink{classACG_1_1QuaternionT_aa4d2a729ccb755e6245531921b1a1690}{QuaternionT} (const \hyperlink{classOpenMesh_1_1VectorT}{Vec3} \&\+\_\+p)
\begin{DoxyCompactList}\small\item\em construct from 3D point (pure imaginary quaternion) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a6722e4d996647141140f49fcc3b680ef}\label{classACG_1_1QuaternionT_a6722e4d996647141140f49fcc3b680ef}} 
\hyperlink{classACG_1_1QuaternionT_a6722e4d996647141140f49fcc3b680ef}{QuaternionT} (const \hyperlink{classOpenMesh_1_1VectorT}{Vec4} \&\+\_\+p)
\begin{DoxyCompactList}\small\item\em construct from 4D vector \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a7c8ae93b63d147a440eb5701201c336b}\label{classACG_1_1QuaternionT_a7c8ae93b63d147a440eb5701201c336b}} 
\hyperlink{classACG_1_1QuaternionT_a7c8ae93b63d147a440eb5701201c336b}{QuaternionT} (\hyperlink{classOpenMesh_1_1VectorT}{Vec3} \+\_\+axis, Scalar \+\_\+angle)
\begin{DoxyCompactList}\small\item\em construct from rotation axis and angle (in radians) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a6d0d2243f9691090db18a1582c0353af}\label{classACG_1_1QuaternionT_a6d0d2243f9691090db18a1582c0353af}} 
{\footnotesize template$<$class MatrixT $>$ }\\\hyperlink{classACG_1_1QuaternionT_a6d0d2243f9691090db18a1582c0353af}{QuaternionT} (const MatrixT \&\+\_\+rot)
\begin{DoxyCompactList}\small\item\em construct from rotation matrix (only valid for rotation matrices!) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_ab78df14d5a693d532679c1434dd8978a}\label{classACG_1_1QuaternionT_ab78df14d5a693d532679c1434dd8978a}} 
void \hyperlink{classACG_1_1QuaternionT_ab78df14d5a693d532679c1434dd8978a}{identity} ()
\begin{DoxyCompactList}\small\item\em identity rotation \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a8850915273b279b195894d0396d38fb6}\label{classACG_1_1QuaternionT_a8850915273b279b195894d0396d38fb6}} 
\hyperlink{classACG_1_1QuaternionT}{Quaternion} \hyperlink{classACG_1_1QuaternionT_a8850915273b279b195894d0396d38fb6}{conjugate} () const
\begin{DoxyCompactList}\small\item\em conjugate quaternion \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_aa7c33e8e91d3234db099665c764a3786}\label{classACG_1_1QuaternionT_aa7c33e8e91d3234db099665c764a3786}} 
\hyperlink{classACG_1_1QuaternionT}{Quaternion} \hyperlink{classACG_1_1QuaternionT_aa7c33e8e91d3234db099665c764a3786}{invert} () const
\begin{DoxyCompactList}\small\item\em invert quaternion \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a0df941b78d998883fddce35731fb5ab7}\label{classACG_1_1QuaternionT_a0df941b78d998883fddce35731fb5ab7}} 
\hyperlink{classACG_1_1QuaternionT}{Quaternion} \hyperlink{classACG_1_1QuaternionT_a0df941b78d998883fddce35731fb5ab7}{operator$\ast$} (const \hyperlink{classACG_1_1QuaternionT}{Quaternion} \&\+\_\+q) const
\begin{DoxyCompactList}\small\item\em quaternion $\ast$ quaternion \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_afb421d9404f77332fba406aa2aa8e81e}\label{classACG_1_1QuaternionT_afb421d9404f77332fba406aa2aa8e81e}} 
\hyperlink{classACG_1_1QuaternionT}{Quaternion} \& \hyperlink{classACG_1_1QuaternionT_afb421d9404f77332fba406aa2aa8e81e}{operator$\ast$=} (const \hyperlink{classACG_1_1QuaternionT}{Quaternion} \&\+\_\+q)
\begin{DoxyCompactList}\small\item\em quaternion $\ast$= quaternion \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a60a8bdcbf11925a8b59127878c33519e}\label{classACG_1_1QuaternionT_a60a8bdcbf11925a8b59127878c33519e}} 
{\footnotesize template$<$class Vec3T $>$ }\\Vec3T \hyperlink{classACG_1_1QuaternionT_a60a8bdcbf11925a8b59127878c33519e}{rotate} (const Vec3T \&\+\_\+v) const
\begin{DoxyCompactList}\small\item\em rotate vector \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a53e46f71b0dc89fe928b10ad93f32417}\label{classACG_1_1QuaternionT_a53e46f71b0dc89fe928b10ad93f32417}} 
void \hyperlink{classACG_1_1QuaternionT_a53e46f71b0dc89fe928b10ad93f32417}{axis\+\_\+angle} (\hyperlink{classOpenMesh_1_1VectorT}{Vec3} \&\+\_\+axis, Scalar \&\+\_\+angle) const
\begin{DoxyCompactList}\small\item\em get rotation axis and angle (only valid for unit quaternions!) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_ae20916b79f259f90c2284884555dfad2}\label{classACG_1_1QuaternionT_ae20916b79f259f90c2284884555dfad2}} 
\hyperlink{classACG_1_1Matrix4x4T}{Matrix} \hyperlink{classACG_1_1QuaternionT_ae20916b79f259f90c2284884555dfad2}{rotation\+\_\+matrix} () const
\begin{DoxyCompactList}\small\item\em cast to rotation matrix \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a2371df20d71edfdf44684659967bafde}\label{classACG_1_1QuaternionT_a2371df20d71edfdf44684659967bafde}} 
\hyperlink{classACG_1_1Matrix4x4T}{Matrix} \hyperlink{classACG_1_1QuaternionT_a2371df20d71edfdf44684659967bafde}{right\+\_\+mult\+\_\+matrix} () const
\begin{DoxyCompactList}\small\item\em get matrix for mult from right (p$\ast$q = Qp) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_af29773fb720f90ecf25ecdaeb6b23cbd}\label{classACG_1_1QuaternionT_af29773fb720f90ecf25ecdaeb6b23cbd}} 
\hyperlink{classACG_1_1Matrix4x4T}{Matrix} \hyperlink{classACG_1_1QuaternionT_af29773fb720f90ecf25ecdaeb6b23cbd}{left\+\_\+mult\+\_\+matrix} () const
\begin{DoxyCompactList}\small\item\em get matrix for mult from left (q$\ast$p = Qp) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a112081e9314eece859fc0289d1f31ed7}\label{classACG_1_1QuaternionT_a112081e9314eece859fc0289d1f31ed7}} 
{\footnotesize template$<$class MatrixT $>$ }\\void \hyperlink{classACG_1_1QuaternionT_a112081e9314eece859fc0289d1f31ed7}{init\+\_\+from\+\_\+matrix} (const MatrixT \&\+\_\+rot)
\begin{DoxyCompactList}\small\item\em get quaternion from rotation matrix \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_adb511d2c0dee65eb3f6e5d3f9255143e}\label{classACG_1_1QuaternionT_adb511d2c0dee65eb3f6e5d3f9255143e}} 
\hyperlink{classACG_1_1QuaternionT}{Quaternion} \hyperlink{classACG_1_1QuaternionT_adb511d2c0dee65eb3f6e5d3f9255143e}{exponential} () const
\begin{DoxyCompactList}\small\item\em quaternion exponential (for unit quaternions) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a86e37aa2020183fea1cfd3aab35a9cd2}\label{classACG_1_1QuaternionT_a86e37aa2020183fea1cfd3aab35a9cd2}} 
\hyperlink{classACG_1_1QuaternionT}{Quaternion} \hyperlink{classACG_1_1QuaternionT_a86e37aa2020183fea1cfd3aab35a9cd2}{logarithm} () const
\begin{DoxyCompactList}\small\item\em quaternion logarithm (for unit quaternions) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1QuaternionT_a7a4bcbf61d38326040286e28ecb2a45c}\label{classACG_1_1QuaternionT_a7a4bcbf61d38326040286e28ecb2a45c}} 
void {\bfseries print\+\_\+info} ()
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$class Scalar$>$\newline
class A\+C\+G\+::\+Quaternion\+T$<$ Scalar $>$}

Quaternion class for representing rotations. 

Definition at line 75 of file Quaternion\+T.\+hh.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Math/Quaternion\+T.\+hh\end{DoxyCompactItemize}
