ITK  6.0.0
Insight Toolkit
itkTemporalDataObject.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 itkTemporalDataObject_h
19#define itkTemporalDataObject_h
20
21#include "itkDataObject.h"
22#include "itkRingBuffer.h"
23#include "itkTemporalRegion.h"
24#include "ITKVideoCoreExport.h"
25
26namespace itk
27{
33{
34public:
40 enum class TemporalUnit : uint8_t
41 {
42 Frame,
43 RealTime,
44 FrameAndRealTime
45 };
46};
47// Define how to print enumeration
48extern ITKVideoCore_EXPORT std::ostream &
49 operator<<(std::ostream & out, TemporalDataObjectEnums::TemporalUnit value);
50
65class ITK_FORCE_EXPORT_MACRO(ITKVideoCore) TemporalDataObject : public DataObject
66{
67public:
68 ITK_DISALLOW_COPY_AND_MOVE(TemporalDataObject);
69
76
79
82
83#if !defined(ITK_LEGACY_REMOVE)
85 static constexpr TemporalUnitEnum Frame = TemporalUnitEnum::Frame;
86 static constexpr TemporalUnitEnum RealTime = TemporalUnitEnum::RealTime;
87 static constexpr TemporalUnitEnum FrameAndRealTime = TemporalUnitEnum::FrameAndRealTime;
88#endif
89
90 itkNewMacro(Self);
91
93 itkOverrideGetNameOfClassMacro(TemporalDataObject);
94
96 virtual TemporalUnitType
98
100 virtual void
102 virtual void
104 virtual void
111 void
115 virtual void
117 virtual const TemporalRegionType &
119
120 virtual void
122 virtual const TemporalRegionType &
124 virtual void
126 virtual const TemporalRegionType &
128
131 virtual const TemporalRegionType
133
134 void
136
137 bool
139
140 bool
142
143 void
144 CopyInformation(const DataObject *) override;
145
146 void
148
149 void
150 Graft(const DataObject *) override;
151
152protected:
155 void
156 PrintSelf(std::ostream & os, Indent indent) const override;
157
159 BufferType::Pointer m_DataObjectBuffer{};
160
162 TemporalRegionType m_LargestPossibleTemporalRegion{};
163 TemporalRegionType m_RequestedTemporalRegion{};
164 TemporalRegionType m_BufferedTemporalRegion{};
165
166 TemporalUnitEnum m_TemporalUnit{ TemporalUnitEnum::Frame };
167}; // end class TemporalDataObject
168} // end namespace itk
169
170#endif
Base class for all data objects in ITK.
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Base class for most ITK classes.
Definition: itkObject.h:62
Templated ring buffer for holding anything.
Definition: itkRingBuffer.h:41
Contains all enum classes used by TemporalUnit class.
DataObject subclass with knowledge of temporal region.
virtual void SetTemporalUnitToFrameAndRealTime()
virtual const TemporalRegionType GetUnbufferedRequestedTemporalRegion()
void SetRequestedRegion(const DataObject *) override
virtual const TemporalRegionType & GetRequestedTemporalRegion() const
virtual void SetTemporalUnitToFrame()
void SetNumberOfBuffers(SizeValueType num)
virtual void SetRequestedTemporalRegion(const TemporalRegionType &region)
virtual void SetTemporalUnitToRealTime()
virtual void SetLargestPossibleTemporalRegion(const TemporalRegionType &region)
virtual const TemporalRegionType & GetBufferedTemporalRegion() const
void SetRequestedRegionToLargestPossibleRegion() override
void PrintSelf(std::ostream &os, Indent indent) const override
bool RequestedRegionIsOutsideOfTheBufferedRegion() override
SizeValueType GetNumberOfBuffers()
~TemporalDataObject() override
virtual void SetBufferedTemporalRegion(const TemporalRegionType &region)
virtual TemporalUnitType GetTemporalUnit() const
void CopyInformation(const DataObject *) override
bool VerifyRequestedRegion() override
virtual const TemporalRegionType & GetLargestPossibleTemporalRegion() const
void Graft(const DataObject *) override
Region subclass that holds a region in time.
Implements a weak reference to an object.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
class ITK_FORWARD_EXPORT DataObject
Definition: itkDataObject.h:42
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)
class ITK_FORWARD_EXPORT TemporalDataObject
unsigned long SizeValueType
Definition: itkIntTypes.h:86