ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkFastMarchingExtensionImageFilter.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#ifndef itkFastMarchingExtensionImageFilter_h
19#define itkFastMarchingExtensionImageFilter_h
20
22
23namespace itk
24{
53template <typename TLevelSet,
54 typename TAuxValue,
55 unsigned int VAuxDimension = 1,
56 typename TSpeedImage = Image<float, TLevelSet::ImageDimension>>
57class ITK_TEMPLATE_EXPORT FastMarchingExtensionImageFilter : public FastMarchingImageFilter<TLevelSet, TSpeedImage>
58{
59public:
60 ITK_DISALLOW_COPY_AND_MOVE(FastMarchingExtensionImageFilter);
61
67
69 itkNewMacro(Self);
70
72 itkOverrideGetNameOfClassMacro(FastMarchingExtensionImageFilter);
73
75 using typename Superclass::LevelSetType;
76 using typename Superclass::SpeedImageType;
77 using typename Superclass::LevelSetImageType;
78
80 static constexpr unsigned int SetDimension = Superclass::SetDimension;
81
83 static constexpr unsigned int AuxDimension = VAuxDimension;
84
92
95
98 GetAuxiliaryImage(unsigned int idx);
99
101 void
103 {
104 m_AuxAliveValues = values;
105 }
106
108 AuxValueContainer *
110 {
111 return m_AuxAliveValues.GetPointer();
112 }
113
115 void
117 {
118 m_AuxTrialValues = values;
119 }
120
122 typename AuxValueContainer::Pointer
124 {
125 return m_AuxTrialValues;
126 }
127
128 itkConceptMacro(AuxValueHasNumericTraitsCheck, (Concept::HasNumericTraits<TAuxValue>));
129
130protected:
133 void
134 PrintSelf(std::ostream & os, Indent indent) const override;
135
136 void
138
139 double
140 UpdateValue(const IndexType & index, const SpeedImageType * speed, LevelSetImageType * output) override;
141
143 void
145
146 void
148
149private:
150 typename AuxValueContainer::Pointer m_AuxAliveValues{};
151 typename AuxValueContainer::Pointer m_AuxTrialValues{};
152
154};
155} // namespace itk
156
157#ifndef ITK_MANUAL_INSTANTIATION
158# include "itkFastMarchingExtensionImageFilter.hxx"
159#endif
160
161#endif
Level set auxiliary variables type information.
Definition itkLevelSet.h:86
VectorContainer< unsigned int, AuxValueVectorType > AuxValueContainer
Base class for all data objects in ITK.
void PrintSelf(std::ostream &os, Indent indent) const override
void EnlargeOutputRequestedRegion(DataObject *output) override
~FastMarchingExtensionImageFilter() override=default
typename AuxVarType::AuxValueContainer AuxValueContainer
AuxVarTypeDefault< TAuxValue, Self::AuxDimension, Self::SetDimension > AuxVarType
typename AuxVarType::AuxValueVectorType AuxValueVectorType
double UpdateValue(const IndexType &index, const SpeedImageType *speed, LevelSetImageType *output) override
void Initialize(LevelSetImageType *) override
FastMarchingImageFilter< TLevelSet, TSpeedImage > Superclass
typename AuxVarType::AuxImagePointer AuxImagePointer
AuxImageType * GetAuxiliaryImage(unsigned int idx)
Templated n-dimensional image class.
Definition itkImage.h:89
Control indentation during Print() invocation.
Definition itkIndent.h:50
Implements transparent reference counting.
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Represent a n-dimensional index in a n-dimensional image.
Definition itkIndex.h:69