go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkANNBinaryTreeCreator.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 __itkANNBinaryTreeCreator_h
00016 #define __itkANNBinaryTreeCreator_h
00017 
00018 #include "itkObject.h"
00019 #include "itkObjectFactory.h"
00020 #include "ANN/ANN.h"
00021 
00022 namespace itk
00023 {
00024 
00034   class ANNBinaryTreeCreator : public Object
00035   {
00036   public:
00037 
00039     typedef ANNBinaryTreeCreator        Self;
00040     typedef Object                      Superclass;
00041     typedef SmartPointer< Self >        Pointer;
00042     typedef SmartPointer< const Self >  ConstPointer;
00043 
00045     itkNewMacro( Self );
00046 
00048     itkTypeMacro( ANNBinaryTreeCreator, Object );
00049 
00051     //typedef ANNpointSet     ANNTreeBaseType;
00052     typedef ANNkd_tree      ANNkDTreeType;
00053     typedef ANNbd_tree      ANNbdTreeType;
00054     typedef ANNbruteForce   ANNBruteForceTreeType;
00055     typedef ANNpointArray   ANNPointArrayType;
00056     typedef ANNsplitRule    ANNSplitRuleType;
00057     typedef ANNshrinkRule   ANNShrinkRuleType;
00058 
00067     static ANNkDTreeType * CreateANNkDTree( ANNPointArrayType pa, int n, int d, int bs = 1,
00068       ANNSplitRuleType split = ANN_KD_SUGGEST );
00069 
00071     static ANNbdTreeType * CreateANNbdTree( ANNPointArrayType pa, int n, int d, int bs = 1,
00072       ANNSplitRuleType split = ANN_KD_SUGGEST, ANNShrinkRuleType shrink = ANN_BD_SUGGEST );
00073 
00075     static ANNBruteForceTreeType * CreateANNBruteForceTree( ANNPointArrayType pa, int n, int d );
00076 
00078     static void DeleteANNkDTree( ANNkDTreeType * & tree );
00079 
00081     static void DeleteANNBruteForceTree( ANNBruteForceTreeType * & tree );
00082 
00084     static void IncreaseReferenceCount( void );
00085 
00087     static void DecreaseReferenceCount( void );
00088 
00089   protected:
00090 
00091     ANNBinaryTreeCreator(){};
00092     virtual ~ANNBinaryTreeCreator(){};
00093 
00094   private:
00095 
00096     ANNBinaryTreeCreator( const Self& );  // purposely not implemented
00097     void operator=( const Self& );        // purposely not implemented
00098 
00100     static unsigned int    m_NumberOfANNBinaryTrees;
00101 
00102   }; // end class ANNBinaryTreeCreator
00103 
00104 
00105 } // end namespace itk
00106 
00107 
00108 #endif // end #ifndef __itkANNBinaryTreeCreator_h
00109 


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