8#if MR_COMPILING_ANY_BINDINGS
24 using T =
typename V::ValueType;
25 using M =
typename V::MatrixType;
46 [[nodiscard]]
constexpr V
operator() (
const V & x )
const noexcept {
return A * x +
b; }
49 [[nodiscard]]
constexpr V
linearOnly(
const V & x )
const noexcept {
return A * x; }
56 {
return { u.
A * v.A, u.A * v.b + u.b }; }
61 return a.
A ==
b.A && a.
b ==
b.b;
72 return s << xf.
A << xf.
b;
77 return s >> xf.
A >> xf.
b;
89 res.b = -( res.A * b );
#define MR_REQUIRES_IF_SUPPORTED(...)
Definition MRMacros.h:34
Definition MRCameraOrientationPlugin.h:8
Definition MRMesh/MRAffineXf.h:23
typename V::ValueType T
Definition MRMesh/MRAffineXf.h:24
friend bool operator!=(const AffineXf< V > &a, const AffineXf< V > &b)
Definition MRMesh/MRAffineXf.h:65
static constexpr AffineXf linear(const M &A) noexcept
creates linear-only transformation (without translation)
Definition MRMesh/MRAffineXf.h:41
static constexpr AffineXf xfAround(const M &A, const V &stable) noexcept
creates transformation with given linear part with given stable point
Definition MRMesh/MRAffineXf.h:43
friend bool operator==(const AffineXf< V > &a, const AffineXf< V > &b)
Definition MRMesh/MRAffineXf.h:59
constexpr V operator()(const V &x) const noexcept
application of the transformation to a point
Definition MRMesh/MRAffineXf.h:46
typename V::MatrixType M
Definition MRMesh/MRAffineXf.h:25
friend std::istream & operator>>(std::istream &s, AffineXf &xf)
Definition MRMesh/MRAffineXf.h:75
constexpr AffineXf() noexcept=default
V b
Definition MRMesh/MRAffineXf.h:28
M A
Definition MRMesh/MRAffineXf.h:27
MR_REQUIRES_IF_SUPPORTED(!std::is_same_v< U, V >) const expr explicit AffineXf(const AffineXf< U > &xf) noexcept
Definition MRMesh/MRAffineXf.h:35
static constexpr AffineXf translation(const V &b) noexcept
creates translation-only transformation (with identity linear component)
Definition MRMesh/MRAffineXf.h:39
constexpr V linearOnly(const V &x) const noexcept
Definition MRMesh/MRAffineXf.h:49
friend std::ostream & operator<<(std::ostream &s, const AffineXf &xf)
Definition MRMesh/MRAffineXf.h:70