75 virtual int Instantiate(
bool a_scannerFileIsLUT) = 0;
84 virtual int BuildLUT(
bool a_scannerFileIsLUT) = 0;
115 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3],
116 FLTNB* ap_POI1 = NULL,
FLTNB* ap_POI2 = NULL ) = 0;
131 FLTNB ap_Orientation1[3],
FLTNB ap_Orientation2[3] ) = 0;
157 FLTNB ap_CornerInf1[3],
FLTNB ap_CornerSup1[3],
158 FLTNB ap_CornerInf2[3],
FLTNB ap_CornerSup2[3]) = 0;
295 uint16_t* ap_nbHeads,
296 uint16_t* ap_nbOfBins,
299 FLTNB*& ap_CORtoDetectorDistance,
300 int* ap_headRotDirection );
379 #define FUNCTION_SCANNER(CLASS) \
380 static vScanner *make_scanner() { return new CLASS(); };
383 #define CLASS_SCANNER(NAME,CLASS) \
384 class NAME##ScannerCreator \
387 NAME##ScannerCreator() \
388 { sAddonManager::GetInstance()->mp_listOfScannerTypes[#NAME] = CLASS::make_scanner; } \
390 static NAME##ScannerCreator ScannerCreator##NAME;
virtual int PROJ_SetSPECTNbBins(uint16_t *ap_nbOfBins)
Set SPECT number of Bins.
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_SetSPECTAngles(FLTNB *ap_projectionAngles)
Set SPECT projection angles.
oMatrix * mp_positionMatrix_out
virtual int PROJ_GetPETSpecificParameters(int *ap_maxRingDiff)
Get geometric PET specific parameters to initialize the datafile.
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.
virtual uint16_t PROJ_GetSPECTNbProjections()
return the total number of projections for a SPECT acquisition
virtual int GetScannerLayerNbRings(int a_layer)
Return an error by default.
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
FLTNB m_multiBedDisplacementInMm
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.
virtual int ComputeLUT()
Virtual function which should be implemented by the child classes. It computes the LUT of the scann...
Declaration of class oMatrix.
bool m_allParametersChecked
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.
FLTNB GetMultiBedDisplacementInMm()
virtual int GetSPECTSpecificParameters(uint16_t *ap_nbOfProjections, uint16_t *ap_nbHeads, 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 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 ...
virtual int GetGeometricInfoFromDatafile(string a_path)=0
This function is implemented in child classes Recover geometric informations specific to the scanne...
virtual int SetPETMaxRingDiff(int a_maxRingDiff)
Set the maximal ring difference.
Declaration of class sOutputManager.
oMatrix * mp_positionMatrix_ref
Structure designed for basic matrices operations.
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...
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) ...