import { Vector3 } from "./Vector3"; class Box3 { constructor( public min: Vector3, public max: Vector3, ) {} public contains(point: Vector3) { return ( point.x >= this.min.x && point.x <= this.max.x && point.y >= this.min.y && point.y <= this.max.y && point.z >= this.min.z && point.z <= this.max.z ); } public intersects(box: Box3) { return ( this.max.x >= box.min.x && this.min.x <= box.max.x && this.max.y >= box.min.y && this.min.y <= box.max.y && this.max.z >= box.min.z && this.min.z <= box.max.z ); } public size() { return this.max.subtract(this.min); } public center() { return this.min.add(this.max).divide(2); } public expand(point: Vector3) { this.min = this.min.min(point); this.max = this.max.max(point); } public permute() { const min = this.min; const max = this.max; this.min = new Vector3(Math.min(min.x, max.x), Math.min(min.y, max.y), Math.min(min.z, max.z)); this.max = new Vector3(Math.max(min.x, max.x), Math.max(min.y, max.y), Math.max(min.z, max.z)); } } export { Box3 };