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

#include <BoundarySegmentParameterizer.h>

Inheritance diagram for mirtk::BoundarySegmentParameterizer:
Inheritance graph
Collaboration diagram for mirtk::BoundarySegmentParameterizer:
Collaboration graph

Public Member Functions

virtual BoundarySegmentParameterizerNewCopy () const =0
 New copy of this parameterizer.
 
virtual void Run ()
 Parameterize boundary segment.
 
double Value (int i) const
 
virtual ~BoundarySegmentParameterizer ()
 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

 BoundarySegmentParameterizer ()
 Default constructor.
 
 BoundarySegmentParameterizer (const BoundarySegmentParameterizer &)
 Copy constructor.
 
virtual void Finalize ()
 Finalize parameterization.
 
virtual void Initialize ()
 Initialize parameterizer after input and parameters are set.
 
BoundarySegmentParameterizeroperator= (const BoundarySegmentParameterizer &)
 Assignment operator.
 
virtual void Parameterize ()=0
 Parameterize boundary curve.
 
- 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 parameterize a closed boundary segment

A boundary segment parameterizer is used to assign each point of a closed surface boundary segment a value t in [0, 1), with strictly increasing (or decreasing) values along the boundary curve. This parameterization is used in particular by a boundary mapper to assign fixed map values to the boundary points.

For example, the BoundaryToSquareMapper maps points with a t value in [0, .25) to the first side of the square, points with a t value in [.25, .5) to the second side, and so on. Note that the t value is proportional to the distance of the point from the curve point at t=0 along the mapped curve. Note further that the boundary segment point with index 0 need not be the point with parameter value t=0. It is also not required that there exists even a discrete curve point with parameter t=0.

Specialized boundary parameterizers may assign parameter values to the boundary segment of a given surface mesh not only based on this surface and possibly related imaging data, but also other surface meshes with known or to be determined correspondences between surface boundaries. Such parameterizer will assign equal t values to corresponding boundary points such that these points are mapped to the same value by the boundary mapper. Other parameterizers may take an ordered/labeled list of manually selected boundary points as input and assign parameter values based on this selection.

In a nutshell, a boundary parameterizer indirectly establishes correspondences between boundary points of 2D manifolds, while the boundary mapper itself only defines the shape of the parametric domain, i.e., the codomain of the boundary map.

Subclasses may further consider the ordered (not sorted!) list of user selected boundary segment points (see BoundarySegment::IsSelected).

How many points need to be selected depends on the specific parameterizer. In general, no points have to be selected, but selecting boundary points can be used to orient the curve, i.e., to decide in which direction along the closed boundary the t values are increasing. The curve orientation is generally defined by the order of the selected points. The first point in the selection usually defines the boundary point with parameter value t=0.

See also
BoundaryMapper, BoundarySegment

Definition at line 78 of file BoundarySegmentParameterizer.h.

Member Function Documentation

§ Value()

double mirtk::BoundarySegmentParameterizer::Value ( int  i) const
inline

Get parameter value of i-th boundary segment point

Parameters
[in]iIndex of boundary segment point.
Returns
Parameter value of i-th boundary segment point

Definition at line 149 of file BoundarySegmentParameterizer.h.


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