Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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