ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkLevelSetEvolutionBase.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
20#ifndef itkLevelSetEvolutionBase_h
21#define itkLevelSetEvolutionBase_h
22
23#include <list>
24
25#include "itkImage.h"
29#include "itkNumericTraits.h"
31
32namespace itk
33{
41template <typename TEquationContainer, typename TLevelSet>
42class ITK_TEMPLATE_EXPORT LevelSetEvolutionBase : public Object
43{
44public:
45 ITK_DISALLOW_COPY_AND_MOVE(LevelSetEvolutionBase);
46
51
53 itkOverrideGetNameOfClassMacro(LevelSetEvolutionBase);
54
55 using EquationContainerType = TEquationContainer;
56 using EquationContainerPointer = typename EquationContainerType::Pointer;
57 using TermContainerType = typename EquationContainerType::TermContainerType;
58 using TermContainerPointer = typename TermContainerType::Pointer;
59
60 using TermType = typename TermContainerType::TermType;
61 using TermPointer = typename TermType::Pointer;
62
63 using InputImageType = typename TermContainerType::InputImageType;
64 using InputImagePixelType = typename InputImageType::PixelType;
65 using InputImageConstPointer = typename InputImageType::ConstPointer;
66 using InputImageRegionType = typename InputImageType::RegionType;
68
69 static constexpr unsigned int ImageDimension = InputImageType::ImageDimension;
70
71 using LevelSetContainerType = typename TermContainerType::LevelSetContainerType;
72
73 using LevelSetIdentifierType = typename LevelSetContainerType::LevelSetIdentifierType;
74
75 using LevelSetType = TLevelSet;
76 using LevelSetInputType = typename LevelSetType::InputType;
77 using LevelSetOutputType = typename LevelSetType::OutputType;
78 using LevelSetOutputRealType = typename LevelSetType::OutputRealType;
79 using LevelSetDataType = typename LevelSetType::LevelSetDataType;
80
81 using IdListType = typename LevelSetContainerType::IdListType;
82 using IdListIterator = typename LevelSetContainerType::IdListIterator;
83 using IdListConstIterator = typename LevelSetContainerType::IdListConstIterator;
84 using IdListImageType = typename LevelSetContainerType::IdListImageType;
85 using CacheImageType = typename LevelSetContainerType::CacheImageType;
86
87 using DomainMapImageFilterType = typename LevelSetContainerType::DomainMapImageFilterType;
88
91
93 itkGetModifiableObjectMacro(LevelSetContainer, LevelSetContainerType);
94
97 itkSetMacro(Alpha, LevelSetOutputRealType);
98 itkGetMacro(Alpha, LevelSetOutputRealType);
101 void
103
106 itkSetObjectMacro(EquationContainer, EquationContainerType);
107 itkGetModifiableObjectMacro(EquationContainer, EquationContainerType);
111 itkSetObjectMacro(StoppingCriterion, StoppingCriterionType);
112 itkGetModifiableObjectMacro(StoppingCriterion, StoppingCriterionType);
115 itkGetConstMacro(NumberOfIterations, IdentifierType);
116
120 void
122
123protected:
125
126 ~LevelSetEvolutionBase() override = default;
127
128 void
130
132 void
134
139 void
141
144 virtual void
147
150 virtual void
153
155 virtual void
158
159 virtual void
161
162 virtual void
164
166
168 typename LevelSetContainerType::Pointer m_LevelSetContainer{};
169
175
177 typename LevelSetContainerType::Iterator m_LevelSetContainerIteratorToProcessWhenThreading{};
178 typename LevelSetContainerType::Iterator m_LevelSetUpdateContainerIteratorToProcessWhenThreading{};
179};
180} // namespace itk
181
182#ifndef ITK_MANUAL_INSTANTIATION
183# include "itkLevelSetEvolutionBase.hxx"
184#endif
185
186#endif // itkLevelSetEvolutionBase_h
Container of Level-Sets.
virtual void UpdateLevelSets()=0
typename TermContainerType::LevelSetContainerType LevelSetContainerType
~LevelSetEvolutionBase() override=default
void SetTimeStep(const LevelSetOutputRealType &iDt)
typename LevelSetContainerType::IdListImageType IdListImageType
typename NumericTraits< InputImagePixelType >::RealType InputPixelRealType
typename LevelSetContainerType::CacheImageType CacheImageType
typename LevelSetContainerType::IdListConstIterator IdListConstIterator
typename LevelSetContainerType::DomainMapImageFilterType DomainMapImageFilterType
typename LevelSetContainerType::IdListIterator IdListIterator
virtual void UpdateEquations()=0
typename LevelSetContainerType::LevelSetIdentifierType LevelSetIdentifierType
typename EquationContainerType::TermContainerType TermContainerType
LevelSetEvolutionStoppingCriterion< LevelSetContainerType > StoppingCriterionType
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType IdentifierType
Definition itkIntTypes.h:90