##########
Quaternion
##########

.. cpp:namespace:: RED::Quaternion

.. default-domain:: cpp

Fields
======

==================================== ======================================
double                               :cpp:var:`~RED::Quaternion::_x`       
double                               :cpp:var:`~RED::Quaternion::_y`       
double                               :cpp:var:`~RED::Quaternion::_z`       
double                               :cpp:var:`~RED::Quaternion::_w`       
const :doc:`classRED_1_1Quaternion`  :cpp:var:`~RED::Quaternion::ZERO`     
const :doc:`classRED_1_1Quaternion`  :cpp:var:`~RED::Quaternion::IDENTITY` 
==================================== ======================================

Functions
=========

============================== ==========================================================================================================================================================================================================================
:doc:`classRED_1_1CID`         :cpp:func:`GetClassID <static RED::CID RED::Quaternion::GetClassID()>`                                                                                                                                                    
void *                         :cpp:func:`As <virtual void * RED::Quaternion::As(const RED::CID &iCID)>`                                                                                                                                                 
const void *                   :cpp:func:`As <virtual const void * RED::Quaternion::As(const RED::CID &iCID) const>`                                                                                                                                     
class T_As                     :cpp:func:`As <T_As * RED::Quaternion::As()>`                                                                                                                                                                             
class T_As                     :cpp:func:`As <const T_As * RED::Quaternion::As() const>`                                                                                                                                                                 
..                             :cpp:func:`Quaternion <RED::Quaternion::Quaternion>`                                                                                                                                                                      
..                             :cpp:func:`Quaternion <RED::Quaternion::Quaternion>`                                                                                                                                                                      
..                             :cpp:func:`Quaternion <RED::Quaternion::Quaternion>`                                                                                                                                                                      
..                             :cpp:func:`Quaternion <RED::Quaternion::Quaternion>`                                                                                                                                                                      
..                             :cpp:func:`~Quaternion <virtual RED::Quaternion::~Quaternion>`                                                                                                                                                            
double                         :cpp:func:`operator[] <double RED::Quaternion::operator[](unsigned int iIndex) const>`                                                                                                                                    
double &                       :cpp:func:`operator[] <double & RED::Quaternion::operator[](unsigned int iIndex)>`                                                                                                                                        
:doc:`classRED_1_1Quaternion`  :cpp:func:`operator+ <RED::Quaternion RED::Quaternion::operator+(const RED::Quaternion &iSource) const>`                                                                                                                  
:doc:`classRED_1_1Quaternion`  :cpp:func:`operator- <RED::Quaternion RED::Quaternion::operator-(const RED::Quaternion &iRight) const>`                                                                                                                   
:doc:`classRED_1_1Quaternion`  :cpp:func:`operator- <RED::Quaternion RED::Quaternion::operator-() const>`                                                                                                                                                
void                           :cpp:func:`operator+= <void RED::Quaternion::operator+=(const RED::Quaternion &iSource)>`                                                                                                                                 
void                           :cpp:func:`operator-= <void RED::Quaternion::operator-=(const RED::Quaternion &iSource)>`                                                                                                                                 
:doc:`classRED_1_1Quaternion`  :cpp:func:`operator* <RED::Quaternion RED::Quaternion::operator*(double iScalar) const>`                                                                                                                                  
:doc:`classRED_1_1Quaternion`  :cpp:func:`operator* <RED::Quaternion RED::Quaternion::operator*(const RED::Quaternion &iRight) const>`                                                                                                                   
void                           :cpp:func:`operator*= <void RED::Quaternion::operator*=(double iScalar)>`                                                                                                                                                 
void                           :cpp:func:`operator*= <void RED::Quaternion::operator*=(const RED::Quaternion &iRight)>`                                                                                                                                  
:doc:`classRED_1_1Quaternion`  :cpp:func:`operator/ <RED::Quaternion RED::Quaternion::operator/(double iScalar) const>`                                                                                                                                  
void                           :cpp:func:`operator/= <void RED::Quaternion::operator/=(double iScalar)>`                                                                                                                                                 
bool                           :cpp:func:`operator== <bool RED::Quaternion::operator==(const RED::Quaternion &iOther) const>`                                                                                                                            
bool                           :cpp:func:`operator!= <bool RED::Quaternion::operator!=(const RED::Quaternion &iOther) const>`                                                                                                                            
double                         :cpp:func:`GetLength <double RED::Quaternion::GetLength() const>`                                                                                                                                                         
double                         :cpp:func:`GetLength2 <double RED::Quaternion::GetLength2() const>`                                                                                                                                                       
double                         :cpp:func:`Normalize <double RED::Quaternion::Normalize()>`                                                                                                                                                               
double                         :cpp:func:`Dot <double RED::Quaternion::Dot(const RED::Quaternion &iQ) const>`                                                                                                                                            
void                           :cpp:func:`Invert <void RED::Quaternion::Invert()>`                                                                                                                                                                       
void                           :cpp:func:`Conjugate <void RED::Quaternion::Conjugate()>`                                                                                                                                                                 
void                           :cpp:func:`Log <void RED::Quaternion::Log(RED::Vector3 &oLog) const>`                                                                                                                                                     
void                           :cpp:func:`Exp <void RED::Quaternion::Exp(const RED::Vector3 &iValue)>`                                                                                                                                                   
void                           :cpp:func:`Slerp <void RED::Quaternion::Slerp(const RED::Quaternion &iQuatFrom, const RED::Quaternion &iQuatTo, double iWeight)>`                                                                                         
void                           :cpp:func:`Squad <void RED::Quaternion::Squad(const RED::Quaternion &iQuatFrom, const RED::Quaternion &iQuatTo, const RED::Quaternion &iInnerQuadrangleFrom, const RED::Quaternion &iInnerQuadrangleTo, double iWeight)>` 
void                           :cpp:func:`InnerQuadrangle <void RED::Quaternion::InnerQuadrangle(const RED::Quaternion &iQuatBefore, const RED::Quaternion &iQuat, const RED::Quaternion &iQuatAfter)>`                                                  
void                           :cpp:func:`SetRotationMatrix <void RED::Quaternion::SetRotationMatrix(const RED::Matrix &iRotationMatrix)>`                                                                                                               
void                           :cpp:func:`GetRotationMatrix <void RED::Quaternion::GetRotationMatrix(RED::Matrix &oRotationMatrix) const>`                                                                                                               
void                           :cpp:func:`SetAxisAngle <void RED::Quaternion::SetAxisAngle(const RED::Vector3 &iAxis, double iAngle)>`                                                                                                                   
void                           :cpp:func:`GetAxisAngle <void RED::Quaternion::GetAxisAngle(RED::Vector3 &oAxis, double &oAngle) const>`                                                                                                                  
void                           :cpp:func:`Set <void RED::Quaternion::Set(double iX, double iY, double iZ, double iW)>`                                                                                                                                   
double                         :cpp:func:`X <double RED::Quaternion::X() const>`                                                                                                                                                                         
double                         :cpp:func:`Y <double RED::Quaternion::Y() const>`                                                                                                                                                                         
double                         :cpp:func:`Z <double RED::Quaternion::Z() const>`                                                                                                                                                                         
double                         :cpp:func:`W <double RED::Quaternion::W() const>`                                                                                                                                                                         
============================== ==========================================================================================================================================================================================================================

.. cpp:namespace:: nullptr

Detailed Description
====================

.. doxygenclass:: RED::Quaternion
   :project: RED
   :members:
   :undoc-members:



