import { Matrix4 } from '../math';
import { Vector3, XYZ } from '../math';
//Intersection sphere and box shapes.
//Intersection sphere for sphere, stick render
/** @class
* @subcategory Math
* */
export class Sphere {
center: Vector3
radius: number
box?: any;
constructor(center: XYZ = {x:0,y:0,z:0}, radius = 0) {
this.center = new Vector3(center.x,center.y,center.z);
this.radius = radius;
}
set(center: Vector3, radius: number): Sphere {
this.center.copy(center);
this.radius = radius;
return this;
}
copy(sphere: Sphere): Sphere {
this.center.copy(sphere.center);
this.radius = sphere.radius;
return this;
}
applyMatrix4(matrix: Matrix4): Sphere {
this.center.applyMatrix4(matrix);
this.radius = this.radius * matrix.getMaxScaleOnAxis();
return this;
}
translate(offset: Vector3): Sphere {
this.center.add(offset);
return this;
}
equals(sphere: Sphere): boolean {
return sphere.center.equals(this.center) && sphere.radius === this.radius;
}
clone(): Sphere {
return new Sphere().copy(this);
}
}