Medical Imaging Interaction Toolkit  2018.4.99-b5518f0d
Medical Imaging Interaction Toolkit
mitkProportionalTimeGeometry.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 ProportionalTimeGeometry_h
14 #define ProportionalTimeGeometry_h
15 
16 // MITK
17 #include <MitkCoreExports.h>
18 #include <mitkCommon.h>
19 #include <mitkGeometry3D.h>
20 #include <mitkTimeGeometry.h>
21 
22 namespace mitk
23 {
39  {
40  public:
42 
45  itkFactorylessNewMacro(Self);
46  itkCloneMacro(Self);
47 
56  TimeStepType CountTimeSteps() const override;
64  TimePointType GetMinimumTimePoint() const override;
71  TimePointType GetMaximumTimePoint() const override;
72 
79  TimePointType GetMinimumTimePoint(TimeStepType step) const override;
85  TimePointType GetMaximumTimePoint(TimeStepType step) const override;
86 
90  TimeBounds GetTimeBounds() const override;
91 
95  TimeBounds GetTimeBounds(TimeStepType step) const override;
96 
103  bool IsValidTimePoint(TimePointType timePoint) const override;
111  bool IsValidTimeStep(TimeStepType timeStep) const override;
121  TimePointType TimeStepToTimePoint(TimeStepType timeStep) const override;
131  TimeStepType TimePointToTimeStep(TimePointType timePoint) const override;
138  BaseGeometry::Pointer GetGeometryCloneForTimeStep(TimeStepType timeStep) const override;
139 
149  BaseGeometry::Pointer GetGeometryForTimePoint(TimePointType timePoint) const override;
159  BaseGeometry::Pointer GetGeometryForTimeStep(TimeStepType timeStep) const override;
160 
164  bool IsValid() const override;
165 
169  void Initialize() override;
170 
179  void Expand(TimeStepType size) override;
186  void SetTimeStepGeometry(BaseGeometry *geometry, TimeStepType timeStep) override;
187 
198  void ReplaceTimeStepGeometries(const BaseGeometry *geometry) override;
199 
203  itk::LightObject::Pointer InternalClone() const override;
204 
205  itkGetConstMacro(FirstTimePoint, TimePointType);
206  itkSetMacro(FirstTimePoint, TimePointType);
207  itkGetConstMacro(StepDuration, TimePointType);
208  itkSetMacro(StepDuration, TimePointType);
209 
210  // void SetGeometryForTimeStep(TimeStepType timeStep, BaseGeometry& geometry);
211  void ClearAllGeometries();
212  // void AddGeometry(BaseGeometry geometry);
213  void ReserveSpaceForGeometries(TimeStepType numberOfGeometries);
214 
220  void Initialize(const BaseGeometry *geometry, TimeStepType timeSteps);
224  void Initialize(TimeStepType timeSteps);
225 
226  void PrintSelf(std::ostream &os, itk::Indent indent) const override;
227 
228  protected:
229  ~ProportionalTimeGeometry() override;
230 
231  std::vector<BaseGeometry::Pointer> m_GeometryVector;
234  }; // end class ProportialTimeGeometry
235 
254  MITKCORE_EXPORT bool Equal(const mitk::ProportionalTimeGeometry &leftHandSide,
255  const mitk::ProportionalTimeGeometry &rightHandSide,
256  ScalarType eps,
257  bool verbose);
258 
259 } // end namespace MITK
260 #endif // ProportionalTimeGeometry_h
MITKCORE_EXPORT const ScalarType eps
#define MITKCORE_EXPORT
itk::FixedArray< ScalarType, 2 > TimeBounds
Standard typedef for time-bounds.
double ScalarType
DataCollection - Class to facilitate loading/accessing structured data.
MITKNEWMODULE_EXPORT bool Equal(mitk::ExampleDataStructure *leftHandSide, mitk::ExampleDataStructure *rightHandSide, mitk::ScalarType eps, bool verbose)
Returns true if the example data structures are considered equal.
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:40
mitk::ScalarType TimePointType
std::vcl_size_t TimeStepType
BaseGeometry Describes the geometry of a data object.
std::vector< BaseGeometry::Pointer > m_GeometryVector