Public Member Functions | Protected Member Functions | List of all members
mirtk::MeshlessVolumeMapper Class Referenceabstract

#include <MeshlessVolumeMapper.h>

Inheritance diagram for mirtk::MeshlessVolumeMapper:
Inheritance graph
Collaboration diagram for mirtk::MeshlessVolumeMapper:
Collaboration graph

Public Member Functions

virtual ~MeshlessVolumeMapper ()
 Destructor.
 
- Public Member Functions inherited from mirtk::VolumeMapper
int NumberOfComponents () const
 Dimension of codomain of volumetric map.
 
void Run ()
 Parameterize interior of input data set.
 
virtual ~VolumeMapper ()
 Destructor.
 
- Public Member Functions inherited from mirtk::Object
virtual const char * NameOfClass () const =0
 Get name of class, which this object is an instance of.
 
virtual ParameterList Parameter () const
 Get parameter name/value pairs.
 
bool Parameter (const ParameterList &)
 Set parameters from name/value pairs.
 
virtual bool Set (const char *name, const char *value)
 
virtual ~Object ()
 Destructor.
 

Protected Member Functions

virtual bool AddSourcePoint (double q[3])
 
virtual void AddWeights (int k, const Matrix &w)=0
 
void CopyAttributes (const MeshlessVolumeMapper &)
 Copy attributes of this class from another instance.
 
void GetClosestPointOnOffsetSurface (double x[3], double p[3])
 
virtual void GetCoefficients (int k, Matrix &coeff) const =0
 
virtual void GetConstraints (int k, Matrix &b) const =0
 
virtual void Initialize ()
 Initialize filter after input and parameters are set.
 
virtual void InitializeResidualMap ()
 Initialize residual boundary map.
 
 MeshlessVolumeMapper ()
 Default constructor.
 
 MeshlessVolumeMapper (const MeshlessVolumeMapper &)
 Copy constructor.
 
int NumberOfBoundaryPoints () const
 Get total number of boundary / constraints points.
 
int NumberOfSourcePoints () const
 Get total number of source / singularity points.
 
int NumberOfSourcePoints (int) const
 Get number of source points in k-th subset.
 
int NumberOfSourcePointSets () const
 Get number of source points subsets.
 
MeshlessVolumeMapperoperator= (const MeshlessVolumeMapper &)
 Assignment operator.
 
virtual void PartitionSourcePoints ()
 Evenly partition source points into smaller subsets.
 
virtual void PlaceBoundaryPoints ()
 Sample boundary points from input surface.
 
virtual void PlaceSourcePoints ()
 Compute and sample offset surface for placement of source points.
 
virtual void Solve ()
 Compute meshless map coefficients.
 
int SourcePointIndex (int k, int i) const
 Get index of i-th point of k-th source points subset.
 
virtual void UpdateBoundary (vtkPolyData *)
 Update boundary surface with corresponding boundary map as point data.
 
virtual double UpdateResidualMap (double *=nullptr, double *=nullptr, double *=nullptr)
 
- Protected Member Functions inherited from mirtk::VolumeMapper
virtual void Finalize ()
 Finalize filter execution.
 
virtual void InitializeBoundary (vtkPointSet *, vtkDataArray *)
 Initialize boundary surface with corresponding boundary map as point data.
 
VolumeMapperoperator= (const VolumeMapper &)
 Assignment operator.
 
 VolumeMapper ()
 Default constructor.
 
 VolumeMapper (const VolumeMapper &)
 Copy constructor.
 
- Protected Member Functions inherited from mirtk::Object
template<typename... Args>
void Throw (ErrorType err, const char *func, Args... args) const
 

Additional Inherited Members

- Static Public Member Functions inherited from mirtk::Object
static const char * NameOfType ()
 Get name of this class type.
 
- Static Protected Member Functions inherited from mirtk::Object
template<typename... Args>
static void ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args)
 

Detailed Description

Base class of filters which compute a volumetric map of the interior of a piecewise linear complex (PLC) using the method of fundamental solutions (MFS)

Iteratively computes a volumetric map of the interior of the input point set using the method of fundamental solutions (MFS). This implementation is based on the (bi-)harmonic volumetric mapping methods presented in (Li et al., 2010) and (Xu et al., 2013).

Boundary (constraint) points and source (singularity) points are sampled using the geometry adaptive sampling algorithm as outlined in Section 4.1 of (Li et al., 2010).

The type of volumetric map (e.g., harmonic or biharmonic) depends on the particular linear system which is defined by the subclass implementation of the pure virtual base class functions GetCoefficientMatrix, AddRegularization, and GetRightHandSide. This system is solved using the LU decomposition as outlined in (Xu et al., 2013).

Definition at line 60 of file MeshlessVolumeMapper.h.

Member Function Documentation

§ AddSourcePoint()

virtual bool mirtk::MeshlessVolumeMapper::AddSourcePoint ( double  q[3])
protectedvirtual

Add new source point

Parameters
[in]qSource point coordinates.
Returns
Whether source point was added or too close to existing point.

Reimplemented in mirtk::MeshlessHarmonicVolumeMapper.

§ AddWeights()

virtual void mirtk::MeshlessVolumeMapper::AddWeights ( int  k,
const Matrix w 
)
protectedpure virtual

Add solution of linear system to weights of volumetric map

Parameters
[in]kIndex of source points subset.
[in]wSolution of linear system.

Implemented in mirtk::MeshlessHarmonicVolumeMapper.

§ GetClosestPointOnOffsetSurface()

void mirtk::MeshlessVolumeMapper::GetClosestPointOnOffsetSurface ( double  x[3],
double  p[3] 
)
protected

Get closest point on offset surface

Parameters
[in]xBoundary point.
[in]pClosest source point on offset surface.

§ GetCoefficients()

virtual void mirtk::MeshlessVolumeMapper::GetCoefficients ( int  k,
Matrix coeff 
) const
protectedpure virtual

Get coefficients matrix corresponding to the least squares fitting term(s) of the quadratic energy function at constraints points

Parameters
[in]kIndex of source points subset.
[out]coeffCoefficients matrix.

Implemented in mirtk::MeshlessHarmonicVolumeMapper.

§ GetConstraints()

virtual void mirtk::MeshlessVolumeMapper::GetConstraints ( int  k,
Matrix b 
) const
protectedpure virtual

Get right-hand side of linear system

Parameters
[in]kIndex of source points subset.
[out]bRight-hand side of linear system.

Implemented in mirtk::MeshlessHarmonicVolumeMapper.

§ UpdateResidualMap()

virtual double mirtk::MeshlessVolumeMapper::UpdateResidualMap ( double *  = nullptr,
double *  = nullptr,
double *  = nullptr 
)
protectedvirtual

Update residual boundary map

Returns
Mean squared error of boundary map approximation.

The documentation for this class was generated from the following file: