babylon.physicsEngine.d.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. declare module BABYLON {
  2. interface IPhysicsEnginePlugin {
  3. initialize(iterations?: number): any;
  4. setGravity(gravity: Vector3): void;
  5. runOneStep(delta: number): void;
  6. registerMesh(mesh: AbstractMesh, impostor: number, options: PhysicsBodyCreationOptions): any;
  7. registerMeshesAsCompound(parts: PhysicsCompoundBodyPart[], options: PhysicsBodyCreationOptions): any;
  8. unregisterMesh(mesh: AbstractMesh): any;
  9. applyImpulse(mesh: AbstractMesh, force: Vector3, contactPoint: Vector3): void;
  10. createLink(mesh1: AbstractMesh, mesh2: AbstractMesh, pivot1: Vector3, pivot2: Vector3, options?: any): boolean;
  11. dispose(): void;
  12. isSupported(): boolean;
  13. updateBodyPosition(mesh: AbstractMesh): void;
  14. }
  15. interface PhysicsBodyCreationOptions {
  16. mass: number;
  17. friction: number;
  18. restitution: number;
  19. }
  20. interface PhysicsCompoundBodyPart {
  21. mesh: Mesh;
  22. impostor: number;
  23. }
  24. class PhysicsEngine {
  25. public gravity: Vector3;
  26. private _currentPlugin;
  27. constructor(plugin?: IPhysicsEnginePlugin);
  28. public _initialize(gravity?: Vector3): void;
  29. public _runOneStep(delta: number): void;
  30. public _setGravity(gravity: Vector3): void;
  31. public _registerMesh(mesh: AbstractMesh, impostor: number, options: PhysicsBodyCreationOptions): any;
  32. public _registerMeshesAsCompound(parts: PhysicsCompoundBodyPart[], options: PhysicsBodyCreationOptions): any;
  33. public _unregisterMesh(mesh: AbstractMesh): void;
  34. public _applyImpulse(mesh: AbstractMesh, force: Vector3, contactPoint: Vector3): void;
  35. public _createLink(mesh1: AbstractMesh, mesh2: AbstractMesh, pivot1: Vector3, pivot2: Vector3, options?: any): boolean;
  36. public _updateBodyPosition(mesh: AbstractMesh): void;
  37. public dispose(): void;
  38. public isSupported(): boolean;
  39. static NoImpostor: number;
  40. static SphereImpostor: number;
  41. static BoxImpostor: number;
  42. static PlaneImpostor: number;
  43. static MeshImpostor: number;
  44. static CapsuleImpostor: number;
  45. static ConeImpostor: number;
  46. static CylinderImpostor: number;
  47. static ConvexHullImpostor: number;
  48. static Epsilon: number;
  49. }
  50. }