1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import type { Nullable, IndicesArray } from "../types";
- import { Vector3 } from "../Maths/math.vector";
- import type { AbstractMesh } from "../Meshes/abstractMesh";
- import { Plane } from "../Maths/math.plane";
- /** @internal */
- export declare class Collider {
- /** Define if a collision was found */
- collisionFound: boolean;
- /**
- * Define last intersection point in local space
- */
- intersectionPoint: Vector3;
- /**
- * Define last collided mesh
- */
- collidedMesh: Nullable<AbstractMesh>;
- /**
- * If true, it check for double sided faces and only returns 1 collision instead of 2
- */
- static DoubleSidedCheck: boolean;
- private _collisionPoint;
- private _planeIntersectionPoint;
- private _tempVector;
- private _tempVector2;
- private _tempVector3;
- private _tempVector4;
- private _edge;
- private _baseToVertex;
- private _destinationPoint;
- private _slidePlaneNormal;
- private _displacementVector;
- /** @internal */
- _radius: Vector3;
- /** @internal */
- _retry: number;
- private _velocity;
- private _basePoint;
- private _epsilon;
- /** @internal */
- _velocityWorldLength: number;
- /** @internal */
- _basePointWorld: Vector3;
- private _velocityWorld;
- private _normalizedVelocity;
- /** @internal */
- _initialVelocity: Vector3;
- /** @internal */
- _initialPosition: Vector3;
- private _nearestDistance;
- private _collisionMask;
- private _velocitySquaredLength;
- private _nearestDistanceSquared;
- get collisionMask(): number;
- set collisionMask(mask: number);
- /**
- * Gets the plane normal used to compute the sliding response (in local space)
- */
- get slidePlaneNormal(): Vector3;
- /**
- * @internal
- */
- _initialize(source: Vector3, dir: Vector3, e: number): void;
- /**
- * @internal
- */
- _checkPointInTriangle(point: Vector3, pa: Vector3, pb: Vector3, pc: Vector3, n: Vector3): boolean;
- /**
- * @internal
- */
- _canDoCollision(sphereCenter: Vector3, sphereRadius: number, vecMin: Vector3, vecMax: Vector3): boolean;
- /**
- * @internal
- */
- _testTriangle(faceIndex: number, trianglePlaneArray: Array<Plane>, p1: Vector3, p2: Vector3, p3: Vector3, hasMaterial: boolean, hostMesh: AbstractMesh): void;
- /**
- * @internal
- */
- _collide(trianglePlaneArray: Array<Plane>, pts: Vector3[], indices: IndicesArray, indexStart: number, indexEnd: number, decal: number, hasMaterial: boolean, hostMesh: AbstractMesh, invertTriangles?: boolean, triangleStrip?: boolean): void;
- /**
- * @internal
- */
- _getResponse(pos: Vector3, vel: Vector3): void;
- }
|