go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkANNFixedRadiusTreeSearch.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003   This file is part of the elastix software.
00004 
00005   Copyright (c) University Medical Center Utrecht. All rights reserved.
00006   See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007   details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE. See the above copyright notices for more information.
00012 
00013 ======================================================================*/
00014 
00015 #ifndef __itkANNFixedRadiusTreeSearch_h
00016 #define __itkANNFixedRadiusTreeSearch_h
00017 
00018 #include "itkBinaryANNTreeSearchBase.h"
00019 
00020 
00021 namespace itk
00022 {
00023 
00033   template < class TListSample >
00034   class ANNFixedRadiusTreeSearch : public BinaryANNTreeSearchBase< TListSample >
00035   {
00036   public:
00037 
00039     typedef ANNFixedRadiusTreeSearch                Self;
00040     typedef BinaryANNTreeSearchBase< TListSample >  Superclass;
00041     typedef SmartPointer< Self >                    Pointer;
00042     typedef SmartPointer< const Self >              ConstPointer;
00043 
00045     itkNewMacro( Self );
00046 
00048     itkTypeMacro( ANNFixedRadiusTreeSearch, BinaryANNTreeSearchBase );
00049 
00051     typedef typename Superclass::ListSampleType         ListSampleType;
00052     typedef typename Superclass::BinaryTreeType         BinaryTreeType;
00053     typedef typename Superclass::MeasurementVectorType  MeasurementVectorType;
00054     typedef typename Superclass::IndexArrayType         IndexArrayType;
00055     typedef typename Superclass::DistanceArrayType      DistanceArrayType;
00056 
00057     typedef typename Superclass::ANNPointType           ANNPointType;         // double *
00058     typedef typename Superclass::ANNIndexType           ANNIndexType;         // int
00059     typedef typename Superclass::ANNIndexArrayType      ANNIndexArrayType;    // int *
00060     typedef typename Superclass::ANNDistanceType        ANNDistanceType;      // double
00061     typedef typename Superclass::ANNDistanceArrayType   ANNDistanceArrayType; // double *
00062 
00063     typedef typename Superclass::BinaryANNTreeType      BinaryANNTreeType;
00064 
00066     itkSetClampMacro( ErrorBound, double, 0.0, 1e14 );
00067     itkGetConstMacro( ErrorBound, double );
00068 
00070     itkSetMacro( SquaredRadius, double );
00071     itkGetConstMacro( SquaredRadius, double );
00072 
00074     virtual void Search( const MeasurementVectorType & qp, IndexArrayType & ind,
00075       DistanceArrayType & dists );
00076 
00078     virtual void Search( const MeasurementVectorType & qp, IndexArrayType & ind,
00079       DistanceArrayType & dists, double sqRad );
00080 
00081   protected:
00082 
00083     ANNFixedRadiusTreeSearch();
00084     virtual ~ANNFixedRadiusTreeSearch();
00085 
00087     double  m_ErrorBound;
00088     double  m_SquaredRadius;
00089 
00090   private:
00091 
00092     ANNFixedRadiusTreeSearch( const Self& ); // purposely not implemented
00093     void operator=( const Self& );        // purposely not implemented
00094 
00095   }; // end class ANNFixedRadiusTreeSearch
00096 
00097 
00098 } // end namespace itk
00099 
00100 
00101 #ifndef ITK_MANUAL_INSTANTIATION
00102 #include "itkANNFixedRadiusTreeSearch.txx"
00103 #endif
00104 
00105 
00106 #endif // end #ifndef __itkANNFixedRadiusTreeSearch_h
00107 


Generated on 24-10-2011 for elastix by doxygen 1.7.4 elastix logo