ITK  6.0.0
Insight Toolkit
itkLevelSetEvolutionStoppingCriterion.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
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 * https://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 itkLevelSetEvolutionStoppingCriterion_h
20#define itkLevelSetEvolutionStoppingCriterion_h
21
23#include "itkNumericTraits.h"
24#include "itkIntTypes.h"
25
26namespace itk
27{
32template <typename TLevelSetContainer>
34{
35public:
36 ITK_DISALLOW_COPY_AND_MOVE(LevelSetEvolutionStoppingCriterion);
37
42
44 itkOverrideGetNameOfClassMacro(LevelSetEvolutionStoppingCriterion);
45
46 using LevelSetContainerType = TLevelSetContainer;
48
49 using LevelSetIdentifierType = typename LevelSetContainerType::LevelSetIdentifierType;
50
51 using LevelSetType = typename LevelSetContainerType::LevelSetType;
52 using LevelSetPointer = typename LevelSetContainerType::LevelSetPointer;
53
54 using InputIndexType = typename LevelSetContainerType::InputIndexType;
55 using OutputType = typename LevelSetContainerType::OutputType;
56 using OutputRealType = typename LevelSetContainerType::OutputRealType;
57 using GradientType = typename LevelSetContainerType::GradientType;
58 using HessianType = typename LevelSetContainerType::HessianType;
59
60 using HeavisideType = typename LevelSetContainerType::HeavisideType;
61 using HeavisidePointer = typename LevelSetContainerType::HeavisideType;
62
64
66 itkGetModifiableObjectMacro(LevelSetContainer, LevelSetContainerType);
67
68 itkSetMacro(NumberOfIterations, IterationIdType);
69 itkGetMacro(NumberOfIterations, IterationIdType);
70
71 itkSetMacro(CurrentIteration, IterationIdType);
72 itkGetMacro(CurrentIteration, IterationIdType);
73
74 itkSetMacro(RMSChangeAccumulator, OutputRealType);
75 itkGetMacro(RMSChangeAccumulator, OutputRealType);
76
77protected:
80
83
84 LevelSetContainerPointer m_LevelSetContainer{};
85 OutputRealType m_RMSChangeAccumulator{};
86 IterationIdType m_NumberOfIterations{};
87 IterationIdType m_CurrentIteration{};
88};
89} // namespace itk
90#ifndef ITK_MANUAL_INSTANTIATION
91# include "itkLevelSetEvolutionStoppingCriterion.hxx"
92#endif
93#endif
Container of Level-Sets.
typename LevelSetContainerType::LevelSetPointer LevelSetPointer
typename LevelSetContainerType::OutputRealType OutputRealType
typename LevelSetContainerType::InputIndexType InputIndexType
typename LevelSetContainerType::HessianType HessianType
typename LevelSetContainerType::HeavisideType HeavisideType
typename LevelSetContainerType::LevelSetIdentifierType LevelSetIdentifierType
typename LevelSetContainerType::HeavisideType HeavisidePointer
typename LevelSetContainerType::LevelSetType LevelSetType
typename LevelSetContainerType::GradientType GradientType
typename LevelSetContainerType::OutputType OutputType
typename LevelSetContainerType::Pointer LevelSetContainerPointer
~LevelSetEvolutionStoppingCriterion() override=default
Light weight base class for most itk classes.
An abstract base class to represent a stopping criterion for an iterative algorithm.
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType IdentifierType
Definition: itkIntTypes.h:90