ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkFastMarchingExtensionImageFilterBase.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 itkFastMarchingExtensionImageFilterBase_h
19#define itkFastMarchingExtensionImageFilterBase_h
20
22#include "itkVectorContainer.h"
23
24namespace itk
25{
55template <typename TInput, typename TOutput, typename TAuxValue, unsigned int VAuxDimension>
56class ITK_TEMPLATE_EXPORT FastMarchingExtensionImageFilterBase : public FastMarchingImageFilterBase<TInput, TOutput>
57{
58public:
59 ITK_DISALLOW_COPY_AND_MOVE(FastMarchingExtensionImageFilterBase);
60
66 using typename Superclass::Traits;
67
69 itkNewMacro(Self);
70
72 itkOverrideGetNameOfClassMacro(FastMarchingExtensionImageFilterBase);
73
75 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
76
78 static constexpr unsigned int AuxDimension = VAuxDimension;
79
81 using AuxValueType = TAuxValue;
84
86 using AuxValueContainerConstIterator = typename AuxValueContainerType::ConstIterator;
87
90
91
93 using typename Superclass::NodeType;
94 using typename Superclass::NodePairType;
95
96 // using typename Superclass::NodeContainerType;
97 // using typename Superclass::NodeContainerPointer;
98 // using typename Superclass::NodeContainerConstIterator;
99
103
104 using typename Superclass::OutputImageType;
105 using typename Superclass::OutputPixelType;
106 using typename Superclass::InternalNodeStructure;
107
110 GetAuxiliaryImage(const unsigned int idx);
111
113 itkSetObjectMacro(AuxiliaryAliveValues, AuxValueContainerType);
114 itkGetModifiableObjectMacro(AuxiliaryAliveValues, AuxValueContainerType);
116
118 itkSetObjectMacro(AuxiliaryTrialValues, AuxValueContainerType);
119 itkGetModifiableObjectMacro(AuxiliaryTrialValues, AuxValueContainerType);
121
122 itkConceptMacro(AuxValueHasNumericTraitsCheck, (Concept::HasNumericTraits<TAuxValue>));
123
124protected:
127 void
128 PrintSelf(std::ostream & os, Indent indent) const override;
129
130 void
132
133 void
134 UpdateValue(OutputImageType * oImage, const NodeType & iNode) override;
135
137 void
139
140 void
142
145
146private:
147 AuxImageType * m_AuxImages[VAuxDimension]{};
148};
149} // namespace itk
150
151#ifndef ITK_MANUAL_INSTANTIATION
152# include "itkFastMarchingExtensionImageFilterBase.hxx"
153#endif
154
155#endif
Base class for all data objects in ITK.
typename AuxValueContainerType::ConstIterator AuxValueContainerConstIterator
FastMarchingImageFilterBase< TInput, TOutput > Superclass
typename AuxValueContainerType::Pointer AuxValueContainerPointer
~FastMarchingExtensionImageFilterBase() override=default
void InitializeOutput(OutputImageType *) override
void EnlargeOutputRequestedRegion(DataObject *output) override
void PrintSelf(std::ostream &os, Indent indent) const override
void UpdateValue(OutputImageType *oImage, const NodeType &iNode) override
Update value for a given node.
AuxImageType * GetAuxiliaryImage(const unsigned int idx)
typename Superclass::OutputDomainType OutputImageType
FastMarchingTraits< TInput, TOutput > Traits
typename Traits::NodePairContainerType NodePairContainerType
typename Traits::NodePairContainerConstIterator NodePairContainerConstIterator
typename Traits::NodePairContainerPointer NodePairContainerPointer
typename Superclass::OutputDomainType OutputImageType
typename Traits::OutputPixelType OutputPixelType
Templated n-dimensional image class.
Definition itkImage.h:89
Control indentation during Print() invocation.
Definition itkIndent.h:50
Implements transparent reference counting.
A templated class holding a n-Dimensional vector.
Definition itkVector.h:63
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
detail::VectorContainer< std::conditional_t< std::is_void_v< T2 >, SizeValueType, T1 >, std::conditional_t< std::is_void_v< T2 >, T1, T2 > > VectorContainer