diff options
author | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2015-03-02 13:42:08 +0100 |
---|---|---|
committer | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2015-03-02 13:42:08 +0100 |
commit | bf5aa06406162656752f031edf3ca90f00ff76dd (patch) | |
tree | 0c0544cb4e9f892523b2aed581c7a56510383595 /include/astra | |
parent | 24a2b2b0a6a354efd58774a4bce930cb9f90334f (diff) | |
download | astra-bf5aa06406162656752f031edf3ca90f00ff76dd.tar.gz astra-bf5aa06406162656752f031edf3ca90f00ff76dd.tar.bz2 astra-bf5aa06406162656752f031edf3ca90f00ff76dd.tar.xz astra-bf5aa06406162656752f031edf3ca90f00ff76dd.zip |
Untangle cuda and astra includes
Diffstat (limited to 'include/astra')
-rw-r--r-- | include/astra/ConeVecProjectionGeometry3D.h | 2 | ||||
-rw-r--r-- | include/astra/FanFlatVecProjectionGeometry2D.h | 5 | ||||
-rw-r--r-- | include/astra/GeometryUtil2D.h | 47 | ||||
-rw-r--r-- | include/astra/GeometryUtil3D.h | 73 | ||||
-rw-r--r-- | include/astra/ParallelVecProjectionGeometry3D.h | 2 |
5 files changed, 123 insertions, 6 deletions
diff --git a/include/astra/ConeVecProjectionGeometry3D.h b/include/astra/ConeVecProjectionGeometry3D.h index e82a411..71e8010 100644 --- a/include/astra/ConeVecProjectionGeometry3D.h +++ b/include/astra/ConeVecProjectionGeometry3D.h @@ -30,7 +30,7 @@ $Id$ #define _INC_ASTRA_CONEVECPROJECTIONGEOMETRY3D #include "ProjectionGeometry3D.h" -#include "../cuda/3d/dims3d.h" +#include "GeometryUtil3D.h" namespace astra { diff --git a/include/astra/FanFlatVecProjectionGeometry2D.h b/include/astra/FanFlatVecProjectionGeometry2D.h index ee85408..d93de79 100644 --- a/include/astra/FanFlatVecProjectionGeometry2D.h +++ b/include/astra/FanFlatVecProjectionGeometry2D.h @@ -30,13 +30,10 @@ $Id$ #define _INC_ASTRA_FANFLATVECPROJECTIONGEOMETRY2D #include "ProjectionGeometry2D.h" -#include "../cuda/2d/dims.h" +#include "GeometryUtil2D.h" #include <cmath> -// FIXME: Avoid using -using astraCUDA::SFanProjection; - namespace astra { diff --git a/include/astra/GeometryUtil2D.h b/include/astra/GeometryUtil2D.h new file mode 100644 index 0000000..d4ee92e --- /dev/null +++ b/include/astra/GeometryUtil2D.h @@ -0,0 +1,47 @@ +/* +----------------------------------------------------------------------- +Copyright: 2010-2015, iMinds-Vision Lab, University of Antwerp + 2014-2015, CWI, Amsterdam + +Contact: astra@uantwerpen.be +Website: http://sf.net/projects/astra-toolbox + +This file is part of the ASTRA Toolbox. + + +The ASTRA Toolbox is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +The ASTRA Toolbox is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>. + +----------------------------------------------------------------------- +$Id$ +*/ + +#ifndef _INC_ASTRA_GEOMETRYUTIL2D +#define _INC_ASTRA_GEOMETRYUTIL2D + +namespace astra { + +struct SFanProjection { + // the source + float fSrcX, fSrcY; + + // the start of the (linear) detector + float fDetSX, fDetSY; + + // the length of a single detector pixel + float fDetUX, fDetUY; +}; + +} + +#endif diff --git a/include/astra/GeometryUtil3D.h b/include/astra/GeometryUtil3D.h new file mode 100644 index 0000000..698372e --- /dev/null +++ b/include/astra/GeometryUtil3D.h @@ -0,0 +1,73 @@ +/* +----------------------------------------------------------------------- +Copyright: 2010-2015, iMinds-Vision Lab, University of Antwerp + 2014-2015, CWI, Amsterdam + +Contact: astra@uantwerpen.be +Website: http://sf.net/projects/astra-toolbox + +This file is part of the ASTRA Toolbox. + + +The ASTRA Toolbox is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +The ASTRA Toolbox is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>. + +----------------------------------------------------------------------- +$Id$ +*/ + +#ifndef _INC_ASTRA_GEOMETRYUTIL3D +#define _INC_ASTRA_GEOMETRYUTIL3D + +namespace astra { + +struct SConeProjection { + // the source + double fSrcX, fSrcY, fSrcZ; + + // the origin ("bottom left") of the (flat-panel) detector + double fDetSX, fDetSY, fDetSZ; + + // the U-edge of a detector pixel + double fDetUX, fDetUY, fDetUZ; + + // the V-edge of a detector pixel + double fDetVX, fDetVY, fDetVZ; +}; + +struct SPar3DProjection { + // the ray direction + double fRayX, fRayY, fRayZ; + + // the origin ("bottom left") of the (flat-panel) detector + double fDetSX, fDetSY, fDetSZ; + + // the U-edge of a detector pixel + double fDetUX, fDetUY, fDetUZ; + + // the V-edge of a detector pixel + double fDetVX, fDetVY, fDetVZ; +}; + +void computeBP_UV_Coeffs(const SPar3DProjection& proj, + double &fUX, double &fUY, double &fUZ, double &fUC, + double &fVX, double &fVY, double &fVZ, double &fVC); + +void computeBP_UV_Coeffs(const SConeProjection& proj, + double &fUX, double &fUY, double &fUZ, double &fUC, + double &fVX, double &fVY, double &fVZ, double &fVC, + double &fDX, double &fDY, double &fDZ, double &fDC); + +} + +#endif diff --git a/include/astra/ParallelVecProjectionGeometry3D.h b/include/astra/ParallelVecProjectionGeometry3D.h index 5a63249..59238c8 100644 --- a/include/astra/ParallelVecProjectionGeometry3D.h +++ b/include/astra/ParallelVecProjectionGeometry3D.h @@ -30,7 +30,7 @@ $Id$ #define _INC_ASTRA_PARALLELVECPROJECTIONGEOMETRY3D #include "ProjectionGeometry3D.h" -#include "../cuda/3d/dims3d.h" +#include "GeometryUtil3D.h" namespace astra { |