import Vector3 from './Vector3'; import type Matrix4 from './Matrix4'; import type Frustum from './Frustum'; declare class Plane { /** * Normal of the plane */ normal: Vector3; /** * Constant of the plane equation, used as distance to the origin */ distance: number; constructor(normal?: Vector3, distance?: number); /** * Distance from a given point to the plane * @param point */ distanceToPoint(point: Vector3): number; /** * Calculate the projection point on the plane * @param point * @param out */ projectPoint(point: Vector3, out: Vector3): Vector3; /** * Normalize the plane's normal and calculate the distance */ normalize(): void; /** * If the plane intersect a frustum * @param Frustum */ intersectFrustum(frustum: Frustum): true | undefined; /** * Calculate the intersection point between plane and a given line * @function * @param start start point of line * @param end end point of line * @param out */ intersectLine(start: Vector3, end: Vector3, out?: Vector3): Vector3 | null; /** * Apply an affine transform matrix to plane * @function */ applyTransform(m4: Matrix4): void; /** * Copy from another plane * @param plane */ copy(plane: Plane): void; /** * Clone a new plane */ clone(): Plane; } export default Plane;