Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::Math::AffineTransformation Class Reference

#include <Transformations.h>

Collaboration diagram for Harlinn::Math::AffineTransformation:
[legend]

Public Types

using value_type = float
 
using ValueType = float
 
using MatrixType = Math::SquareMatrix<ValueType, 3>
 
using MatrixSimd = typename MatrixType::Simd
 
using Matrix4Type = Math::SquareMatrix<ValueType, 4>
 
using Matrix4Simd = typename Matrix4Type::Simd
 
using Traits = typename MatrixSimd::Traits
 
using Constants = typename Traits::Constants
 
using Vector = Math::Vector3f
 
using VectorSimd = typename Vector::Simd
 
using Point = Math::Point3f
 
using PointSimd = typename Point::Simd
 
using Normal = Math::Normal3f
 
using NormalSimd = typename Normal::Simd
 

Public Member Functions

 AffineTransformation () noexcept
 
 AffineTransformation (const MatrixType &matrix)
 
 AffineTransformation (const MatrixSimd &matrix)
 
 AffineTransformation (const Matrix4Type &matrix)
 
 AffineTransformation (const Matrix4Simd &matrix)
 
 AffineTransformation (const MatrixType &matrix, const Vector &translation)
 
 AffineTransformation (const MatrixSimd &matrix, const VectorSimd &translation)
 
 AffineTransformation (const MatrixType &matrix, const MatrixType &inverseMatrix)
 
 AffineTransformation (const MatrixSimd &matrix, const MatrixSimd &inverseMatrix)
 
 AffineTransformation (const MatrixType &matrix, const MatrixType &inverseMatrix, const Vector &translation)
 
 AffineTransformation (const MatrixSimd &matrix, const MatrixSimd &inverseMatrix, const VectorSimd &translation)
 
 AffineTransformation (const Vector &translation) noexcept
 
 AffineTransformation (const VectorSimd &translation) noexcept
 
const MatrixSimdMatrix () const noexcept
 
const MatrixSimdInverseMatrix () const noexcept
 
const VectorSimdTranslation () const noexcept
 
Matrix4Simd ToMatrix4 () const noexcept
 
Matrix4Simd InverseToMatrix4 () const noexcept
 
AffineTransformation Apply (const AffineTransformation &affineTransformation) const noexcept
 
AffineTransformation ApplyInverse (const AffineTransformation &affineTransformation) const noexcept
 
AffineTransformation operator() (const AffineTransformation &affineTransformation) const noexcept
 
VectorSimd Apply (const VectorSimd &v) const noexcept
 
VectorSimd Apply (const Vector &v) const noexcept
 
VectorSimd ApplyInverse (const VectorSimd &v) const noexcept
 
VectorSimd ApplyInverse (const Vector &v) const noexcept
 
VectorSimd operator() (const VectorSimd &v) const noexcept
 
VectorSimd operator() (const Vector &v) const noexcept
 
PointSimd Apply (const PointSimd &p) const noexcept
 
PointSimd Apply (const Point &p) const noexcept
 
PointSimd ApplyInverse (const PointSimd &p) const noexcept
 
PointSimd ApplyInverse (const Point &p) const noexcept
 
PointSimd operator() (const PointSimd &p) const noexcept
 
PointSimd operator() (const Point &p) const noexcept
 
NormalSimd Apply (const NormalSimd &n) const noexcept
 
NormalSimd Apply (const Normal &n) const noexcept
 
NormalSimd ApplyInverse (const NormalSimd &n) const noexcept
 
NormalSimd ApplyInverse (const Normal &n) const noexcept
 
NormalSimd operator() (const NormalSimd &n) const noexcept
 
NormalSimd operator() (const Normal &n) const noexcept
 
AffineTransformation Inverse () const noexcept
 

Static Public Member Functions

static AffineTransformation Translate (const VectorSimd &delta) noexcept
 
static AffineTransformation Translate (const Vector &delta) noexcept
 
static AffineTransformation Translate (float deltaX, float deltaY, float deltaZ) noexcept
 
static AffineTransformation RotateX (float angle) noexcept
 
static AffineTransformation RotateY (float angle) noexcept
 
static AffineTransformation RotateZ (float angle) noexcept
 
static AffineTransformation Scale (float scale) noexcept
 
static AffineTransformation Scale (const VectorSimd &scale) noexcept
 
static AffineTransformation Scale (const Vector &scale) noexcept
 
static AffineTransformation Scale (float scaleX, float scaleY, float scaleZ) noexcept
 
