internal static void RenderLonelyTriangles(GLUtessellatorImpl tess, Mogre.Utils.GluTesselator.GLUface f) { /* Now we render all the separate triangles which could not be * grouped into a triangle fan or strip. */ Mogre.Utils.GluTesselator.GLUhalfEdge e; int newState; int edgeState = -1; /* force edge state output for first vertex */ tess.callBeginOrBeginData(GL.GL_TRIANGLES); for (; f != null; f = f.trail) { /* Loop once for each edge (there will always be 3 edges) */ e = f.anEdge; do { if (tess.flagBoundary) { /* Set the "edge state" to true just before we output the * first vertex of each edge on the polygon boundary. */ newState = (!e.Sym.Lface.inside)?1:0; if (edgeState != newState) { edgeState = newState; tess.callEdgeFlagOrEdgeFlagData(edgeState != 0); } } tess.callVertexOrVertexData(e.Org.data); e = e.Lnext; }while (e != f.anEdge); } tess.callEndOrEndData(); }
internal static void RenderLonelyTriangles(GLUtessellatorImpl tess, Mogre.Utils.GluTesselator.GLUface f) { /* Now we render all the separate triangles which could not be * grouped into a triangle fan or strip. */ Mogre.Utils.GluTesselator.GLUhalfEdge e; int newState; int edgeState = - 1; /* force edge state output for first vertex */ tess.callBeginOrBeginData(GL.GL_TRIANGLES); for (; f != null; f = f.trail) { /* Loop once for each edge (there will always be 3 edges) */ e = f.anEdge; do { if (tess.flagBoundary) { /* Set the "edge state" to true just before we output the * first vertex of each edge on the polygon boundary. */ newState = (!e.Sym.Lface.inside)?1:0; if (edgeState != newState) { edgeState = newState; tess.callEdgeFlagOrEdgeFlagData(edgeState != 0); } } tess.callVertexOrVertexData(e.Org.data); e = e.Lnext; } while (e != f.anEdge); } tess.callEndOrEndData(); }