policyList; unsigned int size; public: FORCEINLINE CombineListPolicy(); FORCEINLINE CombineListPolicy(std::vector
_policyList); FORCEINLINE ~CombineListPolicy(); FORCEINLINE void addPolicy(P _policy); FORCEINLINE bool rayPrior(int _iRayIndex); FORCEINLINE bool pixelPrior(int _iVolumeIndex); FORCEINLINE void addWeight(int _iRayIndex, int _iVolumeIndex, float32 weight); FORCEINLINE void rayPosterior(int _iRayIndex); FORCEINLINE void pixelPosterior(int _iVolumeIndex); }; //---------------------------------------------------------------------------------------- /** Empty Policy */ class EmptyPolicy { public: FORCEINLINE EmptyPolicy(); FORCEINLINE ~EmptyPolicy(); FORCEINLINE bool rayPrior(int _iRayIndex); FORCEINLINE bool pixelPrior(int _iVolumeIndex); FORCEINLINE void addWeight(int _iRayIndex, int _iVolumeIndex, float32 weight); FORCEINLINE void rayPosterior(int _iRayIndex); FORCEINLINE void pixelPosterior(int _iVolumeIndex); }; //---------------------------------------------------------------------------------------- /** Policy For SIRT Backprojection */ class SIRTBPPolicy { CFloat32ProjectionData2D* m_pSinogram; CFloat32VolumeData2D* m_pReconstruction; CFloat32ProjectionData2D* m_pTotalRayLength; CFloat32VolumeData2D* m_pTotalPixelWeight; float m_fRelaxation; public: FORCEINLINE SIRTBPPolicy(); FORCEINLINE SIRTBPPolicy(CFloat32VolumeData2D* _pReconstruction, CFloat32ProjectionData2D* _pSinogram, CFloat32VolumeData2D* _pTotalPixelWeight, CFloat32ProjectionData2D* _pTotalRayLength, float _fRelaxation); FORCEINLINE ~SIRTBPPolicy(); FORCEINLINE bool rayPrior(int _iRayIndex); FORCEINLINE bool pixelPrior(int _iVolumeIndex); FORCEINLINE void addWeight(int _iRayIndex, int _iVolumeIndex, float32 weight); FORCEINLINE void rayPosterior(int _iRayIndex); FORCEINLINE void pixelPosterior(int _iVolumeIndex); }; //---------------------------------------------------------------------------------------- /** Policy For Sinogram Mask */ class SinogramMaskPolicy { CFloat32ProjectionData2D* m_pSinogramMask; public: FORCEINLINE SinogramMaskPolicy(); FORCEINLINE SinogramMaskPolicy(CFloat32ProjectionData2D* _pSinogramMask); FORCEINLINE ~SinogramMaskPolicy(); FORCEINLINE bool rayPrior(int _iRayIndex); FORCEINLINE bool pixelPrior(int _iVolumeIndex); FORCEINLINE void addWeight(int _iRayIndex, int _iVolumeIndex, float32 weight); FORCEINLINE void rayPosterior(int _iRayIndex); FORCEINLINE void pixelPosterior(int _iVolumeIndex); }; //---------------------------------------------------------------------------------------- /** Policy For Reconstruction Mask */ class ReconstructionMaskPolicy { CFloat32VolumeData2D* m_pReconstructionMask; public: FORCEINLINE ReconstructionMaskPolicy(); FORCEINLINE ReconstructionMaskPolicy(CFloat32VolumeData2D* _pReconstructionMask); FORCEINLINE ~ReconstructionMaskPolicy(); FORCEINLINE bool rayPrior(int _iRayIndex); FORCEINLINE bool pixelPrior(int _iVolumeIndex); FORCEINLINE void addWeight(int _iRayIndex, int _iVolumeIndex, float32 weight); FORCEINLINE void rayPosterior(int _iRayIndex); FORCEINLINE void pixelPosterior(int _iVolumeIndex); }; //---------------------------------------------------------------------------------------- #include "DataProjectorPolicies.inl" } // end namespace #endif