LCOV - code coverage report
Current view: top level - elsa/core/Descriptors - XGIDetectorDescriptor.h (source / functions) Hit Total Coverage
Test: coverage-all.lcov Lines: 1 1 100.0 %
Date: 2024-05-16 04:22:26 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "DetectorDescriptor.h"
       4             : 
       5             : namespace elsa
       6             : {
       7             :     /**
       8             :      * @brief Class representing metadata for a (planar) XGI detector
       9             :      *
      10             :      * @author Matthias Wieczorek (wieczore@cs.tum.edu) - initial code
      11             :      * @author Shen Hu (shen.hu@tum.de) - Port to elsa
      12             :      */
      13             :     class XGIDetectorDescriptor : public DetectorDescriptor
      14             :     {
      15             :     public:
      16             :         using DirVec = axdt::DirVec<real_t>;
      17             : 
      18             :         XGIDetectorDescriptor() = delete;
      19       38751 :         ~XGIDetectorDescriptor() override = default;
      20             : 
      21             :         XGIDetectorDescriptor(const IndexVector_t& numOfCoeffsPerDim,
      22             :                               const RealVector_t& spacingPerDim,
      23             :                               const std::vector<Geometry>& geometryList, const DirVec& sensDir,
      24             :                               bool isParallelBeam = true);
      25             : 
      26             :         bool isParallelBeam() const;
      27             :         const DirVec& getSensDir() const;
      28             : 
      29             :         using DetectorDescriptor::computeRayFromDetectorCoord;
      30             : 
      31             :         RealRay_t computeRayFromDetectorCoord(const RealVector_t& detectorCoord,
      32             :                                               const index_t poseIndex) const override;
      33             : 
      34             :         std::unique_ptr<DetectorDescriptor>
      35             :             cloneWithGeometry(std::vector<Geometry> geometries) const override;
      36             : 
      37             :     protected:
      38             :         XGIDetectorDescriptor* cloneImpl() const override;
      39             :         bool isEqual(const DataDescriptor& other) const override;
      40             : 
      41             :     private:
      42             :         const DirVec
      43             :             _sensDir; ///< sensitivity direction (in-plane orthogonal vector to the grating bars)
      44             :         const bool _isParallelBeam; ///< indicating if the geometry is assumed to represent an
      45             :                                     ///< approximation to a parallel beam geometry
      46             :     };
      47             : } // namespace elsa

Generated by: LCOV version 1.14