VTK  9.2.6
vtkQuaternion.h File Reference
#include "vtkTuple.h"
#include "vtkQuaternion.txx"
Include dependency graph for vtkQuaternion.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  vtkQuaternion< T >
 templated base type for storage of quaternions. More...
 
class  vtkQuaternionf
 
class  vtkQuaterniond
 

Macros

#define vtkQuaternionIdentity(quaternionType, type)
 Several macros to define the various operator overloads for the quaternions.
 
#define vtkQuaternionNormalized(quaternionType, type)
 
#define vtkQuaternionConjugated(quaternionType, type)
 
#define vtkQuaternionInverse(quaternionType, type)
 
#define vtkQuaternionUnitLog(quaternionType, type)
 
#define vtkQuaternionUnitExp(quaternionType, type)
 
#define vtkQuaternionNormalizedWithAngleInDegrees(quaternionType, type)
 
#define vtkQuaternionSlerp(quaternionType, type)
 
#define vtkQuaternionInnerPoint(quaternionType, type)
 
#define vtkQuaternionOperatorPlus(quaternionType, type)
 
#define vtkQuaternionOperatorMinus(quaternionType, type)
 
#define vtkQuaternionOperatorMultiply(quaternionType, type)
 
#define vtkQuaternionOperatorMultiplyScalar(quaternionType, type)
 
#define vtkQuaternionOperatorDivide(quaternionType, type)
 
#define vtkQuaternionOperatorDivideScalar(quaternionType, type)
 
#define vtkQuaternionOperatorMacro(quaternionType, type)
 

Macro Definition Documentation

◆ vtkQuaternionIdentity

#define vtkQuaternionIdentity ( quaternionType,
type )
Value:
quaternionType Identity() const \
{ \
return quaternionType(vtkQuaternion<type>::Identity().GetData()); \
}
static vtkQuaternion< T > Identity()
Return the identity quaternion.

Several macros to define the various operator overloads for the quaternions.

These are necessary for the derived classes that are commonly used.

Definition at line 298 of file vtkQuaternion.h.

◆ vtkQuaternionNormalized

#define vtkQuaternionNormalized ( quaternionType,
type )
Value:
quaternionType Normalized() const \
{ \
return quaternionType(vtkQuaternion<type>::Normalized().GetData()); \
}
vtkQuaternion< T > Normalized() const
Return the normalized form of this quaternion.

Definition at line 303 of file vtkQuaternion.h.

◆ vtkQuaternionConjugated

#define vtkQuaternionConjugated ( quaternionType,
type )
Value:
quaternionType Conjugated() const \
{ \
return quaternionType(vtkQuaternion<type>::Conjugated().GetData()); \
}
vtkQuaternion< T > Conjugated() const
Return the conjugate form of this quaternion.

Definition at line 308 of file vtkQuaternion.h.

◆ vtkQuaternionInverse

#define vtkQuaternionInverse ( quaternionType,
type )
Value:
quaternionType Inverse() const \
{ \
return quaternionType(vtkQuaternion<type>::Inverse().GetData()); \
}
vtkQuaternion< T > Inverse() const
Return the inverted form of this quaternion.

Definition at line 313 of file vtkQuaternion.h.

◆ vtkQuaternionUnitLog

#define vtkQuaternionUnitLog ( quaternionType,
type )
Value:
quaternionType UnitLog() const \
{ \
return quaternionType(vtkQuaternion<type>::UnitLog().GetData()); \
}
vtkQuaternion< T > UnitLog() const
Return the unit log version of this quaternion.

Definition at line 318 of file vtkQuaternion.h.

◆ vtkQuaternionUnitExp

#define vtkQuaternionUnitExp ( quaternionType,
type )
Value:
quaternionType UnitExp() const \
{ \
return quaternionType(vtkQuaternion<type>::UnitExp().GetData()); \
}
vtkQuaternion< T > UnitExp() const
Return the unit exponential version of this quaternion.

Definition at line 323 of file vtkQuaternion.h.

◆ vtkQuaternionNormalizedWithAngleInDegrees

#define vtkQuaternionNormalizedWithAngleInDegrees ( quaternionType,
type )
Value:
quaternionType NormalizedWithAngleInDegrees() const \
{ \
return quaternionType(vtkQuaternion<type>::NormalizedWithAngleInDegrees().GetData()); \
}
vtkQuaternion< T > NormalizedWithAngleInDegrees() const
Returns a quaternion normalized and transformed so its angle is in degrees and its axis normalized.

Definition at line 328 of file vtkQuaternion.h.

◆ vtkQuaternionSlerp

