\hypertarget{class_ogre_1_1_dual_quaternion}{}\doxysection{Ogre\+::Dual\+Quaternion Class Reference}
\label{class_ogre_1_1_dual_quaternion}\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}}


Implementation of a dual quaternion, i.\+e.  




{\ttfamily \#include $<$Ogre\+Dual\+Quaternion.\+h$>$}

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a80edaf9534e9738f6125ecec0e30ca61}{Dual\+Quaternion}} ()
\begin{DoxyCompactList}\small\item\em Default constructor, initializes to identity rotation (aka 0°), and zero translation (0,0,0) \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_dual_quaternion_ab9a8e9b8ced4f48e624f12097a5a21f0}{Dual\+Quaternion}} (const \mbox{\hyperlink{class_ogre_1_1_affine3}{Affine3}} \&rot)
\begin{DoxyCompactList}\small\item\em Construct a dual quaternion from a transformation matrix. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a10574bf89fef9fc12fac5ed4e8085f71}{Dual\+Quaternion}} (const \mbox{\hyperlink{class_ogre_1_1_quaternion}{Quaternion}} \&q, const \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \&trans)
\begin{DoxyCompactList}\small\item\em Construct a dual quaternion from a unit quaternion and a translation vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a303afd76b65bd34a28accdb6eb0c024c}{Dual\+Quaternion}} (\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} $\ast$valptr)
\begin{DoxyCompactList}\small\item\em Construct a dual quaternion from 8 manual w/x/y/z/dw/dx/dy/dz values. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a845da9e63d380d8b71ea6f740b7fd4a1}{Dual\+Quaternion}} (\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} fW, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} fX, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} fY, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} fZ, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} fdW, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} fdX, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} fdY, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} fdZ)
\begin{DoxyCompactList}\small\item\em Construct from an explicit list of values. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_ad753b864d41eab164118718b27a46425}{from\+Rotation\+Translation}} (const \mbox{\hyperlink{class_ogre_1_1_quaternion}{Quaternion}} \&q, const \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \&trans)
\begin{DoxyCompactList}\small\item\em Construct a dual quaternion from a rotation described by a \mbox{\hyperlink{class_ogre_1_1_quaternion}{Quaternion}} and a translation described by a Vector3. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_ae0fb2ddae4bd51a155b310543dcaa161}{from\+Transformation\+Matrix}} (const \mbox{\hyperlink{class_ogre_1_1_affine3}{Affine3}} \&k\+Trans)
\begin{DoxyCompactList}\small\item\em Construct a dual quaternion from a 4x4 transformation matrix. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a829e80b909334ea343c106c5fcc29fd5}{is\+NaN}} () const
\begin{DoxyCompactList}\small\item\em Check whether this dual quaternion contains valid values. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a67e838a3d4ab670c3a4ef9c62293b038}{operator!=}} (const \mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \&rhs) const
\item 
\mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \& \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a410cb35a3ac7a805f4628c9e62ad46f9}{operator=}} (const \mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \&rkQ)
\item 
bool \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a0eb3f8e285a3aaddb6867f24486dbf21}{operator==}} (const \mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \&rhs) const
\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \& \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_af666d1865aa8b3467648b96e8c597217}{operator\mbox{[}$\,$\mbox{]}}} (const size\+\_\+t i)
\begin{DoxyCompactList}\small\item\em Array accessor operator. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_aac4241fa632d45ee6ae2d155914ddff7}{operator\mbox{[}$\,$\mbox{]}}} (const size\+\_\+t i) const
\begin{DoxyCompactList}\small\item\em Array accessor operator. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a61d7206748dafb2a32a0a0bf1889f74d}{ptr}} ()
\begin{DoxyCompactList}\small\item\em Pointer accessor for direct copying. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a19ebc1fe6a5f0577f13bbdae952d5a03}{ptr}} () const
\begin{DoxyCompactList}\small\item\em Pointer accessor for direct copying. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a80c92016a8442946a264b8c13ba9f300}{swap}} (\mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \&other)
\begin{DoxyCompactList}\small\item\em Exchange the contents of this dual quaternion with another. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_ab208a261f08d2fc8e95025f294a305c1}{to\+Rotation\+Translation}} (\mbox{\hyperlink{class_ogre_1_1_quaternion}{Quaternion}} \&q, \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \&translation) const
\begin{DoxyCompactList}\small\item\em Convert a dual quaternion into its two components, a \mbox{\hyperlink{class_ogre_1_1_quaternion}{Quaternion}} representing the rotation and a Vector3 representing the translation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a16fefc12aaa35460748c8dfc253d39f1}{to\+Transformation\+Matrix}} (\mbox{\hyperlink{class_ogre_1_1_affine3}{Affine3}} \&k\+Trans) const
\begin{DoxyCompactList}\small\item\em Convert a dual quaternion to a 4x4 transformation matrix. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_aef3bbc49149643d5bfc3dbde4064dde3}{dw}}
\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a488ce81a7866d481169647cff04dc17c}{dx}}
\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a123fbf0958bccd9f5381d6f124d0586e}{dy}}
\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_acfec8064c128940237fe204e7b0e9f99}{dz}}
\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a4e1b52752fb889035e68f893f2a246c6}{w}}
\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a1afbb66b83f2085f452bb663ceafc9dc}{x}}
\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_a43375b322ae7a0b7f5d03318bfa33f17}{y}}
\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_aca62cb2fb2eeab0637b35bc920a7cae4}{z}}
\end{DoxyCompactItemize}
\doxysubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\+\_\+\+Ogre\+Export friend std\+::ostream \& \mbox{\hyperlink{class_ogre_1_1_dual_quaternion_aa7459724aaeaf956e29b08dad3986c39}{operator$<$$<$}} (std\+::ostream \&o, const \mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \&q)
\begin{DoxyCompactList}\small\item\em Function for writing to a stream. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Implementation of a dual quaternion, i.\+e. 

