#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 > | |
| MR_REQUIRES_IF_SUPPORTED (!std::is_same_v< U, V >) const expr explicit 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) |
| std::ostream & | operator<< (std::ostream &s, const AffineXf &xf) |
| std::istream & | operator>> (std::istream &s, AffineXf &xf) |
affine transformation: y = A*x + b, where A in VxV, and b in V