summaryrefslogtreecommitdiff
path: root/src/PolySetCGALRenderer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/PolySetCGALRenderer.cc')
-rw-r--r--src/PolySetCGALRenderer.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/PolySetCGALRenderer.cc b/src/PolySetCGALRenderer.cc
index acd03eb..38cc1cc 100644
--- a/src/PolySetCGALRenderer.cc
+++ b/src/PolySetCGALRenderer.cc
@@ -14,6 +14,10 @@
PolySet *PolySetCGALRenderer::renderPolySet(const ProjectionNode &node, AbstractPolyNode::render_mode_e)
{
+ // FIXME: create cacheid from node
+ QString cacheid;
+ if (this->cache.contains(cacheid)) return this->cache[cacheid]->ps->link();
+
CGAL_Nef_polyhedron N = this->cgalrenderer.renderCGALMesh(node);
PolySet *ps = new PolySet();
@@ -155,6 +159,7 @@ PolySet *PolySetCGALRenderer::renderPolySet(const ProjectionNode &node, Abstract
cant_project_non_simple_polyhedron:
+ this->cache.insert(cacheid, new cache_entry(ps->link()));
return ps;
}
@@ -232,6 +237,10 @@ static void add_slice(PolySet *ps, DxfData::Path *pt, double rot1, double rot2,
PolySet *PolySetCGALRenderer::renderPolySet(const DxfLinearExtrudeNode &node, AbstractPolyNode::render_mode_e)
{
+ // FIXME: create cacheid from node
+ QString cacheid;
+ if (this->cache.contains(cacheid)) return this->cache[cacheid]->ps->link();
+
DxfData *dxf;
if (node.filename.isEmpty())
@@ -305,11 +314,16 @@ PolySet *PolySetCGALRenderer::renderPolySet(const DxfLinearExtrudeNode &node, Ab
delete dxf;
+ this->cache.insert(cacheid, new cache_entry(ps->link()));
return ps;
}
PolySet *PolySetCGALRenderer::renderPolySet(const DxfRotateExtrudeNode &node, AbstractPolyNode::render_mode_e)
{
+ // FIXME: create cacheid from node
+ QString cacheid;
+ if (this->cache.contains(cacheid)) return this->cache[cacheid]->ps->link();
+
DxfData *dxf;
if (node.filename.isEmpty())
@@ -380,5 +394,6 @@ PolySet *PolySetCGALRenderer::renderPolySet(const DxfRotateExtrudeNode &node, Ab
delete dxf;
+ this->cache.insert(cacheid, new cache_entry(ps->link()));
return ps;
}
contact: Jan Huwald // Impressum