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


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




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\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 
\hyperlink{class_ogre_1_1_dual_quaternion_a845da9e63d380d8b71ea6f740b7fd4a1}{Dual\+Quaternion} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} fW, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} fX, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} fY, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} fZ, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} fdW, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} fdX, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} fdY, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} fdZ)
\begin{DoxyCompactList}\small\item\em Construct from an explicit list of values. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_dual_quaternion_ab9a8e9b8ced4f48e624f12097a5a21f0}{Dual\+Quaternion} (const \hyperlink{class_ogre_1_1_affine3}{Affine3} \&rot)
\begin{DoxyCompactList}\small\item\em Construct a dual quaternion from a transformation matrix. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_dual_quaternion_a10574bf89fef9fc12fac5ed4e8085f71}{Dual\+Quaternion} (const \hyperlink{class_ogre_1_1_quaternion}{Quaternion} \&q, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&trans)
\begin{DoxyCompactList}\small\item\em Construct a dual quaternion from a unit quaternion and a translation vector. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_dual_quaternion_a303afd76b65bd34a28accdb6eb0c024c}{Dual\+Quaternion} (\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 
void \hyperlink{class_ogre_1_1_dual_quaternion_ad753b864d41eab164118718b27a46425}{from\+Rotation\+Translation} (const \hyperlink{class_ogre_1_1_quaternion}{Quaternion} \&q, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&trans)
\begin{DoxyCompactList}\small\item\em Construct a dual quaternion from a rotation described by a \hyperlink{class_ogre_1_1_quaternion}{Quaternion} and a translation described by a \hyperlink{class_ogre_1_1_vector3}{Vector3}. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_dual_quaternion_ae0fb2ddae4bd51a155b310543dcaa161}{from\+Transformation\+Matrix} (const \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 \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 \hyperlink{class_ogre_1_1_dual_quaternion_a67e838a3d4ab670c3a4ef9c62293b038}{operator!=} (const \hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion} \&rhs) const
\item 
\hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion} \& \hyperlink{class_ogre_1_1_dual_quaternion_a410cb35a3ac7a805f4628c9e62ad46f9}{operator=} (const \hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion} \&rkQ)
\item 
bool \hyperlink{class_ogre_1_1_dual_quaternion_a0eb3f8e285a3aaddb6867f24486dbf21}{operator==} (const \hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion} \&rhs) const
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \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 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \& \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 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} $\ast$ \hyperlink{class_ogre_1_1_dual_quaternion_a61d7206748dafb2a32a0a0bf1889f74d}{ptr} ()
\begin{DoxyCompactList}\small\item\em Pointer accessor for direct copying. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} $\ast$ \hyperlink{class_ogre_1_1_dual_quaternion_a19ebc1fe6a5f0577f13bbdae952d5a03}{ptr} () const
\begin{DoxyCompactList}\small\item\em Pointer accessor for direct copying. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_dual_quaternion_a80c92016a8442946a264b8c13ba9f300}{swap} (\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 \hyperlink{class_ogre_1_1_dual_quaternion_ab208a261f08d2fc8e95025f294a305c1}{to\+Rotation\+Translation} (\hyperlink{class_ogre_1_1_quaternion}{Quaternion} \&q, \hyperlink{class_ogre_1_1_vector3}{Vector3} \&translation) const
\begin{DoxyCompactList}\small\item\em Convert a dual quaternion into its two components, a \hyperlink{class_ogre_1_1_quaternion}{Quaternion} representing the rotation and a \hyperlink{class_ogre_1_1_vector3}{Vector3} representing the translation. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_dual_quaternion_a16fefc12aaa35460748c8dfc253d39f1}{to\+Transformation\+Matrix} (\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}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_dual_quaternion_aef3bbc49149643d5bfc3dbde4064dde3}{dw}
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_dual_quaternion_a488ce81a7866d481169647cff04dc17c}{dx}
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_dual_quaternion_a123fbf0958bccd9f5381d6f124d0586e}{dy}
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_dual_quaternion_acfec8064c128940237fe204e7b0e9f99}{dz}
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_dual_quaternion_a4e1b52752fb889035e68f893f2a246c6}{w}
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_dual_quaternion_a1afbb66b83f2085f452bb663ceafc9dc}{x}
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_dual_quaternion_a43375b322ae7a0b7f5d03318bfa33f17}{y}
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_dual_quaternion_aca62cb2fb2eeab0637b35bc920a7cae4}{z}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\+\_\+\+Ogre\+Export friend std\+::ostream \& \hyperlink{class_ogre_1_1_dual_quaternion_aa7459724aaeaf956e29b08dad3986c39}{operator$<$$<$} (std\+::ostream \&o, const \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}


