MMDPhysics.d.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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. }