20 #ifndef MIRTK_LeastSquaresConformalSurfaceMapper_H 21 #define MIRTK_LeastSquaresConformalSurfaceMapper_H 23 #include "mirtk/FreeBoundarySurfaceMapper.h" 25 #include "mirtk/Array.h" 27 #include "vtkSmartPointer.h" 28 #include "vtkDataArray.h" 74 mirtkPublicAttributeMacro(
int, NumberOfIterations);
77 mirtkPublicAttributeMacro(
double, Tolerance);
80 mirtkAttributeMacro(Array<int>, PointIndex);
83 mirtkAttributeMacro(Array<int>, FreePoints);
86 mirtkAttributeMacro(Array<int>, FixedPoints);
89 mirtkAttributeMacro(
Matrix, FixedValues);
92 mirtkAttributeMacro(vtkSmartPointer<vtkDataArray>, Values);
135 virtual double Weight(
int i,
int j)
const;
197 double GetValue(
int i,
int j = 0)
const;
228 void SetValue(
int i,
int j,
double v);
256 return static_cast<int>(_FreePoints.size());
262 return static_cast<int>(_FixedPoints.size());
268 const int i = _PointIndex[ptId];
269 return (i < 0 ? -1 : i);
275 return _FreePoints[i];
287 const int i = _PointIndex[ptId];
288 return (i < 0 ? (-i) - 1 : -1);
294 return _FixedPoints[i];
306 return _Values->GetComponent(static_cast<vtkIdType>(i), j);
324 _Values->SetComponent(static_cast<vtkIdType>(i), 0, v);
330 _Values->SetComponent(static_cast<vtkIdType>(i), j, v);
348 #endif // MIRTK_LeastSquaresConformalSurfaceMapper_H