A Quaternion is a mutable object that represents a Quaternion.  
 More...
#include <attitude-utils.hpp>
 | 
|   | Quaternion (const Vec3 &, decimal) | 
|   | Create a quaternion which represents a rotation of theta around the axis input.  
  | 
|   | 
|   | Quaternion (const Vec3 &) | 
|   | Creates a "pure quaternion" with the given vector for imaginary parts and zero for real part.  
  | 
|   | 
|   | Quaternion (decimal real, decimal i, decimal j, decimal k) | 
|   | Creates a Quaternion with components.  
  | 
|   | 
| Quaternion  | operator* (const Quaternion &other) const | 
|   | Multiply two quaternions using the usual definition of quaternion multiplication (effectively composes rotations)  
  | 
|   | 
| Quaternion  | operator- () const | 
|   | Negate the quaternion, which is the same rotation.  
  | 
|   | 
| Quaternion  | Conjugate () const | 
|   | Effectively computes a quaternion representing the inverse rotation of the original.  
  | 
|   | 
| Vec3  | Vector () const | 
|   | The axis of the represented rotation.  
  | 
|   | 
| void  | SetVector (const Vec3 &) | 
|   | Set imaginary components of Quarterion.  
  | 
|   | 
| Vec3  | Rotate (const Vec3 &) const | 
|   | Rotates a vector about this Quaternion.  
  | 
|   | 
| decimal  | Angle () const | 
|   | Provides the amount of rotations represented by this Quaterion.  
  | 
|   | 
| void  | SetAngle (decimal) | 
|   | Changes the rotation represented in this quarterion.  
  | 
|   | 
| bool  | IsUnit (decimal tolerance) const | 
|   | Tells client if this Quarternion is a unit quaternion.  
  | 
|   | 
| Quaternion  | Canonicalize () const | 
|   | Provides the canonicalized Quaternion of this, if it is not already canonicalized.  
  | 
|   | 
| EulerAngles  | ToSpherical () const | 
|   | Converts this Quarterion to a new system of Euler Angles by extracting the rotations described by this quarterion.  
  | 
|   | 
 | 
| 
decimal  | real | 
|   | The real component. 
  | 
|   | 
| 
decimal  | i | 
|   | The i component. 
  | 
|   | 
| 
decimal  | j | 
|   | The j component. 
  | 
|   | 
| 
decimal  | k | 
|   | The k component. 
  | 
|   | 
A Quaternion is a mutable object that represents a Quaternion. 
A Quaternion is a common way to represent rotations in 3D. 
 
◆ Quaternion() [1/3]
      
        
          | found::Quaternion::Quaternion  | 
          ( | 
          const Vec3 &  | 
          input,  | 
        
        
           | 
           | 
          decimal  | 
          theta  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Create a quaternion which represents a rotation of theta around the axis input. 
- Parameters
 - 
  
    | input | the axis about which theta is defined  | 
    | theta | the rotation about the input  | 
  
   
 
 
◆ Quaternion() [2/3]
  
  
      
        
          | found::Quaternion::Quaternion  | 
          ( | 
          const Vec3 &  | 
          input | ) | 
           | 
         
       
   | 
  
explicit   | 
  
 
Creates a "pure quaternion" with the given vector for imaginary parts and zero for real part. 
- Parameters
 - 
  
    | input | The vector representing the imaginary part of the Quaternion to create  | 
  
   
 
 
◆ Quaternion() [3/3]
  
  
      
        
          | found::Quaternion::Quaternion  | 
          ( | 
          decimal  | 
          real,  | 
         
        
           | 
           | 
          decimal  | 
          i,  | 
         
        
           | 
           | 
          decimal  | 
          j,  | 
         
        
           | 
           | 
          decimal  | 
          k  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inline   | 
  
 
Creates a Quaternion with components. 
- Parameters
 - 
  
    | real | The real component  | 
    | i | The i component  | 
    | j | The j component  | 
    | k | The k component | 
  
   
Initializes this to be {real + iI + jJ + kK} 
 
 
◆ Angle()
      
        
          | decimal found::Quaternion::Angle  | 
          ( | 
           | ) | 
           const | 
        
      
 
Provides the amount of rotations represented by this Quaterion. 
- Returns
 - The amount of rotations represented by this, in radians 
 
 
 
◆ Canonicalize()
      
        
          | Quaternion found::Quaternion::Canonicalize  | 
          ( | 
           | ) | 
           const | 
        
      
 
Provides the canonicalized Quaternion of this, if it is not already canonicalized. 
- Returns
 - The canonicalized Quaternion of this, which is this iff this is a canonicalized Quaternion already, and a new Quaternion if it is not 
 
 
 
◆ Conjugate()
Effectively computes a quaternion representing the inverse rotation of the original. 
- Returns
 - The resulting quaternion 
 
 
 
◆ IsUnit()
      
        
          | bool found::Quaternion::IsUnit  | 
          ( | 
          decimal  | 
          tolerance | ) | 
           const | 
        
      
 
Tells client if this Quarternion is a unit quaternion. 
- Parameters
 - 
  
    | tolerance | The tolerance for the magnitude of this | 
  
   
- Returns
 - true iff this is a unit Quaternion 
 
 
 
◆ operator*()
Multiply two quaternions using the usual definition of quaternion multiplication (effectively composes rotations) 
- Parameters
 - 
  
    | other | The other quaternion | 
  
   
- Returns
 - The resulting quaternion 
 
 
 
◆ operator-()
Negate the quaternion, which is the same rotation. 
- Returns
 - The resulting quaternion 
 
 
 
◆ Rotate()
      
        
          | Vec3 found::Quaternion::Rotate  | 
          ( | 
          const Vec3 &  | 
          input | ) | 
           const | 
        
      
 
Rotates a vector about this Quaternion. 
- Parameters
 - 
  
    | input | The vector to rotate about this | 
  
   
- Returns
 - The input vector that has been rotated about this 
 
 
 
◆ SetAngle()
      
        
          | void found::Quaternion::SetAngle  | 
          ( | 
          decimal  | 
          newAngle | ) | 
           | 
        
      
 
Changes the rotation represented in this quarterion. 
- Parameters
 - 
  
    | newAngle | The rotation angle this new quarternion should represent | 
  
   
- Postcondition
 - Changes this by altering the rotation angle of this by newAngle 
 
 
 
◆ SetVector()
      
        
          | void found::Quaternion::SetVector  | 
          ( | 
          const Vec3 &  | 
          vec | ) | 
           | 
        
      
 
Set imaginary components of Quarterion. 
- Parameters
 - 
  
    | vec | The vector holding the imaginary quantities  | 
  
   
 
 
◆ ToSpherical()
Converts this Quarterion to a new system of Euler Angles by extracting the rotations described by this quarterion. 
- Returns
 - An EulerAngles object representing this in with Euler Angles 
 
 
 
◆ Vector()
      
        
          | Vec3 found::Quaternion::Vector  | 
          ( | 
           | ) | 
           const | 
        
      
 
The axis of the represented rotation. 
The vector formed by imaginary components of the quaternion.
- Returns
 - The vector part of this quaternion 
 
 
 
The documentation for this class was generated from the following files: