12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import type { DeepImmutable } from "../types";
- import { Matrix, Vector3 } from "../Maths/math.vector";
- import type { Plane } from "../Maths/math.plane";
- /**
- * Class used to store bounding sphere information
- */
- export declare class BoundingSphere {
- /**
- * Gets the center of the bounding sphere in local space
- */
- readonly center: Vector3;
- /**
- * Radius of the bounding sphere in local space
- */
- radius: number;
- /**
- * Gets the center of the bounding sphere in world space
- */
- readonly centerWorld: Vector3;
- /**
- * Radius of the bounding sphere in world space
- */
- radiusWorld: number;
- /**
- * Gets the minimum vector in local space
- */
- readonly minimum: Vector3;
- /**
- * Gets the maximum vector in local space
- */
- readonly maximum: Vector3;
- private _worldMatrix;
- private static readonly _TmpVector3;
- /**
- * Creates a new bounding sphere
- * @param min defines the minimum vector (in local space)
- * @param max defines the maximum vector (in local space)
- * @param worldMatrix defines the new world matrix
- */
- constructor(min: DeepImmutable<Vector3>, max: DeepImmutable<Vector3>, worldMatrix?: DeepImmutable<Matrix>);
- /**
- * Recreates the entire bounding sphere from scratch as if we call the constructor in place
- * @param min defines the new minimum vector (in local space)
- * @param max defines the new maximum vector (in local space)
- * @param worldMatrix defines the new world matrix
- */
- reConstruct(min: DeepImmutable<Vector3>, max: DeepImmutable<Vector3>, worldMatrix?: DeepImmutable<Matrix>): void;
- /**
- * Scale the current bounding sphere by applying a scale factor
- * @param factor defines the scale factor to apply
- * @returns the current bounding box
- */
- scale(factor: number): BoundingSphere;
- /**
- * Gets the world matrix of the bounding box
- * @returns a matrix
- */
- getWorldMatrix(): DeepImmutable<Matrix>;
- /**
- * @internal
- */
- _update(worldMatrix: DeepImmutable<Matrix>): void;
- /**
- * Tests if the bounding sphere is intersecting the frustum planes
- * @param frustumPlanes defines the frustum planes to test
- * @returns true if there is an intersection
- */
- isInFrustum(frustumPlanes: Array<DeepImmutable<Plane>>): boolean;
- /**
- * Tests if the bounding sphere center is in between the frustum planes.
- * Used for optimistic fast inclusion.
- * @param frustumPlanes defines the frustum planes to test
- * @returns true if the sphere center is in between the frustum planes
- */
- isCenterInFrustum(frustumPlanes: Array<DeepImmutable<Plane>>): boolean;
- /**
- * Tests if a point is inside the bounding sphere
- * @param point defines the point to test
- * @returns true if the point is inside the bounding sphere
- */
- intersectsPoint(point: DeepImmutable<Vector3>): boolean;
- /**
- * Checks if two sphere intersect
- * @param sphere0 sphere 0
- * @param sphere1 sphere 1
- * @returns true if the spheres intersect
- */
- static Intersects(sphere0: DeepImmutable<BoundingSphere>, sphere1: DeepImmutable<BoundingSphere>): boolean;
- /**
- * Creates a sphere from a center and a radius
- * @param center The center
- * @param radius radius
- * @param matrix Optional worldMatrix
- * @returns The sphere
- */
- static CreateFromCenterAndRadius(center: DeepImmutable<Vector3>, radius: number, matrix?: DeepImmutable<Matrix>): BoundingSphere;
- }
|