ITK  6.0.0
Insight Toolkit
itkPipelineMonitorImageFilter.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 itkPipelineMonitorImageFilter_h
19#define itkPipelineMonitorImageFilter_h
20
22
23namespace itk
24{
25
67template <typename TImageType>
68class ITK_TEMPLATE_EXPORT PipelineMonitorImageFilter : public ImageToImageFilter<TImageType, TImageType>
69{
70public:
71 ITK_DISALLOW_COPY_AND_MOVE(PipelineMonitorImageFilter);
72
77
80 using SpacingType = typename TImageType::SpacingType;
83 using ImageRegionType = typename Superclass::InputImageRegionType;
84
85 using RegionVectorType = std::vector<typename TImageType::RegionType>;
86
88 itkNewMacro(Self);
89
91 itkOverrideGetNameOfClassMacro(PipelineMonitorImageFilter);
92
102 itkSetMacro(ClearPipelineOnGenerateOutputInformation, bool);
103 itkGetMacro(ClearPipelineOnGenerateOutputInformation, bool);
104 itkBooleanMacro(ClearPipelineOnGenerateOutputInformation);
113 bool
114 VerifyAllInputCanStream(int expectedNumber);
115
116
120 bool
122
126 bool
128
129 bool
131
141 bool
143
148 bool
150
152 bool
154
155 bool
157
158 bool
160
161
162 unsigned int
164 {
165 return m_NumberOfUpdates;
166 }
167 RegionVectorType
169 {
170 return m_OutputRequestedRegions;
171 }
172 RegionVectorType
174 {
175 return m_InputRequestedRegions;
176 }
177 RegionVectorType
179 {
180 return m_UpdatedBufferedRegions;
181 }
182 RegionVectorType
184 {
185 return m_UpdatedRequestedRegions;
186 }
187
188 itkGetConstMacro(UpdatedOutputOrigin, PointType);
189 itkGetConstMacro(UpdatedOutputDirection, DirectionType);
190 itkGetConstMacro(UpdatedOutputSpacing, SpacingType);
191 itkGetConstMacro(UpdatedOutputLargestPossibleRegion, ImageRegionType);
192
195 void
197
198
202 void
204 void
206 void
208 void
210 void
211 GenerateData() override;
214protected:
216
217 // ~PipelineMonitorImageFilter() { } default implementation OK
218
219 void
220 PrintSelf(std::ostream & os, Indent indent) const override;
221
222private:
223 bool m_ClearPipelineOnGenerateOutputInformation{};
224
225 unsigned int m_NumberOfUpdates{};
226
227 unsigned int m_NumberOfClearPipeline{};
228
229 RegionVectorType m_OutputRequestedRegions{};
230 RegionVectorType m_InputRequestedRegions{};
231 RegionVectorType m_UpdatedBufferedRegions{};
232 RegionVectorType m_UpdatedRequestedRegions{};
233
234 PointType m_UpdatedOutputOrigin{};
235 DirectionType m_UpdatedOutputDirection{};
236 SpacingType m_UpdatedOutputSpacing{};
237 ImageRegionType m_UpdatedOutputLargestPossibleRegion{};
238};
239} // end namespace itk
240
241#ifndef ITK_MANUAL_INSTANTIATION
242# include "itkPipelineMonitorImageFilter.hxx"
243#endif
244
245#endif // itkPipelineMonitorImageFilter_hxx
Base class for all data objects in ITK.
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
Enables monitoring, recording and debugging of the pipeline execution and information exchange.
bool VerifyInputFilterExecutedStreaming(int expectedNumber)
bool VerifyAllInputCanStream(int expectedNumber)
std::vector< typename TImageType::RegionType > RegionVectorType
void GenerateOutputInformation() override
RegionVectorType GetUpdatedBufferedRegions() const
void EnlargeOutputRequestedRegion(DataObject *output) override
typename TImageType::PointType PointType
void PrintSelf(std::ostream &os, Indent indent) const override
void GenerateInputRequestedRegion() override
typename TImageType::SpacingType SpacingType
typename TImageType::DirectionType DirectionType
RegionVectorType GetOutputRequestedRegions() const
typename TImageType::Pointer InputImagePointer
void PropagateRequestedRegion(DataObject *output) override
typename Superclass::InputImageRegionType ImageRegionType
RegionVectorType GetUpdatedRequestedRegions() const
bool VerifyInputFilterMatchedUpdateOutputInformation()
typename TImageType::ConstPointer InputImageConstPointer
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....