CASToR  3.2
Tomographic Reconstruction (PET/SPECT/CT)
include/scanner/iScannerCT.hh
Go to the documentation of this file.
1 
8 #ifndef ISCANNERCT_HH
9 #define ISCANNERCT_HH 1
10 
11 #include "gVariables.hh"
12 #include "vScanner.hh"
13 #include "sAddonManager.hh"
14 
22 class iScannerCT : public vScanner
23 {
24  // -------------------------------------------------------------------
25  // Constructor & Destructor
26  public:
31  iScannerCT();
35  ~iScannerCT();
36 
37 
38  // -------------------------------------------------------------------
39  // Public member functions
40  public:
41  // Function for automatic insertion (put the class name as the parameters and do not add semi-colon at the end of the line)
47  void DescribeSpecific();
56  int Instantiate(bool a_scannerFileIsLUT);
63  int CheckParameters();
69  int Initialize();
77  int BuildLUT( bool a_scannerFileIsLUT );
93  int GetPositionsAndOrientations( int a_index1, int a_index2,
94  FLTNB ap_Position1[3], FLTNB ap_Position2[3],
95  FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3],
96  FLTNB* ap_POI1 = NULL, FLTNB* ap_POI2 = NULL );
113  int GetRdmPositionsAndOrientations( int a_index1, int a_index2,
114  FLTNB ap_Position1[3], FLTNB ap_Position2[3],
115  FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3] );
126  int GetPositionWithRandomDepth( int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3] );
139  int GetTwoCorners( int a_index1, int a_index2,
140  FLTNB ap_CornerInf1[3], FLTNB ap_CornerSup1[3],
141  FLTNB ap_CornerInf2[3], FLTNB ap_CornerSup2[3] );
159  int GetEdgesCenterPositions( int a_index1, int a_index2,
160  FLTNB ap_pos_line_point1[3], FLTNB ap_pos_line_point2[3],
161  FLTNB ap_pos_point1_x[4], FLTNB ap_pos_point1_y[4], FLTNB ap_pos_point1_z[4],
162  FLTNB ap_pos_point2_x[4], FLTNB ap_pos_point2_y[4], FLTNB ap_pos_point2_z[4] );
174  int GetGeometricInfoFromDataFile( string a_pathToDF );
181  inline int GetSystemNbElts()
182  {return m_nbPixels;}
188  void ShowHelp();
194  {return m_pixelsSizeTrans;}
200  {return m_pixelsSizeAxial;}
210  int GetCTSpecificParameters( uint16_t* ap_nbOfProjections,
211  FLTNB*& ap_angles,
212  int* ap_detectorRotDirection );
213 
214  // -------------------------------------------------------------------
215  // Private member functions
216  private:
224  int LoadLUT();
233  int ComputeLUT();
234 
235  // -------------------------------------------------------------------
236  // Data members
237  private:
238  int m_nbPixels;
240  uint16_t m_nbOfProjections;
245  uint32_t m_nbPixelsTrans;
249  uint32_t m_nbPixelsAxial;
257  // For the LUT
269 };
270 
271 // Class for automatic insertion (set here the visible scanner type name, put the class name as the parameters and do not add semi-colon at the end of the line)
273 
274 #endif
iScannerCT()
iScannerCT constructor. Initialize the member variables to their default values.
int LoadLUT()
Load a precomputed scanner LUT.
#define FUNCTION_SCANNER(CLASS)
int GetPositionWithRandomDepth(int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3])
Declaration of class vScanner.
int ComputeLUT()
Computes the LUT of the scanner from a generic (.geom) file.
int GetRdmPositionsAndOrientations(int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3])
int Initialize()
Check general initialization and set several parameters to their default value.
This class is used to represent any CT camera with either a CBCT ascii description or a LUT file for ...
int GetGeometricInfoFromDataFile(string a_pathToDF)
int BuildLUT(bool a_scannerFileIsLUT)
int CheckParameters()
Check that all parameters have been correctly initialized.
void DescribeSpecific()
Implementation of the pure virtual eponym function that simply prints info about the scanner...
int GetTwoCorners(int a_index1, int a_index2, FLTNB ap_CornerInf1[3], FLTNB ap_CornerSup1[3], FLTNB ap_CornerInf2[3], FLTNB ap_CornerSup2[3])
int GetEdgesCenterPositions(int a_index1, int a_index2, FLTNB ap_pos_line_point1[3], FLTNB ap_pos_line_point2[3], FLTNB ap_pos_point1_x[4], FLTNB ap_pos_point1_y[4], FLTNB ap_pos_point1_z[4], FLTNB ap_pos_point2_x[4], FLTNB ap_pos_point2_y[4], FLTNB ap_pos_point2_z[4])
~iScannerCT()
iScannerCT destructor.
int GetSystemNbElts()
This is a pure virtual method that must be implemented by children.
int GetPositionsAndOrientations(int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3], FLTNB *ap_POI1=NULL, FLTNB *ap_POI2=NULL)
int GetCTSpecificParameters(uint16_t *ap_nbOfProjections, FLTNB *&ap_angles, int *ap_detectorRotDirection)
int Instantiate(bool a_scannerFileIsLUT)
Generic class for scanner objects.
void ShowHelp()
Display help.
#define CLASS_SCANNER(NAME, CLASS)