add mesh heal debug path

This commit is contained in:
Stewart Allen 2021-09-07 20:17:27 -04:00
commit 8eaf721648
2 changed files with 44 additions and 14 deletions

View file

@ -306,9 +306,41 @@ console.log/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
}
};
PRO.heal = function() {
PRO.heal = function(debug) {
let mesh = this.debugMesh();
mesh.heal();
if (debug) {
let verts = mesh.vertices;
let edges = mesh.edges;
let error = mesh.edges.filter(l => l.error);
let layrz = new KIRI.Layers();
layrz.setLayer("edges", {line: 0xff0000});
for (let line of edges) {
layrz.addLine(
BASE.newPoint(verts[line.v1], verts[line.v1+1], verts[line.v1+2]),
BASE.newPoint(verts[line.v2], verts[line.v2+1], verts[line.v2+2])
);
}
for (let l=0; l<mesh.loops.length; l++) {
layrz.setLayer(`loop ${l}`, {line: l % 2 === 0 ? 0xff00ff : 0x00ff00});
for (let line of mesh.loops[l]) {
layrz.addLine(
BASE.newPoint(verts[line.v1], verts[line.v1+1], verts[line.v1+2] - 0.03),
BASE.newPoint(verts[line.v2], verts[line.v2+1], verts[line.v2+2] - 0.03)
);
}
}
layrz.setLayer("error", {line: 0x0000ff});
for (let line of error) {
layrz.addLine(
BASE.newPoint(verts[line.v1], verts[line.v1+1], verts[line.v1+2] - 0.06),
BASE.newPoint(verts[line.v2], verts[line.v2+1], verts[line.v2+2] - 0.06)
);
}
let stack = new KIRI.Stack(this.mesh);
stack.addLayers(layrz);
return { layrz, stack };
}
if (mesh.newFaces) {
this.loadVertices(mesh.unrolled().toFloat32());
return this.modified = true;