From e43315363d4e392d54df77d500cf26ba53a7a599 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Wed, 3 Aug 2011 00:37:39 +0200 Subject: Reinstated combine callback. Thanks to Giles for pointing it out diff --git a/src/OGL_helper.h b/src/OGL_helper.h index 2aae31b..2764561 100644 --- a/src/OGL_helper.h +++ b/src/OGL_helper.h @@ -243,6 +243,21 @@ namespace OGL { glVertex3dv(pc); } + inline void CGAL_GLU_TESS_CALLBACK combineCallback(GLdouble coords[3], GLvoid *[4], GLfloat [4], GLvoid **dataOut) + { static std::list pcache; + if (dataOut) { + GLdouble *n = new GLdouble[3]; + n[0] = coords[0]; + n[1] = coords[1]; + n[2] = coords[2]; + pcache.push_back(n); + *dataOut = n; + } else { + for (std::list::const_iterator i = pcache.begin(); i != pcache.end(); i++) + delete[] *i; + pcache.clear(); + } + } enum { SNC_AXES}; enum { SNC_BOUNDARY, SNC_SKELETON }; @@ -396,6 +411,8 @@ namespace OGL { GLUtesselator* tess_ = gluNewTess(); gluTessCallback(tess_, GLenum(GLU_TESS_VERTEX_DATA), (GLvoid (CGAL_GLU_TESS_CALLBACK *)(CGAL_GLU_TESS_DOTS)) &vertexCallback); + gluTessCallback(tess_, GLenum(GLU_TESS_COMBINE), + (GLvoid (CGAL_GLU_TESS_CALLBACK *)(CGAL_GLU_TESS_DOTS)) &combineCallback); gluTessCallback(tess_, GLenum(GLU_TESS_BEGIN), (GLvoid (CGAL_GLU_TESS_CALLBACK *)(CGAL_GLU_TESS_DOTS)) &beginCallback); gluTessCallback(tess_, GLenum(GLU_TESS_END), -- cgit v0.10.1