a rotation around an axis and a translation. This implementation may note be appropriate as a general implementation, but is intended for use with dual quaternion skinning. 

\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a80edaf9534e9738f6125ecec0e30ca61}\label{class_ogre_1_1_dual_quaternion_a80edaf9534e9738f6125ecec0e30ca61}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!DualQuaternion@{DualQuaternion}}
\index{DualQuaternion@{DualQuaternion}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{DualQuaternion()}{DualQuaternion()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily Ogre\+::\+Dual\+Quaternion\+::\+Dual\+Quaternion (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Default constructor, initializes to identity rotation (aka 0°), and zero translation (0,0,0) 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a845da9e63d380d8b71ea6f740b7fd4a1}\label{class_ogre_1_1_dual_quaternion_a845da9e63d380d8b71ea6f740b7fd4a1}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!DualQuaternion@{DualQuaternion}}
\index{DualQuaternion@{DualQuaternion}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{DualQuaternion()}{DualQuaternion()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily Ogre\+::\+Dual\+Quaternion\+::\+Dual\+Quaternion (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{fW,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{fX,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{fY,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{fZ,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{fdW,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{fdX,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{fdY,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{fdZ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Construct from an explicit list of values. 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_ab9a8e9b8ced4f48e624f12097a5a21f0}\label{class_ogre_1_1_dual_quaternion_ab9a8e9b8ced4f48e624f12097a5a21f0}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!DualQuaternion@{DualQuaternion}}
\index{DualQuaternion@{DualQuaternion}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{DualQuaternion()}{DualQuaternion()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily Ogre\+::\+Dual\+Quaternion\+::\+Dual\+Quaternion (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_affine3}{Affine3}} \&}]{rot }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Construct a dual quaternion from a transformation matrix. 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a10574bf89fef9fc12fac5ed4e8085f71}\label{class_ogre_1_1_dual_quaternion_a10574bf89fef9fc12fac5ed4e8085f71}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!DualQuaternion@{DualQuaternion}}
\index{DualQuaternion@{DualQuaternion}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{DualQuaternion()}{DualQuaternion()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily Ogre\+::\+Dual\+Quaternion\+::\+Dual\+Quaternion (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_quaternion}{Quaternion}} \&}]{q,  }\item[{const \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \&}]{trans }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Construct a dual quaternion from a unit quaternion and a translation vector. 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a303afd76b65bd34a28accdb6eb0c024c}\label{class_ogre_1_1_dual_quaternion_a303afd76b65bd34a28accdb6eb0c024c}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!DualQuaternion@{DualQuaternion}}
\index{DualQuaternion@{DualQuaternion}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{DualQuaternion()}{DualQuaternion()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily Ogre\+::\+Dual\+Quaternion\+::\+Dual\+Quaternion (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} $\ast$}]{valptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Construct a dual quaternion from 8 manual w/x/y/z/dw/dx/dy/dz values. 



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_aac4241fa632d45ee6ae2d155914ddff7}\label{class_ogre_1_1_dual_quaternion_aac4241fa632d45ee6ae2d155914ddff7}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{operator[]()}{operator[]()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Dual\+Quaternion\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{const size\+\_\+t}]{i }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Array accessor operator. 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_af666d1865aa8b3467648b96e8c597217}\label{class_ogre_1_1_dual_quaternion_af666d1865aa8b3467648b96e8c597217}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{operator[]()}{operator[]()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}\& Ogre\+::\+Dual\+Quaternion\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{const size\+\_\+t}]{i }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Array accessor operator. 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a410cb35a3ac7a805f4628c9e62ad46f9}\label{class_ogre_1_1_dual_quaternion_a410cb35a3ac7a805f4628c9e62ad46f9}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!operator=@{operator=}}
\index{operator=@{operator=}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}}\& Ogre\+::\+Dual\+Quaternion\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \&}]{rkQ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References dw, dx, dy, dz, w, x, y, and z.

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a0eb3f8e285a3aaddb6867f24486dbf21}\label{class_ogre_1_1_dual_quaternion_a0eb3f8e285a3aaddb6867f24486dbf21}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!operator==@{operator==}}
\index{operator==@{operator==}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}}
{\footnotesize\ttfamily bool Ogre\+::\+Dual\+Quaternion\+::operator== (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



References dw, dx, dy, dz, w, x, y, and z.

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a67e838a3d4ab670c3a4ef9c62293b038}\label{class_ogre_1_1_dual_quaternion_a67e838a3d4ab670c3a4ef9c62293b038}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{operator"!=()}{operator!=()}}
{\footnotesize\ttfamily bool Ogre\+::\+Dual\+Quaternion\+::operator!= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



References Ogre\+::operator==().

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a61d7206748dafb2a32a0a0bf1889f74d}\label{class_ogre_1_1_dual_quaternion_a61d7206748dafb2a32a0a0bf1889f74d}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!ptr@{ptr}}
\index{ptr@{ptr}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{ptr()}{ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}$\ast$ Ogre\+::\+Dual\+Quaternion\+::ptr (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Pointer accessor for direct copying. 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a19ebc1fe6a5f0577f13bbdae952d5a03}\label{class_ogre_1_1_dual_quaternion_a19ebc1fe6a5f0577f13bbdae952d5a03}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!ptr@{ptr}}
\index{ptr@{ptr}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{ptr()}{ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}$\ast$ Ogre\+::\+Dual\+Quaternion\+::ptr (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Pointer accessor for direct copying. 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a80c92016a8442946a264b8c13ba9f300}\label{class_ogre_1_1_dual_quaternion_a80c92016a8442946a264b8c13ba9f300}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!swap@{swap}}
\index{swap@{swap}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{swap()}{swap()}}
{\footnotesize\ttfamily void Ogre\+::\+Dual\+Quaternion\+::swap (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Exchange the contents of this dual quaternion with another. 



References dw, dx, dy, dz, std\+::swap(), w, x, y, and z.

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a829e80b909334ea343c106c5fcc29fd5}\label{class_ogre_1_1_dual_quaternion_a829e80b909334ea343c106c5fcc29fd5}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!isNaN@{isNaN}}
\index{isNaN@{isNaN}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{isNaN()}{isNaN()}}
{\footnotesize\ttfamily bool Ogre\+::\+Dual\+Quaternion\+::is\+NaN (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Check whether this dual quaternion contains valid values. 



References Ogre\+::\+Math\+::is\+Na\+N().

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_ad753b864d41eab164118718b27a46425}\label{class_ogre_1_1_dual_quaternion_ad753b864d41eab164118718b27a46425}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!fromRotationTranslation@{fromRotationTranslation}}
\index{fromRotationTranslation@{fromRotationTranslation}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{fromRotationTranslation()}{fromRotationTranslation()}}
{\footnotesize\ttfamily void Ogre\+::\+Dual\+Quaternion\+::from\+Rotation\+Translation (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_quaternion}{Quaternion}} \&}]{q,  }\item[{const \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \&}]{trans }\end{DoxyParamCaption})}



