fix adding supports from underneath platform looking up
This commit is contained in:
parent
90c29d1aa7
commit
457c03766c
1 changed files with 4 additions and 3 deletions
|
|
@ -426,7 +426,7 @@ export function init() {
|
||||||
let idn = new Raycaster(rp, dn)
|
let idn = new Raycaster(rp, dn)
|
||||||
.intersectObjects(targets, false)
|
.intersectObjects(targets, false)
|
||||||
.filter(t => !t.object.pillar);
|
.filter(t => !t.object.pillar);
|
||||||
if (idn.length && idn.length % 2 === 0) {
|
if (idn.length) {
|
||||||
iw = iup[0].object.widget || iw;
|
iw = iup[0].object.widget || iw;
|
||||||
let wa = api.widgets.annotate(iw.id);
|
let wa = api.widgets.annotate(iw.id);
|
||||||
let ws = (wa.support = wa.support || []);
|
let ws = (wa.support = wa.support || []);
|
||||||
|
|
@ -471,10 +471,11 @@ export function init() {
|
||||||
iw = null;
|
iw = null;
|
||||||
}
|
}
|
||||||
p1 = point;
|
p1 = point;
|
||||||
|
// looking up by default (assumes platform intersect)
|
||||||
let dir = new Vector3(0,1,0)
|
let dir = new Vector3(0,1,0)
|
||||||
let ray = new Raycaster(point, dir);
|
let ray = new Raycaster(point, dir);
|
||||||
let rz = int && int.face ? Math.atan2(int.face.normal.y, int.face.normal.x) : 0;
|
let rz = int && int.face ? Math.atan2(int.face.normal.y, int.face.normal.x) : 0;
|
||||||
// when on object, project down on downward faces
|
// when intersecting underside of object, project down
|
||||||
if (int && int.face && int.face.normal.z < -0.1) {
|
if (int && int.face && int.face.normal.z < -0.1) {
|
||||||
dir.y = -1;
|
dir.y = -1;
|
||||||
}
|
}
|
||||||
|
|
@ -482,7 +483,7 @@ export function init() {
|
||||||
let i2 = ray.intersectObjects(targets, false)
|
let i2 = ray.intersectObjects(targets, false)
|
||||||
.filter(t => !t.object.pillar) // eliminate other pillars
|
.filter(t => !t.object.pillar) // eliminate other pillars
|
||||||
.filter(i => i.distance > 0.1); // false matches close to origin of ray
|
.filter(i => i.distance > 0.1); // false matches close to origin of ray
|
||||||
if (i2.length && i2.length % 2 === 0) {
|
if (i2.length) {
|
||||||
p2 = i2[0].point;
|
p2 = i2[0].point;
|
||||||
iw = i2[0].object.widget || iw;
|
iw = i2[0].object.widget || iw;
|
||||||
let p1y = Math.max(0, p1.y);
|
let p1y = Math.max(0, p1.y);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue