Medical Imaging Interaction Toolkit  2016.11.0
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,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 
17 #ifndef ArbitraryTimeGeometry_h
18 #define ArbitraryTimeGeometry_h
19 
20 // MITK
21 #include <MitkCoreExports.h>
22 #include <mitkCommon.h>
23 #include <mitkTimeGeometry.h>
24 
25 namespace mitk
26 {
49  {
50  public:
52 
54  typedef ArbitraryTimeGeometry self;
55  itkFactorylessNewMacro(Self) itkCloneMacro(Self)
56 
65  virtual TimeStepType CountTimeSteps() const;
72  virtual TimePointType GetMinimumTimePoint() const;
80  virtual TimePointType GetMaximumTimePoint() const;
81 
88  virtual TimePointType GetMinimumTimePoint(TimeStepType step) const;
94  virtual TimePointType GetMaximumTimePoint(TimeStepType step) const;
95 
100  virtual TimeBounds GetTimeBounds() const;
101 
105  virtual TimeBounds GetTimeBounds(TimeStepType step) const;
106 
114  virtual bool IsValidTimePoint(TimePointType timePoint) const;
122  virtual bool IsValidTimeStep(TimeStepType timeStep) const;
132  virtual TimePointType TimeStepToTimePoint(TimeStepType timeStep) const;
144  virtual TimeStepType TimePointToTimeStep(TimePointType timePoint) const;
151  virtual BaseGeometry::Pointer GetGeometryCloneForTimeStep(TimeStepType timeStep) const;
152 
162  virtual BaseGeometry::Pointer GetGeometryForTimePoint(TimePointType timePoint) const;
172  virtual BaseGeometry::Pointer GetGeometryForTimeStep(TimeStepType timeStep) const;
173 
177  virtual bool IsValid() const;
178 
182  virtual void Initialize();
183 
191  virtual void Expand(TimeStepType size);
192 
203  virtual void ReplaceTimeStepGeometries(const BaseGeometry *geometry);
204 
211  virtual void SetTimeStepGeometry(BaseGeometry *geometry, TimeStepType timeStep);
212 
216  virtual itk::LightObject::Pointer InternalClone() const;
217 
218  void ClearAllGeometries();
219 
225  void AppendTimeStep(BaseGeometry *geometry, TimePointType maximumTimePoint, TimePointType minimumTimePoint = 0);
226 
228  void AppendTimeStepClone(const BaseGeometry *geometry,
229  TimePointType maximumTimePoint,
230  TimePointType minimumTimePoint = 0);
231 
232  void ReserveSpaceForGeometries(TimeStepType numberOfGeometries);
233 
234  virtual void PrintSelf(std::ostream &os, itk::Indent indent) const;
235 
236  protected:
237  virtual ~ArbitraryTimeGeometry();
238 
239  std::vector<BaseGeometry::Pointer> m_GeometryVector;
240  std::vector<TimePointType> m_MaximumTimePoints;
241  TimePointType m_MinimumTimePoint;
242 
243  }; // end class ArbitraryTimeGeometry
244 
245 } // end namespace MITK
246 #endif // ArbitraryTimeGeometry_h
#define MITKCORE_EXPORT
itk::FixedArray< ScalarType, 2 > TimeBounds
Standard typedef for time-bounds.
STL namespace.
DataCollection - Class to facilitate loading/accessing structured data.
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:44
mitk::ScalarType TimePointType
std::vcl_size_t TimeStepType
BaseGeometry Describes the geometry of a data object.