bilca's picture
Upload 56 files
352fb85 verified
raw
history blame
663 Bytes
import { Vector3 } from "./Vector3";
class Plane {
public readonly normal: Vector3;
public readonly point: Vector3;
constructor(normal: Vector3, point: Vector3) {
this.normal = normal;
this.point = point;
}
intersect(origin: Vector3, direction: Vector3): Vector3 | null {
const denominator = this.normal.dot(direction);
if (Math.abs(denominator) < 0.0001) {
return null;
}
const t = this.normal.dot(this.point.subtract(origin)) / denominator;
if (t < 0) {
return null;
}
return origin.add(direction.multiply(t));
}
}
export { Plane };