20#ifndef vtkImageInterpolatorInternals_h
21#define vtkImageInterpolatorInternals_h
69 static int Floor(
double x, F& f);
72 static int Round(
double x);
75 static int Clamp(
int a,
int b,
int c);
76 static int Wrap(
int a,
int b,
int c);
77 static int Mirror(
int a,
int b,
int c);
121#define VTK_INTERPOLATE_FLOOR_TOL 7.62939453125e-06
127#if VTK_SIZEOF_VOID_P >= 8
130 long long i =
static_cast<long long>(x);
131 f =
static_cast<F
>(x - i);
132 return static_cast<int>(i - 103079215104LL);
133#elif !defined VTK_WORDS_BIGENDIAN
140 dual.d = x + 103079215104.0;
141 f = dual.s[0] * 0.0000152587890625;
142 return static_cast<int>((dual.i[1] << 16) | ((dual.i[0]) >> 16));
150 dual.d = x + 103079215104.0;
151 f = dual.s[3] * 0.0000152587890625;
152 return static_cast<int>((dual.i[0] << 16) | ((dual.i[1]) >> 16));
158#if VTK_SIZEOF_VOID_P >= 8
161 long long i =
static_cast<long long>(x);
162 return static_cast<int>(i - 103079215104LL);
163#elif !defined VTK_WORDS_BIGENDIAN
169 dual.d = x + 103079215104.5;
170 return static_cast<int>((dual.i[1] << 16) | ((dual.i[0]) >> 16));
177 dual.d = x + 103079215104.5;
178 return static_cast<int>((dual.i[0] << 16) | ((dual.i[1]) >> 16));
187 a = (a <= c ? a : c);
189 a = (a >= 0 ? a : 0);
198 int range = c - b + 1;
202 a = (a >= 0 ? a : a + range);
211#ifndef VTK_IMAGE_BORDER_LEGACY_MIRROR
213 int ifzero = (range == 0);
214 int range2 = 2 * range + ifzero;
216 a = (a >= 0 ? a : -a);
218 a = (a <= range ? a : range2 - a);
221 int range = c - b + 1;
222 int range2 = 2 * range;
224 a = (a >= 0 ? a : -a - 1);
226 a = (a < range ? a : range2 - a - 1);
abstract superclass for arrays of numeric data
vtkImageBorderMode BorderMode
static int Clamp(int a, int b, int c)
static int Floor(double x, F &f)
static int Mirror(int a, int b, int c)
static int Wrap(int a, int b, int c)
static int Round(double x)
vtkInterpolationWeights(const vtkInterpolationInfo &info)
#define VTK_INTERPOLATE_FLOOR_TOL