collider.d.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import type { Nullable, IndicesArray } from "../types";
  2. import { Vector3 } from "../Maths/math.vector";
  3. import type { AbstractMesh } from "../Meshes/abstractMesh";
  4. import { Plane } from "../Maths/math.plane";
  5. /** @internal */
  6. export declare class Collider {
  7. /** Define if a collision was found */
  8. collisionFound: boolean;
  9. /**
  10. * Define last intersection point in local space
  11. */
  12. intersectionPoint: Vector3;
  13. /**
  14. * Define last collided mesh
  15. */
  16. collidedMesh: Nullable<AbstractMesh>;
  17. /**
  18. * If true, it check for double sided faces and only returns 1 collision instead of 2
  19. */
  20. static DoubleSidedCheck: boolean;
  21. private _collisionPoint;
  22. private _planeIntersectionPoint;
  23. private _tempVector;
  24. private _tempVector2;
  25. private _tempVector3;
  26. private _tempVector4;
  27. private _edge;
  28. private _baseToVertex;
  29. private _destinationPoint;
  30. private _slidePlaneNormal;
  31. private _displacementVector;
  32. /** @internal */
  33. _radius: Vector3;
  34. /** @internal */
  35. _retry: number;
  36. private _velocity;
  37. private _basePoint;
  38. private _epsilon;
  39. /** @internal */
  40. _velocityWorldLength: number;
  41. /** @internal */
  42. _basePointWorld: Vector3;
  43. private _velocityWorld;
  44. private _normalizedVelocity;
  45. /** @internal */
  46. _initialVelocity: Vector3;
  47. /** @internal */
  48. _initialPosition: Vector3;
  49. private _nearestDistance;
  50. private _collisionMask;
  51. private _velocitySquaredLength;
  52. private _nearestDistanceSquared;
  53. get collisionMask(): number;
  54. set collisionMask(mask: number);
  55. /**
  56. * Gets the plane normal used to compute the sliding response (in local space)
  57. */
  58. get slidePlaneNormal(): Vector3;
  59. /**
  60. * @internal
  61. */
  62. _initialize(source: Vector3, dir: Vector3, e: number): void;
  63. /**
  64. * @internal
  65. */
  66. _checkPointInTriangle(point: Vector3, pa: Vector3, pb: Vector3, pc: Vector3, n: Vector3): boolean;
  67. /**
  68. * @internal
  69. */
  70. _canDoCollision(sphereCenter: Vector3, sphereRadius: number, vecMin: Vector3, vecMax: Vector3): boolean;
  71. /**
  72. * @internal
  73. */
  74. _testTriangle(faceIndex: number, trianglePlaneArray: Array<Plane>, p1: Vector3, p2: Vector3, p3: Vector3, hasMaterial: boolean, hostMesh: AbstractMesh): void;
  75. /**
  76. * @internal
  77. */
  78. _collide(trianglePlaneArray: Array<Plane>, pts: Vector3[], indices: IndicesArray, indexStart: number, indexEnd: number, decal: number, hasMaterial: boolean, hostMesh: AbstractMesh, invertTriangles?: boolean, triangleStrip?: boolean): void;
  79. /**
  80. * @internal
  81. */
  82. _getResponse(pos: Vector3, vel: Vector3): void;
  83. }