Construct a dual quaternion from a rotation described by a \mbox{\hyperlink{class_ogre_1_1_quaternion}{Quaternion}} and a translation described by a Vector3. 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_ab208a261f08d2fc8e95025f294a305c1}\label{class_ogre_1_1_dual_quaternion_ab208a261f08d2fc8e95025f294a305c1}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!toRotationTranslation@{toRotationTranslation}}
\index{toRotationTranslation@{toRotationTranslation}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{toRotationTranslation()}{toRotationTranslation()}}
{\footnotesize\ttfamily void Ogre\+::\+Dual\+Quaternion\+::to\+Rotation\+Translation (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_quaternion}{Quaternion}} \&}]{q,  }\item[{\mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \&}]{translation }\end{DoxyParamCaption}) const}



Convert a dual quaternion into its two components, a \mbox{\hyperlink{class_ogre_1_1_quaternion}{Quaternion}} representing the rotation and a Vector3 representing the translation. 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_ae0fb2ddae4bd51a155b310543dcaa161}\label{class_ogre_1_1_dual_quaternion_ae0fb2ddae4bd51a155b310543dcaa161}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!fromTransformationMatrix@{fromTransformationMatrix}}
\index{fromTransformationMatrix@{fromTransformationMatrix}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{fromTransformationMatrix()}{fromTransformationMatrix()}}
{\footnotesize\ttfamily void Ogre\+::\+Dual\+Quaternion\+::from\+Transformation\+Matrix (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_affine3}{Affine3}} \&}]{k\+Trans }\end{DoxyParamCaption})}



