20 #ifndef MIRTK_SpectralConformalSurfaceMapper_H 21 #define MIRTK_SpectralConformalSurfaceMapper_H 23 #include "mirtk/FreeBoundarySurfaceMapper.h" 25 #include "mirtk/Array.h" 27 #include "vtkSmartPointer.h" 28 #include "vtkDataArray.h" 55 mirtkPublicAttributeMacro(
int, NumberOfIterations);
58 mirtkPublicAttributeMacro(
double, Tolerance);
61 mirtkAttributeMacro(Array<int>, PointIndex);
64 mirtkAttributeMacro(Array<int>, FreePoints);
67 mirtkAttributeMacro(Array<int>, FixedPoints);
70 mirtkAttributeMacro(
Matrix, FixedValues);
73 mirtkAttributeMacro(vtkSmartPointer<vtkDataArray>, Values);
116 virtual double Weight(
int i,
int j)
const;
178 double GetValue(
int i,
int j = 0)
const;
209 void SetValue(
int i,
int j,
double v);
237 return static_cast<int>(_FreePoints.size());
243 return static_cast<int>(_FixedPoints.size());
249 const int i = _PointIndex[ptId];
250 return (i < 0 ? -1 : i);
256 return _FreePoints[i];
268 const int i = _PointIndex[ptId];
269 return (i < 0 ? (-i) - 1 : -1);
275 return _FixedPoints[i];
287 return _Values->GetComponent(static_cast<vtkIdType>(i), j);
305 _Values->SetComponent(static_cast<vtkIdType>(i), 0, v);
311 _Values->SetComponent(static_cast<vtkIdType>(i), j, v);
329 #endif // MIRTK_SpectralConformalSurfaceMapper_H