Medical Imaging Interaction Toolkit  2018.4.99-e1268d66
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 ArbitraryTimeGeometry_h
14 #define ArbitraryTimeGeometry_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 
54 
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;
142  TimeStepType TimePointToTimeStep(TimePointType timePoint) const override;
149  BaseGeometry::Pointer GetGeometryCloneForTimeStep(TimeStepType timeStep) const override;
150 
160  BaseGeometry::Pointer GetGeometryForTimePoint(TimePointType timePoint) const override;
170  BaseGeometry::Pointer GetGeometryForTimeStep(TimeStepType timeStep) const override;
171 
175  bool IsValid() const override;
176 
180  void Initialize() override;
181 
189  void Expand(TimeStepType size) override;
190 
201  void ReplaceTimeStepGeometries(const BaseGeometry *geometry) override;
202 
209  void SetTimeStepGeometry(BaseGeometry *geometry, TimeStepType timeStep) override;
210 
214  itk::LightObject::Pointer InternalClone() const override;
215 
216  void ClearAllGeometries();
217 
223  void AppendNewTimeStep(BaseGeometry *geometry, TimePointType minimumTimePoint, TimePointType maximumTimePoint);
224 
226  void AppendNewTimeStepClone(const BaseGeometry* geometry,
227  TimePointType minimumTimePoint,
228  TimePointType maximumTimePoint );
229 
230  void ReserveSpaceForGeometries( TimeStepType numberOfGeometries );
231 
232  void PrintSelf(std::ostream &os, itk::Indent indent) const override;
233 
234  protected:
235  ~ArbitraryTimeGeometry() override;
236 
237  std::vector<BaseGeometry::Pointer> m_GeometryVector;
238  std::vector<TimePointType> m_MinimumTimePoints;
239  std::vector<TimePointType> m_MaximumTimePoints;
240 
241  }; // end class ArbitraryTimeGeometry
242 
243 } // end namespace MITK
244 #endif // ArbitraryTimeGeometry_h
std::vector< TimePointType > m_MinimumTimePoints
#define MITKCORE_EXPORT
itk::FixedArray< ScalarType, 2 > TimeBounds
Standard typedef for time-bounds.
DataCollection - Class to facilitate loading/accessing structured data.
std::vector< TimePointType > m_MaximumTimePoints
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:40
mitk::ScalarType TimePointType
std::vcl_size_t TimeStepType
std::vector< BaseGeometry::Pointer > m_GeometryVector
BaseGeometry Describes the geometry of a data object.