Medical Imaging Interaction Toolkit  2018.4.99-eed36131
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);
44 
45  itkCloneMacro(Self);
46  // itkGetConstReferenceMacro(TimeBounds, TimeBounds);
47 
48  // virtual void SetTimeBounds(const TimeBounds& timebounds);
49 
50  protected : Geometry3D();
51  Geometry3D(const Geometry3D &);
52 
53  //##Documentation
54  //## @brief clones the geometry
55  //##
56  //## Overwrite in all sub-classes.
57  //## Normally looks like:
58  //## \code
59  //## Self::Pointer newGeometry = new Self(*this);
60  //## newGeometry->UnRegister();
61  //## return newGeometry.GetPointer();
62  //## \endcode
63  itk::LightObject::Pointer InternalClone() const override;
64 
65  ~Geometry3D() override;
66 
67  //##Documentation
68  //## @brief PreSetSpacing
69  //##
70  //## These virtual function allows a different beahiour in subclasses.
71  //## Do implement them in every subclass of BaseGeometry. If not needed, use
72  //## {Superclass::PreSetSpacing();};
73  void PreSetSpacing(const mitk::Vector3D &aSpacing) override { Superclass::PreSetSpacing(aSpacing); };
74  };
75 } // namespace mitk
76 
77 #endif /* GEOMETRY3D_H_HEADER_INCLUDED_C1EBD0AD */
Standard implementation of BaseGeometry.
#define MITKCORE_EXPORT
#define mitkNewMacro1Param(classname, type)
Definition: mitkCommon.h:72
DataCollection - Class to facilitate loading/accessing structured data.
QuaternionTransformType::VnlQuaternionType VnlQuaternionType
void PreSetSpacing(const mitk::Vector3D &aSpacing) override
PreSetSpacing.
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:40
BaseGeometry Describes the geometry of a data object.
itk::QuaternionRigidTransform< ScalarType > QuaternionTransformType