CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
Math::TTransform< T > Struct Template Reference

A class that simplifies working with transformation matrices. More...

#include <CeresEngine/Math/Transform.hpp>

Public Member Functions

constexpr TTransform () noexcept=default
 Creates a new default transform object.
 
constexpr TTransform (const TMatrix4< T > &matrix) noexcept
 Decomposes a transformation matrix into a transform object.
 
constexpr TTransform (const TVector3< T > &position, const TQuaternion< T > &rotation, const TVector3< T > &scale)
 Creates a new transform from explicit values.
 
constexpr TTransform (const TTransform &) noexcept=default
 
constexpr TTransformoperator= (const TTransform &) noexcept=default
 
constexpr TMatrix4< T > getMatrix () const noexcept
 Computes the transformation matrix.
 
constexpr operator TMatrix4< T > () const noexcept
 Computes the transformation matrix.
 
constexpr TVector4< T > transform (const TVector4< T > &input) const noexcept
 Transforms the given point by the transform.
 
constexpr TVector4< T > operator() (const TVector4< T > &input) const noexcept
 
constexpr TVector3< T > transform (const TVector3< T > &input) const noexcept
 
constexpr TVector3< T > operator() (const TVector3< T > &input) const noexcept
 
constexpr TVector3< T > getDirection () const noexcept
 Computes the direction vector by applying the rotation to the base forward-facing vector.
 
constexpr TFacing< T > getFacing () const noexcept
 Gets the facing vectors of the transform.
 
constexpr TVector3< T > getFront () const noexcept
 The transform front facing direction vector.
 
constexpr TVector3< T > getBack () const noexcept
 The transform back facing direction vector.
 
constexpr TVector3< T > getUp () const noexcept
 The transform up facing direction vector.
 
constexpr TVector3< T > getDown () const noexcept
 The transform down facing direction vector.
 
constexpr TVector3< T > getRight () const noexcept
 The transform right facing direction vector.
 
constexpr TVector3< T > getLeft () const noexcept
 The transform left facing direction vector.
 
constexpr TTransform moving (const TVector3< T > &distance) const noexcept
 Moves the transform by the given distance.
 
constexpr TTransform moving (const TVector3< T > &direction, T distance) const noexcept
 Moves the transform by distance in the given direction.
 
constexpr TTransform rotating (const TQuaternion< T > &quaternion) const noexcept
 Rotates the transform by the given quaternion.
 
constexpr TTransform rotating (const TVector3< T > &axis, const TRadian< T > &angle) const noexcept
 Rotates the transform angle radians on the given axis.
 
constexpr TTransform rolling (const TRadian< T > &angle) const noexcept
 Rolls the transform by angle radians.
 
constexpr TTransform yawing (const TRadian< T > &angle) const noexcept
 Yaws the transform by angle radians.
 
constexpr TTransform pitching (const TRadian< T > &angle) const noexcept
 Pitches the transform by angle radians.
 
constexpr TTransform scaling (const TVector3< T > &factor) const noexcept
 Scales the transform by the given factor.
 
constexpr TTransform scaling (T factor) const noexcept
 Scales the transform on all axes by the given factor.
 

Public Attributes

TVector3< T > position = TVector3<T>(0.0)
 The transform position.
 
TQuaternion< T > rotation = TQuaternion<T>(TVector3<T>(0.0))
 The transform rotation.
 
TVector3< T > scale = TVector3<T>(1.0)
 The transform scale.
 

Friends

TVector3< T > operator* (const TTransform &transform, const TVector3< T > &input) noexcept
 
TVector4< T > operator* (const TTransform &transform, const TVector4< T > &input) noexcept
 
TTransform operator* (const TTransform &lhs, const TTransform &rhs) noexcept
 
TTransform inverse (const TTransform &transform) noexcept
 
TTransform transpose (const TTransform &transform) noexcept
 

Detailed Description

template<typename T>
struct Math::TTransform< T >

A class that simplifies working with transformation matrices.

Template Parameters
TThe scalar type used by the transform.

Constructor & Destructor Documentation

◆ TTransform() [1/4]

template<typename T >
constexpr Math::TTransform< T >::TTransform ( )
explicitconstexprdefaultnoexcept

Creates a new default transform object.

◆ TTransform() [2/4]

template<typename T >
constexpr Math::TTransform< T >::TTransform ( const TMatrix4< T > &  matrix)
inlineexplicitconstexprnoexcept

Decomposes a transformation matrix into a transform object.

◆ TTransform() [3/4]

template<typename T >
constexpr Math::TTransform< T >::TTransform ( const TVector3< T > &  position,
const TQuaternion< T > &  rotation,
const TVector3< T > &  scale 
)
inlineconstexpr

Creates a new transform from explicit values.

◆ TTransform() [4/4]

template<typename T >
constexpr Math::TTransform< T >::TTransform ( const TTransform< T > &  )
constexprdefaultnoexcept

Member Function Documentation

◆ getBack()

template<typename T >
constexpr TVector3< T > Math::TTransform< T >::getBack ( ) const
inlineconstexprnoexcept

The transform back facing direction vector.

◆ getDirection()

template<typename T >
constexpr TVector3< T > Math::TTransform< T >::getDirection ( ) const
inlineconstexprnoexcept

Computes the direction vector by applying the rotation to the base forward-facing vector.

Returns
A unit vector that points to the direction given by the rotation angles.

◆ getDown()

template<typename T >
constexpr TVector3< T > Math::TTransform< T >::getDown ( ) const
inlineconstexprnoexcept