Construct a dual quaternion from a 4x4 transformation matrix. 

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a16fefc12aaa35460748c8dfc253d39f1}\label{class_ogre_1_1_dual_quaternion_a16fefc12aaa35460748c8dfc253d39f1}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!toTransformationMatrix@{toTransformationMatrix}}
\index{toTransformationMatrix@{toTransformationMatrix}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{toTransformationMatrix()}{toTransformationMatrix()}}
{\footnotesize\ttfamily void Ogre\+::\+Dual\+Quaternion\+::to\+Transformation\+Matrix (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_affine3}{Affine3}} \&}]{k\+Trans }\end{DoxyParamCaption}) const}



Convert a dual quaternion to a 4x4 transformation matrix. 



\doxysubsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_aa7459724aaeaf956e29b08dad3986c39}\label{class_ogre_1_1_dual_quaternion_aa7459724aaeaf956e29b08dad3986c39}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{operator$<$$<$}{operator<<}}
{\footnotesize\ttfamily \+\_\+\+Ogre\+Export friend std\+::ostream\& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{o,  }\item[{const \mbox{\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}} \&}]{q }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}



Function for writing to a stream. 

Outputs \char`\"{}\+Dual\+Quaternion(w, x, y, z, dw, dx, dy, dz)\char`\"{} with w, x, y, z, dw, dx, dy, dz being the member values of the dual quaternion. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a4e1b52752fb889035e68f893f2a246c6}\label{class_ogre_1_1_dual_quaternion_a4e1b52752fb889035e68f893f2a246c6}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!w@{w}}
\index{w@{w}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{w}{w}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Dual\+Quaternion\+::w}



Referenced by operator=(), operator==(), and swap().

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a1afbb66b83f2085f452bb663ceafc9dc}\label{class_ogre_1_1_dual_quaternion_a1afbb66b83f2085f452bb663ceafc9dc}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!x@{x}}
\index{x@{x}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{x}{x}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Dual\+Quaternion\+::x}



Referenced by operator=(), operator==(), and swap().

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a43375b322ae7a0b7f5d03318bfa33f17}\label{class_ogre_1_1_dual_quaternion_a43375b322ae7a0b7f5d03318bfa33f17}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!y@{y}}
\index{y@{y}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{y}{y}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Dual\+Quaternion\+::y}



Referenced by operator=(), operator==(), and swap().

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_aca62cb2fb2eeab0637b35bc920a7cae4}\label{class_ogre_1_1_dual_quaternion_aca62cb2fb2eeab0637b35bc920a7cae4}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!z@{z}}
\index{z@{z}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{z}{z}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Dual\+Quaternion\+::z}



Referenced by operator=(), operator==(), and swap().

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_aef3bbc49149643d5bfc3dbde4064dde3}\label{class_ogre_1_1_dual_quaternion_aef3bbc49149643d5bfc3dbde4064dde3}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!dw@{dw}}
\index{dw@{dw}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{dw}{dw}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Dual\+Quaternion\+::dw}



Referenced by operator=(), operator==(), and swap().

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a488ce81a7866d481169647cff04dc17c}\label{class_ogre_1_1_dual_quaternion_a488ce81a7866d481169647cff04dc17c}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!dx@{dx}}
\index{dx@{dx}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{dx}{dx}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Dual\+Quaternion\+::dx}



Referenced by operator=(), operator==(), and swap().

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a123fbf0958bccd9f5381d6f124d0586e}\label{class_ogre_1_1_dual_quaternion_a123fbf0958bccd9f5381d6f124d0586e}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!dy@{dy}}
\index{dy@{dy}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{dy}{dy}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Dual\+Quaternion\+::dy}



Referenced by operator=(), operator==(), and swap().

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_acfec8064c128940237fe204e7b0e9f99}\label{class_ogre_1_1_dual_quaternion_acfec8064c128940237fe204e7b0e9f99}} 
\index{Ogre::DualQuaternion@{Ogre::DualQuaternion}!dz@{dz}}
\index{dz@{dz}!Ogre::DualQuaternion@{Ogre::DualQuaternion}}
\doxysubsubsection{\texorpdfstring{dz}{dz}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Dual\+Quaternion\+::dz}



Referenced by operator=(), operator==(), and swap().



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{_ogre_dual_quaternion_8h}{Ogre\+Dual\+Quaternion.\+h}}\end{DoxyCompactItemize}
