Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
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
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& );
00097 void operator=( const Self& );
00098
00100 static unsigned int m_NumberOfANNBinaryTrees;
00101
00102 };
00103
00104
00105 }
00106
00107
00108 #endif // end #ifndef __itkANNBinaryTreeCreator_h
00109