9 #define ISCANNERCT_HH 1 11 #include "gVariables.hh" 13 #include "sAddonManager.hh" 77 int BuildLUT(
bool a_scannerFileIsLUT );
95 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3],
96 FLTNB* ap_POI1 = NULL,
FLTNB* ap_POI2 = NULL );
115 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3] );
140 FLTNB ap_CornerInf1[3],
FLTNB ap_CornerSup1[3],
141 FLTNB ap_CornerInf2[3],
FLTNB ap_CornerSup2[3] );
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] );
212 int* ap_detectorRotDirection );
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.
FLTNB m_CORtoDetectorDistance
FLTNB * mp_crystalCentralPositionX
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.
FLTNB GetDetectionElementSizeTrans()
This class is used to represent any CT camera with either a CBCT ascii description or a LUT file for ...
FLTNB * mp_crystalCentralPositionY
int GetGeometricInfoFromDataFile(string a_pathToDF)
uint16_t m_nbOfProjections
FLTNB * mp_crystalOrientationY
int BuildLUT(bool a_scannerFileIsLUT)
FLTNB * mp_sourcePositionZ
FLTNB m_CORtoSourceDistance
int CheckParameters()
Check that all parameters have been correctly initialized.
FLTNB * mp_crystalCentralPositionZ
void DescribeSpecific()
Implementation of the pure virtual eponym function that simply prints info about the scanner...
FLTNB * mp_sourcePositionY
FLTNB * mp_crystalOrientationX
FLTNB * mp_crystalOrientationZ
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.
FLTNB * mp_sourcePositionX
FLTNB GetDetectionElementSizeAxial()
int GetSystemNbElts()
This is a pure virtual method that must be implemented by children.
FLTNB * mp_projectionAngles
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)