X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsim%2Fprojections.cpp;h=627ccb91f11ba32f85e8feabbca0297487f57509;hp=bec5c0af5fdad93201d403bedfb5cf66dadac009;hb=134461a6b28beafafdececf7b1f90f4211b56f6b;hpb=e6ffc0f665178c760b47fb7cbc24d84ecb77c2c3 diff --git a/libctsim/projections.cpp b/libctsim/projections.cpp index bec5c0a..627ccb9 100644 --- a/libctsim/projections.cpp +++ b/libctsim/projections.cpp @@ -8,7 +8,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: projections.cpp,v 1.53 2001/03/02 20:07:10 kevin Exp $ +** $Id: projections.cpp,v 1.54 2001/03/05 21:59:55 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -820,8 +820,8 @@ Projections::interpolatePolar (ImageFileArray& v, ImageFileArray& vImag, for (unsigned int ix = 0; ix < ny; ix++) { for (unsigned int iy = 0; iy < ny; iy++) { if (iInterpolationID == POLAR_INTERP_NEAREST) { - int iView = nearest (ppdView[ix][iy]); - int iDet = nearest (ppdDet[ix][iy]); + unsigned int iView = nearest (ppdView[ix][iy]); + unsigned int iDet = nearest (ppdDet[ix][iy]); if (iView == nView) { iView = 0; // iDet = m_nDet - iDet; @@ -836,9 +836,9 @@ Projections::interpolatePolar (ImageFileArray& v, ImageFileArray& vImag, v[ix][iy] = 0; } } else if (iInterpolationID == POLAR_INTERP_BILINEAR) { - int iFloorView = static_cast(ppdView[ix][iy]); + unsigned int iFloorView = static_cast(ppdView[ix][iy]); double dFracView = ppdView[ix][iy] - iFloorView; - int iFloorDet = static_cast(ppdDet[ix][iy]); + unsigned int iFloorDet = static_cast(ppdDet[ix][iy]); double dFracDet = ppdDet[ix][iy] - iFloorDet; if (iFloorDet >= 0 && iFloorView >= 0) { @@ -903,41 +903,42 @@ Projections::initFromSomatomAR_STAR (int iNViews, int iNDets, unsigned char* pDa long lDataPos = 0; for (int iv = 0; iv < iNViews; iv++) { - long* pLong = reinterpret_cast(pData + lDataPos+0); + unsigned char* pArgBase = pData + lDataPos; + unsigned char* p = pArgBase+0; #ifndef WORDS_BIGENDIAN - SwapBytes4 (pLong); + SwapBytes4 (p); #endif - long lProjNumber = *pLong; + long lProjNumber = *reinterpret_cast(p); - pLong = reinterpret_cast(pData + lDataPos+20); + p = pArgBase+20; #ifndef WORDS_BIGENDIAN - SwapBytes4 (pLong); + SwapBytes4 (p); #endif - long lEscale = *pLong; + long lEscale = *reinterpret_cast(p); - pLong = reinterpret_cast(pData + lDataPos+28); + p = pArgBase+28; #ifndef WORDS_BIGENDIAN - SwapBytes4 (pLong); + SwapBytes4 (p); #endif - long lTime = *pLong; + long lTime = *reinterpret_cast(p); - float* pFloat = reinterpret_cast(pData + lDataPos+4); + p = pArgBase + 4; #ifndef WORDS_BIGENDIAN - SwapBytes4 (pFloat); + SwapBytes4 (p); #endif - double dAlpha = *pFloat + HALFPI; + double dAlpha = *reinterpret_cast(p) + HALFPI; - pFloat = reinterpret_cast(pData + lDataPos+12); + p = pArgBase+12; #ifndef WORDS_BIGENDIAN - SwapBytes4 (pFloat); + SwapBytes4 (p); #endif - double dAlign = *pFloat; + double dAlign = *reinterpret_cast(p); - pFloat = reinterpret_cast(pData + lDataPos+16); + p = pArgBase + 16; #ifndef WORDS_BIGENDIAN - SwapBytes4 (pFloat); + SwapBytes4 (p); #endif - double dMaxValue = *pFloat; + double dMaxValue = *reinterpret_cast(p); lDataPos += 32; double dEScale = pow (2.0, -lEscale);