interpolating_accessor.hxx
|
|
36 #ifndef VIGRA_INTERPOLATING_ACCESSOR_HXX
37 #define VIGRA_INTERPOLATING_ACCESSOR_HXX
40 #include "accessor.hxx"
80 template <
class ACCESSOR,
class VALUETYPE>
99 template <
class ITERATOR>
114 ret = a_(i,
Diff2D(ix, iy));
118 ret = detail::RequiresExplicitCast<value_type>::cast(
119 (1.0 - dy) * a_(i,
Diff2D(ix, iy)) +
120 dy * a_(i,
Diff2D(ix, iy + 1)));
127 ret = detail::RequiresExplicitCast<value_type>::cast(
128 (1.0 - dx) * a_(i,
Diff2D(ix, iy)) +
129 dx * a_(i,
Diff2D(ix + 1, iy)));
133 ret = detail::RequiresExplicitCast<value_type>::cast(
134 (1.0 - dx) * (1.0 - dy) * a_(i,
Diff2D(ix, iy)) +
135 dx * (1.0 - dy) * a_(i,
Diff2D(ix + 1, iy)) +
136 (1.0 - dx) * dy * a_(i,
Diff2D(ix, iy + 1)) +
137 dx * dy * a_(i,
Diff2D(ix + 1, iy + 1)));
148 template <
class ITERATOR>
155 return detail::RequiresExplicitCast<value_type>::cast(
156 (1.0 - dx) * (1.0 - dy) * a_(i,
Diff2D(ix, iy)) +
157 dx * (1.0 - dy) * a_(i,
Diff2D(ix + 1, iy)) +
158 (1.0 - dx) * dy * a_(i,
Diff2D(ix, iy + 1)) +
159 dx * dy * a_(i,
Diff2D(ix + 1, iy + 1)));
BilinearInterpolatingAccessor(ACCESSOR a)
Definition: interpolating_accessor.hxx:90
Two dimensional difference vector.
Definition: diff2d.hxx:185
Bilinear interpolation at non-integer positions.
Definition: interpolating_accessor.hxx:81
value_type unchecked(ITERATOR const &i, float x, float y) const
Definition: interpolating_accessor.hxx:149
value_type operator()(ITERATOR const &i, float x, float y) const
Definition: interpolating_accessor.hxx:100
VALUETYPE value_type
Definition: interpolating_accessor.hxx:86