ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkUpdateWhitakerSparseLevelSet.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 itkUpdateWhitakerSparseLevelSet_h
20#define itkUpdateWhitakerSparseLevelSet_h
21
22#include "itkImage.h"
29
30namespace itk
31{
41template <unsigned int VDimension, typename TLevelSetValueType, typename TEquationContainer>
42class ITK_TEMPLATE_EXPORT UpdateWhitakerSparseLevelSet : public Object
43{
44public:
45 ITK_DISALLOW_COPY_AND_MOVE(UpdateWhitakerSparseLevelSet);
46
51
53 itkNewMacro(Self);
54
56 itkOverrideGetNameOfClassMacro(UpdateWhitakerSparseLevelSet);
57
58 static constexpr unsigned int ImageDimension = VDimension;
59
60 using LevelSetOutputType = TLevelSetValueType;
61
66
69
74
80
84
85 using EquationContainerType = TEquationContainer;
86 using EquationContainerPointer = typename EquationContainerType::Pointer;
87
88 using TermContainerType = typename EquationContainerType::TermContainerType;
89 using TermContainerPointer = typename EquationContainerType::TermContainerPointer;
90
93
96
97 itkGetModifiableObjectMacro(OutputLevelSet, LevelSetType);
98
100 void
102
105 itkSetObjectMacro(InputLevelSet, LevelSetType);
106 itkGetModifiableObjectMacro(InputLevelSet, LevelSetType);
110 itkSetMacro(TimeStep, LevelSetOutputType);
111 itkGetMacro(TimeStep, LevelSetOutputType);
114 itkGetMacro(RMSChangeAccumulator, LevelSetOutputType);
115
118 itkSetObjectMacro(EquationContainer, EquationContainerType);
119 itkGetModifiableObjectMacro(EquationContainer, EquationContainerType);
123 itkSetMacro(CurrentLevelSetId, IdentifierType);
124 itkGetMacro(CurrentLevelSetId, IdentifierType);
127 void
129
130protected:
132 ~UpdateWhitakerSparseLevelSet() override = default;
133
135 void
137
139 void
141
143 void
145
147 void
149
151 void
153
155 void
157
159 void
161
163 void
165
167 void
169
171 void
173
174private:
178
180
184
187
190
192
194
196
197 using NodePairType = std::pair<LevelSetInputType, LevelSetOutputType>;
198};
199} // namespace itk
200
201#ifndef ITK_MANUAL_INSTANTIATION
202# include "itkUpdateWhitakerSparseLevelSet.hxx"
203#endif
204#endif // itkUpdateWhitakerSparseLevelSet_h
Templated n-dimensional image class.
Definition itkImage.h:89
convert a labeled image to a label collection image
Converts a LabelMap to a labeled image.
A neighborhood iterator which can take on an arbitrary shape.
Implements transparent reference counting.
~UpdateWhitakerSparseLevelSet() override=default
void SetUpdate(const LevelSetLayerType &update)
LabelMapToLabelImageFilter< LevelSetLabelMapType, LabelImageType > LabelMapToLabelImageFilterType
LabelImageToLabelMapFilter< LabelImageType, LevelSetLabelMapType > LabelImageToLabelMapFilterType
Derived class for the sparse-field representation of level-set function.
std::map< InputType, OutputType, Functor::LexicographicCompare > LayerType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType IdentifierType
Definition itkIntTypes.h:90