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