minor code cleanup
This commit is contained in:
parent
7d3b8ca232
commit
e751d2c5dd
|
|
@ -166,14 +166,13 @@ export class CircularFrustumIntersection {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 1. Test vertices
|
// step 1: test vertices
|
||||||
tryPoint(tri.a);
|
tryPoint(tri.a);
|
||||||
tryPoint(tri.b);
|
tryPoint(tri.b);
|
||||||
tryPoint(tri.c);
|
tryPoint(tri.c);
|
||||||
|
|
||||||
// 2. For each edge, find the point closest to the frustum axis ray,
|
// step 2: edges for a triangle that straddle the cone surface
|
||||||
// and also the point closest to the apex.
|
// for each edge, find the point closest to the frustum axis ray, and also the point closest to the apex.
|
||||||
// This catches triangles that straddle the cone surface.
|
|
||||||
const edges: [THREE.Vector3, THREE.Vector3][] = [
|
const edges: [THREE.Vector3, THREE.Vector3][] = [
|
||||||
[tri.a, tri.b],
|
[tri.a, tri.b],
|
||||||
[tri.b, tri.c],
|
[tri.b, tri.c],
|
||||||
|
|
@ -205,10 +204,9 @@ export class CircularFrustumIntersection {
|
||||||
tryPoint(a.clone().addScaledVector(edge, tApex));
|
tryPoint(a.clone().addScaledVector(edge, tApex));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Closest point on triangle face to the apex (using THREE.Triangle, not ExtendedTriangle)
|
// step 3: closest point on triangle face to the apex
|
||||||
const threeTri = new THREE.Triangle(tri.a, tri.b, tri.c);
|
|
||||||
const closestOnFace = new THREE.Vector3();
|
const closestOnFace = new THREE.Vector3();
|
||||||
threeTri.closestPointToPoint(localFrustum.apex, closestOnFace);
|
tri.closestPointToPoint(localFrustum.apex, closestOnFace);
|
||||||
if (!isNaN(closestOnFace.x))
|
if (!isNaN(closestOnFace.x))
|
||||||
tryPoint(closestOnFace);
|
tryPoint(closestOnFace);
|
||||||
|
|
||||||
|
|
@ -228,19 +226,6 @@ export class CircularFrustumIntersection {
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
// } else {
|
|
||||||
// // ── Fallback: bounding box only ───────────────────────────────────
|
|
||||||
// if (!geometry.boundingBox)
|
|
||||||
// geometry.computeBoundingBox();
|
|
||||||
// const worldBox = geometry.boundingBox!.clone().applyMatrix4(mesh.matrixWorld);
|
|
||||||
// const boxResult = this.intersectsBox(worldBox.clone());
|
|
||||||
// if (boxResult !== NOT_INTERSECTED) {
|
|
||||||
// const center = new THREE.Vector3();
|
|
||||||
// worldBox.getCenter(center);
|
|
||||||
// const depth = this.frustum.axis.dot(center.clone().sub(this.frustum.apex));
|
|
||||||
// results.push({ object: mesh, point: center, depth });
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue