go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkANNkDTree.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 __itkANNkDTree_h
00016 #define __itkANNkDTree_h
00017 
00018 #include "itkBinaryANNTreeBase.h"
00019 
00020 
00021 namespace itk
00022 {
00023 
00033   template < class TListSample >
00034   class ANNkDTree : public BinaryANNTreeBase< TListSample >
00035   {
00036   public:
00037 
00039     typedef ANNkDTree                         Self;
00040     typedef BinaryANNTreeBase< TListSample >  Superclass;
00041     typedef SmartPointer< Self >              Pointer;
00042     typedef SmartPointer< const Self >        ConstPointer;
00043 
00045     itkNewMacro( Self );
00046 
00048     itkTypeMacro( ANNkDTree, BinaryANNTreeBase );
00049 
00051     typedef typename Superclass::SampleType                 SampleType;
00052     typedef typename Superclass::MeasurementVectorType      MeasurementVectorType;
00053     typedef typename Superclass::MeasurementVectorSizeType  MeasurementVectorSizeType;
00054     typedef typename Superclass::TotalAbsoluteFrequencyType TotalAbsoluteFrequencyType;
00055 
00057     typedef ANNpointSet       ANNPointSetType;
00058     typedef ANNkd_tree        ANNkDTreeType;
00059     typedef ANNsplitRule      SplittingRuleType;
00060     typedef unsigned int      BucketSizeType;
00061 
00063     itkSetMacro( BucketSize, BucketSizeType );
00064     itkGetConstMacro( BucketSize, BucketSizeType );
00065 
00067     itkSetMacro( SplittingRule, SplittingRuleType );
00068     itkGetConstMacro( SplittingRule, SplittingRuleType );
00069     void SetSplittingRule( std::string rule );
00070     std::string GetSplittingRule( void );
00071 
00073     //void SetMaximumNumberOfPointsToVisit( unsigned int num )
00074     //{
00075     //  annMaxPtsVisit( static_cast<int>( num ) );
00076     //}
00077 
00079     virtual void GenerateTree( void );
00080 
00082     virtual ANNPointSetType * GetANNTree( void ) const
00083     {
00084       return this->m_ANNTree;
00085     }
00086 
00087   protected:
00088 
00090     ANNkDTree();
00091 
00093     virtual ~ANNkDTree();
00094 
00096     virtual void PrintSelf( std::ostream& os, Indent indent ) const;
00097 
00099     ANNkDTreeType *         m_ANNTree;
00100     SplittingRuleType       m_SplittingRule;
00101     BucketSizeType          m_BucketSize;
00102 
00103   private:
00104 
00105     ANNkDTree( const Self& );       // purposely not implemented
00106     void operator=( const Self& );  // purposely not implemented
00107 
00108   }; // end class ANNkDTree
00109 
00110 
00111 } // end namespace itk
00112 
00113 
00114 #ifndef ITK_MANUAL_INSTANTIATION
00115 #include "itkANNkDTree.txx"
00116 #endif
00117 
00118 
00119 #endif // end #ifndef __itkANNkDTree_h
00120 


Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo