#include <MRAffineXf.h>
Public Types | |
using | T = typename V::ValueType |
using | M = typename V::MatrixType |
Public Member Functions | |
constexpr | AffineXf () noexcept=default |
constexpr | AffineXf (const M &A, const V &b) noexcept |
template<typename U > | |
constexpr | AffineXf (const AffineXf< U > &xf) noexcept |
constexpr V | operator() (const V &x) const noexcept |
application of the transformation to a point | |
constexpr V | linearOnly (const V &x) const noexcept |
Static Public Member Functions | |
static constexpr AffineXf | translation (const V &b) noexcept |
creates translation-only transformation (with identity linear component) | |
static constexpr AffineXf | linear (const M &A) noexcept |
creates linear-only transformation (without translation) | |
static constexpr AffineXf | xfAround (const M &A, const V &stable) noexcept |
creates transformation with given linear part with given stable point | |
Public Attributes | |
M | A |
V | b |
Friends | |
constexpr AffineXf inverse() const noexcept MR_REQUIRES_IF_SUPPORTED(!std friend AffineXf< V > | operator* (const AffineXf< V > &u, const AffineXf< V > &v) |
computes inverse transformation | |
bool | operator== (const AffineXf< V > &a, const AffineXf< V > &b) |
bool | operator!= (const AffineXf< V > &a, const AffineXf< V > &b) |
affine transformation: y = A*x + b, where A in VxV, and b in V
using MR::AffineXf< V >::M = typename V::MatrixType |
using MR::AffineXf< V >::T = typename V::ValueType |
|
constexprdefaultnoexcept |
|
inlineconstexprnoexcept |
|
inlineexplicitconstexprnoexcept |
|
inlinestaticnodiscardconstexprnoexcept |
creates linear-only transformation (without translation)
|
inlinenodiscardconstexprnoexcept |
applies only linear part of the transformation to given vector (e.g. to normal) skipping adding shift (b) for example if this is a rigid transformation, then only rotates input vector
|
inlinenodiscardconstexprnoexcept |
application of the transformation to a point
|
inlinestaticnodiscardconstexprnoexcept |
creates translation-only transformation (with identity linear component)
|
inlinestaticnodiscardconstexprnoexcept |
creates transformation with given linear part with given stable point
|
friend |
computes inverse transformation
composition of two transformations:
M MR::AffineXf< V >::A |
V MR::AffineXf< V >::b |