go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkANNPriorityTreeSearch.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#ifndef itkANNPriorityTreeSearch_h
19#define itkANNPriorityTreeSearch_h
20
22
23namespace itk
24{
25
35template <class TListSample>
36class ITK_TEMPLATE_EXPORT ANNPriorityTreeSearch : public BinaryANNTreeSearchBase<TListSample>
37{
38public:
40
44 using Pointer = SmartPointer<Self>;
45 using ConstPointer = SmartPointer<const Self>;
46
48 itkNewMacro(Self);
49
52
54 using typename Superclass::ListSampleType;
55 using typename Superclass::BinaryTreeType;
57 using typename Superclass::IndexArrayType;
58 using typename Superclass::DistanceArrayType;
59
60 using typename Superclass::ANNPointType; // double *
61 using typename Superclass::ANNIndexType; // int
62 using typename Superclass::ANNIndexArrayType; // int *
63 using typename Superclass::ANNDistanceType; // double
64 using typename Superclass::ANNDistanceArrayType; // double *
65
66 using typename Superclass::BinaryANNTreeType;
67
69 using ANNkDTreeType = ANNkd_tree;
70 using ANNPointSetType = ANNpointSet;
71
73 itkSetClampMacro(ErrorBound, double, 0.0, 1e14);
74 itkGetConstMacro(ErrorBound, double);
75
77 void
78 Search(const MeasurementVectorType & qp, IndexArrayType & ind, DistanceArrayType & dists) override;
79
80 void
81 SetBinaryTree(BinaryTreeType * tree) override;
82
83protected:
85 ~ANNPriorityTreeSearch() override = default;
86
88 double m_ErrorBound{};
89 ANNkDTreeType * m_BinaryTreeAskDTree{};
90};
91
92} // end namespace itk
93
94#ifndef ITK_MANUAL_INSTANTIATION
95# include "itkANNPriorityTreeSearch.hxx"
96#endif
97
98#endif // end #ifndef itkANNPriorityTreeSearch_h
void SetBinaryTree(BinaryTreeType *tree) override
void Search(const MeasurementVectorType &qp, IndexArrayType &ind, DistanceArrayType &dists) override
~ANNPriorityTreeSearch() override=default
SmartPointer< const Self > ConstPointer
ITK_DISALLOW_COPY_AND_MOVE(ANNPriorityTreeSearch)
typename BinaryTreeType::MeasurementVectorType MeasurementVectorType


Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo