From ae518f2954d8c6b9f1d5156595ccb1d7dc2ec581 Mon Sep 17 00:00:00 2001
From: Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>
Date: Fri, 5 Feb 2016 14:54:47 +0100
Subject: Process non-cubic-voxel astra geometries

---
 include/astra/GeometryUtil3D.h | 52 +++++++++++++++++++++---------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

(limited to 'include')

diff --git a/include/astra/GeometryUtil3D.h b/include/astra/GeometryUtil3D.h
index e4d73e4..e051240 100644
--- a/include/astra/GeometryUtil3D.h
+++ b/include/astra/GeometryUtil3D.h
@@ -56,19 +56,19 @@ struct SConeProjection {
 		fDetSZ += dz;
 
 	}
-	void scale(double factor) {
-		fSrcX *= factor;
-		fSrcY *= factor;
-		fSrcZ *= factor;
-		fDetSX *= factor;
-		fDetSY *= factor;
-		fDetSZ *= factor;
-		fDetUX *= factor;
-		fDetUY *= factor;
-		fDetUZ *= factor;
-		fDetVX *= factor;
-		fDetVY *= factor;
-		fDetVZ *= factor;
+	void scale(double fx, double fy, double fz) {
+		fSrcX *= fx;
+		fSrcY *= fy;
+		fSrcZ *= fz;
+		fDetSX *= fx;
+		fDetSY *= fy;
+		fDetSZ *= fz;
+		fDetUX *= fx;
+		fDetUY *= fy;
+		fDetUZ *= fz;
+		fDetVX *= fx;
+		fDetVY *= fy;
+		fDetVZ *= fz;
 	}
 };
 
@@ -93,19 +93,19 @@ struct SPar3DProjection {
 		fDetSY += dy;
 		fDetSZ += dz;
 	}
-	void scale(double factor) {
-		fRayX *= factor;
-		fRayY *= factor;
-		fRayZ *= factor;
-		fDetSX *= factor;
-		fDetSY *= factor;
-		fDetSZ *= factor;
-		fDetUX *= factor;
-		fDetUY *= factor;
-		fDetUZ *= factor;
-		fDetVX *= factor;
-		fDetVY *= factor;
-		fDetVZ *= factor;
+	void scale(double fx, double fy, double fz) {
+		fRayX *= fx;
+		fRayY *= fy;
+		fRayZ *= fz;
+		fDetSX *= fx;
+		fDetSY *= fy;
+		fDetSZ *= fz;
+		fDetUX *= fx;
+		fDetUY *= fy;
+		fDetUZ *= fz;
+		fDetVX *= fx;
+		fDetVY *= fy;
+		fDetVZ *= fz;
 	}
 };
 
-- 
cgit v1.2.3


From 048755bab6b77c1da0050ed091e5007a60564adf Mon Sep 17 00:00:00 2001
From: Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>
Date: Tue, 8 Mar 2016 15:41:38 +0100
Subject: Use CompositeGeometryManager for FDK

Also fix a number of scaling/weighting issues in FDK, and
switch to standard cone_bp with FDKWeighting for the BP step.
---
 include/astra/CompositeGeometryManager.h | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'include')

diff --git a/include/astra/CompositeGeometryManager.h b/include/astra/CompositeGeometryManager.h
index 18dd72f..064370a 100644
--- a/include/astra/CompositeGeometryManager.h
+++ b/include/astra/CompositeGeometryManager.h
@@ -55,6 +55,10 @@ struct SGPUParams {
 	size_t memory;
 };
 
+struct SFDKSettings {
+	bool bShortScan;
+};
+
 
 class _AstraExport CCompositeGeometryManager {
 public:
@@ -127,9 +131,10 @@ public:
 		CProjector3D *pProjector; // For a `global' geometry. It will not match
 		                          // the geometries of the input and output.
 
+		SFDKSettings FDKSettings;
 
 		enum {
-			JOB_FP, JOB_BP, JOB_NOP
+			JOB_FP, JOB_BP, JOB_FDK, JOB_NOP
 		} eType;
 		enum {
 			MODE_ADD, MODE_SET
@@ -155,6 +160,8 @@ public:
 	          CFloat32ProjectionData3DMemory *pProjData);
 	bool doBP(CProjector3D *pProjector, CFloat32VolumeData3DMemory *pVolData,
 	          CFloat32ProjectionData3DMemory *pProjData);
+	bool doFDK(CProjector3D *pProjector, CFloat32VolumeData3DMemory *pVolData,
+	          CFloat32ProjectionData3DMemory *pProjData, bool bShortScan);
 
 	bool doFP(CProjector3D *pProjector, const std::vector<CFloat32VolumeData3DMemory *>& volData, const std::vector<CFloat32ProjectionData3DMemory *>& projData);
 	bool doBP(CProjector3D *pProjector, const std::vector<CFloat32VolumeData3DMemory *>& volData, const std::vector<CFloat32ProjectionData3DMemory *>& projData);
-- 
cgit v1.2.3


From 584fb584816aefca42518c9a6075ac2df814dac6 Mon Sep 17 00:00:00 2001
From: Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>
Date: Thu, 28 Jul 2016 15:32:50 +0200
Subject: Replace use of boost::split by own function

---
 include/astra/Utilities.h | 3 +++
 1 file changed, 3 insertions(+)

(limited to 'include')

diff --git a/include/astra/Utilities.h b/include/astra/Utilities.h
index 8d7c44d..22adfe2 100644
--- a/include/astra/Utilities.h
+++ b/include/astra/Utilities.h
@@ -85,6 +85,9 @@ _AstraExport std::string doubleToString(double f);
 template<typename T>
 _AstraExport std::string toString(T f);
 
+
+_AstraExport void splitString(std::vector<std::string> &items, const std::string& s, const char *delim);
+
 }
 
 
-- 
cgit v1.2.3


From 53249b3ad63f0d08b9862a75602acf263d230d77 Mon Sep 17 00:00:00 2001
From: Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>
Date: Thu, 28 Jul 2016 16:33:37 +0200
Subject: Remove leftover code from Singleton

---
 include/astra/Singleton.h | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

(limited to 'include')

diff --git a/include/astra/Singleton.h b/include/astra/Singleton.h
index 784c521..9d3c088 100644
--- a/include/astra/Singleton.h
+++ b/include/astra/Singleton.h
@@ -45,11 +45,7 @@ class Singleton {
 	public:
 
 		// constructor
-		Singleton() {
-			assert(!m_singleton);
-			int offset = (uintptr_t)(T*)1 - (uintptr_t)(Singleton<T>*)(T*)1;
-			m_singleton = (T*)((uintptr_t)this + offset);
-		};
+		Singleton() { }
 
 		// destructor
 		virtual ~Singleton() {
-- 
cgit v1.2.3