geomc 1.0
A c++ linear algebra template library
Loading...
Searching...
No Matches
geom::Transform Concept Reference

Represents a means of transforming a point or vector. More...

#include <geomc/linalg/LinalgTypes.h>

Concept definition

template<typename Xf, typename T, index_t N>
concept Transform = requires (Xf xf, Vec<T,N> p) {
// transforms can be applied to points
{ xf * p } -> std::convertible_to<Vec<T,N>>;
// inverse transforms can be applied to points
{ p / xf } -> std::convertible_to<Vec<T,N>>;
// transforms can be composed
{ xf * xf } -> std::convertible_to<Xf>;
// transforms have inverses
{ xf.inverse() } -> std::convertible_to<Xf>;
// transforms can operate on directions
{ xf.apply_direction(p) } -> std::convertible_to<Vec<T,N>>;
// inverse transforms can operate on directions
{ xf.apply_inverse_direction(p) } -> std::convertible_to<Vec<T,N>>;
// transforms can in-place compose
{ xf *= xf } -> std::convertible_to<Xf>;
// transforms can in-place apply inverse
{ xf /= xf } -> std::convertible_to<Xf>;
}
A tuple of N elements of type T.
Definition Vec.h:269
Represents a means of transforming a point or vector.
Definition LinalgTypes.h:125

Detailed Description

Represents a means of transforming a point or vector.