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.
1/*=========================================================================
2 *
3 * Copyright UMC Utrecht and contributors
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18
19#ifndef itkANNBinaryTreeCreator_h
20#define itkANNBinaryTreeCreator_h
21
22#include "itkObject.h"
23#include "itkObjectFactory.h"
24#include "ANN/ANN.h"
25
26namespace itk
27{
28
38class ANNBinaryTreeCreator : public Object
39{
40public:
42
45 using Superclass = Object;
46 using Pointer = SmartPointer<Self>;
47 using ConstPointer = SmartPointer<const Self>;
48
50 itkNewMacro(Self);
51
53 itkTypeMacro(ANNBinaryTreeCreator, Object);
54
56 // typedef ANNpointSet ANNTreeBaseType;
57 using ANNkDTreeType = ANNkd_tree;
58 using ANNbdTreeType = ANNbd_tree;
59 using ANNBruteForceTreeType = ANNbruteForce;
60 using ANNPointArrayType = ANNpointArray;
61 using ANNSplitRuleType = ANNsplitRule;
62 using ANNShrinkRuleType = ANNshrinkRule;
63
72 static ANNkDTreeType *
73 CreateANNkDTree(ANNPointArrayType pa, int n, int d, int bs = 1, ANNSplitRuleType split = ANN_KD_SUGGEST);
74
76 static ANNbdTreeType *
78 int n,
79 int d,
80 int bs = 1,
81 ANNSplitRuleType split = ANN_KD_SUGGEST,
82 ANNShrinkRuleType shrink = ANN_BD_SUGGEST);
83
87
89 static void
91
93 static void
95
97 static void
99
101 static void
103
104protected:
106 ~ANNBinaryTreeCreator() override = default;
107
108private:
110 static unsigned int m_NumberOfANNBinaryTrees;
111};
112
113} // end namespace itk
114
115#endif // end #ifndef itkANNBinaryTreeCreator_h
static unsigned int m_NumberOfANNBinaryTrees
static void DeleteANNBruteForceTree(ANNBruteForceTreeType *&tree)
static ANNBruteForceTreeType * CreateANNBruteForceTree(ANNPointArrayType pa, int n, int d)
static void DecreaseReferenceCount()
SmartPointer< const Self > ConstPointer
static void DeleteANNkDTree(ANNkDTreeType *&tree)
static void IncreaseReferenceCount()
~ANNBinaryTreeCreator() override=default
static ANNbdTreeType * CreateANNbdTree(ANNPointArrayType pa, int n, int d, int bs=1, ANNSplitRuleType split=ANN_KD_SUGGEST, ANNShrinkRuleType shrink=ANN_BD_SUGGEST)
static ANNkDTreeType * CreateANNkDTree(ANNPointArrayType pa, int n, int d, int bs=1, ANNSplitRuleType split=ANN_KD_SUGGEST)
ITK_DISALLOW_COPY_AND_MOVE(ANNBinaryTreeCreator)


Generated on 2023-01-13 for elastix by doxygen 1.9.6 elastix logo