19 #ifndef vtkInterpolatorInternals_h 20 #define vtkInterpolatorInternals_h 57 static int Floor(
double x, F &
f);
60 static int Round(
double x);
63 static int Clamp(
int a,
int b,
int c);
64 static int Wrap(
int a,
int b,
int c);
65 static int Mirror(
int a,
int b,
int c);
81 #if defined ia64 || defined __ia64__ || defined _M_IA64 82 #define VTK_INTERPOLATE_64BIT_FLOOR 83 #elif defined __ppc64__ || defined __x86_64__ || defined _M_X64 84 #define VTK_INTERPOLATE_64BIT_FLOOR 85 #elif defined __ppc__ || defined sparc || defined mips 86 #define VTK_INTERPOLATE_32BIT_FLOOR 87 #elif defined i386 || defined _M_IX86 88 #define VTK_INTERPOLATE_I386_FLOOR 95 #define VTK_INTERPOLATE_FLOOR_TOL 7.62939453125e-06 100 #if defined VTK_INTERPOLATE_64BIT_FLOOR 102 #ifdef VTK_TYPE_USE___INT64 103 __int64 i =
static_cast<__int64
>(
x);
105 return static_cast<int>(i - 103079215104i64);
107 long long i =
static_cast<long long>(
x);
108 f =
static_cast<F
>(x - i);
109 return static_cast<int>(i - 103079215104LL);
111 #elif defined VTK_INTERPOLATE_32BIT_FLOOR 113 unsigned int i =
static_cast<unsigned int>(
x);
115 return static_cast<int>(i - 2147483648U);
116 #elif defined VTK_INTERPOLATE_I386_FLOOR 117 union {
double d;
unsigned short s[4];
unsigned int i[2]; } dual;
118 dual.d = x + 103079215104.0;
119 f = dual.s[0]*0.0000152587890625;
120 return static_cast<int>((dual.i[1]<<16)|((dual.i[0])>>16));
132 #if defined VTK_INTERPOLATE_64BIT_FLOOR 134 #ifdef VTK_TYPE_USE___INT64 135 __int64 i =
static_cast<__int64
>(
x);
136 return static_cast<int>(i - 103079215104i64);
138 long long i =
static_cast<long long>(
x);
139 return static_cast<int>(i - 103079215104LL);
141 #elif defined VTK_INTERPOLATE_32BIT_FLOOR 143 unsigned int i =
static_cast<unsigned int>(
x);
144 return static_cast<int>(i - 2147483648U);
145 #elif defined VTK_INTERPOLATE_I386_FLOOR 146 union {
double d;
unsigned int i[2]; } dual;
147 dual.d = x + 103079215104.5;
148 return static_cast<int>((dual.i[1]<<16)|((dual.i[0])>>16));
159 a = (a <= c ?
a :
c);
161 a = (a >= 0 ?
a : 0);
170 int range = c - b + 1;
174 a = (a >= 0 ?
a : a +
range);
183 #ifndef VTK_IMAGE_BORDER_LEGACY_MIRROR 185 int ifzero = (range == 0);
186 int range2 = 2*range + ifzero;
188 a = (a >= 0 ?
a : -
a);
190 a = (a <= range ?
a : range2 -
a);
193 int range = c - b + 1;
194 int range2 = 2*
range;
196 a = (a >= 0 ?
a : -a - 1);
198 a = (a < range ?
a : range2 - a - 1);
static int Round(double x)
GLboolean GLboolean GLboolean b
static int Mirror(int a, int b, int c)
static int Clamp(int a, int b, int c)
static int Wrap(int a, int b, int c)
GLint GLint GLint GLint GLint x
static int Floor(double x)
GLboolean GLboolean GLboolean GLboolean a
static int Floor(double x, F &f)
#define VTK_INTERPOLATE_FLOOR_TOL
vtkInterpolationWeights(const vtkInterpolationInfo &info)