meta checkpoint

This commit is contained in:
Stewart Allen 2020-03-21 10:24:21 -04:00
commit 58221d5a65

View file

@ -1644,7 +1644,8 @@ THREE.Face3.prototype.mVisible = function(show) {
}); });
if (newgroup) { if (newgroup) {
let points = []; let points = [];
faceGroups.push(points); let map = {};
faceGroups.push({map,points});
group.forEach(face => { group.forEach(face => {
let pos = face.pos; let pos = face.pos;
let fac = FACE[face.key]; let fac = FACE[face.key];
@ -1656,9 +1657,9 @@ THREE.Face3.prototype.mVisible = function(show) {
face.sides.forEach(side => { face.sides.forEach(side => {
let off = FACE[side]; let off = FACE[side];
let tt = { let tt = {
x: xyz.x == off.x ? HALF : 0, x: fac.x == off.x ? HALF : 0,
y: xyz.y == off.y ? HALF : 0, y: fac.y == off.y ? HALF : 0,
z: xyz.z == off.z ? HALF : 0 z: fac.z == off.z ? HALF : 0
}; };
let mid = { let mid = {
x: xyz.x + off.x, x: xyz.x + off.x,
@ -1675,13 +1676,20 @@ THREE.Face3.prototype.mVisible = function(show) {
y: mid.y + tt.y, y: mid.y + tt.y,
z: mid.z + tt.z z: mid.z + tt.z
}; };
points.push(p1); p1.k = `${p1.x},${p1.y},${p1.z}`;
points.push(p2); p2.k = `${p2.x},${p2.y},${p2.z}`;
// points.push([p1.x, p1.y, p1.z]); let op1 = map[p1.k];
// points.push([p2.x, p2.y, p2.z]); let op2 = map[p2.k];
if (!op1) op1 = map[p1.k] = p1;
if (!op2) op2 = map[p2.k] = p2;
if (!op1.p) op1.p = [op2]; else op1.p.push(op2);
if (!op2.p) op2.p = [op1]; else op2.p.push(op1);
points.push(op1);
points.push(op2);
}); });
}); });
console.table(points); console.log(group);
console.table(points);
} }
return true; return true;
} }
@ -1692,10 +1700,33 @@ THREE.Face3.prototype.mVisible = function(show) {
}); });
}); });
// faceGroups.forEach(points => { faceGroups.forEach((el,gi) => {
// let {map, points} = el;
// }); let seen = {};
console.log(faceGroups);
// newstart: for (let ip=0; ip<points.length; ip++) {
let start = points[0];
// if (seen[start.k]) continue newstart;
// console.log({gi,start:ip})
let point = start;
let out = [ point ];
seen[point.k] = point;
outer: for (;;) {
let peers = point.p;
for (let i=0; i<peers.length; i++) {
let peer = peers[i];
if (!seen[peer.k]) {
out.push(point = peer);
seen[point.k] = point;
continue outer;
}
}
break;
}
console.log(out.length);
// }
});
if (scale) { if (scale) {
for (let i = 0; i < vertices.length; i++) { for (let i = 0; i < vertices.length; i++) {