meta checkpoint
This commit is contained in:
parent
3af591260a
commit
58221d5a65
1 changed files with 44 additions and 13 deletions
57
js/meta.js
57
js/meta.js
|
|
@ -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++) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue