diff options
| author | Willem Jan Palenstijn <wjp@usecode.org> | 2017-02-09 18:01:03 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-02-09 18:01:03 +0100 | 
| commit | 981d6adc0e3c98a67403b92b1ec4cdb881c62fda (patch) | |
| tree | cccde0fd4a3a2d92919338df4e162c9abfd079e1 /src/Float32ProjectionData3DMemory.cpp | |
| parent | 03c3e5b5043cc8cba9aceeb8641d497edd1be7cf (diff) | |
| parent | 4c665b0d5af3841f20501a5dc01a23e671367856 (diff) | |
| download | astra-981d6adc0e3c98a67403b92b1ec4cdb881c62fda.tar.gz astra-981d6adc0e3c98a67403b92b1ec4cdb881c62fda.tar.bz2 astra-981d6adc0e3c98a67403b92b1ec4cdb881c62fda.tar.xz astra-981d6adc0e3c98a67403b92b1ec4cdb881c62fda.zip  | |
Merge pull request #93 from wjp/GPULink
GPULink support
Diffstat (limited to 'src/Float32ProjectionData3DMemory.cpp')
| -rw-r--r-- | src/Float32ProjectionData3DMemory.cpp | 98 | 
1 files changed, 1 insertions, 97 deletions
diff --git a/src/Float32ProjectionData3DMemory.cpp b/src/Float32ProjectionData3DMemory.cpp index f42e216..69033d5 100644 --- a/src/Float32ProjectionData3DMemory.cpp +++ b/src/Float32ProjectionData3DMemory.cpp @@ -114,7 +114,7 @@ bool CFloat32ProjectionData3DMemory::initialize(CProjectionGeometry3D* _pGeometr  //----------------------------------------------------------------------------------------  // Initialization -bool CFloat32ProjectionData3DMemory::initialize(CProjectionGeometry3D* _pGeometry, CFloat32CustomMemory* _pCustomMemory)  +bool CFloat32ProjectionData3DMemory::initialize(CProjectionGeometry3D* _pGeometry, CFloat32CustomMemory* _pCustomMemory)  {  	m_pGeometry = _pGeometry->clone();  	m_bInitialized = _initialize(m_pGeometry->getDetectorColCount(), m_pGeometry->getProjectionCount(), m_pGeometry->getDetectorRowCount(), _pCustomMemory); @@ -131,102 +131,6 @@ CFloat32ProjectionData3DMemory::~CFloat32ProjectionData3DMemory()  }  //---------------------------------------------------------------------------------------- -// Fetch a projection -CFloat32VolumeData2D* CFloat32ProjectionData3DMemory::fetchProjection(int _iProjectionNr) const -{ -	// fetch slice of the geometry -	CVolumeGeometry2D volGeom(m_pGeometry->getDetectorColCount(), m_pGeometry->getDetectorRowCount()); -	// create new volume data -	CFloat32VolumeData2D* res = new CFloat32VolumeData2D(&volGeom); -	// copy data -	int row, col; -	for (row = 0; row < m_pGeometry->getDetectorRowCount(); ++row) { -		for (col = 0; col < m_pGeometry->getDetectorColCount(); ++col) { -			res->getData()[row*m_pGeometry->getDetectorColCount() + col] =  -				m_pfData[_iProjectionNr * m_pGeometry->getDetectorColCount() + m_pGeometry->getDetectorColCount()* m_pGeometry->getProjectionCount() * row + col]; -		} -	} -	// return -	return res; -} - -//---------------------------------------------------------------------------------------- -// Return a projection -void CFloat32ProjectionData3DMemory::returnProjection(int _iProjectionNr, CFloat32VolumeData2D* _pProjection)  -{ -	/// TODO: check geometry -	// copy data -	int row, col; -	for (row = 0; row < m_pGeometry->getDetectorRowCount(); ++row) { -		for (col = 0; col < m_pGeometry->getDetectorColCount(); ++col) { -			m_pfData[_iProjectionNr * m_pGeometry->getDetectorColCount() + m_pGeometry->getDetectorColCount()* m_pGeometry->getProjectionCount() * row + col] =  -				_pProjection->getData()[row*m_pGeometry->getDetectorColCount() + col]; -		} -	} -} - -//---------------------------------------------------------------------------------------- -// Fetch a sinogram -CFloat32ProjectionData2D* CFloat32ProjectionData3DMemory::fetchSinogram(int _iSliceNr) const -{ -	CParallelProjectionGeometry3D * pParallelProjGeo = (CParallelProjectionGeometry3D *)m_pGeometry; -	CParallelProjectionGeometry2D * pProjGeo2D = pParallelProjGeo->createProjectionGeometry2D(); - -	// create new projection data -	CFloat32ProjectionData2D* res = new CFloat32ProjectionData2D(pProjGeo2D); -	// copy data -	int row, col; - -	int iDetectorColumnCount = m_pGeometry->getDetectorColCount(); -	int iProjectionAngleCount = m_pGeometry->getProjectionCount(); - -	for (row = 0; row < m_pGeometry->getProjectionCount(); ++row) { -		for (col = 0; col < m_pGeometry->getDetectorColCount(); ++col) -		{ -			int iTargetIndex = row * iDetectorColumnCount + col; -			int iSourceIndex = _iSliceNr * iDetectorColumnCount * iProjectionAngleCount + row * iDetectorColumnCount + col; - -			float32 fStoredValue = m_pfData[iSourceIndex]; - -			res->getData()[iTargetIndex] = fStoredValue; -		} -	} - -	delete pProjGeo2D; - -	// return -	return res; -} - -//---------------------------------------------------------------------------------------- -// Return a sinogram -void CFloat32ProjectionData3DMemory::returnSinogram(int _iSliceNr, CFloat32ProjectionData2D* _pSinogram2D)  -{ -	/// TODO: check geometry -	// copy data -	int row, col; -	for (row = 0; row < m_pGeometry->getProjectionCount(); ++row) { -		for (col = 0; col < m_pGeometry->getDetectorColCount(); ++col) { -			m_pfData[_iSliceNr*m_pGeometry->getDetectorColCount()*m_pGeometry->getProjectionCount() + row*m_pGeometry->getDetectorColCount() + col] = -				_pSinogram2D->getData()[row*m_pGeometry->getDetectorColCount() + col]; -		} -	} -} - -//---------------------------------------------------------------------------------------- -// Returns a specific value -float32 CFloat32ProjectionData3DMemory::getDetectorValue(int _iIndex) -{ -	return m_pfData[_iIndex]; -} - -//---------------------------------------------------------------------------------------- -// Sets a specific value -void CFloat32ProjectionData3DMemory::setDetectorValue(int _iIndex, float32 _fValue) -{ -	m_pfData[_iIndex] = _fValue; -} -//----------------------------------------------------------------------------------------  CFloat32ProjectionData3DMemory& CFloat32ProjectionData3DMemory::operator=(const CFloat32ProjectionData3DMemory& _dataIn)  {  | 
