Medical Imaging Interaction Toolkit  2023.12.00
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
mitkArbitraryTimeGeometry.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkArbitraryTimeGeometry_h
14 #define mitkArbitraryTimeGeometry_h
15 
16 //MITK
17 #include <mitkTimeGeometry.h>
18 #include <mitkCommon.h>
19 #include <MitkCoreExports.h>
20 
21 namespace mitk
22 {
45  {
46  public:
48 
50  typedef ArbitraryTimeGeometry self;
51  itkFactorylessNewMacro(Self);
52  itkCloneMacro(Self);
53 
62  TimeStepType CountTimeSteps() const override;
69  TimePointType GetMinimumTimePoint() const override;
77  TimePointType GetMaximumTimePoint() const override;
78 
85  TimePointType GetMinimumTimePoint(TimeStepType step) const override;
91  TimePointType GetMaximumTimePoint(TimeStepType step) const override;
92 
97  TimeBounds GetTimeBounds() const override;
98 
102  TimeBounds GetTimeBounds(TimeStepType step) const override;
103 
111  bool IsValidTimePoint(TimePointType timePoint) const override;
119  bool IsValidTimeStep(TimeStepType timeStep) const override;
129  TimePointType TimeStepToTimePoint(TimeStepType timeStep) const override;
143  TimeStepType TimePointToTimeStep(TimePointType timePoint) const override;
150  BaseGeometry::Pointer GetGeometryCloneForTimeStep(TimeStepType timeStep) const override;
151 
161  BaseGeometry::Pointer GetGeometryForTimePoint(TimePointType timePoint) const override;
171  BaseGeometry::Pointer GetGeometryForTimeStep(TimeStepType timeStep) const override;
172 
176  bool IsValid() const override;
177 
181  void Initialize() override;
182 
190  void Expand(TimeStepType size) override;
191 
202  void ReplaceTimeStepGeometries(const BaseGeometry *geometry) override;
203 
210  void SetTimeStepGeometry(BaseGeometry *geometry, TimeStepType timeStep) override;
211 
215  itk::LightObject::Pointer InternalClone() const override;
216 
217  void ClearAllGeometries();
218 
224  void AppendNewTimeStep(BaseGeometry *geometry, TimePointType minimumTimePoint, TimePointType maximumTimePoint);
225 
227  void AppendNewTimeStepClone(const BaseGeometry* geometry,
228  TimePointType minimumTimePoint,
229  TimePointType maximumTimePoint );
230 
231  void ReserveSpaceForGeometries( TimeStepType numberOfGeometries );
232 
233  void PrintSelf(std::ostream &os, itk::Indent indent) const override;
234 
240  bool HasCollapsedFinalTimeStep() const;
241 
242  protected:
243  ~ArbitraryTimeGeometry() override;
244 
245  std::vector<BaseGeometry::Pointer> m_GeometryVector;
246  std::vector<TimePointType> m_MinimumTimePoints;
247  std::vector<TimePointType> m_MaximumTimePoints;
248 
249  }; // end class ArbitraryTimeGeometry
250 
251 } // end namespace MITK
252 #endif
mitk::ArbitraryTimeGeometry
Definition: mitkArbitraryTimeGeometry.h:44
mitk::TimeGeometry
Definition: mitkTimeGeometry.h:43
itk::SmartPointer< Self >
mitkTimeGeometry.h
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::ArbitraryTimeGeometry::m_GeometryVector
std::vector< BaseGeometry::Pointer > m_GeometryVector
Definition: mitkArbitraryTimeGeometry.h:245
mitk::ArbitraryTimeGeometry::m_MaximumTimePoints
std::vector< TimePointType > m_MaximumTimePoints
Definition: mitkArbitraryTimeGeometry.h:247
MitkCoreExports.h
mitk::BaseGeometry
BaseGeometry Describes the geometry of a data object.
Definition: mitkBaseGeometry.h:94
mitkCommon.h
mitk::TimeStepType
std::size_t TimeStepType
Definition: mitkTimeGeometry.h:27
mitkClassMacro
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:36
mitk::TimePointType
mitk::ScalarType TimePointType
Definition: mitkTimeGeometry.h:26
mitk::ArbitraryTimeGeometry::m_MinimumTimePoints
std::vector< TimePointType > m_MinimumTimePoints
Definition: mitkArbitraryTimeGeometry.h:246
mitk::TimeBounds
itk::FixedArray< ScalarType, 2 > TimeBounds
Standard typedef for time-bounds.
Definition: mitkBaseGeometry.h:44
MITKCORE_EXPORT
#define MITKCORE_EXPORT
Definition: MitkCoreExports.h:15