Medical Imaging Interaction Toolkit  2023.12.99-7272c57d
Medical Imaging Interaction Toolkit
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