Medical Imaging Interaction Toolkit  2023.12.99-63768887
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 mitkProportionalTimeGeometry_h
14 #define mitkProportionalTimeGeometry_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
mitk::eps
const MITKCORE_EXPORT ScalarType eps
mitk::TimeGeometry
Definition: mitkTimeGeometry.h:43
mitk::Equal
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.
itk::SmartPointer< Self >
mitkGeometry3D.h
mitkTimeGeometry.h
mitk::ProportionalTimeGeometry::m_StepDuration
TimePointType m_StepDuration
Definition: mitkProportionalTimeGeometry.h:233
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::ProportionalTimeGeometry::m_GeometryVector
std::vector< BaseGeometry::Pointer > m_GeometryVector
Definition: mitkProportionalTimeGeometry.h:231
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::TimeBounds
itk::FixedArray< ScalarType, 2 > TimeBounds
Standard typedef for time-bounds.
Definition: mitkBaseGeometry.h:44
mitk::ProportionalTimeGeometry
Definition: mitkProportionalTimeGeometry.h:38
MITKCORE_EXPORT
#define MITKCORE_EXPORT
Definition: MitkCoreExports.h:15
mitk::ProportionalTimeGeometry::m_FirstTimePoint
TimePointType m_FirstTimePoint
Definition: mitkProportionalTimeGeometry.h:232
mitk::ScalarType
double ScalarType
Definition: mitkNumericConstants.h:20