Permalink
Cannot retrieve contributors at this time
Fetching contributors…

var tessy = (function initTesselator() { | |
// function called for each vertex of tesselator output | |
function vertexCallback(data, polyVertArray) { | |
// console.log(data[0], data[1]); | |
polyVertArray[polyVertArray.length] = data[0]; | |
polyVertArray[polyVertArray.length] = data[1]; | |
} | |
function begincallback(type) { | |
if (type !== libtess.primitiveType.GL_TRIANGLES) { | |
console.log('expected TRIANGLES but got type: ' + type); | |
} | |
} | |
function errorcallback(errno) { | |
console.log('error callback'); | |
console.log('error number: ' + errno); | |
} | |
// callback for when segments intersect and must be split | |
function combinecallback(coords, data, weight) { | |
// console.log('combine callback'); | |
return [coords[0], coords[1], coords[2]]; | |
} | |
function edgeCallback(flag) { | |
// don't really care about the flag, but need no-strip/no-fan behavior | |
// console.log('edge flag: ' + flag); | |
} | |
var tessy = new libtess.GluTesselator(); | |
// tessy.gluTessProperty(libtess.gluEnum.GLU_TESS_WINDING_RULE, libtess.windingRule.GLU_TESS_WINDING_POSITIVE); | |
tessy.gluTessCallback(libtess.gluEnum.GLU_TESS_VERTEX_DATA, vertexCallback); | |
tessy.gluTessCallback(libtess.gluEnum.GLU_TESS_BEGIN, begincallback); | |
tessy.gluTessCallback(libtess.gluEnum.GLU_TESS_ERROR, errorcallback); | |
tessy.gluTessCallback(libtess.gluEnum.GLU_TESS_COMBINE, combinecallback); | |
tessy.gluTessCallback(libtess.gluEnum.GLU_TESS_EDGE_FLAG, edgeCallback); | |
return tessy; | |
})(); |