diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/CudaCglsAlgorithm3D.cpp | 39 | ||||
| -rw-r--r-- | src/CudaSirtAlgorithm3D.cpp | 38 | 
2 files changed, 2 insertions, 75 deletions
| diff --git a/src/CudaCglsAlgorithm3D.cpp b/src/CudaCglsAlgorithm3D.cpp index a5500d6..3677458 100644 --- a/src/CudaCglsAlgorithm3D.cpp +++ b/src/CudaCglsAlgorithm3D.cpp @@ -171,9 +171,6 @@ void CCudaCglsAlgorithm3D::run(int _iNrIterations)  	ASTRA_ASSERT(m_bIsInitialized);  	const CProjectionGeometry3D* projgeom = m_pSinogram->getGeometry(); -	const CConeProjectionGeometry3D* conegeom = dynamic_cast<const CConeProjectionGeometry3D*>(projgeom); -	const CParallelVecProjectionGeometry3D* parvec3dgeom = dynamic_cast<const CParallelVecProjectionGeometry3D*>(projgeom); -	const CConeVecProjectionGeometry3D* conevec3dgeom = dynamic_cast<const CConeVecProjectionGeometry3D*>(projgeom);  	const CVolumeGeometry3D& volgeom = *m_pReconstruction->getGeometry();  	bool ok = true; @@ -182,41 +179,7 @@ void CCudaCglsAlgorithm3D::run(int _iNrIterations)  		ok &= m_pCgls->setGPUIndex(m_iGPUIndex); -		ok &= m_pCgls->setReconstructionGeometry(volgeom.getGridColCount(), -		                                         volgeom.getGridRowCount(), -		                                         volgeom.getGridSliceCount()); -/* -                                  unsigned int iProjAngles, -                                  unsigned int iProjU, -                                  unsigned int iProjV, -                                  float fOriginSourceDistance, -                                  float fOriginDetectorDistance, -                                  float fDetUSize, -                                  float fDetVSize, -                                  const float *pfAngles) -*/ -		if (conegeom) { -			ok &= m_pCgls->setConeGeometry(conegeom->getProjectionCount(), -			                               conegeom->getDetectorColCount(), -			                               conegeom->getDetectorRowCount(), -			                               conegeom->getOriginSourceDistance(), -			                               conegeom->getOriginDetectorDistance(), -			                               conegeom->getDetectorSpacingX(), -			                               conegeom->getDetectorSpacingY(), -			                               conegeom->getProjectionAngles()); -		} else if (parvec3dgeom) { -			ok &= m_pCgls->setPar3DGeometry(parvec3dgeom->getProjectionCount(), -			                                parvec3dgeom->getDetectorColCount(), -			                                parvec3dgeom->getDetectorRowCount(), -			                                parvec3dgeom->getProjectionVectors()); -		} else if (conevec3dgeom) { -			ok &= m_pCgls->setConeGeometry(conevec3dgeom->getProjectionCount(), -			                               conevec3dgeom->getDetectorColCount(), -			                               conevec3dgeom->getDetectorRowCount(), -			                               conevec3dgeom->getProjectionVectors()); -		} else { -			ASTRA_ASSERT(false); -		} +		ok &= m_pCgls->setGeometry(&volgeom, projgeom);  		ok &= m_pCgls->enableSuperSampling(m_iVoxelSuperSampling, m_iDetectorSuperSampling); diff --git a/src/CudaSirtAlgorithm3D.cpp b/src/CudaSirtAlgorithm3D.cpp index da83c7e..d67778f 100644 --- a/src/CudaSirtAlgorithm3D.cpp +++ b/src/CudaSirtAlgorithm3D.cpp @@ -172,10 +172,6 @@ void CCudaSirtAlgorithm3D::run(int _iNrIterations)  	ASTRA_ASSERT(m_bIsInitialized);  	const CProjectionGeometry3D* projgeom = m_pSinogram->getGeometry(); -	const CConeProjectionGeometry3D* conegeom = dynamic_cast<const CConeProjectionGeometry3D*>(projgeom); -	const CParallelProjectionGeometry3D* par3dgeom = dynamic_cast<const CParallelProjectionGeometry3D*>(projgeom); -	const CParallelVecProjectionGeometry3D* parvec3dgeom = dynamic_cast<const CParallelVecProjectionGeometry3D*>(projgeom); -	const CConeVecProjectionGeometry3D* conevec3dgeom = dynamic_cast<const CConeVecProjectionGeometry3D*>(projgeom);  	const CVolumeGeometry3D& volgeom = *m_pReconstruction->getGeometry();  	bool ok = true; @@ -184,39 +180,7 @@ void CCudaSirtAlgorithm3D::run(int _iNrIterations)  		ok &= m_pSirt->setGPUIndex(m_iGPUIndex); -		ok &= m_pSirt->setReconstructionGeometry(volgeom.getGridColCount(), -		                                         volgeom.getGridRowCount(), -		                                         volgeom.getGridSliceCount()); - -		if (conegeom) { -			ok &= m_pSirt->setConeGeometry(conegeom->getProjectionCount(), -			                               conegeom->getDetectorColCount(), -			                               conegeom->getDetectorRowCount(), -			                               conegeom->getOriginSourceDistance(), -			                               conegeom->getOriginDetectorDistance(), -			                               conegeom->getDetectorSpacingX(), -			                               conegeom->getDetectorSpacingY(), -			                               conegeom->getProjectionAngles()); -		} else if (par3dgeom) { -			ok &= m_pSirt->setPar3DGeometry(par3dgeom->getProjectionCount(), -			                                par3dgeom->getDetectorColCount(), -			                                par3dgeom->getDetectorRowCount(), -			                                par3dgeom->getDetectorSpacingX(), -			                                par3dgeom->getDetectorSpacingY(), -			                                par3dgeom->getProjectionAngles()); -		} else if (parvec3dgeom) { -			ok &= m_pSirt->setPar3DGeometry(parvec3dgeom->getProjectionCount(), -			                                parvec3dgeom->getDetectorColCount(), -			                                parvec3dgeom->getDetectorRowCount(), -			                                parvec3dgeom->getProjectionVectors()); -		} else if (conevec3dgeom) { -			ok &= m_pSirt->setConeGeometry(conevec3dgeom->getProjectionCount(), -			                               conevec3dgeom->getDetectorColCount(), -			                               conevec3dgeom->getDetectorRowCount(), -			                               conevec3dgeom->getProjectionVectors()); -		} else { -			ASTRA_ASSERT(false); -		} +		ok &= m_pSirt->setGeometry(&volgeom, projgeom);  		ok &= m_pSirt->enableSuperSampling(m_iVoxelSuperSampling, m_iDetectorSuperSampling); | 
