Medical Imaging Interaction Toolkit  2018.4.99-12ad79a3
Medical Imaging Interaction Toolkit
mitkGeometry3D.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 GEOMETRY3D_H_HEADER_INCLUDED_C1EBD0AD
14 #define GEOMETRY3D_H_HEADER_INCLUDED_C1EBD0AD
15 
16 #include "mitkNumericTypes.h"
17 #include <MitkCoreExports.h>
18 #include <mitkCommon.h>
19 
20 #include "itkScalableAffineTransform.h"
21 #include <itkIndex.h>
22 
23 #include "mitkBaseGeometry.h"
24 
25 class vtkLinearTransform;
26 
27 namespace mitk
28 {
29  //##Documentation
30  //## @brief Standard implementation of BaseGeometry.
31  //##
32  //## @ingroup Geometry
34  {
35  public:
37 
38  typedef itk::QuaternionRigidTransform<ScalarType> QuaternionTransformType;
39  typedef QuaternionTransformType::VnlQuaternionType VnlQuaternionType;
40 
42  itkFactorylessNewMacro(Self) mitkNewMacro1Param(Self, const Self &)
43 
44  itkCloneMacro(Self)
45  // itkGetConstReferenceMacro(TimeBounds, TimeBounds);
46 
47  // virtual void SetTimeBounds(const TimeBounds& timebounds);
48 
49  protected : Geometry3D();
50  Geometry3D(const Geometry3D &);
51 
52  //##Documentation
53  //## @brief clones the geometry
54  //##
55  //## Overwrite in all sub-classes.
56  //## Normally looks like:
57  //## \code
58  //## Self::Pointer newGeometry = new Self(*this);
59  //## newGeometry->UnRegister();
60  //## return newGeometry.GetPointer();
61  //## \endcode
62  itk::LightObject::Pointer InternalClone() const override;
63 
64  ~Geometry3D() override;
65 
66  //##Documentation
67  //## @brief PreSetSpacing
68  //##
69  //## These virtual function allows a different beahiour in subclasses.
70  //## Do implement them in every subclass of BaseGeometry. If not needed, use
71  //## {Superclass::PreSetSpacing();};
72  void PreSetSpacing(const mitk::Vector3D &aSpacing) override { Superclass::PreSetSpacing(aSpacing); };
73  };
74 } // namespace mitk
75 
76 #endif /* GEOMETRY3D_H_HEADER_INCLUDED_C1EBD0AD */
Standard implementation of BaseGeometry.
#define MITKCORE_EXPORT
#define mitkNewMacro1Param(classname, type)
Definition: mitkCommon.h:72
double ScalarType
DataCollection - Class to facilitate loading/accessing structured data.
QuaternionTransformType::VnlQuaternionType VnlQuaternionType
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:40
BaseGeometry Describes the geometry of a data object.
itk::QuaternionRigidTransform< ScalarType > QuaternionTransformType