#define vtkQuaternionSlerp ( quaternionType,
type )
Value:
quaternionType Slerp(type t, const quaternionType& q) const \
{ \
return quaternionType(vtkQuaternion<type>::Slerp(t, q).GetData()); \
}
vtkQuaternion< T > Slerp(T t, const vtkQuaternion< T > &q) const
Interpolate quaternions using spherical linear interpolation between this quaternion and q1 to produc...

Definition at line 333 of file vtkQuaternion.h.

◆ vtkQuaternionInnerPoint

#define vtkQuaternionInnerPoint ( quaternionType,
type )
Value:
quaternionType InnerPoint(const quaternionType& q1, const quaternionType& q2) const \
{ \
return quaternionType(vtkQuaternion<type>::InnerPoint(q1, q2).GetData()); \
}
vtkQuaternion< T > InnerPoint(const vtkQuaternion< T > &q1, const vtkQuaternion< T > &q2) const
Interpolates between quaternions, using spherical quadrangle interpolation.

Definition at line 338 of file vtkQuaternion.h.

◆ vtkQuaternionOperatorPlus

#define vtkQuaternionOperatorPlus ( quaternionType,
type )
Value:
inline quaternionType operator+(const quaternionType& q) const \
{ \
return quaternionType( \
(static_cast<vtkQuaternion<type>>(*this) + static_cast<vtkQuaternion<type>>(q)).GetData()); \
}
templated base type for storage of quaternions.
vtkVector< A, Size > operator+(const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)

Definition at line 343 of file vtkQuaternion.h.

◆ vtkQuaternionOperatorMinus

#define vtkQuaternionOperatorMinus ( quaternionType,
type )
Value:
inline quaternionType operator-(const quaternionType& q) const \
{ \
return quaternionType( \
(static_cast<vtkQuaternion<type>>(*this) - static_cast<vtkQuaternion<type>>(q)).GetData()); \
}
vtkVector< A, Size > operator-(const vtkVector< A, Size > &v)

Definition at line 349 of file vtkQuaternion.h.

◆ vtkQuaternionOperatorMultiply

#define vtkQuaternionOperatorMultiply ( quaternionType,
type )
Value:
inline quaternionType operator*(const quaternionType& q) const \
{ \
return quaternionType( \
(static_cast<vtkQuaternion<type>>(*this) * static_cast<vtkQuaternion<type>>(q)).GetData()); \
}
vtkVector< A, Size > operator*(const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)

Definition at line 355 of file vtkQuaternion.h.

◆ vtkQuaternionOperatorMultiplyScalar

#define vtkQuaternionOperatorMultiplyScalar ( quaternionType,
type )
Value:
inline quaternionType operator*(const type& scalar) const \
{ \
return quaternionType((static_cast<vtkQuaternion<type>>(*this) * scalar).GetData()); \
}

Definition at line 361 of file vtkQuaternion.h.

◆ vtkQuaternionOperatorDivide

#define vtkQuaternionOperatorDivide ( quaternionType,
type )
Value:
inline quaternionType operator/(const quaternionType& q) const \
{ \
return quaternionType( \
(static_cast<vtkQuaternion<type>>(*this) / static_cast<vtkQuaternion<type>>(q)).GetData()); \
}
vtkVector< A, Size > operator/(const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)

Definition at line 366 of file vtkQuaternion.h.

◆ vtkQuaternionOperatorDivideScalar

#define vtkQuaternionOperatorDivideScalar ( quaternionType,
type )
Value:
inline quaternionType operator/(const type& scalar) const \
{ \
return quaternionType((static_cast<vtkQuaternion<type>>(*this) / scalar).GetData()); \
}

Definition at line 372 of file vtkQuaternion.h.

◆ vtkQuaternionOperatorMacro

#define vtkQuaternionOperatorMacro ( quaternionType,
type )
Value:
vtkQuaternionIdentity(quaternionType, type); \
vtkQuaternionNormalized(quaternionType, type); \
vtkQuaternionConjugated(quaternionType, type); \
vtkQuaternionInverse(quaternionType, type); \
vtkQuaternionUnitLog(quaternionType, type); \
vtkQuaternionUnitExp(quaternionType, type); \
vtkQuaternionNormalizedWithAngleInDegrees(quaternionType, type); \
vtkQuaternionSlerp(quaternionType, type); \
vtkQuaternionInnerPoint(quaternionType, type); \
vtkQuaternionOperatorPlus(quaternionType, type); \
vtkQuaternionOperatorMinus(quaternionType, type); \
vtkQuaternionOperatorMultiply(quaternionType, type); \
vtkQuaternionOperatorMultiplyScalar(quaternionType, type); \
vtkQuaternionOperatorDivide(quaternionType, type); \
vtkQuaternionOperatorDivideScalar(quaternionType, type)
#define vtkQuaternionIdentity(quaternionType, type)
Several macros to define the various operator overloads for the quaternions.

Definition at line 378 of file vtkQuaternion.h.