NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkGE6000_TomosynthesisGeometry.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkGE6000_TomosynthesisGeometry_h
16 #define itkGE6000_TomosynthesisGeometry_h
17 
18 #include "itkProjectionGeometry.h"
19 
20 namespace itk {
21 
26 template <class IntensityType = float>
27 class ITK_EXPORT GE6000_TomosynthesisGeometry :
28  public ProjectionGeometry<IntensityType>
29 {
30 public:
31 
35  typedef SmartPointer<Self> Pointer;
36  typedef SmartPointer<const Self> ConstPointer;
37 
39  itkNewMacro(Self);
40 
43 
47 
50 
53 
56 
59  virtual PerspectiveProjectionTransformPointerType GetPerspectiveTransform(int i);
60 
63  virtual EulerAffineTransformPointerType GetAffineTransform(int i);
64 
66  virtual unsigned int GetNumberOfProjections(void) { return 15; }
67 
68 
69 protected:
72  void PrintSelf(std::ostream& os, Indent indent) const;
73 
75  double CalcNormalPosition(double alpha);
76 
77 
78 private:
79  GE6000_TomosynthesisGeometry(const Self&); //purposely not implemented
80  void operator=(const Self&); //purposely not implemented
81 
82 };
83 
84 } // end namespace itk
85 
86 #ifndef ITK_MANUAL_INSTANTIATION
87 #include "itkGE6000_TomosynthesisGeometry.txx"
88 #endif
89 
90 #endif
91 
itk::Vector< double, 2 > ProjectionSpacingType
Definition: itkProjectionGeometry.h:47
itk::Vector< double, 3 > VolumeSpacingType
Definition: itkProjectionGeometry.h:50
Superclass::PerspectiveProjectionTransformType PerspectiveProjectionTransformType
Definition: itkGE6000_TomosynthesisGeometry.h:54
Superclass::VolumeSpacingType VolumeSpacingType
Definition: itkGE6000_TomosynthesisGeometry.h:49
Definition: niftkITKAffineResampleImage.cxx:74
itk::Size< 3 > VolumeSizeType
Definition: itkProjectionGeometry.h:49
itk::Size< 2 > ProjectionSizeType
Definition: itkProjectionGeometry.h:43
PerspectiveProjectionTransform of a vector space (e.g. space coordinates)
Definition: itkPerspectiveProjectionTransform.h:39
Superclass::PerspectiveProjectionTransformPointerType PerspectiveProjectionTransformPointerType
Definition: itkGE6000_TomosynthesisGeometry.h:55
Euler Affine transform.
Definition: itkEulerAffineTransform.h:38
SmartPointer< const Self > ConstPointer
Definition: itkGE6000_TomosynthesisGeometry.h:36
Class to calculate the geometry of a GE tomosynthesis machine.
Definition: itkGE6000_TomosynthesisGeometry.h:27
Abstract class to calculate the geometry of a CT or tomo machine.
Definition: itkProjectionGeometry.h:29
Superclass::VolumeSizeType VolumeSizeType
Definition: itkGE6000_TomosynthesisGeometry.h:48
GLclampf GLclampf GLclampf alpha
Definition: glew.h:1504
ProjectionGeometry< IntensityType > Superclass
Definition: itkGE6000_TomosynthesisGeometry.h:34
PerspectiveProjectionTransformType::Pointer PerspectiveProjectionTransformPointerType
Definition: itkProjectionGeometry.h:56
Superclass::ProjectionSizeType ProjectionSizeType
Definition: itkGE6000_TomosynthesisGeometry.h:42
virtual unsigned int GetNumberOfProjections(void)
Return the number of projections for this geometry.
Definition: itkGE6000_TomosynthesisGeometry.h:66
Superclass::EulerAffineTransformPointerType EulerAffineTransformPointerType
Definition: itkGE6000_TomosynthesisGeometry.h:52
Superclass::ProjectionSpacingType ProjectionSpacingType
Definition: itkGE6000_TomosynthesisGeometry.h:46
virtual ~GE6000_TomosynthesisGeometry()
Definition: itkGE6000_TomosynthesisGeometry.h:71
SmartPointer< Self > Pointer
Definition: itkGE6000_TomosynthesisGeometry.h:35
Superclass::EulerAffineTransformType EulerAffineTransformType
Definition: itkGE6000_TomosynthesisGeometry.h:51
EulerAffineTransformType::Pointer EulerAffineTransformPointerType
Definition: itkProjectionGeometry.h:53
GE6000_TomosynthesisGeometry Self
Definition: itkGE6000_TomosynthesisGeometry.h:33