29 inline void conv(
double* i)
49 inline void conv(
double* i)
71 i[0] =
static_cast<float>(v[0]);
72 i[1] =
static_cast<float>(v[1]);
73 i[2] =
static_cast<float>(v[2]);
75 inline void conv(
double* i)
87 return sqrt(
sqr((p1[0] - p2[0]) * spacing[0]) +
sqr((p1[1] - p2[1]) * spacing[1]) +
sqr((p1[2] - p2[2]) * spacing[2]));
95 norm[0] = v1[1] * v2[2] - v1[2] * v2[1];
96 norm[1] = v1[2] * v2[0] - v1[0] * v2[2];
97 norm[2] = v1[0] * v2[1] - v1[1] * v2[0];
99 absval = sqrt(norm[0] * norm[0] + norm[1] * norm[1] + norm[2] * norm[2]);
109 double prod = 0, length1 = 0, length2 = 0;
111 for (
int k = 0; k < 3; k++)
113 prod += v1[k] * v2[k];
114 length1 += v1[k] * v1[k];
115 length2 += v2[k] * v2[k];
117 return acos(prod / sqrt(length1 * length2));
124 double prod = 0, length1 = 0, length2 = 0;
126 for (
int k = 0; k < 3; k++)
128 prod += v1[k] * v2[k];
129 length1 += v1[k] * v1[k];
130 length2 += v2[k] * v2[k];
132 return acos(prod / sqrt(length1 * length2));
137 return sqrt(
sqr(x[0]) +
sqr(x[1]) +
sqr(x[2]));
142 return sqrt(
sqr(x[0]) +
sqr(x[1]) +
sqr(x[2]));
147 return sqrt(
sqr(x[0] - y[0]) +
sqr(x[1] - y[1]) +
sqr(x[2] - y[2]));
155 for (
int i = 0; i < 3; i++)
157 loc_img[i] = (int)((loc_world[i] - origin[i]) / voxelsize);
163 if (loc_img[i] >= dims[i])
165 loc_img[i] = dims[i] - 1;
173inline int transWorldToImage(
double* loc_world,
int* loc_img,
double* origin,
int* dims,
double voxelsize)
178 for (
int i = 0; i < 3; i++)
180 loc_img[i] = (int)((loc_world[i] - origin[i]) / voxelsize);
186 if (loc_img[i] >= dims[i])
188 loc_img[i] = dims[i] - 1;
double & operator[](int i)
float & operator[](int i)
double pointdistance(Coord3i &p1, Coord3i &p2, const double spacing[3])
double vec_length(Coord3d x)
double vectorangle(double *v1, double *v2)
int transWorldToImage(Coord3d loc_world, int *loc_img, double *origin, int *dims, double voxelsize)
void normcrossprod(double *v1, double *v2, double *norm)