ITK  6.0.0
Insight Toolkit
itkExtensionVelocitiesImageFilter.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 itkExtensionVelocitiesImageFilter_h
19 #define itkExtensionVelocitiesImageFilter_h
20 
24 
25 namespace itk
26 {
49 template <typename TLevelSet, typename TAuxValue = float, unsigned int VAuxDimension = 1>
50 class ITK_TEMPLATE_EXPORT ExtensionVelocitiesImageFilter : public ReinitializeLevelSetImageFilter<TLevelSet>
51 {
52 public:
53  ITK_DISALLOW_COPY_AND_MOVE(ExtensionVelocitiesImageFilter);
54 
60 
62  itkNewMacro(Self);
63 
65  itkOverrideGetNameOfClassMacro(ExtensionVelocitiesImageFilter);
66 
72  using NodeType = typename LevelSetType::NodeType;
75 
77  static constexpr unsigned int SetDimension = LevelSetType::SetDimension;
78 
87 
89  static constexpr unsigned int AuxDimension = VAuxDimension;
90 
92  void
93  SetInputVelocityImage(const AuxImageType * ptr, unsigned int idx = 0);
94 
95  const AuxImageType *
96  GetInputVelocityImage(unsigned int idx = 0);
97 
99  AuxImageType *
100  GetOutputVelocityImage(unsigned int idx = 0);
101 
102 #ifdef ITK_USE_CONCEPT_CHECKING
103  // Begin concept checking
104  itkConceptMacro(AuxValueHasNumericTraitsCheck, (Concept::HasNumericTraits<TAuxValue>));
105  itkConceptMacro(LevelSetOStreamWritableCheck, (Concept::OStreamWritable<PixelType>));
106  // End concept checking
107 #endif
108 
109 protected:
111  ~ExtensionVelocitiesImageFilter() override = default;
112 
113  void
114  GenerateDataFull() override;
115 
116  void
117  GenerateDataNarrowBand() override;
118 
119  void
120  AllocateOutput() override;
121 
122  void
123  EnlargeOutputRequestedRegion(DataObject *) override;
124 
125 private:
128 
132 
133  typename LocatorType::Pointer m_Locator{};
134 
136 };
137 } // namespace itk
138 
139 #ifndef ITK_MANUAL_INSTANTIATION
140 # include "itkExtensionVelocitiesImageFilter.hxx"
141 #endif
142 
143 #endif
itk::FastMarchingExtensionImageFilter
Extend auxiliary variables smoothly using Fast Marching.
Definition: itkFastMarchingExtensionImageFilter.h:59
itk::ExtensionVelocitiesImageFilter::NodeContainerPointer
typename LevelSetType::NodeContainerPointer NodeContainerPointer
Definition: itkExtensionVelocitiesImageFilter.h:74
itk::LevelSetTypeDefault
Level set type information.
Definition: itkLevelSet.h:40
itk::Concept::OStreamWritable
Definition: itkConceptChecking.h:638
itk::Concept::HasNumericTraits
Definition: itkConceptChecking.h:716
itk::detail::VectorContainer
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
Definition: itkVectorContainer.h:51
itk::ExtensionVelocitiesImageFilter::LevelSetConstPointer
typename LevelSetType::LevelSetConstPointer LevelSetConstPointer
Definition: itkExtensionVelocitiesImageFilter.h:70
itk::ExtensionVelocitiesImageFilter::AuxValueVectorType
typename AuxVarType::AuxValueVectorType AuxValueVectorType
Definition: itkExtensionVelocitiesImageFilter.h:82
itk::LevelSetVelocityNeighborhoodExtractor
Locate pixels of a particular level set.
Definition: itkLevelSetVelocityNeighborhoodExtractor.h:54
itk::Vector
A templated class holding a n-Dimensional vector.
Definition: itkVector.h:62
itkFastMarchingExtensionImageFilter.h
itk::ExtensionVelocitiesImageFilter::AuxValueContainer
typename AuxVarType::AuxValueContainer AuxValueContainer
Definition: itkExtensionVelocitiesImageFilter.h:83
itk::ExtensionVelocitiesImageFilter::AuxImagePointer
typename AuxVarType::AuxImagePointer AuxImagePointer
Definition: itkExtensionVelocitiesImageFilter.h:85
itk::SmartPointer< Self >
itk::ExtensionVelocitiesImageFilter::NodeContainer
typename LevelSetType::NodeContainer NodeContainer
Definition: itkExtensionVelocitiesImageFilter.h:73
itk::LevelSetNode
Represent a node in a level set.
Definition: itkLevelSetNode.h:45
itk::ExtensionVelocitiesImageFilter::AuxImageType
typename AuxVarType::AuxImageType AuxImageType
Definition: itkExtensionVelocitiesImageFilter.h:84
itk::AuxVarTypeDefault::AuxImagePointer
typename AuxImageType::Pointer AuxImagePointer
Definition: itkLevelSet.h:111
itkLevelSetVelocityNeighborhoodExtractor.h
itk::LevelSetTypeDefault::LevelSetPointer
typename TLevelSet::Pointer LevelSetPointer
Definition: itkLevelSet.h:51
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:55
itk::ExtensionVelocitiesImageFilter::LevelSetPointer
typename LevelSetType::LevelSetPointer LevelSetPointer
Definition: itkExtensionVelocitiesImageFilter.h:69
itkReinitializeLevelSetImageFilter.h
itk::ExtensionVelocitiesImageFilter::NodeType
typename LevelSetType::NodeType NodeType
Definition: itkExtensionVelocitiesImageFilter.h:72
itk::LevelSetTypeDefault::NodeContainerPointer
typename NodeContainer::Pointer NodeContainerPointer
Definition: itkLevelSet.h:64
itk::AuxVarTypeDefault::AuxValueType
TPixel AuxValueType
Definition: itkLevelSet.h:93
itk::AuxVarTypeDefault
Level set auxiliary variables type information.
Definition: itkLevelSet.h:85
itk::ExtensionVelocitiesImageFilter::AuxValueType
typename AuxVarType::AuxValueType AuxValueType
Definition: itkExtensionVelocitiesImageFilter.h:81
itk::LevelSetTypeDefault::LevelSetConstPointer
typename TLevelSet::ConstPointer LevelSetConstPointer
Definition: itkLevelSet.h:52
itkConceptMacro
#define itkConceptMacro(name, concept)
Definition: itkConceptChecking.h:65
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnatomicalOrientation.h:29
itk::ExtensionVelocitiesImageFilter::AuxImageConstPointer
typename AuxVarType::AuxImageConstPointer AuxImageConstPointer
Definition: itkExtensionVelocitiesImageFilter.h:86
itk::Image
Templated n-dimensional image class.
Definition: itkImage.h:88
itk::ExtensionVelocitiesImageFilter
Extend velocities smoothly from a particular level set.
Definition: itkExtensionVelocitiesImageFilter.h:50
itk::LevelSetTypeDefault::PixelType
typename TLevelSet::PixelType PixelType
Definition: itkLevelSet.h:55
itk::ExtensionVelocitiesImageFilter::PixelType
typename LevelSetType::PixelType PixelType
Definition: itkExtensionVelocitiesImageFilter.h:71
itk::DataObject
Base class for all data objects in ITK.
Definition: itkDataObject.h:293
itk::AuxVarTypeDefault::AuxImageConstPointer
typename AuxImageType::ConstPointer AuxImageConstPointer
Definition: itkLevelSet.h:112
itk::ReinitializeLevelSetImageFilter
Reinitialize the level set to the signed distance function.
Definition: itkReinitializeLevelSetImageFilter.h:55