The transform down facing direction vector.

◆ getFacing()

template<typename T >
constexpr TFacing< T > Math::TTransform< T >::getFacing ( ) const
inlineconstexprnoexcept

Gets the facing vectors of the transform.

◆ getFront()

template<typename T >
constexpr TVector3< T > Math::TTransform< T >::getFront ( ) const
inlineconstexprnoexcept

The transform front facing direction vector.

◆ getLeft()

template<typename T >
constexpr TVector3< T > Math::TTransform< T >::getLeft ( ) const
inlineconstexprnoexcept

The transform left facing direction vector.

◆ getMatrix()

template<typename T >
constexpr TMatrix4< T > Math::TTransform< T >::getMatrix ( ) const
inlineconstexprnoexcept

Computes the transformation matrix.

◆ getRight()

template<typename T >
constexpr TVector3< T > Math::TTransform< T >::getRight ( ) const
inlineconstexprnoexcept

The transform right facing direction vector.

◆ getUp()

template<typename T >
constexpr TVector3< T > Math::TTransform< T >::getUp ( ) const
inlineconstexprnoexcept

The transform up facing direction vector.

◆ moving() [1/2]

template<typename T >
constexpr TTransform Math::TTransform< T >::moving ( const TVector3< T > &  direction,
distance 
) const
inlineconstexprnoexcept

Moves the transform by distance in the given direction.

◆ moving() [2/2]

template<typename T >
constexpr TTransform Math::TTransform< T >::moving ( const TVector3< T > &  distance) const
inlineconstexprnoexcept

Moves the transform by the given distance.

◆ operator TMatrix4< T >()

template<typename T >
constexpr Math::TTransform< T >::operator TMatrix4< T > ( ) const
inlineexplicitconstexprnoexcept

Computes the transformation matrix.

◆ operator()() [1/2]

template<typename T >
constexpr TVector3< T > Math::TTransform< T >::operator() ( const TVector3< T > &  input) const
inlineconstexprnoexcept

◆ operator()() [2/2]

template<typename T >
constexpr TVector4< T > Math::TTransform< T >::operator() ( const TVector4< T > &  input) const
inlineconstexprnoexcept

◆ operator=()

template<typename T >
constexpr TTransform & Math::TTransform< T >::operator= ( const TTransform< T > &  )
constexprdefaultnoexcept

◆ pitching()

template<typename T >
constexpr TTransform Math::TTransform< T >::pitching ( const TRadian< T > &  angle) const
inlineconstexprnoexcept

Pitches the transform by angle radians.

◆ rolling()

template<typename T >
constexpr TTransform Math::TTransform< T >::rolling ( const TRadian< T > &  angle) const
inlineconstexprnoexcept

Rolls the transform by angle radians.

◆ rotating() [1/2]

template<typename T >
constexpr TTransform Math::TTransform< T >::rotating ( const TQuaternion< T > &  quaternion) const
inlineconstexprnoexcept

Rotates the transform by the given quaternion.

◆ rotating() [2/2]

template<typename T >
constexpr TTransform Math::TTransform< T >::rotating ( const TVector3< T > &  axis,
const TRadian< T > &  angle 
) const
inlineconstexprnoexcept

Rotates the transform angle radians on the given axis.

◆ scaling() [1/2]

template<typename T >
constexpr TTransform Math::TTransform< T >::scaling ( const TVector3< T > &  factor) const
inlineconstexprnoexcept

Scales the transform by the given factor.

◆ scaling() [2/2]

template<typename T >
constexpr TTransform Math::TTransform< T >::scaling ( factor) const
inlineconstexprnoexcept

Scales the transform on all axes by the given factor.

◆ transform() [1/2]

template<typename T >
constexpr TVector3< T > Math::TTransform< T >::transform ( const TVector3< T > &  input) const
inlineconstexprnoexcept

◆ transform() [2/2]

template<typename T >
constexpr TVector4< T > Math::TTransform< T >::transform ( const TVector4< T > &  input) const
inlineconstexprnoexcept

Transforms the given point by the transform.

◆ yawing()

template<typename T >
constexpr TTransform Math::TTransform< T >::yawing ( const TRadian< T > &  angle) const
inlineconstexprnoexcept

Yaws the transform by angle radians.

Friends And Related Symbol Documentation

◆ inverse

template<typename T >
TTransform inverse ( const TTransform< T > &  transform)
friend

◆ operator* [1/3]

template<typename T >
TTransform operator* ( const TTransform< T > &  lhs,
const TTransform< T > &  rhs 
)
friend

◆ operator* [2/3]

template<typename T >
TVector3< T > operator* ( const TTransform< T > &  transform,
const TVector3< T > &  input 
)
friend

◆ operator* [3/3]

template<typename T >
TVector4< T > operator* ( const TTransform< T > &  transform,
const TVector4< T > &  input 
)
friend

◆ transpose

template<typename T >
TTransform transpose ( const TTransform< T > &  transform)
friend

Member Data Documentation

◆ position

template<typename T >
TVector3<T> Math::TTransform< T >::position = TVector3<T>(0.0)

The transform position.

◆ rotation

template<typename T >
TQuaternion<T> Math::TTransform< T >::rotation = TQuaternion<T>(TVector3<T>(0.0))

The transform rotation.

◆ scale

template<typename T >
TVector3<T> Math::TTransform< T >::scale = TVector3<T>(1.0)

The transform scale.


The documentation for this struct was generated from the following file: