@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
71 lines (57 loc) • 1.67 kB
JavaScript
import {
plane3_three_compute_convex_3_plane_intersection
} from "../../../../core/geom/3d/plane/plane3_three_compute_convex_3_plane_intersection.js";
/**
* Get frustum corners from a set of planes
* see {@link frustum_compute_corners} for a non-three.js version
* @param {Float32Array|number[]} result
* @param {Plane[]} planes
*/
export function computeFrustumCorners(result, planes) {
const plane_x0 = planes[0];
const plane_y0 = planes[2];
const plane_z0 = planes[4];
plane3_three_compute_convex_3_plane_intersection(result, 0,
plane_x0,
plane_y0,
plane_z0
);
const plane_z1 = planes[5];
plane3_three_compute_convex_3_plane_intersection(result, 3,
plane_x0,
plane_y0,
plane_z1
);
const plane_y1 = planes[3];
plane3_three_compute_convex_3_plane_intersection(result, 6,
plane_x0,
plane_y1,
plane_z0
);
plane3_three_compute_convex_3_plane_intersection(result, 9,
plane_x0,
plane_y1,
plane_z1
);
const plane_x1 = planes[1];
plane3_three_compute_convex_3_plane_intersection(result, 12,
plane_x1,
plane_y0,
plane_z0
);
plane3_three_compute_convex_3_plane_intersection(result, 15,
plane_x1,
plane_y0,
plane_z1
);
plane3_three_compute_convex_3_plane_intersection(result, 18,
plane_x1,
plane_y1,
plane_z0
);
plane3_three_compute_convex_3_plane_intersection(result, 21,
plane_x1,
plane_y1,
plane_z1
);
}