summaryrefslogtreecommitdiffstats
path: root/include/astra
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <wjp@usecode.org>2016-02-16 17:01:24 +0100
committerWillem Jan Palenstijn <wjp@usecode.org>2016-02-16 17:01:24 +0100
commitc041ce4fabcafe263bb93ca481040ed32ed5c5f2 (patch)
tree5797527410083fd71adf43583eb95a004f897105 /include/astra
parent46836ee3195fdc8d09a0f03cee13b475b4ff9fc1 (diff)
parent447e7acfb0c220f66d5fe25f31b25c989d4ec1d7 (diff)
downloadastra-c041ce4fabcafe263bb93ca481040ed32ed5c5f2.tar.gz
astra-c041ce4fabcafe263bb93ca481040ed32ed5c5f2.tar.bz2
astra-c041ce4fabcafe263bb93ca481040ed32ed5c5f2.tar.xz
astra-c041ce4fabcafe263bb93ca481040ed32ed5c5f2.zip
Merge pull request #113 from wjp/splitXY
Also split volumes in X/Y directions to respect CUDA limits
Diffstat (limited to 'include/astra')
-rw-r--r--include/astra/CompositeGeometryManager.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/include/astra/CompositeGeometryManager.h b/include/astra/CompositeGeometryManager.h
index 4338994..18dd72f 100644
--- a/include/astra/CompositeGeometryManager.h
+++ b/include/astra/CompositeGeometryManager.h
@@ -79,7 +79,9 @@ public:
bool uploadToGPU();
bool downloadFromGPU(/*mode?*/);
- virtual TPartList split(size_t maxSize, int div) = 0;
+ virtual void splitX(TPartList& out, size_t maxSize, size_t maxDim, int div) = 0;
+ virtual void splitY(TPartList& out, size_t maxSize, size_t maxDim, int div) = 0;
+ virtual void splitZ(TPartList& out, size_t maxSize, size_t maxDim, int div) = 0;
virtual CPart* reduce(const CPart *other) = 0;
virtual void getDims(size_t &x, size_t &y, size_t &z) = 0;
size_t getSize();
@@ -93,7 +95,9 @@ public:
CVolumeGeometry3D* pGeom;
- virtual TPartList split(size_t maxSize, int div);
+ virtual void splitX(TPartList& out, size_t maxSize, size_t maxDim, int div);
+ virtual void splitY(TPartList& out, size_t maxSize, size_t maxDim, int div);
+ virtual void splitZ(TPartList& out, size_t maxSize, size_t maxDim, int div);
virtual CPart* reduce(const CPart *other);
virtual void getDims(size_t &x, size_t &y, size_t &z);
@@ -107,7 +111,9 @@ public:
CProjectionGeometry3D* pGeom;
- virtual TPartList split(size_t maxSize, int div);
+ virtual void splitX(TPartList& out, size_t maxSize, size_t maxDim, int div);
+ virtual void splitY(TPartList& out, size_t maxSize, size_t maxDim, int div);
+ virtual void splitZ(TPartList& out, size_t maxSize, size_t maxDim, int div);
virtual CPart* reduce(const CPart *other);
virtual void getDims(size_t &x, size_t &y, size_t &z);