Medical Imaging Interaction Toolkit  2023.12.99-3b10b122
Medical Imaging Interaction Toolkit
mitk::PointLocator Class Reference

#include <mitkPointLocator.h>

Inheritance diagram for mitk::PointLocator:
Collaboration diagram for mitk::PointLocator:

Public Types

typedef int IdType
 
typedef ScalarType DistanceType
 
typedef float PixelType
 
typedef double CoordRepType
 
typedef itk::DefaultStaticMeshTraits< PixelType, 3, 2, CoordRepType, CoordRepType, PixelTypeMeshTraits
 
typedef itk::PointSet< PixelType, 3, MeshTraitsITKPointSet
 

Public Member Functions

 mitkClassMacroItkParent (PointLocator, itk::Object)
 
Pointer Clone () const
 
void SetPoints (vtkPointSet *points)
 
void SetPoints (mitk::PointSet *points)
 
void SetPoints (ITKPointSet *pointSet)
 
IdType FindClosestPoint (const double point[3])
 
IdType FindClosestPoint (double x, double y, double z)
 
IdType FindClosestPoint (mitk::PointSet::PointType point)
 
DistanceType GetMinimalDistance (mitk::PointSet::PointType point)
 
bool FindClosestPointAndDistance (mitk::PointSet::PointType point, IdType *id, DistanceType *dist)
 

Static Public Member Functions

static Pointer New ()
 

Protected Types

typedef std::vector< IdTypeIdVectorType
 
typedef double * MyANNpoint
 
typedef int MyANNidx
 
typedef double MyANNdist
 
typedef MyANNpointMyANNpointArray
 
typedef MyANNidxMyANNidxArray
 
typedef MyANNdistMyANNdistArray
 

Protected Member Functions

 PointLocator ()
 
 ~PointLocator () override
 
void InitANN ()
 
void DestroyANN ()
 
IdType FindClosestANNPoint (const MyANNpoint &point)
 
DistanceType GetMinimalDistance (const MyANNpoint &point)
 

Protected Attributes

bool m_SearchTreeInitialized
 
IdVectorType m_IndexToPointIdContainer
 
vtkPoints * m_VtkPoints
 
mitk::PointSetm_MitkPoints
 
ITKPointSetm_ItkPoints
 
unsigned int m_ANNK
 
unsigned int m_ANNDimension
 
double m_ANNEpsilon
 
MyANNpointArray m_ANNDataPoints
 
MyANNpoint m_ANNQueryPoint
 
MyANNidxArray m_ANNPointIndexes
 
MyANNdistArray m_ANNDistances
 
ANNkd_tree * m_ANNTree
 

Detailed Description

Convenience wrapper around ANN to provide fast nearest neighbour searches. Usage: set your points via SetPoints( vtkPointSet* Points ) or SetPoints(mitk::PointSet*). Then, you may query the closest point to an arbitrary coordinate by FindClosestPoint(). There is no further call to update etc. needed. Currently only calls for 1 nearest neighbour are supported. Feel free to add functions for K nearest neighbours. NOTE: At least 1 point must be contained in the point set.

Definition at line 39 of file mitkPointLocator.h.

Member Typedef Documentation

◆ CoordRepType

Definition at line 52 of file mitkPointLocator.h.

◆ DistanceType

◆ IdType

Definition at line 46 of file mitkPointLocator.h.

◆ IdVectorType

typedef std::vector<IdType> mitk::PointLocator::IdVectorType
protected

Definition at line 141 of file mitkPointLocator.h.

◆ ITKPointSet

Definition at line 54 of file mitkPointLocator.h.

◆ MeshTraits

typedef itk::DefaultStaticMeshTraits<PixelType, 3, 2, CoordRepType, CoordRepType, PixelType> mitk::PointLocator::MeshTraits

Definition at line 53 of file mitkPointLocator.h.

◆ MyANNdist

typedef double mitk::PointLocator::MyANNdist
protected

Definition at line 151 of file mitkPointLocator.h.

◆ MyANNdistArray

