summaryrefslogtreecommitdiff
path: root/openscad.h
diff options
context:
space:
mode:
Diffstat (limited to 'openscad.h')
-rw-r--r--openscad.h29
1 files changed, 14 insertions, 15 deletions
diff --git a/openscad.h b/openscad.h
index 50f5bf7..6350e08 100644
--- a/openscad.h
+++ b/openscad.h
@@ -63,7 +63,6 @@ class Module;
class Context;
class PolySet;
-class PolySetPtr;
class CSGTerm;
class CSGChain;
class AbstractNode;
@@ -559,7 +558,14 @@ public:
CSGMODE_HIGHLIGHT_DIFFERENCE = 22
};
- static QCache<QString,PolySetPtr> ps_cache;
+ struct ps_cache_entry {
+ PolySet *ps;
+ QString msg;
+ ps_cache_entry(PolySet *ps);
+ ~ps_cache_entry();
+ };
+
+ static QCache<QString,ps_cache_entry> ps_cache;
void render_surface(colormode_e colormode, csgmode_e csgmode, GLint *shaderinfo = NULL) const;
void render_edges(colormode_e colormode, csgmode_e csgmode) const;
@@ -573,18 +579,6 @@ public:
void unlink();
};
-class PolySetPtr
-{
-public:
- PolySet *ps;
- PolySetPtr(PolySet *ps) {
- this->ps = ps;
- }
- ~PolySetPtr() {
- ps->unlink();
- }
-};
-
class CSGTerm
{
public:
@@ -647,7 +641,12 @@ public:
virtual ~AbstractNode();
virtual QString mk_cache_id() const;
#ifdef ENABLE_CGAL
- static QCache<QString, CGAL_Nef_polyhedron> cgal_nef_cache;
+ struct cgal_nef_cache_entry {
+ CGAL_Nef_polyhedron N;
+ QString msg;
+ cgal_nef_cache_entry(CGAL_Nef_polyhedron N);
+ };
+ static QCache<QString, cgal_nef_cache_entry> cgal_nef_cache;
virtual CGAL_Nef_polyhedron render_cgal_nef_polyhedron() const;
#endif
virtual CSGTerm *render_csg_term(double m[16], QVector<CSGTerm*> *highlights, QVector<CSGTerm*> *background) const;
contact: Jan Huwald // Impressum