MMDPhysics.d.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import {
  2. Bone,
  3. Euler,
  4. Matrix4,
  5. Object3D,
  6. Quaternion,
  7. SkinnedMesh,
  8. Vector3
  9. } from '../../../src/Three';
  10. export interface MMDPhysicsParameter {
  11. unitStep?: number;
  12. maxStepNum?: number;
  13. gravity?: Vector3;
  14. }
  15. export class MMDPhysics {
  16. constructor( mesh: SkinnedMesh, rigidBodyParams: object[], constraintParams?: object[], params?: MMDPhysicsParameter );
  17. manager: ResourceManager;
  18. mesh: SkinnedMesh;
  19. unitStep: number;
  20. maxStepNum: number;
  21. gravity: Vector3;
  22. world: null;
  23. bodies: RigidBody[];
  24. constraints: Constraint[];
  25. update( delta: number ): this;
  26. reset(): this;
  27. warmup( cycles: number ): this;
  28. setGravity( gravity: Vector3 ): this;
  29. createHelper(): MMDPhysicsHelper;
  30. }
  31. export class ResourceManager {
  32. constructor();
  33. threeVector3s: Vector3[];
  34. threeMatrix4s: Matrix4[];
  35. threeQuaternions: Quaternion[];
  36. threeEulers: Euler[];
  37. transforms: object[];
  38. quaternions: object[];
  39. vector3s: object[];
  40. allocThreeVector3(): void;
  41. freeThreeVector3( v: Vector3 ): void;
  42. allocThreeMatrix4(): void;
  43. freeThreeMatrix4( m: Matrix4 ): void;
  44. allocThreeQuaternion(): void;
  45. freeThreeQuaternion( q: Quaternion ): void;
  46. allocThreeEuler(): void;
  47. freeThreeEuler( e: Euler ): void;
  48. allocTransform(): void;
  49. freeTransform( t: object ): void;
  50. allocQuaternion(): void;
  51. freeQuaternion( q: object ): void;
  52. allocVector3(): void;
  53. freeVector3( v: object ): void;
  54. setIdentity(): void;
  55. getBasis( t: object ): object;
  56. getBasisAsMatrix3( t: object ): object;
  57. getOrigin( t: object ): object;
  58. setOrigin( t: object, v: object ): void;
  59. copyOrigin( t1: object, t2: object ): void;
  60. setBasis( t: object, q: object ): void;
  61. setBasisFromMatrix3( t: object, m: object ): void;
  62. setOriginFromArray3( t: object, a: number[] ): void;
  63. setOriginFromThreeVector3( t: object, v: Vector3 ): void;
  64. setBasisFromArray3( t: object, a: number[] ): void;
  65. setBasisFromThreeQuaternion( t: object, a: Quaternion ): void;
  66. multiplyTransforms( t1: object, t2: object ): object;
  67. inverseTransform( t: object ): object;
  68. multiplyMatrices3( m1: object, m2: object ): object;
  69. addVector3( v1: object, v2: object ): object;
  70. dotVectors3( v1: object, v2: object ): number;
  71. rowOfMatrix3( m: object, i: number ): object;
  72. columnOfMatrix3( m: object, i: number ): object;
  73. negativeVector3( v: object ): object;
  74. multiplyMatrix3ByVector3( m: object, v: object ): object;
  75. transposeMatrix3( m: object ): object;
  76. quaternionToMatrix3( q: object ): object;
  77. matrix3ToQuaternion( m: object ): object;
  78. }
  79. export class RigidBody {
  80. constructor( mesh: SkinnedMesh, world: object, params: object, manager: ResourceManager );
  81. mesh: SkinnedMesh;
  82. world: object;
  83. params: object;
  84. manager: ResourceManager;
  85. body: object;
  86. bone: Bone;
  87. boneOffsetForm: object;
  88. boneOffsetFormInverse: object;
  89. reset(): this;
  90. updateFromBone(): this;
  91. updateBone(): this;
  92. }
  93. export class Constraint {
  94. constructor( mesh: SkinnedMesh, world: object, bodyA: RigidBody, bodyB: RigidBody, params: object, manager: ResourceManager );
  95. }
  96. export class MMDPhysicsHelper extends Object3D {
  97. constructor();
  98. }