diff options
Diffstat (limited to 'src/ConeProjectionGeometry3D.cpp')
-rw-r--r-- | src/ConeProjectionGeometry3D.cpp | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/src/ConeProjectionGeometry3D.cpp b/src/ConeProjectionGeometry3D.cpp index 11a244d..abd9124 100644 --- a/src/ConeProjectionGeometry3D.cpp +++ b/src/ConeProjectionGeometry3D.cpp @@ -266,84 +266,5 @@ void CConeProjectionGeometry3D::projectPoint(double fX, double fY, double fZ, fU = detectorOffsetXToColIndexFloat( (fS * (m_fOriginSourceDistance + m_fOriginDetectorDistance)) / fD ); } -void CConeProjectionGeometry3D::backprojectPointX(int iAngleIndex, double fU, double fV, - double fX, double &fY, double &fZ) const -{ - ASTRA_ASSERT(iAngleIndex >= 0); - ASTRA_ASSERT(iAngleIndex < m_iProjectionAngleCount); - - SConeProjection *projs = genConeProjections(1, m_iDetectorColCount, m_iDetectorRowCount, - m_fOriginSourceDistance, - m_fOriginDetectorDistance, - m_fDetectorSpacingX, m_fDetectorSpacingY, - &m_pfProjectionAngles[iAngleIndex]); - - SConeProjection &proj = projs[0]; - - double px = proj.fDetSX + fU * proj.fDetUX + fV * proj.fDetVX; - double py = proj.fDetSY + fU * proj.fDetUY + fV * proj.fDetVY; - double pz = proj.fDetSZ + fU * proj.fDetUZ + fV * proj.fDetVZ; - - double a = (fX - proj.fSrcX) / (px - proj.fSrcX); - - fY = proj.fSrcY + a * (py - proj.fSrcY); - fZ = proj.fSrcZ + a * (pz - proj.fSrcZ); - - delete[] projs; -} - -void CConeProjectionGeometry3D::backprojectPointY(int iAngleIndex, double fU, double fV, - double fY, double &fX, double &fZ) const -{ - ASTRA_ASSERT(iAngleIndex >= 0); - ASTRA_ASSERT(iAngleIndex < m_iProjectionAngleCount); - - SConeProjection *projs = genConeProjections(1, m_iDetectorColCount, m_iDetectorRowCount, - m_fOriginSourceDistance, - m_fOriginDetectorDistance, - m_fDetectorSpacingX, m_fDetectorSpacingY, - &m_pfProjectionAngles[iAngleIndex]); - - SConeProjection &proj = projs[0]; - - double px = proj.fDetSX + fU * proj.fDetUX + fV * proj.fDetVX; - double py = proj.fDetSY + fU * proj.fDetUY + fV * proj.fDetVY; - double pz = proj.fDetSZ + fU * proj.fDetUZ + fV * proj.fDetVZ; - - double a = (fY - proj.fSrcY) / (py - proj.fSrcY); - - fX = proj.fSrcX + a * (px - proj.fSrcX); - fZ = proj.fSrcZ + a * (pz - proj.fSrcZ); - - delete[] projs; -} - -void CConeProjectionGeometry3D::backprojectPointZ(int iAngleIndex, double fU, double fV, - double fZ, double &fX, double &fY) const -{ - ASTRA_ASSERT(iAngleIndex >= 0); - ASTRA_ASSERT(iAngleIndex < m_iProjectionAngleCount); - - SConeProjection *projs = genConeProjections(1, m_iDetectorColCount, m_iDetectorRowCount, - m_fOriginSourceDistance, - m_fOriginDetectorDistance, - m_fDetectorSpacingX, m_fDetectorSpacingY, - &m_pfProjectionAngles[iAngleIndex]); - - SConeProjection &proj = projs[0]; - - double px = proj.fDetSX + fU * proj.fDetUX + fV * proj.fDetVX; - double py = proj.fDetSY + fU * proj.fDetUY + fV * proj.fDetVY; - double pz = proj.fDetSZ + fU * proj.fDetUZ + fV * proj.fDetVZ; - - double a = (fZ - proj.fSrcZ) / (pz - proj.fSrcZ); - - fX = proj.fSrcX + a * (px - proj.fSrcX); - fY = proj.fSrcY + a * (py - proj.fSrcY); - - delete[] projs; -} - - } // end namespace astra |