Definition at line 154 of file mitkPointLocator.h.

◆ MyANNidx

typedef int mitk::PointLocator::MyANNidx
protected

Definition at line 150 of file mitkPointLocator.h.

◆ MyANNidxArray

Definition at line 153 of file mitkPointLocator.h.

◆ MyANNpoint

typedef double* mitk::PointLocator::MyANNpoint
protected

Definition at line 149 of file mitkPointLocator.h.

◆ MyANNpointArray

Definition at line 152 of file mitkPointLocator.h.

◆ PixelType

Definition at line 51 of file mitkPointLocator.h.

Constructor & Destructor Documentation

◆ PointLocator()

mitk::PointLocator::PointLocator ( )
protected

constructor

◆ ~PointLocator()

mitk::PointLocator::~PointLocator ( )
overrideprotected

destructor

Member Function Documentation

◆ Clone()

Pointer mitk::PointLocator::Clone ( ) const

◆ DestroyANN()

void mitk::PointLocator::DestroyANN ( )
protected

releases all memory occupied by the ann search tree and internal point set arrays

◆ FindClosestANNPoint()

IdType mitk::PointLocator::FindClosestANNPoint ( const MyANNpoint point)
protected

Finds the nearest neighbour in the point set previously defined by SetPoints(). The Id of the point is returned. Please note, that there is no case, in which no point is found, since as a precondition at least one point has to be contained in the point set.

Parameters
pointthe query point, for whom the nearest neighbour will be determined
Returns
the id of the nearest neighbour of the given point. The id corresponds to the id which is given in the original point set.

◆ FindClosestPoint() [1/3]

IdType mitk::PointLocator::FindClosestPoint ( const double  point[3])

Finds the nearest neighbour in the point set previously defined by SetPoints(). The Id of the point is returned. Please note, that there is no case, in which no point is found, since as a precondition at least one point has to be contained in the point set.

Parameters
pointthe query point, for whom the nearest neighbour will be determined
Returns
the id of the nearest neighbour of the given point. The id corresponds to the id which is given in the original point set.

◆ FindClosestPoint() [2/3]

IdType mitk::PointLocator::FindClosestPoint ( double  x,
double  y,
double  z 
)

Finds the nearest neighbour in the point set previously defined by SetPoints(). The Id of the point is returned. Please note, that there is no case, in which no point is found, since as a precondition at least one point has to be contained in the point set.

Parameters
xthe x coordinated of the query point, for whom the nearest neighbour will be determined
ythe x coordinated of the query point, for whom the nearest neighbour will be determined
zthe x coordinated of the query point, for whom the nearest neighbour will be determined
Returns
the id of the nearest neighbour of the given point. The id corresponds to the id which is given in the original point set.

◆ FindClosestPoint() [3/3]

IdType mitk::PointLocator::FindClosestPoint ( mitk::PointSet::PointType  point)

Finds the nearest neighbour in the point set previously defined by SetPoints(). The Id of the point is returned. Please note, that there is no case, in which no point is found, since as a precondition at least one point has to be contained in the point set.

Parameters
pointthe query point, for whom the nearest neighbour will be determined
Returns
the id of the nearest neighbour of the given point. The id corresponds to the id which is given in the original point set.

◆ FindClosestPointAndDistance()

bool mitk::PointLocator::FindClosestPointAndDistance ( mitk::PointSet::PointType  point,
IdType id,
DistanceType dist 
)

Finds the nearest neighbour in the point set previously defined by SetPoints(). The Index and minimal distance between this point and the closest point of the point set is returned. Please note, that there is no case, in which no point is found, since as a precondition at least one point has to be contained in the point set.

Parameters
pointthe query point, for whom the minimal distance will be determined
id
dist
Returns
the index of and distance (in world coordinates) between the nearest point in point set and the given point

◆ GetMinimalDistance() [1/2]

DistanceType mitk::PointLocator::GetMinimalDistance ( const MyANNpoint point)
protected

Finds the minimal distance between the given point and a point in the previously defined point set. The distance is returned. Please note, that there is no case, in which no distance is found, since as a precondition at least one point has to be contained in the point set.

