CTL  0.6.1
Computed Tomography Library
arealfocalspotextension.h
Go to the documentation of this file.
1 #ifndef CTL_AREALFOCALSPOTEXTENSION_H
2 #define CTL_AREALFOCALSPOTEXTENSION_H
3 
4 #include "projectorextension.h"
5 #include "acquisition/acquisitionsetup.h"
6 #include <QPointF>
7 #include <QSize>
8 
9 namespace CTL {
66 {
68 
69  // abstract interface
70  public: void configure(const AcquisitionSetup& setup) override;
71 
72 public:
73  ArealFocalSpotExtension() = default;
75  explicit ArealFocalSpotExtension(const QSize& discretization,
76  bool lowExtinctionApproximation = false);
77 
78  void setDiscretization(const QSize& discretization);
79  void enableLowExtinctionApproximation(bool enable = true);
80 
81  // SerializationInterface interface
82  QVariant toVariant() const override;
83  QVariant parameter() const override;
84  void setParameter(const QVariant& parameter) override;
85  bool isLinear() const override;
86 
87 protected:
88  ProjectionData extendedProject(const MetaProjector& nestedProjector) override;
89  QVector<QPointF> discretizationGrid() const;
90 
91  QSize _discretizationSteps{ 1, 1 };
93  bool _lowExtinctionApprox{ false };
94 };
95 
96 } // namespace CTL
97 
100 #endif // CTL_AREALFOCALSPOTEXTENSION_H
bool isLinear() const override
Definition: arealfocalspotextension.cpp:302
bool _lowExtinctionApprox
True if low attenuation approximation has been enabled.
Definition: arealfocalspotextension.h:93
QVector< QPointF > discretizationGrid() const
Definition: arealfocalspotextension.cpp:258
ProjectionData extendedProject(const MetaProjector &nestedProjector) override
Definition: arealfocalspotextension.cpp:82
AcquisitionSetup _setup
A copy of the setup used for acquisition.
Definition: arealfocalspotextension.h:92
Holds a CTSystem together with the information about the system settings for all views from which pro...
Definition: acquisitionsetup.h:175
void enableLowExtinctionApproximation(bool enable=true)
Definition: arealfocalspotextension.cpp:202
The ProjectionData class is the container class used to store all projections from all views.
Definition: projectiondata.h:19
Definition: projectorextension.h:173
QVariant toVariant() const override
Stores the contents of this instance in a QVariant.
Definition: arealfocalspotextension.cpp:208
void configure(const AcquisitionSetup &setup) override
Definition: arealfocalspotextension.cpp:30
void setParameter(const QVariant &parameter) override
Sets the parameters of this instance based on the passed QVariant parameter. Parameters need to follo...
Definition: arealfocalspotextension.cpp:241
QVariant parameter() const override
Definition: arealfocalspotextension.cpp:229
The ArealFocalSpotExtension class is an extension for forward projectors that considers the finite di...
Definition: arealfocalspotextension.h:65
QSize _discretizationSteps
Requested number of discretization steps in both dimensions.
Definition: arealfocalspotextension.h:91
#define CTL_TYPE_ID(newIndex)
Definition: serializationinterface.h:189
The ProjectorExtension class provides the interface to extend projectors with additional functionalit...
Definition: projectorextension.h:136
void setDiscretization(const QSize &discretization)
Definition: arealfocalspotextension.cpp:176