summaryrefslogtreecommitdiffstats
path: root/include/astra/CompositeGeometryManager.h
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2016-02-12 16:27:08 +0100
committerWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2016-02-15 12:08:31 +0100
commit838cfae58d825fb8915dc7d3c974d96e6a4f981c (patch)
tree1b3970653a8af4b86d8b1f00f4993bb41264ea5d /include/astra/CompositeGeometryManager.h
parent46836ee3195fdc8d09a0f03cee13b475b4ff9fc1 (diff)
downloadastra-838cfae58d825fb8915dc7d3c974d96e6a4f981c.tar.gz
astra-838cfae58d825fb8915dc7d3c974d96e6a4f981c.tar.bz2
astra-838cfae58d825fb8915dc7d3c974d96e6a4f981c.tar.xz
astra-838cfae58d825fb8915dc7d3c974d96e6a4f981c.zip
Also split volumes in X/Y directions to respect CUDA limits
Diffstat (limited to 'include/astra/CompositeGeometryManager.h')
-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);