Medical Imaging Interaction Toolkit  2016.11.0
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 ()
 
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 43 of file mitkPointLocator.h.

Member Typedef Documentation

Definition at line 54 of file mitkPointLocator.h.

Definition at line 50 of file mitkPointLocator.h.

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

Definition at line 141 of file mitkPointLocator.h.

Definition at line 56 of file mitkPointLocator.h.

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

Definition at line 55 of file mitkPointLocator.h.

typedef double mitk::PointLocator::MyANNdist
protected

Definition at line 151 of file mitkPointLocator.h.

Definition at line 154 of file mitkPointLocator.h.

typedef int mitk::PointLocator::MyANNidx
protected

Definition at line 150 of file mitkPointLocator.h.

Definition at line 153 of file mitkPointLocator.h.

typedef double* mitk::PointLocator::MyANNpoint
protected

Definition at line 149 of file mitkPointLocator.h.

Definition at line 152 of file mitkPointLocator.h.

Definition at line 53 of file mitkPointLocator.h.

Constructor & Destructor Documentation

mitk::PointLocator::PointLocator ( )
protected

constructor

Definition at line 21 of file mitkPointLocator.cpp.

mitk::PointLocator::~PointLocator ( )
protected

destructor

Definition at line 37 of file mitkPointLocator.cpp.

Member Function Documentation

Pointer mitk::PointLocator::Clone ( ) const
void mitk::PointLocator::DestroyANN ( )
protected

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

Definition at line 219 of file mitkPointLocator.cpp.

mitk::PointLocator::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.

Definition at line 182 of file mitkPointLocator.cpp.

mitk::PointLocator::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.

Definition at line 158 of file mitkPointLocator.cpp.

mitk::PointLocator::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.

Definition at line 166 of file mitkPointLocator.cpp.

mitk::PointLocator::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.

Definition at line 174 of file mitkPointLocator.cpp.

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
Returns
the index of and distance (in world coordinates) between the nearest point in point set and the given point

Definition at line 234 of file mitkPointLocator.cpp.

mitk::PointLocator::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

Definition at line 190 of file mitkPointLocator.cpp.

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.
void mitk::PointLocator::InitANN ( )
protected

Initializes the ann search tree using previously defined points

Definition at line 206 of file mitkPointLocator.cpp.

mitk::PointLocator::mitkClassMacroItkParent ( PointLocator  ,
itk::Object   
)
static Pointer mitk::PointLocator::New ( )
static
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.

Definition at line 43 of file mitkPointLocator.cpp.

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.

Definition at line 78 of file mitkPointLocator.cpp.

References mitk::BaseData::GetMTime(), mitk::PointSet::GetPointSet(), and mitk::PointSet::GetSize().

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.

Definition at line 118 of file mitkPointLocator.cpp.

Member Data Documentation

MyANNpointArray mitk::PointLocator::m_ANNDataPoints
protected

Definition at line 212 of file mitkPointLocator.h.

unsigned int mitk::PointLocator::m_ANNDimension
protected

Definition at line 210 of file mitkPointLocator.h.

MyANNdistArray mitk::PointLocator::m_ANNDistances
protected

Definition at line 215 of file mitkPointLocator.h.

double mitk::PointLocator::m_ANNEpsilon
protected

Definition at line 211 of file mitkPointLocator.h.

unsigned int mitk::PointLocator::m_ANNK
protected

Definition at line 209 of file mitkPointLocator.h.

MyANNidxArray mitk::PointLocator::m_ANNPointIndexes
protected

Definition at line 214 of file mitkPointLocator.h.

MyANNpoint mitk::PointLocator::m_ANNQueryPoint
protected

Definition at line 213 of file mitkPointLocator.h.

ANNkd_tree* mitk::PointLocator::m_ANNTree
protected

Definition at line 216 of file mitkPointLocator.h.

IdVectorType mitk::PointLocator::m_IndexToPointIdContainer
protected

Definition at line 200 of file mitkPointLocator.h.

ITKPointSet* mitk::PointLocator::m_ItkPoints
protected

Definition at line 204 of file mitkPointLocator.h.

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

Definition at line 203 of file mitkPointLocator.h.

bool mitk::PointLocator::m_SearchTreeInitialized
protected

Definition at line 198 of file mitkPointLocator.h.

vtkPoints* mitk::PointLocator::m_VtkPoints
protected

Definition at line 202 of file mitkPointLocator.h.


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