99 virtual int Instantiate(
bool a_scannerFileIsLUT) = 0;
108 virtual int BuildLUT(
bool a_scannerFileIsLUT) = 0;
139 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3],
140 FLTNB* ap_POI1 = NULL,
FLTNB* ap_POI2 = NULL ) = 0;
155 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3] ) = 0;
181 FLTNB ap_CornerInf1[3],
FLTNB ap_CornerSup1[3],
182 FLTNB ap_CornerInf2[3],
FLTNB ap_CornerSup2[3]) = 0;
201 FLTNB ap_pos_line_point1[3],
FLTNB ap_pos_line_point2[3],
202 FLTNB ap_pos_point1_x[4],
FLTNB ap_pos_point1_y[4],
FLTNB ap_pos_point1_z[4],
203 FLTNB ap_pos_point2_x[4],
FLTNB ap_pos_point2_y[4],
FLTNB ap_pos_point2_z[4] ) = 0;
355 uint16_t* ap_nbHeads,
356 FLTNB* ap_acquisitionZoom,
357 uint16_t* ap_nbOfBins,
360 FLTNB*& ap_CORtoDetectorDistance,
361 int* ap_headRotDirection );
374 int* ap_detectorRotDirection );
454 #define FUNCTION_SCANNER(CLASS) \
455 static vScanner *make_scanner() { return new CLASS(); };
458 #define CLASS_SCANNER(NAME,CLASS) \
459 class NAME##ScannerCreator \
462 NAME##ScannerCreator() \
463 { sAddonManager::GetInstance()->mp_listOfScannerTypes[#NAME] = CLASS::make_scanner; } \
465 static NAME##ScannerCreator ScannerCreator##NAME;
virtual int PROJ_SetSPECTNbBins(uint16_t *ap_nbOfBins)
Set SPECT number of Bins.
virtual FLTNB GetDetectionElementSizeAxial()=0
This header file is mainly used to declare some macro definitions and all includes needed from the st...
virtual int PROJ_SetSPECTNbProjections(uint32_t a_nbOfProjections)
Set SPECT number of views.
virtual int PROJ_GetPETSpecificParameters(FLTNB *ap_maxRingDiff)
Get geometric PET specific parameters to initialize the datafile.
virtual int SetPETMaxAxialDiffmm(FLTNB a_maxAxialDiffmm)
Set the maximal axial difference in mm between 2 crystals forming a lor.
virtual FLTNB GetDetectionElementSizeTrans()=0
virtual int PROJ_SetSPECTAngles(FLTNB *ap_projectionAngles)
Set SPECT projection angles.
oMatrix * mp_positionMatrix_out
virtual int GetGeometricInfoFromDataFile(string a_path)=0
This function is implemented in child classes Recover geometric informations specific to the scanne...
virtual void ShowHelp()=0
This function is implemented in child classes Display help specific to the scanner class...
vScanner()
vScanner constructor. Initialize the member variables to their default values.
FLTNB m_defaultBedDisplacementInMm
virtual uint16_t PROJ_GetSPECTNbProjections()
return the total number of projections for a SPECT acquisition
virtual int CheckParameters()=0
This function is implemented in child classes. Check that all parameters have been correctly initia...
virtual int Initialize()=0
This function is implemented in child classes. Check initialization and set several parameters to t...
virtual uint16_t PROJ_GetSPECTNbPixels()
return the total number of pixels for a SPECT reconstruction
oImageDimensionsAndQuantification * mp_ID
virtual void DescribeSpecific()=0
A pure virtual function used to describe the specific parts of the scanner.
void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification *ap_ID)
Set the pointer to the image dimensions and quantification object.
oMatrix * mp_rotationMatrix
virtual int Instantiate(bool a_scannerFileIsLUT)=0
This function is implemented in child classes. Read the mandatory fields from the scanner file and al...
virtual int SetRotDirection(string a_rotDirection)
Set rotation direction of the system.
Singleton class that Instantiate and initialize the scanner object.
virtual ~vScanner()
vScanner destructor.
void Describe()
A function used to describe the generic parts of the datafile.
virtual int ComputeLUT()
Virtual function which should be implemented by the child classes. It computes the LUT of the scann...
Declaration of class oMatrix.
string GetScannerTypeString()
bool m_allParametersChecked
virtual int GetSPECTSpecificParameters(uint16_t *ap_nbOfProjections, uint16_t *ap_nbHeads, FLTNB *ap_acquisitionZoom, uint16_t *ap_nbOfBins, FLTNB *ap_pixSizeXY, FLTNB *&ap_angles, FLTNB *&ap_CORtoDetectorDistance, int *ap_headRotDirection)
Recover geometric SPECT specific parameters from the scanner to initialize the datafile.
virtual int GetRdmPositionsAndOrientations(int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3], FLTNB ap_Orientation1[3], FLTNB ap_Orientation2[3])=0
This is a pure virtual method that must be implemented by children. Get random positions of the sca...
void SetVerbose(int a_verboseLevel)
Set verbosity.
Declaration of class sRandomNumberGenerator.
virtual int PROJ_SetSPECTCORtoDetectorDistance(FLTNB a_CORtoDetectorDistance)
Set distance between center of rotation and SPECT detectors.
virtual int GetSystemNbElts()=0
This is a pure virtual method that must be implemented by children.
virtual int GetTwoCorners(int a_index1, int a_index2, FLTNB ap_CornerInf1[3], FLTNB ap_CornerSup1[3], FLTNB ap_CornerInf2[3], FLTNB ap_CornerSup2[3])=0
This is a pure virtual method that must be implemented by children. Get the cartesian coordinaters ...
FLTNB GetDefaultBedDisplacementInMm()
Declaration of class sOutputManager.
oMatrix * mp_positionMatrix_ref
Structure designed for basic matrices operations.
This class is designed to manage all dimensions and quantification related stuff. ...
virtual int LoadLUT()
Virtual function which should be implemented by the child classes. Load a precomputed scanner LUT...
virtual int IsAvailableLOR(int a_elt1, int a_elt2)
This function is implemented in child classes. Check if the LOR is available according to the scann...
virtual 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)=0
This is a pure virtual method that must be implemented by children. Get the central positions and o...
virtual int GetPositionWithRandomDepth(int a_index1, int a_index2, FLTNB ap_Position1[3], FLTNB ap_Position2[3])=0
This is a pure virtual method that must be implemented by children. Get the positions of scanner el...
virtual int GetCTSpecificParameters(uint16_t *ap_nbOfProjections, FLTNB *&ap_angles, int *ap_detectorRotDirection)
Recover geometric CT specific parameters from the scanner to initialize the datafile.
Generic class for scanner objects.
virtual int BuildLUT(bool a_scannerFileIsLUT)=0
This function is implemented in child classes. Instantiate the scanner look-up-table (LUT) ...
virtual 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])=0
This is a pure virtual method that must be implemented by children. Get the cartesian coordinaters ...