forked from kripken/ammo.js
-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathbullet.d.ts
326 lines (283 loc) · 17.5 KB
/
bullet.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
declare module 'external:emscripten/bullet/bullet.release.asm.js' {
export default Bullet;
}
declare module 'external:emscripten/bullet/bullet.release.wasm.js' {
export default Bullet;
}
// tslint:disable
declare function Bullet (moduleOptions?: any): Promise<void>;
declare namespace Bullet {
type ptr = number;
interface instance {
HEAP8: Int8Array;
HEAP16: Int16Array;
HEAP32: Int32Array;
HEAPU8: Uint8Array;
HEAPU16: Uint16Array;
HEAPU32: Uint32Array;
HEAPF32: Float32Array;
HEAPF64: Float64Array;
// class interface
DebugDraw: any;
ControllerHitReport: any;
MotionState: any;
_malloc(bytes: number): ptr;
_free(p: ptr): void;
_read_f32(p: ptr): void;
_write_f32(p: ptr, v: number): void;
_safe_delete(p: ptr, bulletType: number): void;
Vec3_new(x: number, y: number, z: number): ptr;
Vec3_x(p: ptr): number;
Vec3_y(p: ptr): number;
Vec3_z(p: ptr): number;
Vec3_set(p: ptr, x: number, y: number, z: number): void;
Quat_new(x: number, y: number, z: number, w: number): ptr;
Quat_x(p: ptr): number;
Quat_y(p: ptr): number;
Quat_z(p: ptr): number;
Quat_w(p: ptr): number;
Quat_set(p: ptr, x: number, y: number, z: number, w: number): void;
Transform_new(): ptr;
Transform_setIdentity(p: ptr): void;
Transform_getOrigin(p: ptr): ptr;
Transform_setRotation(p: ptr, quate: ptr): void;
Transform_getRotation(p: ptr, quate: ptr): void;
MotionState_getWorldTransform(p: ptr, transform: ptr): void;
MotionState_setWorldTransform(p: ptr, transform: ptr): void;
ccMotionState_new(id: number, initTrans: ptr): ptr;
ccMotionState_setup(p: ptr, id: number, initTrans: ptr): void;
int_array_size(p: ptr): number;
int_array_at(p: ptr, index: number): number;
Vec3_array_at(p: ptr, index: number): ptr;
// constraints
TypedConstraint_getFixedBody(): ptr;
TypedConstraint_getDbgDrawSize(): number;
TypedConstraint_setDbgDrawSize(p: ptr, dbgDrawSize: number): void;
HingeConstraint_new(ptr0: ptr, ptr1: ptr, ptr2: ptr, ptr3: ptr): ptr;
HingeConstraint_setFrames(ptr0: ptr, ptr1: ptr, ptr2: ptr): void;
HingeConstraint_setLimit(p: ptr, low: number, upper: number, softness: number, biasFactor: number, relaxationFactor: number): void;
HingeConstraint_setAngularOnly(p: ptr, angular: number): void;
HingeConstraint_enableMotor(p: ptr, enable: boolean): void;
HingeConstraint_setMotorVelocity(p: ptr, velocity: number): void;
HingeConstraint_setMaxMotorImpulse(p: ptr, maxImpulse: number): void;
HingeConstraint_setMotorTarget(p: ptr, target: number, dt: number): void;
P2PConstraint_new(ptr0: ptr, ptr1: ptr, ptr2: ptr, ptr3: ptr): ptr;
P2PConstraint_setPivotA(ptr0: ptr, ptr1: ptr): void;
P2PConstraint_setPivotB(ptr0: ptr, ptr1: ptr): void;
TypedConstraint_setMaxImpulseThreshold(ptr0: ptr, maxImpulse: number): void;
FixedConstraint_new(ptr0: ptr, ptr1: ptr, ptr2: ptr, ptr3: ptr): ptr;
FixedConstraint_setFrames(ptr0: ptr, ptr1: ptr, ptr2: ptr): void;
Generic6DofSpring2Constraint_new(ptr0: ptr, ptr1: ptr, ptr2: ptr, ptr3: ptr, rotateOrder: number): ptr;
Generic6DofSpring2Constraint_setFrames(ptr0: ptr, ptr1: ptr, ptr2: ptr): void;
Generic6DofSpring2Constraint_setLimit(ptr0: ptr, index: number, lo: number, hi: number): void;
Generic6DofSpring2Constraint_enableSpring(ptr0: ptr, index: number, onOff: boolean): void;
Generic6DofSpring2Constraint_setStiffness(ptr0: ptr, index: number, stiffness: number): void;
Generic6DofSpring2Constraint_setDamping(ptr0: ptr, index: number, damping: number): void;
Generic6DofSpring2Constraint_setBounce(ptr0: ptr, index: number, bounce: number): void;
Generic6DofSpring2Constraint_setEquilibriumPoint(ptr0: ptr, index: number, val: number): void;
Generic6DofSpring2Constraint_enableMotor(ptr0: ptr, index: number, onOff: boolean): void;
Generic6DofSpring2Constraint_setMaxMotorForce(ptr0: ptr, index: number, force: number): void;
Generic6DofSpring2Constraint_setTargetVelocity(ptr0: ptr, index: number, velocity: number): void;
Generic6DofSpring2Constraint_setServo(ptr0: ptr, index: number, onOff: boolean): number;
Generic6DofSpring2Constraint_setServoTarget(ptr0: ptr, index: number, target: number): number;
// shapes
// CollisionShape_getUserIndex(p: ptr): number;
// CollisionShape_setUserIndex(p: ptr, i: number): void;
CollisionShape_isCompound(p: ptr): boolean;
CollisionShape_setLocalScaling(p: ptr, scale: ptr): void;
CollisionShape_calculateLocalInertia(p: ptr, mass: number, localInertia: ptr): void;
CollisionShape_getAabb(p: ptr, t: ptr, min: ptr, max: ptr): void;
CollisionShape_getLocalBoundingSphere(p: ptr): number;
CollisionShape_setMargin(p: ptr, margin: number): void;
CollisionShape_setMaterial(p: ptr, mat: ptr): void;
CollisionShape_setUserPointer(p: ptr, p0: ptr): void;
EmptyShape_static(): ptr;
ConvexInternalShape_getImplicitShapeDimensions(p: ptr): ptr;
BoxShape_new(p: ptr): ptr;
BoxShape_setUnscaledHalfExtents(p: ptr, halfExtents: ptr): void;
SphereShape_new(radius: number): ptr;
SphereShape_setUnscaledRadius(p: ptr, radius: number): void;
CylinderShape_new(halfExtents: ptr): ptr;
CylinderShape_updateProp(p: ptr, r: number, g: number, d: number): void;
CapsuleShape_new(radius: number, height: number): ptr;
CapsuleShape_updateProp(p: ptr, r: number, g: number, d: number): void;
ConeShape_new(radius: number, height: number): ptr;
ConeShape_setRadius(p: ptr, v: number): void;
ConeShape_setHeight(p: ptr, v: number): void;
ConeShape_setConeUpIndex(p: ptr, v: number): void;
StaticPlaneShape_new(normal: ptr, constant: number): ptr;
StaticPlaneShape_getPlaneNormal(p: ptr): ptr;
StaticPlaneShape_setPlaneConstant(p: ptr, constant: number): void;
TerrainShape_new(i: number, j: number, p: ptr, hs: number, min: number, max: number): ptr;
TriangleMesh_new(): ptr;
TriangleMesh_addTriangle(p: ptr, v0: ptr, v1: ptr, v2: ptr, removeDuplicateVertices: boolean): void;
BvhTriangleMeshShape_new(p: ptr, c: boolean, bvh: boolean): ptr;
BvhTriangleMeshShape_getOptimizedBvh(p: ptr): ptr;
BvhTriangleMeshShape_setOptimizedBvh(p: ptr, p1: ptr, scaleX: number, scaleY: number, scaleZ: number);
ScaledBvhTriangleMeshShape_new(p: ptr, scaleX: number, scaleY: number, scaleZ: number): ptr;
ConvexTriangleMeshShape_new(p: ptr): ptr;
SimplexShape_new(): ptr;
SimplexShape_addVertex(p: ptr, pt: ptr): void;
ccCompoundShape_new(): ptr;
CompoundShape_getNumChildShapes(p: ptr): number;
CompoundShape_getChildShape(p: ptr, i: number): ptr;
CompoundShape_addChildShape(p: ptr, local: ptr, shape: ptr): void;
CompoundShape_removeChildShape(p: ptr, shape: ptr): void;
CompoundShape_updateChildTransform(p: ptr, i: number, trans: ptr, shouldRecalculateLocalAabb: boolean): void;
CompoundShape_setMaterial(p: ptr, i: number, f: number, r: number, rf: number, sf: number): void;
// collision
CollisionObject_new(): number;
CollisionObject_getCollisionShape(p: ptr): ptr;
CollisionObject_setContactProcessingThreshold(p: ptr, contactProcessingThreshold: number): void;
CollisionObject_getActivationState(p: ptr): number;
CollisionObject_setActivationState(p: ptr, newState: number): void;
CollisionObject_forceActivationState(p: ptr, newState: number): void;
CollisionObject_activate(p: ptr, forceActivation?: boolean): void;
CollisionObject_isActive(p: ptr): boolean;
CollisionObject_isKinematicObject(p: ptr): boolean;
CollisionObject_isStaticObject(p: ptr): boolean;
CollisionObject_isStaticOrKinematicObject(p: ptr): boolean;
CollisionObject_isSleeping(p: ptr): boolean;
CollisionObject_getWorldTransform(p: ptr): ptr;
CollisionObject_getCollisionFlags(p: ptr): number;
CollisionObject_setCollisionFlags(p: ptr, flags: number): void;
CollisionObject_setWorldTransform(p: ptr, transform: ptr): void;
CollisionObject_setCollisionShape(p: ptr, shape: ptr): void;
CollisionObject_setCcdMotionThreshold(p: ptr, ccdMotionThreshold: number): void;
CollisionObject_setCcdSweptSphereRadius(p: ptr, radius: number): void;
CollisionObject_getUserIndex(p: ptr): number;
CollisionObject_setUserIndex(p: ptr, index: number): void;
CollisionObject_getUserPointer(p: ptr): number;
CollisionObject_setUserPointer(p: ptr, userPointer: number): void;
CollisionObject_setMaterial(p: ptr, f: number, r: number, rf: number, sf: number): void;
CollisionObject_setIgnoreCollisionCheck(p: ptr, p0: ptr, v: boolean): void;
RigidBody_new(m: number, ms: number): ptr;
RigidBody_getFlags(p: ptr): number;
RigidBody_setFlags(p: ptr, flags: number): void;
RigidBody_setGravity(p: ptr, g: ptr): number;
RigidBody_setDamping(p: ptr, lin: number, ang: number): void;
RigidBody_setMass(p: ptr, m: number);
RigidBody_setMassProps(p: ptr, m: number, localInertia: ptr): void;
RigidBody_setLinearFactor(p: ptr, f: ptr): number;
RigidBody_setAngularFactor(p: ptr, f: ptr): number;
RigidBody_getLinearVelocity(p: ptr): ptr;
RigidBody_getAngularVelocity(p: ptr): ptr;
RigidBody_setLinearVelocity(p: ptr, v: ptr): void;
RigidBody_setAngularVelocity(p: ptr, v: ptr): void;
RigidBody_clearState(p: ptr): void;
RigidBody_clearForces(p: ptr): void;
RigidBody_wantsSleeping(p: ptr): boolean;
RigidBody_setSleepingThresholds(p: ptr, linear: number, angular: number): void;
RigidBody_getLinearSleepingThreshold(p: ptr): number;
RigidBody_getMotionState(p: ptr): ptr;
RigidBody_applyTorque(p: ptr, f: ptr): void;
RigidBody_applyForce(p: ptr, f: ptr, rp: ptr): void;
RigidBody_applyImpulse(p: ptr, f: ptr, rp: ptr): void;
RigidBody_getWorldTransform(p: ptr, transform: ptr): void;
Transform_getRotationAndOrigin(transform: ptr, q: ptr): ptr;
// dynamic
DefaultCollisionConfiguration_static(): ptr;
CollisionDispatcher_new(): ptr;
Dispatcher_getNumManifolds(p: ptr): number;
Dispatcher_getManifoldByIndexInternal(p: ptr, i: number): ptr;
ManifoldPoint_getShape0(p: ptr): ptr;
ManifoldPoint_getShape1(p: ptr): ptr;
ManifoldPoint_get_m_index0(p: ptr): number;
ManifoldPoint_get_m_index1(p: ptr): number;
PersistentManifold_getBody0(p: ptr): ptr;
PersistentManifold_getBody1(p: ptr): ptr;
PersistentManifold_getNumContacts(p: ptr): number;
PersistentManifold_getContactPoint(p: ptr, i: number): ptr;
ManifoldPoint_get_m_localPointA(p: ptr): ptr;
ManifoldPoint_get_m_localPointB(p: ptr): ptr;
ManifoldPoint_get_m_positionWorldOnA(p: ptr): ptr;
ManifoldPoint_get_m_positionWorldOnB(p: ptr): ptr;
ManifoldPoint_get_m_normalWorldOnB(p: ptr): ptr;
ManifoldPoint_get_m_positionWorldOnB(p: ptr): ptr;
DbvtBroadphase_new(): ptr;
SequentialImpulseConstraintSolver_new(): ptr;
ccDiscreteDynamicsWorld_reset(dispatcher: ptr,broadphase: ptr,solver: ptr): void;
CollisionWorld_addCollisionObject(p: ptr, body: ptr, g: number, m: number): void;
CollisionWorld_removeCollisionObject(p: ptr, body: ptr): void;
CollisionWorld_rayTest(p: ptr, p0: ptr, p1: ptr, p2: ptr): void;
CollisionWorld_convexSweepTest(p: ptr, castShape: ptr, from: ptr, to: ptr, resultCallback: ptr, allowedCcdPenetration: ptr): void;
CollisionWorld_setDebugDrawer(p: ptr, drawer: ptr): void;
CollisionWorld_debugDrawWorld(p: ptr): void;
ccDiscreteDynamicsWorld_new(dispatcher: ptr, pairCache: ptr, solver: ptr): ptr;
ccDiscreteDynamicsWorld_setAllowSleep(p: ptr, v: boolean): void;
DynamicsWorld_setGravity(p: ptr, g: ptr): void;
DynamicsWorld_stepSimulation(p: ptr, timeStep: number, maxSubSteps: number, fixedTimeStep: number): ptr;
DynamicsWorld_addRigidBody(p: ptr, body: ptr, g: number, m: number): void;
DynamicsWorld_removeRigidBody(p: ptr, body: ptr): void;
DynamicsWorld_addConstraint(p: ptr, p2: ptr, v: boolean): void;
DynamicsWorld_removeConstraint(p: ptr, p2: ptr): void;
DynamicsWorld_addAction(p: ptr, action: ptr): void;
DynamicsWorld_removeAction(p: ptr, action: ptr): void;
DebugDraw_new(): ptr;
DebugDraw_setDebugMode(p: ptr, debugMode: number): void;
DebugDraw_getDebugMode(p: ptr): number;
DebugDraw_setActiveObjectColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setDeactiveObjectColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setWantsDeactivationObjectColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setDisabledDeactivationObjectColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setDisabledSimulationObjectColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setAABBColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setContactPointColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setConstraintLimitColor(p: ptr, r: number, g: number, b: number): void;
RayCallback_hasHit(p: ptr): boolean;
ConvexCallback_hasHit(p: ptr): boolean;
ccAllRayCallback_static(): ptr;
ccAllRayCallback_setFlags(p: ptr, flag: number): void;
ccAllRayCallback_reset(p: ptr, p0: ptr, p1: ptr, m: number, q: boolean): void;
ccAllRayCallback_getHitPointWorld(p: ptr): ptr;
ccAllRayCallback_getHitNormalWorld(p: ptr): ptr;
ccAllRayCallback_getCollisionShapePtrs(p: ptr): ptr;
ccClosestRayCallback_static(): ptr;
ccClosestRayCallback_setFlags(p: ptr, flag: number): void;
ccClosestRayCallback_reset(p: ptr, p0: ptr, p1: ptr, m: number, q: boolean): void;
ccClosestRayCallback_getHitPointWorld(p: ptr): ptr;
ccClosestRayCallback_getHitNormalWorld(p: ptr): ptr;
ccClosestRayCallback_getCollisionShapePtr(p: ptr): ptr;
ccAllConvexCallback_static(): ptr;
ccAllConvexCallback_reset(p: ptr, p0: ptr, p1: ptr, m: number, q: boolean): void;
ccAllConvexCallback_getHitPointWorld(p: ptr): ptr;
ccAllConvexCallback_getHitNormalWorld(p: ptr): ptr;
ccAllConvexCallback_getCollisionShapePtrs(p: ptr): ptr;
ccClosestConvexCallback_static(): ptr;
ccClosestConvexCallback_reset(p: ptr, p0: ptr, p1: ptr, m: number, q: boolean): void;
ccClosestConvexCallback_getHitPointWorld(p: ptr): ptr;
ccClosestConvexCallback_getHitNormalWorld(p: ptr): ptr;
ccClosestConvexCallback_getCollisionShapePtr(p: ptr): ptr;
ccMaterial_new(): ptr;
ccMaterial_set(p: ptr, r: number, f: number, rf: number, sf: number): void;
// CharacterController
ControllerHitReport_new(): ptr;
CharacterController_getGhostObject(ptrCCT: ptr): ptr;
CharacterController_getCollisionShape(ptrCCT: ptr): ptr;
ControllerHit_getCurrentController(p: ptr): ptr;
ControllerHit_getHitWorldPos(p: ptr): ptr;
ControllerHit_getHitWorldNormal(p: ptr): ptr;
ControllerHit_getHitMotionDir(p: ptr): ptr; //CCT hit Motion direction
ControllerHit_getHitMotionLength(p: ptr): number; //CCT hit Motion length
ControllerShapeHit_getHitShape(p: ptr): ptr;
ControllerShapeHit_getHitCollisionObject(p: ptr): ptr;
CharacterController_move(ptrCCT: ptr, ptrMovement: ptr, minDist: number, deltaTime: number): number;
CharacterController_getPosition(ptrCCT: ptr);
CharacterController_setContactOffset(ptrCCT: ptr, v: number);
CharacterController_setStepOffset(ptrCCT: ptr, v: number);
CharacterController_setSlopeLimit(ptrCCT: ptr, v: number);
CharacterController_setCollision(ptrCCT: ptr, collision: boolean);
CharacterController_setOverlapRecovery(ptrCCT: ptr, value: boolean);
CapsuleCharacterControllerDesc_new(maxSlopeRadians: number, stepHeight: number, contactOffset: number,
ptrUpAxis: ptr, ptrInitPos: ptr, ptruUserControllerHitReport: ptr, radius: number, height: number): ptr;
CapsuleCharacterController_new(collisionWorld: ptr, ptrBtCapsuleCharacterControllerDesc: ptr, userObjectPointer: ptr): ptr;
CapsuleCharacterController_setRadius(ptrCCT: ptr, radius: number): void;
CapsuleCharacterController_setHeight(ptrCCT: ptr, height: number): void;
BoxCharacterControllerDesc_new(maxSlopeRadians: number, stepHeight: number, contactOffset: number,
ptrUpAxis: ptr, ptrInitPos: ptr, ptruUserControllerHitReport: ptr, halfHeight: number, halfSideExtent: number, halfForwardExtent: number): ptr;
BoxCharacterController_new(collisionWorld: ptr, ptrBtBoxCharacterControllerDesc: ptr, userObjectPointer: ptr): ptr;
BoxCharacterController_setHalfHeight(ptrCCT: ptr, v: number): void;
BoxCharacterController_setHalfSideExtent(ptrCCT: ptr, v: number): void;
BoxCharacterController_setHalfForwardExtent(ptrCCT: ptr, v: number): void;
}
}