finally we define class mapper which is initialized with a set of gate objects (of arbitrary type) which are applied to each component of an incoming nD coordinate in turn. The trickery with the variadic template argument list is necessary, because we want to be able to combine arbitrary gate types (which have distinct types) to make the mapper as efficient as possible. the only requirement for a gate type is that it has to provide the necessary eval() functions.
More...
|
enum | { vsize = _vsize
} |
|
enum | { dimension = vigra::ExpandElementResult < nd_rc_type > :: size
} |
|
typedef vspline::unary_functor< nd_rc_type, nd_rc_type, _vsize > | base_type |
|
typedef base_type::in_type | in_type |
|
typedef base_type::out_type | out_type |
|
typedef std::tuple< gate_types... > | mvec_type |
|
enum | |
|
enum | |
|
enum | |
|
typedef nd_rc_type | in_type |
|
typedef nd_rc_type | out_type |
|
typedef vspline::vector_traits< nd_rc_type >::ele_type | in_ele_type |
|
typedef vspline::vector_traits< nd_rc_type >::ele_type | out_ele_type |
|
typedef vigra::TinyVector< in_ele_type, dim_in > | in_nd_ele_type |
|
typedef vigra::TinyVector< out_ele_type, dim_out > | out_nd_ele_type |
|
typedef vector_traits< nd_rc_type, vsize >::ele_v | in_ele_v |
| a simdized type of the elementary type of result_type, which is used for coefficients and results. this is fixed via the traits class vector_traits (in vector.h). Note how we derive this type using vsize from the template argument, not what vspline::vector_traits deems appropriate for ele_type - though both numbers will be the same in most cases. More...
|
|
typedef vector_traits< nd_rc_type, vsize >::ele_v | out_ele_v |
|
typedef vector_traits< nd_rc_type, vsize >::nd_ele_v | in_nd_ele_v |
|
typedef vector_traits< nd_rc_type, vsize >::nd_ele_v | out_nd_ele_v |
|
typedef vector_traits< nd_rc_type, vsize >::type | in_v |
| vectorized in_type and out_type. vspline::vector_traits supplies these types so that multidimensional/multichannel data come as vigra::TinyVectors, while 'singular' data won't be made into TinyVectors of one element. More...
|
|
typedef vector_traits< nd_rc_type, vsize >::type | out_v |
|
typedef vector_traits< int, vsize >::ele_v | ic_v |
| vsize wide vector of ints, used for gather/scatter indexes More...
|
|
template<typename nd_rc_type, size_t _vsize, class ... gate_types>
struct vspline::map_functor< nd_rc_type, _vsize, gate_types >
finally we define class mapper which is initialized with a set of gate objects (of arbitrary type) which are applied to each component of an incoming nD coordinate in turn. The trickery with the variadic template argument list is necessary, because we want to be able to combine arbitrary gate types (which have distinct types) to make the mapper as efficient as possible. the only requirement for a gate type is that it has to provide the necessary eval() functions.
Definition at line 466 of file map.h.