static AffineTransformation LookAt (const PointSimd &cameraPosition, const PointSimd &focusPosition, const VectorSimd &upDirection) noexcept
 
static AffineTransformation LookAt (const Point &cameraPosition, const Point &focusPosition, const Vector &upDirection) noexcept
 

Private Attributes

MatrixSimd matrix_
 
MatrixSimd inverseMatrix_
 
VectorSimd translation_
 

Member Typedef Documentation

◆ Constants

using Harlinn::Math::AffineTransformation::Constants = typename Traits::Constants

◆ Matrix4Simd

◆ Matrix4Type

◆ MatrixSimd

◆ MatrixType

◆ Normal

◆ NormalSimd

◆ Point

◆ PointSimd

◆ Traits

using Harlinn::Math::AffineTransformation::Traits = typename MatrixSimd::Traits

◆ value_type

◆ ValueType

◆ Vector

◆ VectorSimd

Constructor & Destructor Documentation

◆ AffineTransformation() [1/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( )
inlinenoexcept

◆ AffineTransformation() [2/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const MatrixType & matrix)
inlineexplicit

◆ AffineTransformation() [3/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const MatrixSimd & matrix)
inlineexplicit

◆ AffineTransformation() [4/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const Matrix4Type & matrix)
inlineexplicit

◆ AffineTransformation() [5/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const Matrix4Simd & matrix)
inlineexplicit

◆ AffineTransformation() [6/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const MatrixType & matrix,
const Vector & translation )
inline

◆ AffineTransformation() [7/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const MatrixSimd & matrix,
const VectorSimd & translation )
inline

◆ AffineTransformation() [8/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const MatrixType & matrix,
const MatrixType & inverseMatrix )
inline

◆ AffineTransformation() [9/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const MatrixSimd & matrix,
const MatrixSimd & inverseMatrix )
inline

◆ AffineTransformation() [10/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const MatrixType & matrix,
const MatrixType & inverseMatrix,
const Vector & translation )
inline

◆ AffineTransformation() [11/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const MatrixSimd & matrix,
const MatrixSimd & inverseMatrix,
const VectorSimd & translation )
inline

◆ AffineTransformation() [12/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const Vector & translation)
inlineexplicitnoexcept

◆ AffineTransformation() [13/13]

Harlinn::Math::AffineTransformation::AffineTransformation ( const VectorSimd & translation)
inlineexplicitnoexcept

Member Function Documentation

◆ Apply() [1/7]

AffineTransformation Harlinn::Math::AffineTransformation::Apply ( const AffineTransformation & affineTransformation) const
inlinenoexcept

◆ Apply() [2/7]

NormalSimd Harlinn::Math::AffineTransformation::Apply ( const Normal & n) const
inlinenoexcept

◆ Apply() [3/7]

NormalSimd Harlinn::Math::AffineTransformation::Apply ( const NormalSimd & n) const
inlinenoexcept

◆ Apply() [4/7]

PointSimd Harlinn::Math::AffineTransformation::Apply ( const Point & p) const
inlinenoexcept

◆ Apply() [5/7]

PointSimd Harlinn::Math::AffineTransformation::Apply ( const PointSimd & p) const
inlinenoexcept

◆ Apply() [6/7]

VectorSimd Harlinn::Math::AffineTransformation::Apply ( const Vector & v) const
inlinenoexcept

◆ Apply() [7/7]

VectorSimd Harlinn::Math::AffineTransformation::Apply ( const VectorSimd & v) const
inlinenoexcept

◆ ApplyInverse() [1/7]

AffineTransformation Harlinn::Math::AffineTransformation::ApplyInverse ( const AffineTransformation & affineTransformation) const
inlinenoexcept

◆ ApplyInverse() [2/7]

NormalSimd Harlinn::Math::AffineTransformation::ApplyInverse ( const Normal & n) const
inlinenoexcept

◆ ApplyInverse() [3/7]

NormalSimd Harlinn::Math::AffineTransformation::ApplyInverse ( const NormalSimd & n) const
inlinenoexcept

◆ ApplyInverse() [4/7]

PointSimd Harlinn::Math::AffineTransformation::ApplyInverse ( const Point & p) const
inlinenoexcept

◆ ApplyInverse() [5/7]

PointSimd Harlinn::Math::AffineTransformation::ApplyInverse ( const PointSimd & p) const
inlinenoexcept

◆ ApplyInverse() [6/7]

VectorSimd Harlinn::Math::AffineTransformation::ApplyInverse ( const Vector & v) const
inlinenoexcept

◆ ApplyInverse() [7/7]

VectorSimd Harlinn::Math::AffineTransformation::ApplyInverse ( const VectorSimd & v) const
inlinenoexcept

◆ Inverse()

AffineTransformation Harlinn::Math::AffineTransformation::Inverse ( ) const
inlinenoexcept

◆ InverseMatrix()

const MatrixSimd & Harlinn::Math::AffineTransformation::InverseMatrix ( ) const
inlinenoexcept

◆ InverseToMatrix4()

Matrix4Simd Harlinn::Math::AffineTransformation::InverseToMatrix4 ( ) const
inlinenoexcept

◆ LookAt() [1/2]

static AffineTransformation Harlinn::Math::AffineTransformation::LookAt ( const Point & cameraPosition,
const Point & focusPosition,
const Vector & upDirection )
inlinestaticnoexcept

◆ LookAt() [2/2]

static AffineTransformation Harlinn::Math::AffineTransformation::LookAt ( const PointSimd & cameraPosition,
const PointSimd & focusPosition,
const VectorSimd & upDirection )
inlinestaticnoexcept

◆ Matrix()

const MatrixSimd & Harlinn::Math::AffineTransformation::Matrix ( ) const
inlinenoexcept

◆ operator()() [1/7]

AffineTransformation Harlinn::Math::AffineTransformation::operator() ( const AffineTransformation & affineTransformation) const
inlinenoexcept

◆ operator()() [2/7]

NormalSimd Harlinn::Math::AffineTransformation::operator() ( const Normal & n) const
inlinenoexcept

◆ operator()() [3/7]

NormalSimd Harlinn::Math::AffineTransformation::operator() ( const NormalSimd & n) const
inlinenoexcept

◆ operator()() [4/7]

PointSimd Harlinn::Math::AffineTransformation::operator() ( const Point & p) const
inlinenoexcept

◆ operator()() [5/7]

PointSimd Harlinn::Math::AffineTransformation::operator() ( const PointSimd & p) const
inlinenoexcept

◆ operator()() [6/7]

VectorSimd Harlinn::Math::AffineTransformation::operator() ( const Vector & v) const
inlinenoexcept

◆ operator()() [7/7]

VectorSimd Harlinn::Math::AffineTransformation::operator() ( const VectorSimd & v) const
inlinenoexcept

◆ RotateX()

static AffineTransformation Harlinn::Math::AffineTransformation::RotateX ( float angle)
inlinestaticnoexcept

◆ RotateY()

static AffineTransformation Harlinn::Math::AffineTransformation::RotateY ( float angle)
inlinestaticnoexcept

◆ RotateZ()

static AffineTransformation Harlinn::Math::AffineTransformation::RotateZ ( float angle)
inlinestaticnoexcept

◆ Scale() [1/4]

static AffineTransformation Harlinn::Math::AffineTransformation::Scale ( const Vector & scale)
inlinestaticnoexcept

◆ Scale() [2/4]

static AffineTransformation Harlinn::Math::AffineTransformation::Scale ( const VectorSimd & scale)
inlinestaticnoexcept

◆ Scale() [3/4]

static AffineTransformation Harlinn::Math::AffineTransformation::Scale ( float scale)
inlinestaticnoexcept

◆ Scale() [4/4]

static AffineTransformation Harlinn::Math::AffineTransformation::Scale ( float scaleX,
float scaleY,
float scaleZ )
inlinestaticnoexcept

◆ ToMatrix4()

Matrix4Simd Harlinn::Math::AffineTransformation::ToMatrix4 ( ) const
inlinenoexcept

◆ Translate() [1/3]

static AffineTransformation Harlinn::Math::AffineTransformation::Translate ( const Vector & delta)
inlinestaticnoexcept

◆ Translate() [2/3]

static AffineTransformation Harlinn::Math::AffineTransformation::Translate ( const VectorSimd & delta)
inlinestaticnoexcept

◆ Translate() [3/3]

static AffineTransformation Harlinn::Math::AffineTransformation::Translate ( float deltaX,
float deltaY,
float deltaZ )
inlinestaticnoexcept

◆ Translation()

const VectorSimd & Harlinn::Math::AffineTransformation::Translation ( ) const
inlinenoexcept

Member Data Documentation

◆ inverseMatrix_

MatrixSimd Harlinn::Math::AffineTransformation::inverseMatrix_
private

◆ matrix_

MatrixSimd Harlinn::Math::AffineTransformation::matrix_
private

◆ translation_

VectorSimd Harlinn::Math::AffineTransformation::translation_
private

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