Hi Luc, Setting an empty callback for GLU_TESS_EDGE_FLAG did the trick.
Preet On Mon, Jul 23, 2012 at 6:01 AM, Luc Frauciel <[email protected]>wrote: > Hi Preet, > > I recently submitted a modification to Tesselator that allows to do that. > > You have to modify the underlying gluTesselator Callbacks to use > GLU_TESS_EDGE_FLAG > Here is an example. > > void CALLBACK noStripCallback(GLboolean userData) > { > } > > #include <osg/GLU> > class CustomTessellator : public osgUtil::Tessellator > { > public: > virtualvoid beginTessellation() > { > reset(); > > if(!_tobj) _tobj = osg::gluNewTess(); > > osg::gluTessCallback(_tobj, GLU_TESS_VERTEX_DATA, > (osg::GLU_TESS_CALLBACK) osgUtil::Tessellator::vertexCallback); > osg::gluTessCallback(_tobj, GLU_TESS_BEGIN_DATA, > (osg::GLU_TESS_CALLBACK) osgUtil::Tessellator::beginCallback); > osg::gluTessCallback(_tobj, GLU_TESS_END_DATA, > (osg::GLU_TESS_CALLBACK) osgUtil::Tessellator::endCallback); > osg::gluTessCallback(_tobj, > GLU_TESS_COMBINE_DATA,(osg::GLU_TESS_CALLBACK) > osgUtil::Tessellator::combineCallback); > osg::gluTessCallback(_tobj, GLU_TESS_ERROR_DATA, > (osg::GLU_TESS_CALLBACK) osgUtil::Tessellator::errorCallback); > //Here is the New TESS Callback : > //Force to only creates triangles > osg::gluTessCallback(_tobj, GLU_TESS_EDGE_FLAG, > (osg::GLU_TESS_CALLBACK) noStripCallback); > if(tessNormal.length()>0.0) osg::gluTessNormal(_tobj, tessNormal.x(), > tessNormal.y(), tessNormal.z()); > osg::gluTessBeginPolygon(_tobj,this); > } > > }; > > Luc > > > De : Preet <[email protected]>A : OpenSceneGraph Users < > [email protected]>Date: 22/07/2012 07:14Objet :[osg-users] > Example using osgUtil::Tessellator to only get back GL_TRIANGLE > primitives?Envoyé par :[email protected] > ------------------------------ > > > > Is there anyway to use osgUtil::Tessellator to only get back > GL_TRIANGLE primitives? With the available examples, the tessellator > adds/changes the primitive sets of the osg::Geometry passed to it into > multiple triangle fans, triangle strips, and triangles. I want my > geometry to just consist of GL_TRIANGLE draw calls. > > Also, there's another method of using the tessellator where it looks > like you manually define contours / add vertices, etc, but I can't > figure out how to use it. Could anyone provide a small example, or > maybe point out what I'm doing wrong: > > osgUtil::Tessellator myTess; > myTess.setTessellationNormal(offsetVec); > myTess.beginTessellation(); > myTess.beginContour(); > for(int i=0; i < areaVx->size(); i++) { > osg::Vec3 * someVertexPtr = &someVertex; > myTess.addVertex(someVertexPtr); > } > myTess.endContour(); > myTess.endTessellation(); > > std::cout << "Num Contours " << myTess.getContours().size(); // > gives me a zero > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

