7#ifndef __stir_numerics_more_interpolators_H__
8#define __stir_numerics_more_interpolators_H__
29template <
class elemT,
class positionT>
37template <
int num_dimensions,
class elemT,
class positionT,
class valueT>
39 const BasicCoordinate<num_dimensions, positionT>& point_in_output_coords,
45template <
class elemT,
class positionT>
46elemT
pull_linear_interpolate(
const Array<3, elemT>& in,
const BasicCoordinate<3, positionT>& point_in_input_coords);
51template <
class elemT,
class positionT,
class valueT>
53 const BasicCoordinate<3, positionT>& point_in_output_coords,
62class PullLinearInterpolator
65 PullLinearInterpolator()
69 void set_input(
const Array<3, elemT>& input)
const { this->_input_ptr = &input; }
71 template <
class positionT>
91class PushTransposeLinearInterpolator
94 PushTransposeLinearInterpolator()
98 void set_output(
Array<3, elemT>& output)
const { this->_output_ptr = &output; }
100 template <
class positionT,
class valueT>
119template <
class elemT>
120class PullNearestNeighbourInterpolator
123 PullNearestNeighbourInterpolator()
127 void set_input(
const Array<3, elemT>& input)
const { this->_input_ptr = &input; }
129 template <
class positionT>
148template <
class elemT>
149class PushNearestNeighbourInterpolator
152 PushNearestNeighbourInterpolator()
156 void set_output(
Array<3, elemT>& output)
const { this->_output_ptr = &output; }
158 template <
class positionT,
class valueT>
defines the stir::Array class for multi-dimensional (numeric) arrays
This file declares class stir::BasicCoordinate and some functions acting on stir::BasicCoordinate obj...
This class defines multi-dimensional (numeric) arrays.
Definition Array.h:78
class BasicCoordinate<int num_dimensions, typename coordT> defines num_dimensions -dimensional coordi...
Definition BasicCoordinate.h:57
elemT pull_linear_interpolate(const Array< 3, elemT > &in, const BasicCoordinate< 3, positionT > &point_in_input_coords)
Returns an interpolated value according to point_in_input_coords.
Definition more_interpolators.inl:61
void push_transpose_linear_interpolate(Array< 3, elemT > &out, const BasicCoordinate< 3, positionT > &point_in_output_coords, valueT value)
Push value into the output array using the transpose of linear interpolation.
Definition more_interpolators.inl:96
void push_nearest_neighbour_interpolate(Array< num_dimensions, elemT > &out, const BasicCoordinate< num_dimensions, positionT > &point_in_output_coords, valueT value)
Push value into the output array using nearest neigbour interpolation.
Definition more_interpolators.inl:43
elemT pull_nearest_neighbour_interpolate(const Array< 3, elemT > &in, const BasicCoordinate< 3, positionT > &point_in_input_coords)
Pull value from the input array using nearest neigbour interpolation.
Definition more_interpolators.inl:24
Functions to interpolate data.