21 #ifndef MIRTK_FreeFormTransformation4D_H 22 #define MIRTK_FreeFormTransformation4D_H 24 #include "mirtk/FreeFormTransformation.h" 69 double,
double,
double,
double,
double = NaN)
const;
72 virtual void JacobianDOFs(
Matrix &,
int,
double,
double,
double,
double,
double = NaN)
const;
75 virtual void JacobianDOFs(
double [3],
int,
int,
int,
int,
double,
double,
double,
double,
double = NaN)
const;
78 virtual void JacobianDOFs(
double [3],
int,
double,
double,
double,
double,
double = NaN)
const;
92 double = NaN,
double = 1)
const;
123 int &,
int &,
int &,
double = 1)
const;
138 cerr << this->
NameOfClass() <<
"::JacobianDOFs: Not implemented" << endl;
148 return this->
JacobianDOFs(jac, ci, cj, ck, cl, x, y, z, t, t0);
153 ::JacobianDOFs(
double jac[3],
int ci,
int cj,
int ck,
int cl,
double x,
double y,
double z,
double t,
double t0)
const 156 this->
JacobianDOFs(tmp, ci, cj, ck, cl, x, y, z, t, t0);
157 if (tmp(0, 0) != .0 || tmp(0, 2) != .0 || tmp(1, 0) != .0 || tmp(1, 2) != .0 || tmp(2, 0) != .0 || tmp(2, 1) != .0) {
158 cerr <<
"FreeFormTransformation4D::JacobianDOFs: Jacobian is full 3x3 matrix" << endl;
171 this->
JacobianDOFs(jac, ci, cj, ck, cl, x, y, z, t, t0);
172 const int c = dof % 3;
173 for (
int i = 0; i < 3; ++i) {
174 if (i != c) jac[i] = .0;
198 Point &p2,
double fraction)
const 202 p1 =
Point(i - 2 * fraction, j - 2 * fraction, k - 2 * fraction);
203 p2 =
Point(i + 2 * fraction, j + 2 * fraction, k + 2 * fraction);
212 int &i2,
int &j2,
int &k2,
double fraction)
const 223 i1 = (p1.
_x < 0) ? 0 :
int(p1.
_x)+1;
224 j1 = (p1.
_y < 0) ? 0 :
int(p1.
_y)+1;
225 k1 = (p1.
_z < 0) ? 0 :
int(p1.
_z)+1;
226 i2 = (int(p2.
_x) >= image->
GetX()) ? image->
GetX()-1 : int(p2.
_x);
227 j2 = (int(p2.
_y) >= image->
GetY()) ? image->
GetY()-1 : int(p2.
_y);
228 k2 = (int(p2.
_z) >= image->
GetZ()) ? image->
GetZ()-1 : int(p2.
_z);
234 #endif // MIRTK_FreeFormTransformation4D_H
void WorldToImage(double &, double &) const
World to image coordinate conversion with two doubles.
double _x
x coordinate of Point
Status
Enumeration of common states for entities such as objective function parameters.
int GetX() const
Returns the number of voxels in the x-direction.
int GetY() const
Returns the number of voxels in the y-direction.
virtual const char * NameOfClass() const =0
Get name of class, which this object is an instance of.
double _z
z coordinate of Point
double _y
y coordinate of Point
int GetZ() const
Returns the number of voxels in the z-direction.