physics_bullet.ts 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633
  1. ///if arm_physics
  2. declare function Ammo<T>(ops?: T): Promise<T & typeof Ammo>;
  3. declare namespace Ammo {
  4. class btTypedObject {}
  5. class btVector3 {
  6. constructor(x: f32, y: f32, z: f32);
  7. setValue(x: f32, y: f32, z: f32): void;
  8. setX(x: f32): void;
  9. setY(y: f32): void;
  10. setZ(z: f32): void;
  11. x(): f32;
  12. y(): f32;
  13. z(): f32;
  14. length(): f32;
  15. normalize(): void;
  16. }
  17. class btQuadWord {
  18. setX(x: f32): void;
  19. setY(y: f32): void;
  20. setZ(z: f32): void;
  21. setW(w: f32): void;
  22. x(): f32;
  23. y(): f32;
  24. z(): f32;
  25. w(): f32;
  26. }
  27. class btQuaternion extends btQuadWord {
  28. constructor(x: f32, y: f32, z: f32, w: f32);
  29. setEuler(yaw: f32, pitch: f32, roll: f32): void;
  30. slerp(q: btQuaternion, t: f32): btQuaternion;
  31. setValue(x: f32, y: f32, z: f32, w: f32): void;
  32. }
  33. class btMatrix3x3 {
  34. setEulerZYX(ex: f32, ey: f32, ez: f32): void;
  35. getRotation(q: btQuaternion): void;
  36. getRow(y: i32): btVector3;
  37. }
  38. class btActionInterface {}
  39. class btTransform {
  40. constructor();
  41. setIdentity(): void;
  42. setOrigin(inVec: btVector3): void;
  43. getOrigin(): btVector3;
  44. setRotation(inQuat: btQuaternion): void;
  45. getRotation(): btQuaternion;
  46. }
  47. class btIDebugDraw {
  48. drawLine(from: btVector3, to: btVector3, color: btVector3): void;
  49. drawContactPoint(pointOnB: btVector3, normalOnB: btVector3, distance: f32, lifeTime: i32, color: btVector3): void;
  50. reportErrorWarning(warningString: string): void;
  51. draw3dText(location: btVector3, textString: string): void;
  52. setDebugMode(debugMode: i32): void;
  53. getDebugMode(): i32;
  54. }
  55. class btMotionState {
  56. getWorldTransform(centerOfMassWorldTrans: btTransform): void;
  57. setWorldTransform(centerOfMassWorldTrans: btTransform): void;
  58. }
  59. class btDefaultMotionState extends btMotionState {
  60. constructor(worldTrans: btTransform, centerOfMassOffset: btTransform);
  61. }
  62. class btRigidBodyConstructionInfo {
  63. constructor(mass: f32, motionState: btMotionState, collisionShape: btCollisionShape, localInertia: btVector3);
  64. m_friction: f32;
  65. m_rollingFriction: f32;
  66. }
  67. class btCollisionObject {
  68. getWorldTransform(): btTransform;
  69. setWorldTransform(trans: btTransform): void;
  70. activate(forceActivation: bool): void;
  71. setActivationState(newState: i32): void;
  72. getUserIndex(): i32;
  73. setUserIndex(index: i32): void;
  74. getUserPointer(): any;
  75. setUserPointer(userPointer: any): void;
  76. isActive(): bool;
  77. isKinematicObject(): bool;
  78. isStaticObject(): bool;
  79. isStaticOrKinematicObject(): bool;
  80. setFriction(frict: f32): void;
  81. setRollingFriction(frict: f32): void;
  82. setRestitution(rest: f32): void;
  83. setContactProcessingThreshold(contactProcessingThreshold: f32): void;
  84. setCollisionShape(collisionShape: btCollisionShape): void;
  85. getCollisionShape(): btCollisionShape;
  86. setCollisionFlags(flags: i32): void;
  87. getCollisionFlags(): i32;
  88. setCcdSweptSphereRadius(radius: f32): void;
  89. setCcdMotionThreshold(ccdMotionThreshold: f32): void;
  90. }
  91. class btRigidBody extends btCollisionObject {
  92. userIndex: i32;
  93. constructor(constructionInfo: btRigidBodyConstructionInfo);
  94. setMassProps(mass: f32, inertia: btVector3): void;
  95. getMotionState(): btMotionState;
  96. applyCentralForce(force: btVector3): void;
  97. applyForce(force: btVector3, rel_pos: btVector3): void;
  98. applyCentralImpulse(impulse: btVector3): void;
  99. applyImpulse(impulse: btVector3, rel_pos: btVector3): void;
  100. applyTorque(torque: btVector3): void;
  101. applyTorqueImpulse(torque: btVector3): void;
  102. clearForces(): void;
  103. setDamping(linear: f32, angular: f32): void;
  104. updateInertiaTensor(): void;
  105. getCenterOfMassPosition(): btVector3;
  106. getCenterOfMassTransform(): btTransform;
  107. setCenterOfMassTransform(trans: btTransform): void;
  108. getLinearVelocity(): btVector3;
  109. setLinearVelocity(lin_vel: btVector3): void;
  110. getAngularVelocity(): btVector3;
  111. setAngularVelocity(ang_vel: btVector3): void;
  112. setLinearFactor(linearFactor: btVector3): void;
  113. setAngularFactor(angFac: btVector3): void;
  114. setSleepingThresholds(linear: f32, angular: f32): void;
  115. applyGravity(): void;
  116. getGravity(): btVector3;
  117. setGravity(acceleration: btVector3): void;
  118. upcast(col_obj: btCollisionObject): btRigidBody;
  119. }
  120. class btCollisionConfiguration {}
  121. class btDefaultCollisionConfiguration extends btCollisionConfiguration {
  122. constructor();
  123. }
  124. class btSoftBodyRigidBodyCollisionConfiguration extends btCollisionConfiguration {
  125. constructor();
  126. }
  127. class btDispatcher {
  128. getManifoldByIndexInternal(index: i32): btPersistentManifold;
  129. getNumManifolds(): i32;
  130. }
  131. class btCollisionDispatcher extends btDispatcher {
  132. constructor(collisionConfiguration: btCollisionConfiguration);
  133. }
  134. class btBroadphaseInterface {}
  135. class btDbvtBroadphase extends btBroadphaseInterface {
  136. constructor();
  137. }
  138. class btAxisSweep3 extends btBroadphaseInterface {
  139. constructor(worldAabbMin: btVector3, worldAabbMax: btVector3);
  140. }
  141. class btConstraintSolver {}
  142. class btSequentialImpulseConstraintSolver extends btConstraintSolver {
  143. constructor();
  144. }
  145. class btDefaultSoftBodySolver extends btConstraintSolver {
  146. constructor();
  147. }
  148. class RayResultCallback {
  149. hasHit(): bool;
  150. constructor();
  151. get_m_collisionFilterGroup(): i32;
  152. set_m_collisionFilterGroup(g: i32): void;
  153. get_m_collisionFilterMask(): i32;
  154. set_m_collisionFilterMask(m: i32): void;
  155. get_m_collisionObject(): btCollisionObject;
  156. }
  157. class ClosestRayResultCallback extends RayResultCallback {
  158. constructor(rayFromWorld: btVector3, rayToWorld: btVector3);
  159. get_m_hitNormalWorld(): btVector3;
  160. get_m_hitPointWorld(): btVector3;
  161. }
  162. class ConcreteContactResultCallback extends RayResultCallback {
  163. constructor();
  164. }
  165. class btCollisionWorld {
  166. rayTest(rayFromWorld: btVector3, rayToWorld: btVector3, resultCallback: RayResultCallback): void;
  167. updateSingleAabb(colObj: btCollisionObject): void;
  168. getPairCache(): btOverlappingPairCache;
  169. removeCollisionObject(collisionObject: btCollisionObject): void;
  170. addCollisionObject(collisionObject: btCollisionObject, collisionFilterGroup?: i32, collisionFilterMask?: i32): void;
  171. }
  172. class btDynamicsWorld extends btCollisionWorld {
  173. addRigidBody(body: btRigidBody, group?: i32, mask?: i32): void;
  174. removeRigidBody(body: btRigidBody): void;
  175. addAction(action: btActionInterface): void;
  176. removeAction(action: btActionInterface): void;
  177. addConstraint(constraint: btTypedConstraint, disableCollisionsBetweenLinkedBodies: bool): void;
  178. removeConstraint(constraint: btTypedConstraint): void;
  179. getGravity(): btVector3;
  180. setGravity(v: btVector3): void;
  181. stepSimulation(timeStep: f32, maxSubSteps: f32, fixedTimeStep: f32): void;
  182. }
  183. class btDiscreteDynamicsWorld extends btDynamicsWorld {
  184. constructor(dispatcher: btDispatcher, pairCache: btBroadphaseInterface, constraintSolver: btConstraintSolver, collisionConfiguration: btCollisionConfiguration);
  185. debugDrawWorld(): void;
  186. }
  187. class btSoftBodyWorldInfo {
  188. set_m_gravity(v: btVector3): void;
  189. }
  190. class btSoftRigidDynamicsWorld extends btDynamicsWorld {
  191. constructor(dispatcher: btDispatcher, pairCache: btBroadphaseInterface, constraintSolver: btConstraintSolver, collisionConfiguration: btCollisionConfiguration, softConstraintSolver: btConstraintSolver);
  192. addSoftBody(body: btSoftBody, collisionFilterGroup: i32, collisionFilterMask: i32): void;
  193. removeSoftBody(body: btSoftBody): void;
  194. getWorldInfo(): btSoftBodyWorldInfo;
  195. }
  196. class btSimpleDynamicsWorld extends btDynamicsWorld {
  197. constructor(dispatcher: btDispatcher, pairCache: btBroadphaseInterface, constraintSolver: btConstraintSolver, collisionConfiguration: btCollisionConfiguration);
  198. }
  199. class btCollisionShape {
  200. calculateLocalInertia(mass: f32, inertia: btVector3): void;
  201. setMargin(margin: f32): void;
  202. setLocalScaling(scaling: btVector3): void;
  203. getLocalScaling(): btVector3;
  204. }
  205. class btCompoundShape extends btCollisionShape {
  206. constructor(enableDynamicAabbTree: bool);
  207. addChildShape(localTransform: btTransform, shape: btCollisionShape): void;
  208. }
  209. class btConvexShape extends btCollisionShape {}
  210. class btConcaveShape extends btCollisionShape {}
  211. class btConvexInternalShape extends btConvexShape {}
  212. class btPolyhedralConvexShape extends btConvexInternalShape {}
  213. class btBoxShape extends btPolyhedralConvexShape {
  214. constructor(boxHalfExtents: btVector3);
  215. }
  216. class btSphereShape extends btConvexInternalShape {
  217. constructor(radius: f32);
  218. }
  219. class btStaticPlaneShape extends btConcaveShape {
  220. constructor(planeNormal: btVector3, planeConstant: f32);
  221. }
  222. class btPolyhedralConvexAabbCachingShape extends btPolyhedralConvexShape {}
  223. class btConvexHullShape extends btPolyhedralConvexAabbCachingShape {
  224. constructor();
  225. addPoint(point: btVector3, recalculateLocalAabb: bool): void;
  226. }
  227. class btCapsuleShape extends btConvexInternalShape {
  228. constructor(radius: f32, height: f32);
  229. getUpAxis(): i32;
  230. getRadius(): f32;
  231. getHalfHeight(): f32;
  232. }
  233. class btCapsuleShapeX extends btCapsuleShape {
  234. constructor(radius: f32, height: f32);
  235. }
  236. class btCapsuleShapeZ extends btCapsuleShape {
  237. constructor(radius: f32, height: f32);
  238. }
  239. class btCylinderShape extends btConvexInternalShape {
  240. constructor(halfExtents: btVector3);
  241. }
  242. class btCylinderShapeX extends btCylinderShape {
  243. constructor(halfExtents: btVector3);
  244. }
  245. class btCylinderShapeZ extends btCylinderShape {
  246. constructor(halfExtents: btVector3);
  247. }
  248. class btConeShape extends btConvexInternalShape {
  249. constructor(radius: f32, height: f32);
  250. }
  251. class btConeShapeX extends btConeShape {
  252. constructor(radius: f32, height: f32);
  253. }
  254. class btConeShapeZ extends btConeShape {
  255. constructor(radius: f32, height: f32);
  256. }
  257. class btHeightfieldTerrainShape extends btConcaveShape {
  258. // heightDataType - float, double, integer, short, fixedpoint88, uchar
  259. constructor(heightStickWidth: i32, heightStickLength: i32, heightfieldData: any, heightScale: f32, minHeight: f32, maxHeight: f32, upAxis: i32, heightDataType: i32, flipQuadEdges: bool);
  260. }
  261. class btStridingMeshInterface {
  262. constructor();
  263. }
  264. class btIndexedMesh {
  265. constructor();
  266. }
  267. class btTriangleIndexVertexArray extends btStridingMeshInterface {
  268. constructor();
  269. }
  270. class btTriangleMesh extends btTriangleIndexVertexArray {
  271. constructor(use32bitIndices: bool, use4componentVertices: bool);
  272. addTriangle(vertex0: btVector3, vertex1: btVector3, vertex2: btVector3, removeDuplicateVertices?: bool): void;
  273. }
  274. class btTriangleMeshShape extends btConcaveShape {
  275. constructor(meshInterface: btStridingMeshInterface);
  276. }
  277. class btBvhTriangleMeshShape extends btTriangleMeshShape {
  278. constructor(meshInterface: btStridingMeshInterface, useQuantizedAabbCompression: bool, buildBvh: bool);
  279. }
  280. class btGImpactMeshShape extends btConcaveShape {
  281. constructor(meshInterface: btStridingMeshInterface);
  282. updateBound(): void;
  283. }
  284. class GImpactCollisionAlgorithm {
  285. constructor();
  286. registerAlgorithm(dispatcher: btCollisionDispatcher): void;
  287. }
  288. class btVehicleTuning extends btActionInterface {
  289. constructor();
  290. }
  291. class btVehicleRaycaster {}
  292. class btDefaultVehicleRaycaster extends btVehicleRaycaster {
  293. constructor(world: btDynamicsWorld);
  294. }
  295. class btRaycastInfo {
  296. m_contactNormalWS: btVector3;
  297. m_contactPointWS: btVector3;
  298. m_suspensionLength: f32;
  299. m_hardPointWS: btVector3;
  300. m_wheelDirectionWS: btVector3;
  301. m_wheelAxleWS: btVector3;
  302. m_isInContact: bool;
  303. }
  304. class btWheelInfoConstructionInfo {
  305. constructor();
  306. m_chassisConnectionCS: btVector3;
  307. m_wheelDirectionCS: btVector3;
  308. m_wheelAxleCS: btVector3;
  309. m_suspensionRestLength: f32;
  310. m_maxSuspensionTravelCm: f32;
  311. m_wheelRadius: f32;
  312. m_suspensionStiffness: f32;
  313. m_wheelsDampingCompression: f32;
  314. m_wheelsDampingRelaxation: f32;
  315. m_frictionSlip: f32;
  316. m_maxSuspensionForce: f32;
  317. m_bIsFrontWheel: bool;
  318. }
  319. class btWheelInfo {
  320. constructor(ci: btWheelInfoConstructionInfo);
  321. m_raycastInfo: btRaycastInfo;
  322. m_worldTransform: btTransform;
  323. m_chassisConnectionPointCS: btVector3;
  324. m_wheelDirectionCS: btVector3;
  325. m_wheelAxleCS: btVector3;
  326. m_suspensionRestLength1: f32;
  327. m_maxSuspensionTravelCm: f32;
  328. getSuspensionRestLength(): f32;
  329. m_suspensionStiffness: f32;
  330. m_wheelsDampingCompression: f32;
  331. m_wheelsDampingRelaxation: f32;
  332. m_frictionSlip: f32;
  333. m_steering: f32;
  334. m_rotation: f32;
  335. m_deltaRotation: f32;
  336. m_rollInfluence: f32;
  337. m_maxSuspensionForce: f32;
  338. m_wheelsRadius: f32;
  339. m_engineForce: f32;
  340. m_brake: f32;
  341. m_bIsFrontWheel: bool;
  342. m_clippedInvContactDotSuspension: f32;
  343. m_suspensionRelativeVelocity: f32;
  344. m_wheelsSuspensionForce: f32;
  345. m_skidInfo: f32;
  346. }
  347. class btRaycastVehicle extends btActionInterface {
  348. constructor(tuning: btVehicleTuning, chassis: btRigidBody, raycaster: btVehicleRaycaster);
  349. setCoordinateSystem(rightIndex: i32, upIndex: i32, forwardIndex: i32): void;
  350. addWheel(connectionPointCS0: btVector3, wheelDirectionCS0: btVector3, wheelAxleCS: btVector3, suspensionRestLength: f32, wheelRadius: f32, tuning: btVehicleTuning, isFrontWheel: bool): btWheelInfo;
  351. getNumWheels(): i32;
  352. getWheelInfo(index: i32): btWheelInfo;
  353. resetSuspension(): void;
  354. getWheelTransformWS(wheelIndex: i32): btTransform;
  355. updateWheelTransform(wheelIndex: i32, interpolatedTransform: bool): void;
  356. applyEngineForce(force: f32, wheel: i32): void;
  357. setBrake(brake: f32, wheelIndex: i32): void;
  358. setPitchControl(pitch: f32): void;
  359. updateSuspension(deltaTime: f32 ): void;
  360. updateFriction(deltaTime: f32 ): void;
  361. setSteeringValue(steering: f32, wheel: i32): void;
  362. getRightAxis(): i32;
  363. getUpAxis(): i32;
  364. getForwardAxis(): i32;
  365. getForwardVector(): btVector3;
  366. getCurrentSpeedKmHour(): f32;
  367. }
  368. class btPersistentManifold extends btTypedObject {
  369. constructor();
  370. getBody0(): btCollisionObject;
  371. getBody1(): btCollisionObject;
  372. getNumContacts(): i32;
  373. getContactPoint(index: i32): btManifoldPoint;
  374. }
  375. class btManifoldPoint {
  376. constructor();
  377. get_m_positionWorldOnA(): btVector3;
  378. get_m_positionWorldOnB(): btVector3;
  379. get_m_normalWorldOnB(): btVector3;
  380. getDistance(): f32;
  381. getAppliedImpulse(): f32;
  382. }
  383. class btTypedConstraint extends btTypedObject {
  384. setBreakingImpulseThreshold(threshold: f32): void;
  385. }
  386. class btGeneric6DofConstraint extends btTypedConstraint {
  387. constructor(rbB: btRigidBody, frameInB: btTransform, useLinearReferenceFrameB: bool);
  388. // static new2(rbA: btRigidBody, rbB: btRigidBody, frameInA: btTransform, frameInB: btTransform, useLinearReferenceFrameB: bool): Generic6DofConstraint {
  389. // let _r1 = rbA, _r2 = rbB, _fa = frameInA, _fb = frameInB, _b = useLinearReferenceFrameB;
  390. // return new Ammo.btGeneric6DofConstraint(_r1, _r2, _fa, _fb, _b);
  391. // }
  392. setLinearLowerLimit(linearLower: btVector3): void;
  393. setLinearUpperLimit(linearUpper: btVector3): void;
  394. setAngularLowerLimit(angularLower: btVector3): void;
  395. setAngularUpperLimit(angularUpper: btVector3): void;
  396. setParam(num: i32, value: f32, axis: i32): void;
  397. getFrameOffsetA(): btTransform;
  398. }
  399. class btGeneric6DofSpringConstraint extends btGeneric6DofConstraint {
  400. constructor(rbA: btRigidBody, rbB: btRigidBody, frameInA: btTransform, frameInB: btTransform, useLinearReferenceFrameB: bool);
  401. enableSpring(index: i32, onOff: bool): void;
  402. setStiffness(index: i32, stiffness: f32): void;
  403. setDamping(index: i32, damping: f32): void;
  404. }
  405. class btHingeConstraint extends btTypedConstraint {
  406. constructor(rbA: btRigidBody, rbB: btRigidBody, pivotInA: btVector3, pivotInB: btVector3, axisInA: btVector3, axisInB: btVector3, useReferenceFrameA: bool);
  407. setLimit(low: f32, high: f32, _softness: f32, _biasFactor: f32, _relaxationFactor: f32): void;
  408. }
  409. class btSliderConstraint extends btTypedConstraint {
  410. constructor(rbA: btRigidBody, rbB: btRigidBody, frameInA: btTransform, frameInB: btTransform, useReferenceFrameA: bool);
  411. setLowerLinLimit(lowerLimit: f32): void;
  412. setUpperLinLimit(upperLimit: f32): void;
  413. setLowerAngLimit(lowerAngLimit: f32): void;
  414. setUpperAngLimit(upperAngLimit: f32): void;
  415. }
  416. class btPoint2PointConstraint extends btTypedConstraint {
  417. constructor(rbA: btRigidBody, rbB: btRigidBody, pivotInA: btVector3, pivotInB: btVector3);
  418. setPivotA(pivotA: btVector3): void;
  419. setPivotB(pivotB: btVector3): void;
  420. getPivotInA(): btVector3;
  421. getPivotInB(): btVector3;
  422. }
  423. class Config {
  424. set_viterations(i: i32): void;
  425. set_piterations(i: i32): void;
  426. set_collisions(i: i32): void;
  427. set_kDF(f: f32): void;
  428. set_kDP(f: f32): void;
  429. set_kPR(f: f32): void;
  430. set_kVC(f: f32): void;
  431. set_kAHR(f: f32): void;
  432. }
  433. class tNodeArray {
  434. at(i: i32): Node;
  435. size(): i32;
  436. }
  437. class tMaterialArray {
  438. at(i: i32): Material;
  439. }
  440. class tAnchorArray {
  441. constructor();
  442. at(i: i32): Anchor;
  443. clear(): void;
  444. size(): i32;
  445. push_back(anc: Anchor): void;
  446. pop_back(): void;
  447. }
  448. class Node {
  449. get_m_x(): btVector3;
  450. get_m_n(): btVector3;
  451. }
  452. class Material {
  453. constructor();
  454. set_m_kLST(kAST: f32): void;
  455. get_m_kLST(): void;
  456. set_m_kAST(kAST: f32): void;
  457. get_m_kAST(): void;
  458. set_m_kVST(kVST: f32): void;
  459. get_m_kVST(): f32;
  460. set_m_flags(flags: i32): void;
  461. get_m_flags(): i32;
  462. }
  463. class Anchor {
  464. set_m_node(node: Node): void;
  465. get_m_node(): Node;
  466. set_m_local(local: btVector3): void;
  467. get_m_local(): btVector3;
  468. set_m_body(body: btRigidBody): void;
  469. get_m_body(): btRigidBody;
  470. set_m_influence(influence: f32): void;
  471. get_m_influence(): f32;
  472. set_m_c1(c1: btVector3): void;
  473. get_m_c1(): btVector3;
  474. set_m_c2(c2: f32): void;
  475. get_m_c2(): f32;
  476. }
  477. class btSoftBody extends btCollisionObject {
  478. get_m_nodes(): tNodeArray;
  479. get_m_cfg(): Config;
  480. get_m_materials(): tMaterialArray;
  481. get_m_anchors(): tAnchorArray;
  482. setTotalMass(mass: f32, fromfaces: bool): void;
  483. generateClusters(k: i32, maxiterations: i32): void;
  484. generateBendingConstraints(distance: i32, mat: any): void;
  485. appendAnchor(node: i32, body: btRigidBody, disableCollisionBetweenLinkedBodies: bool, influence: f32): void;
  486. appendLink(node: Node, node1: Node, mat: Material, bcheckexist: bool): void;
  487. addForce(f: btVector3, node: i32): void;
  488. }
  489. class btSoftBodyHelpers {
  490. constructor();
  491. CreateFromTriMesh(worldInfo: btSoftBodyWorldInfo, vertices:f32[], triangles:i32[], ntriangles: i32, randomizeConstraints: bool): btSoftBody;
  492. }
  493. class btOverlappingPairCallback {}
  494. class btGhostPairCallback extends btOverlappingPairCallback {
  495. constructor();
  496. }
  497. class btOverlappingPairCache {
  498. setInternalGhostPairCallback(ghostPairCallback: btOverlappingPairCallback): void;
  499. }
  500. class btGhostObject extends btCollisionObject {
  501. constructor();
  502. getNumOverlappingObjects(): i32;
  503. getOverlappingObject(index: i32): btCollisionObject;
  504. }
  505. class btPairCachingGhostObject extends btGhostObject {
  506. constructor();
  507. }
  508. class btKinematicCharacterController extends btActionInterface {
  509. constructor(ghostObject: btPairCachingGhostObject, convexShape: btConvexShape, stepHeight: f32, upAxis: i32);
  510. setUpAxis(axis: i32): void; // setUp in cpp
  511. jump(): void;
  512. setGravity(gravity: f32): void;
  513. getGravity(): f32;
  514. canJump(): bool;
  515. onGround(): bool;
  516. setWalkDirection(walkDirection: btVector3): void;
  517. setVelocityForTimeInterval(velocity: btVector3, timeInterval: f32): void;
  518. warp(origin: btVector3): void;
  519. preStep(collisionWorld: btCollisionWorld): void;
  520. playerStep(collisionWorld: btCollisionWorld, dt: f32): void;
  521. setFallSpeed(fallSpeed: f32): void;
  522. setJumpSpeed(jumpSpeed: f32): void;
  523. setMaxJumpHeight(maxJumpHeight: f32): void;
  524. setMaxSlope(slopeRadians: f32): void;
  525. getMaxSlope(): f32;
  526. getGhostObject(): btPairCachingGhostObject;
  527. setUseGhostSweepTest(useGhostObjectSweepTest: bool): void;
  528. setUpInterpolate(value: bool): void;
  529. }
  530. function destroy(obj: any): void;
  531. function castObject(obj: any, to: any): any;
  532. function _malloc(byteSize: i32): i32;
  533. let HEAPU8: any;
  534. let HEAPF32: any;
  535. }
  536. ///end