\subsection{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. 

\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a80edaf9534e9738f6125ecec0e30ca61}\label{class_ogre_1_1_dual_quaternion_a80edaf9534e9738f6125ecec0e30ca61}} 
\index{Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!Dual\+Quaternion@{Dual\+Quaternion}}
\index{Dual\+Quaternion@{Dual\+Quaternion}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{Dual\+Quaternion()}{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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!Dual\+Quaternion@{Dual\+Quaternion}}
\index{Dual\+Quaternion@{Dual\+Quaternion}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{Dual\+Quaternion()}{DualQuaternion()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily Ogre\+::\+Dual\+Quaternion\+::\+Dual\+Quaternion (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{fW,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{fX,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{fY,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{fZ,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{fdW,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{fdX,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{fdY,  }\item[{\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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!Dual\+Quaternion@{Dual\+Quaternion}}
\index{Dual\+Quaternion@{Dual\+Quaternion}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{Dual\+Quaternion()}{DualQuaternion()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily Ogre\+::\+Dual\+Quaternion\+::\+Dual\+Quaternion (\begin{DoxyParamCaption}\item[{const \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!Dual\+Quaternion@{Dual\+Quaternion}}
\index{Dual\+Quaternion@{Dual\+Quaternion}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{Dual\+Quaternion()}{DualQuaternion()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily Ogre\+::\+Dual\+Quaternion\+::\+Dual\+Quaternion (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_quaternion}{Quaternion} \&}]{q,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!Dual\+Quaternion@{Dual\+Quaternion}}
\index{Dual\+Quaternion@{Dual\+Quaternion}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{Dual\+Quaternion()}{DualQuaternion()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily Ogre\+::\+Dual\+Quaternion\+::\+Dual\+Quaternion (\begin{DoxyParamCaption}\item[{\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. 



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_aac4241fa632d45ee6ae2d155914ddff7}\label{class_ogre_1_1_dual_quaternion_aac4241fa632d45ee6ae2d155914ddff7}} 
\index{Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{operator[]()}{operator[]()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{operator[]()}{operator[]()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!operator=@{operator=}}
\index{operator=@{operator=}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{operator=()}{operator=()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_dual_quaternion}{Dual\+Quaternion}\& Ogre\+::\+Dual\+Quaternion\+::operator= (\begin{DoxyParamCaption}\item[{const \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!operator==@{operator==}}
\index{operator==@{operator==}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{operator==()}{operator==()}}
{\footnotesize\ttfamily bool Ogre\+::\+Dual\+Quaternion\+::operator== (\begin{DoxyParamCaption}\item[{const \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{operator"!=()}{operator!=()}}
{\footnotesize\ttfamily bool Ogre\+::\+Dual\+Quaternion\+::operator!= (\begin{DoxyParamCaption}\item[{const \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!ptr@{ptr}}
\index{ptr@{ptr}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{ptr()}{ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!ptr@{ptr}}
\index{ptr@{ptr}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{ptr()}{ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!swap@{swap}}
\index{swap@{swap}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{swap()}{swap()}}
{\footnotesize\ttfamily void Ogre\+::\+Dual\+Quaternion\+::swap (\begin{DoxyParamCaption}\item[{\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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!is\+NaN@{is\+NaN}}
\index{is\+NaN@{is\+NaN}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{is\+Na\+N()}{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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!from\+Rotation\+Translation@{from\+Rotation\+Translation}}
\index{from\+Rotation\+Translation@{from\+Rotation\+Translation}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{from\+Rotation\+Translation()}{fromRotationTranslation()}}
{\footnotesize\ttfamily void Ogre\+::\+Dual\+Quaternion\+::from\+Rotation\+Translation (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_quaternion}{Quaternion} \&}]{q,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{trans }\end{DoxyParamCaption})}



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

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



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

\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_ae0fb2ddae4bd51a155b310543dcaa161}\label{class_ogre_1_1_dual_quaternion_ae0fb2ddae4bd51a155b310543dcaa161}} 
\index{Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!from\+Transformation\+Matrix@{from\+Transformation\+Matrix}}
\index{from\+Transformation\+Matrix@{from\+Transformation\+Matrix}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{from\+Transformation\+Matrix()}{fromTransformationMatrix()}}
{\footnotesize\ttfamily void Ogre\+::\+Dual\+Quaternion\+::from\+Transformation\+Matrix (\begin{DoxyParamCaption}\item[{const \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!to\+Transformation\+Matrix@{to\+Transformation\+Matrix}}
\index{to\+Transformation\+Matrix@{to\+Transformation\+Matrix}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{to\+Transformation\+Matrix()}{toTransformationMatrix()}}
{\footnotesize\ttfamily void Ogre\+::\+Dual\+Quaternion\+::to\+Transformation\+Matrix (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_affine3}{Affine3} \&}]{k\+Trans }\end{DoxyParamCaption}) const}



Convert a dual quaternion to a 4x4 transformation matrix. 



\subsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_aa7459724aaeaf956e29b08dad3986c39}\label{class_ogre_1_1_dual_quaternion_aa7459724aaeaf956e29b08dad3986c39}} 
\index{Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{operator$<$$<$}{operator<<}}
{\footnotesize\ttfamily \+\_\+\+Ogre\+Export friend std\+::ostream\& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{o,  }\item[{const \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. 

\subsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_dual_quaternion_a4e1b52752fb889035e68f893f2a246c6}\label{class_ogre_1_1_dual_quaternion_a4e1b52752fb889035e68f893f2a246c6}} 
\index{Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!w@{w}}
\index{w@{w}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{w}{w}}
{\footnotesize\ttfamily \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!x@{x}}
\index{x@{x}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{x}{x}}
{\footnotesize\ttfamily \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!y@{y}}
\index{y@{y}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{y}{y}}
{\footnotesize\ttfamily \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!z@{z}}
\index{z@{z}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{z}{z}}
{\footnotesize\ttfamily \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!dw@{dw}}
\index{dw@{dw}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{dw}{dw}}
{\footnotesize\ttfamily \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!dx@{dx}}
\index{dx@{dx}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{dx}{dx}}
{\footnotesize\ttfamily \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!dy@{dy}}
\index{dy@{dy}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{dy}{dy}}
{\footnotesize\ttfamily \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\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}!dz@{dz}}
\index{dz@{dz}!Ogre\+::\+Dual\+Quaternion@{Ogre\+::\+Dual\+Quaternion}}
\subsubsection{\texorpdfstring{dz}{dz}}
{\footnotesize\ttfamily \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 
\hyperlink{_ogre_dual_quaternion_8h}{Ogre\+Dual\+Quaternion.\+h}\end{DoxyCompactItemize}
