inout_linearizer concept
More...
#include <inout_linearizer.h>
template<typename T>
{
{ t.size() } -> std::same_as<Size_t<T>>;
{ t.operator()(std::declval<Size_t<T>>(), std::declval<Mask_t<T>>()) } -> std::same_as<Vec3dPair_t<T>>;
{ t.operator()(std::declval<Size_t<T>>()) } -> std::same_as<Vec3dPair_t<T>>;
{ t.operator()(std::declval<Vec3d_t<T>>(), std::declval<Vec3d_t<T>>(), std::declval<Mask_t<T>>()) } -> std::same_as<Size_t<T>>;
{ t.operator()(std::declval<Vec3d_t<T>>(), std::declval<Vec3d_t<T>>()) } -> std::same_as<Size_t<T>>;
}
has_config
Definition: config.h:53
inout_linearizer concept
Definition: inout_linearizer.h:28
inout_linearizer concept
An inout_linearizer enumerates a discrete set of (in,out) directions on the joint incident and outgoing direction sphere.
Each inout_linearizer contains the following:
- concept::has_config
- Size_t size(void) const: the number of discrete direction-pairs
- Vec3dPair opeator()(Size_t index, Mask mask=true) const: returns the index-th direction pair
- Size_t operator()(const Vec3d& in, const Vec3d& out, Mask mask=true) const: the inverse operation