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.