Parameters
pointthe query point, for whom the minimal distance to a point in the previously defined point set will be determined
Returns
the squared distance in world coordinates between the given point and the nearest neighbour.

◆ GetMinimalDistance() [2/2]

DistanceType mitk::PointLocator::GetMinimalDistance ( mitk::PointSet::PointType  point)

Finds the nearest neighbour in the point set previously defined by SetPoints(). The minimal distance between this point and the closest point of the point set is returned. Please note, that there is no case, in which no point is found, since as a precondition at least one point has to be contained in the point set.

Parameters
pointthe query point, for whom the minimal distance will be determined
Returns
the distance in world coordinates between the nearest point in point set and the given point

◆ InitANN()

void mitk::PointLocator::InitANN ( )
protected

Initializes the ann search tree using previously defined points

◆ mitkClassMacroItkParent()

mitk::PointLocator::mitkClassMacroItkParent ( PointLocator  ,
itk::Object   
)

◆ New()

static Pointer mitk::PointLocator::New ( )
static

◆ SetPoints() [1/3]

void mitk::PointLocator::SetPoints ( ITKPointSet pointSet)

Sets the point which will be used for nearest-neighbour searches. Note there must be at least one point in the point set.

Parameters
pointSetthe point set containing points for nearest neighbours searches.

◆ SetPoints() [2/3]

void mitk::PointLocator::SetPoints ( mitk::PointSet points)

Sets the point which will be used for nearest-neighbour searches. Note there must be at least one point in the point set.

Parameters
pointsthe point set containing points for nearest neighbours searches.

◆ SetPoints() [3/3]

void mitk::PointLocator::SetPoints ( vtkPointSet *  points)

Sets the point which will be used for nearest-neighbour searches. Note there must be at least one point in the point set.

Parameters
pointsthe point set containing points for nearest neighbours searches.

Member Data Documentation

◆ m_ANNDataPoints

MyANNpointArray mitk::PointLocator::m_ANNDataPoints
protected

Definition at line 212 of file mitkPointLocator.h.

◆ m_ANNDimension

unsigned int mitk::PointLocator::m_ANNDimension
protected

Definition at line 210 of file mitkPointLocator.h.

◆ m_ANNDistances

MyANNdistArray mitk::PointLocator::m_ANNDistances
protected

Definition at line 215 of file mitkPointLocator.h.

◆ m_ANNEpsilon

double mitk::PointLocator::m_ANNEpsilon
protected

Definition at line 211 of file mitkPointLocator.h.

◆ m_ANNK

unsigned int mitk::PointLocator::m_ANNK
protected

Definition at line 209 of file mitkPointLocator.h.

◆ m_ANNPointIndexes

MyANNidxArray mitk::PointLocator::m_ANNPointIndexes
protected

Definition at line 214 of file mitkPointLocator.h.

◆ m_ANNQueryPoint

MyANNpoint mitk::PointLocator::m_ANNQueryPoint
protected

Definition at line 213 of file mitkPointLocator.h.

◆ m_ANNTree

ANNkd_tree* mitk::PointLocator::m_ANNTree
protected

Definition at line 216 of file mitkPointLocator.h.

◆ m_IndexToPointIdContainer

IdVectorType mitk::PointLocator::m_IndexToPointIdContainer
protected

Definition at line 200 of file mitkPointLocator.h.

◆ m_ItkPoints

ITKPointSet* mitk::PointLocator::m_ItkPoints
protected

Definition at line 204 of file mitkPointLocator.h.

◆ m_MitkPoints

mitk::PointSet* mitk::PointLocator::m_MitkPoints
protected

Definition at line 203 of file mitkPointLocator.h.

◆ m_SearchTreeInitialized

bool mitk::PointLocator::m_SearchTreeInitialized
protected

Definition at line 198 of file mitkPointLocator.h.

◆ m_VtkPoints

vtkPoints* mitk::PointLocator::m_VtkPoints
protected

Definition at line 202 of file mitkPointLocator.h.


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