Public Member Functions | Static Public Attributes | Private Attributes | Friends
septernion Class Reference

Septernion class used to perform translations and rotations in 3D space. More...

Collaboration diagram for septernion:
Collaboration graph
[legend]

Public Member Functions

 septernion ()
 Construct null. More...
 
 septernion (const vector &t, const quaternion &r)
 Construct given a translation vector and rotation quaternion. More...
 
 septernion (const vector &t)
 Construct a pure translation septernion given a translation vector. More...
 
 septernion (const quaternion &r)
 Construct a pure rotation septernion given a rotation quaternion. More...
 
 septernion (Istream &)
 Construct from Istream. More...
 
const vectort () const
 
const quaternionr () const
 
vectort ()
 
quaternionr ()
 
vector transform (const vector &v) const
 Transform the given vector. More...
 
vector invTransform (const vector &v) const
 Inverse Transform the given vector. More...
 
void operator= (const septernion &)
 
void operator*= (const septernion &)
 
void operator= (const vector &)
 
void operator+= (const vector &)
 
void operator-= (const vector &)
 
void operator= (const quaternion &)
 
void operator*= (const quaternion &)
 
void operator/= (const quaternion &)
 
void operator*= (const scalar)
 
void operator/= (const scalar)
 

Static Public Attributes

static const char *const typeName = "septernion"
 
static const septernion zero
 
static const septernion I
 

Private Attributes

vector t_
 Translation vector. More...
 
quaternion r_
 Rotation quaternion. More...
 

Friends

Istreamoperator>> (Istream &is, septernion &)
 
Ostreamoperator<< (Ostream &os, const septernion &C)
 

Detailed Description

Septernion class used to perform translations and rotations in 3D space.

It is composed of a translation vector and rotation quaternion and as such has seven components hence the name "septernion" from the Latin to be consistent with quaternion rather than "hepternion" derived from the Greek.

Source files

Definition at line 64 of file septernion.H.

Constructor & Destructor Documentation

◆ septernion() [1/5]

septernion ( )
inline

Construct null.

Definition at line 28 of file septernionI.H.

◆ septernion() [2/5]

septernion ( const vector t,
const quaternion r 
)
inline

Construct given a translation vector and rotation quaternion.

Definition at line 31 of file septernionI.H.

◆ septernion() [3/5]

septernion ( const vector t)
inlineexplicit

Construct a pure translation septernion given a translation vector.

Definition at line 37 of file septernionI.H.

◆ septernion() [4/5]

septernion ( const quaternion r)
inlineexplicit

Construct a pure rotation septernion given a rotation quaternion.

Definition at line 43 of file septernionI.H.

◆ septernion() [5/5]

septernion ( Istream is)

Construct from Istream.

Definition at line 46 of file septernion.C.

Member Function Documentation

◆ t() [1/2]

Foam::vector & t ( ) const
inline

Definition at line 52 of file septernionI.H.

Referenced by Foam::operator*(), Foam::operator==(), and Foam::slerp().

Here is the caller graph for this function:

◆ r() [1/2]

Foam::quaternion & r ( ) const
inline

Definition at line 58 of file septernionI.H.

Referenced by Foam::operator*(), Foam::operator==(), and Foam::slerp().

Here is the caller graph for this function:

◆ t() [2/2]

vector& t ( )
inline

◆ r() [2/2]

quaternion& r ( )
inline

◆ transform()

Foam::vector transform ( const vector v) const
inline

Transform the given vector.

Definition at line 76 of file septernionI.H.

Referenced by sixDoFRigidBodyMotion::transform().

Here is the caller graph for this function:

◆ invTransform()

Foam::vector invTransform ( const vector v) const
inline

Inverse Transform the given vector.

Definition at line 82 of file septernionI.H.

◆ operator=() [1/3]

void operator= ( const septernion tr)
inline

Definition at line 90 of file septernionI.H.

References Foam::tr().

Here is the call graph for this function:

◆ operator*=() [1/3]

void operator*= ( const septernion tr)
inline

Definition at line 96 of file septernionI.H.

References Foam::tr().

Here is the call graph for this function:

◆ operator=() [2/3]

void operator= ( const vector t)
inline

Definition at line 103 of file septernionI.H.

◆ operator+=()

void operator+= ( const vector t)
inline

Definition at line 108 of file septernionI.H.

◆ operator-=()

void operator-= ( const vector t)
inline

Definition at line 113 of file septernionI.H.

◆ operator=() [3/3]

void operator= ( const quaternion r)
inline

Definition at line 119 of file septernionI.H.

◆ operator*=() [2/3]

void operator*= ( const quaternion r)
inline

Definition at line 124 of file septernionI.H.

◆ operator/=() [1/2]

void operator/= ( const quaternion r)
inline

Definition at line 129 of file septernionI.H.

◆ operator*=() [3/3]

void operator*= ( const scalar  s)
inline

Definition at line 135 of file septernionI.H.

References s().

Here is the call graph for this function:

◆ operator/=() [2/2]

void operator/= ( const scalar  s)
inline

Definition at line 141 of file septernionI.H.

References s().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator>>

Istream& operator>> ( Istream is,
septernion  
)
friend

◆ operator<<

Ostream& operator<< ( Ostream os,
const septernion C 
)
friend

Field Documentation

◆ t_

vector t_
private

Translation vector.

Definition at line 69 of file septernion.H.

◆ r_

quaternion r_
private

Rotation quaternion.

Definition at line 72 of file septernion.H.

◆ typeName

const char *const typeName = "septernion"
static

Definition at line 79 of file septernion.H.

◆ zero

const Foam::septernion zero
static

Definition at line 81 of file septernion.H.

◆ I

const Foam::septernion I
static

Definition at line 82 of file septernion.H.

Referenced by sixDoFRigidBodyMotion::transform().


The documentation for this class was generated from the following files: