add box2d-wasm (#397)
This commit is contained in:
parent
f84dc9befc
commit
b47943dd2d
|
|
@ -0,0 +1,575 @@
|
||||||
|
declare namespace B2 {
|
||||||
|
const maxPolygonVertices: number;
|
||||||
|
|
||||||
|
interface Vec2 {
|
||||||
|
x: number, y: number
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Vec2Vector {
|
||||||
|
push_back(v: Vec2): void;
|
||||||
|
get(i: number): Vec2;
|
||||||
|
size(): number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Int32Vector {
|
||||||
|
push_back(v: number): void;
|
||||||
|
get(i: number): number;
|
||||||
|
size(): number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Transform {
|
||||||
|
p: Vec2, q: Vec2
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Color {
|
||||||
|
r: number, g: number, b: number, a: number
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MassData {
|
||||||
|
mass: number;
|
||||||
|
center: Vec2;
|
||||||
|
I: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class AABB {
|
||||||
|
constructor();
|
||||||
|
lowerBound: Vec2;
|
||||||
|
upperBound: Vec2;
|
||||||
|
IsValid(): boolean;
|
||||||
|
GetCenter(): Vec2;
|
||||||
|
GetExtents(): Vec2;
|
||||||
|
GetPerimeter(): number;
|
||||||
|
Combine(aabb: AABB): void;
|
||||||
|
CombineTwo(aabb1: AABB, aabb2: AABB): void;
|
||||||
|
Contains(aabb: AABB): boolean;
|
||||||
|
RayCast(output: RayCastOutput, input: RayCastInput): boolean;
|
||||||
|
TestOverlap(other: AABB): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
class RayCastCallback {
|
||||||
|
constructor();
|
||||||
|
ReportFixture(fixture: Fixture, point: Vec2, normal: Vec2, fraction: number): number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class QueryCallback {
|
||||||
|
constructor();
|
||||||
|
ReportFixture(fixture: Fixture): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface RayCastInput {
|
||||||
|
p1: Vec2;
|
||||||
|
p2: Vec2;
|
||||||
|
maxFraction: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface RayCastOutput {
|
||||||
|
normal: Vec2;
|
||||||
|
fraction: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Filter {
|
||||||
|
categoryBits: number;
|
||||||
|
maskBits: number;
|
||||||
|
groupIndex: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ContactListener {
|
||||||
|
constructor();
|
||||||
|
BeginContact(contact: number): void;
|
||||||
|
EndContact(contact: number): void;
|
||||||
|
PreSolve(contact: number, oldManifold: number): void;
|
||||||
|
PostSolve(contact: number, impulse: number): void;
|
||||||
|
registerContactFixture(fixture: number): void;
|
||||||
|
unregisterContactFixture(fixture: number): void;
|
||||||
|
isIndexOf(fixture: number): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Draw {
|
||||||
|
constructor();
|
||||||
|
SetFlags(flags: number): void;
|
||||||
|
GetFlags(): number;
|
||||||
|
AppendFlags(flags: number): void;
|
||||||
|
ClearFlags(flags: number): void;
|
||||||
|
DrawPolygon(vertices: Vec2[], vertexCount: number, color: Color): void;
|
||||||
|
DrawSolidPolygon(vertices: Vec2[], vertexCount: number, color: Color): void;
|
||||||
|
DrawCircle(center: Vec2, radius: number, color: Color): void;
|
||||||
|
DrawSolidCircle(center: Vec2, radius: number, axis: Vec2, color: Color): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class World {
|
||||||
|
constructor(gravity: Vec2);
|
||||||
|
SetContactListener(listener: ContactListener): void;
|
||||||
|
SetDebugDraw(debugDraw: Draw): void;
|
||||||
|
CreateBody(def: BodyDef): Body;
|
||||||
|
DestroyBody(body: Body): void;
|
||||||
|
CreateJoint(def: JointDef): Joint;
|
||||||
|
DestroyJoint(joint: Joint): void;
|
||||||
|
Step(timeStep: number, velocityIterations: number, positionIterations: number): void;
|
||||||
|
DebugDraw(): void;
|
||||||
|
QueryAABB(callback: QueryCallback, aabb: AABB): void;
|
||||||
|
RayCast(callback: RayCastCallback, point1: Vec2, point2: Vec2): void;
|
||||||
|
SetAllowSleeping(flag: boolean): void;
|
||||||
|
GetAllowSleeping(): boolean;
|
||||||
|
SetGravity(gravity: Vec2): void;
|
||||||
|
GetGravity(): Vec2;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Shape {
|
||||||
|
m_type: number;
|
||||||
|
m_radius: number;
|
||||||
|
GetType(): number;
|
||||||
|
GetChildCount(): number;
|
||||||
|
TestPoint(xf: Transform, p: Vec2): boolean;
|
||||||
|
RayCast(output: RayCastOutput, input: RayCastInput, transform: Transform, childIndex: number): boolean;
|
||||||
|
ComputeAABB(aabb: AABB, xf: Transform, childIndex: number): void;
|
||||||
|
ComputeMass(massData: MassData, density: number): void;
|
||||||
|
SetRadius(radius: number): void;
|
||||||
|
GetRadius(): number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class CircleShape extends Shape {
|
||||||
|
constructor();
|
||||||
|
m_p: Vec2;
|
||||||
|
Clone(): CircleShape;
|
||||||
|
GetChildCount(): number;
|
||||||
|
TestPoint(transform: Transform, p: Vec2): boolean;
|
||||||
|
RayCast(output: RayCastOutput, input: RayCastInput, transform: Transform, childIndex: number): boolean;
|
||||||
|
ComputeAABB(aabb: AABB, transform: Transform, childIndex: number): void;
|
||||||
|
ComputeMass(massData: MassData, density: number): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class EdgeShape extends Shape {
|
||||||
|
constructor();
|
||||||
|
Set(v1: Vec2, v2: Vec2): void;
|
||||||
|
Clone(): EdgeShape;
|
||||||
|
GetChildCount(): number;
|
||||||
|
TestPoint(transform: Transform, p: Vec2): boolean;
|
||||||
|
RayCast(output: RayCastOutput, input: RayCastInput, transform: Transform, childIndex: number): boolean;
|
||||||
|
ComputeAABB(aabb: AABB, transform: Transform, childIndex: number): void;
|
||||||
|
ComputeMass(massData: MassData, density: number): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class PolygonShape extends Shape {
|
||||||
|
constructor();
|
||||||
|
Clone(): PolygonShape;
|
||||||
|
Set(vertices: any, count: number): void;
|
||||||
|
SetAsBox(hx: number, hy: number): void;
|
||||||
|
SetAsBoxWithCenterAndAngle(hx: number, hy: number, center: Vec2, angle: number): void;
|
||||||
|
GetChildCount(): number;
|
||||||
|
TestPoint(transform: Transform, p: Vec2): boolean;
|
||||||
|
RayCast(output: RayCastOutput, input: RayCastInput, transform: Transform, childIndex: number): boolean;
|
||||||
|
ComputeAABB(aabb: AABB, transform: Transform, childIndex: number): void;
|
||||||
|
ComputeMass(massData: MassData, density: number): void;
|
||||||
|
Validate(): boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
class FixtureDef {
|
||||||
|
shape: Shape;
|
||||||
|
userData: any;
|
||||||
|
friction: number;
|
||||||
|
restitution: number;
|
||||||
|
density: number;
|
||||||
|
isSensor: boolean;
|
||||||
|
filter: Filter;
|
||||||
|
SetShape(shape: Shape): void;
|
||||||
|
GetShape(): Shape;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Fixture {
|
||||||
|
GetType(): number;
|
||||||
|
GetShape(): Shape;
|
||||||
|
SetSensor(sensor: boolean): void;
|
||||||
|
IsSensor(): boolean;
|
||||||
|
SetFilterData(filter: Filter): void;
|
||||||
|
GetFilterData(): Filter;
|
||||||
|
Refilter(): void;
|
||||||
|
GetBody(): Body;
|
||||||
|
TestPoint(p: Vec2): boolean;
|
||||||
|
RayCast(output: RayCastOutput, input: RayCastInput, childIndex: number): boolean;
|
||||||
|
GetMassData(massData: MassData): void;
|
||||||
|
SetDensity(density: number): void;
|
||||||
|
GetDensity(): number;
|
||||||
|
GetFriction(): number;
|
||||||
|
SetFriction(friction: number): void;
|
||||||
|
GetRestitution(): number;
|
||||||
|
SetRestitution(restitution: number): void;
|
||||||
|
GetAABB(childIndex: number): AABB;
|
||||||
|
Dump(bodyIndex: number): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum BodyType{
|
||||||
|
b2_staticBody = 0,
|
||||||
|
b2_kinematicBody,
|
||||||
|
b2_dynamicBody,
|
||||||
|
cc_animatedBody,
|
||||||
|
}
|
||||||
|
|
||||||
|
class BodyDef {
|
||||||
|
constructor();
|
||||||
|
type: BodyType;
|
||||||
|
position: Vec2;
|
||||||
|
angle: number;
|
||||||
|
linearVelocity: Vec2;
|
||||||
|
angularVelocity: number;
|
||||||
|
linearDamping: number;
|
||||||
|
angularDamping: number;
|
||||||
|
allowSleep: boolean;
|
||||||
|
awake: boolean;
|
||||||
|
fixedRotation: boolean;
|
||||||
|
bullet: boolean;
|
||||||
|
gravityScale: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Body {
|
||||||
|
CreateFixture (fixtureDef: FixtureDef): Fixture;
|
||||||
|
CreateFixtureWithShape (shape: Shape, density: number): Fixture;
|
||||||
|
DestroyFixture(fixture: Fixture): void;
|
||||||
|
SetTransform(position: Vec2, angle: number): void;
|
||||||
|
GetTransform(): Transform;
|
||||||
|
GetPosition(): Vec2;
|
||||||
|
SetPosition(pos: Vec2): void;
|
||||||
|
GetAngle(): number;
|
||||||
|
SetAngle(angle: number): void;
|
||||||
|
GetWorldCenter(): Vec2;
|
||||||
|
GetLocalCenter(): Vec2;
|
||||||
|
SetLinearVelocity(v: Vec2): void;
|
||||||
|
GetLinearVelocity(): Vec2;
|
||||||
|
SetAngularVelocity(omega: number): void;
|
||||||
|
GetAngularVelocity(): number;
|
||||||
|
ApplyForce(force: Vec2, point: Vec2, wake: boolean): void;
|
||||||
|
ApplyForceToCenter(force: Vec2, wake: boolean): void;
|
||||||
|
ApplyTorque(torque: number, wake: boolean): void;
|
||||||
|
ApplyLinearImpulse(impulse: Vec2, point: Vec2, wake: boolean): void;
|
||||||
|
ApplyLinearImpulseToCenter(impulse: Vec2, wake: boolean): void;
|
||||||
|
ApplyAngularImpulse(impulse: number, wake: boolean): void;
|
||||||
|
GetMass(): number;
|
||||||
|
GetInertia(): number;
|
||||||
|
GetMassData(data: MassData): void;
|
||||||
|
SetMassData(data: MassData): void;
|
||||||
|
ResetMassData(): void;
|
||||||
|
GetWorldPoint(localPoint: Vec2): Vec2;
|
||||||
|
GetWorldVector(localVector: Vec2): Vec2;
|
||||||
|
GetLocalPoint(worldPoint: Vec2): Vec2;
|
||||||
|
GetLocalVector(worldVector: Vec2): Vec2;
|
||||||
|
GetLinearVelocityFromWorldPoint(worldPoint: Vec2): Vec2;
|
||||||
|
GetLinearVelocityFromLocalPoint(localPoint: Vec2): Vec2;
|
||||||
|
GetLinearDamping(): number;
|
||||||
|
SetLinearDamping(linearDamping: number): void;
|
||||||
|
GetAngularDamping(): number;
|
||||||
|
SetAngularDamping(angularDamping: number): void;
|
||||||
|
GetGravityScale(): number;
|
||||||
|
SetGravityScale(scale: number): void;
|
||||||
|
SetType(type: BodyType): void;
|
||||||
|
GetType(): BodyType;
|
||||||
|
SetBullet(flag: boolean): void;
|
||||||
|
IsBullet(): boolean;
|
||||||
|
SetSleepingAllowed(flag: boolean): void;
|
||||||
|
IsSleepingAllowed(): boolean;
|
||||||
|
SetAwake(flag: boolean): void;
|
||||||
|
IsAwake(): boolean;
|
||||||
|
SetEnabled(flag: boolean): void;
|
||||||
|
IsEnabled(): boolean;
|
||||||
|
SetFixedRotation(flag: boolean): void;
|
||||||
|
IsFixedRotation(): boolean;
|
||||||
|
GetWorld(): World;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum JointType {
|
||||||
|
e_unknownJoint,
|
||||||
|
e_revoluteJoint,
|
||||||
|
e_prismaticJoint,
|
||||||
|
e_distanceJoint,
|
||||||
|
e_pulleyJoint,
|
||||||
|
e_mouseJoint,
|
||||||
|
e_gearJoint,
|
||||||
|
e_wheelJoint,
|
||||||
|
e_weldJoint,
|
||||||
|
e_frictionJoint,
|
||||||
|
e_ropeJoint,
|
||||||
|
e_motorJoint
|
||||||
|
}
|
||||||
|
|
||||||
|
class JointDef {
|
||||||
|
constructor(type: JointType);
|
||||||
|
type: JointType;
|
||||||
|
collideConnected: boolean;
|
||||||
|
SetBodyA(bodyA: Body): void;
|
||||||
|
SetBodyB(bodyB: Body): void;
|
||||||
|
GetBodyA(): Body;
|
||||||
|
GetBodyB(): Body;
|
||||||
|
SetCollideConnected(flag: boolean): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Joint {
|
||||||
|
GetType(): JointType;
|
||||||
|
GetBodyA(): Body;
|
||||||
|
GetBodyB(): Body;
|
||||||
|
GetAnchorA(): Vec2;
|
||||||
|
GetAnchorB(): Vec2;
|
||||||
|
GetReactionForce(inv_dt: number): Vec2;
|
||||||
|
GetReactionTorque(inv_dt: number): number;
|
||||||
|
IsActive(): boolean;
|
||||||
|
GetCollideConnected(): boolean;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class DistanceJointDef extends JointDef {
|
||||||
|
constructor();
|
||||||
|
localAnchorA: Vec2;
|
||||||
|
localAnchorB: Vec2;
|
||||||
|
length: number;
|
||||||
|
stiffness: number;
|
||||||
|
damping: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class DistanceJoint extends Joint {
|
||||||
|
GetLocalAnchorA(): Vec2;
|
||||||
|
GetLocalAnchorB(): Vec2;
|
||||||
|
SetLength(length: number): void;
|
||||||
|
GetLength(): number;
|
||||||
|
SetStiffness(stiffness: number): void;
|
||||||
|
GetStiffness(): number;
|
||||||
|
SetDamping(damping: number): void;
|
||||||
|
GetDamping(): number;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class MotorJointDef extends JointDef {
|
||||||
|
constructor();
|
||||||
|
linearOffset: Vec2;
|
||||||
|
angularOffset: number;
|
||||||
|
maxForce: number;
|
||||||
|
maxTorque: number;
|
||||||
|
correctionFactor: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class MotorJoint extends Joint {
|
||||||
|
SetLinearOffset(linearOffset: Vec2): void;
|
||||||
|
GetLinearOffset(): Vec2;
|
||||||
|
SetAngularOffset(angularOffset: number): void;
|
||||||
|
GetAngularOffset(): number;
|
||||||
|
SetMaxForce(force: number): void;
|
||||||
|
GetMaxForce(): number;
|
||||||
|
SetMaxTorque(torque: number): void;
|
||||||
|
GetMaxTorque(): number;
|
||||||
|
SetCorrectionFactor(factor: number): void;
|
||||||
|
GetCorrectionFactor(): number;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class MouseJointDef extends JointDef {
|
||||||
|
constructor();
|
||||||
|
target: Vec2;
|
||||||
|
maxForce: number;
|
||||||
|
frequencyHz: number;
|
||||||
|
dampingRatio: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class MouseJoint extends Joint {
|
||||||
|
SetTarget(target: Vec2): void;
|
||||||
|
GetTarget(): Vec2;
|
||||||
|
SetMaxForce(force: number): void;
|
||||||
|
GetMaxForce(): number;
|
||||||
|
SetFrequency(hz: number): void;
|
||||||
|
GetFrequency(): number;
|
||||||
|
SetDampingRatio(ratio: number): void;
|
||||||
|
GetDampingRatio(): number;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class PrismaticJointDef extends JointDef {
|
||||||
|
constructor();
|
||||||
|
localAnchorA: Vec2;
|
||||||
|
localAnchorB: Vec2;
|
||||||
|
localAxisA: Vec2;
|
||||||
|
referenceAngle: number;
|
||||||
|
enableLimit: boolean;
|
||||||
|
lowerTranslation: number;
|
||||||
|
upperTranslation: number;
|
||||||
|
enableMotor: boolean;
|
||||||
|
maxMotorForce: number;
|
||||||
|
motorSpeed: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class PrismaticJoint extends Joint {
|
||||||
|
GetLocalAnchorA(): Vec2;
|
||||||
|
GetLocalAnchorB(): Vec2;
|
||||||
|
GetLocalAxisA(): Vec2;
|
||||||
|
GetReferenceAngle(): number;
|
||||||
|
GetJointTranslation(): number;
|
||||||
|
GetJointSpeed(): number;
|
||||||
|
IsLimitEnabled(): boolean;
|
||||||
|
EnableLimit(flag: boolean): void;
|
||||||
|
GetLowerLimit(): number;
|
||||||
|
GetUpperLimit(): number;
|
||||||
|
SetLimits(lower: number, upper: number): void;
|
||||||
|
IsMotorEnabled(): boolean;
|
||||||
|
EnableMotor(flag: boolean): void;
|
||||||
|
SetMotorSpeed(speed: number): void;
|
||||||
|
GetMotorSpeed(): number;
|
||||||
|
SetMaxMotorForce(force: number): void;
|
||||||
|
GetMaxMotorForce(): number;
|
||||||
|
GetMotorForce(inv_dt: number): number;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class RevoluteJointDef extends JointDef {
|
||||||
|
constructor();
|
||||||
|
localAnchorA: Vec2;
|
||||||
|
localAnchorB: Vec2;
|
||||||
|
referenceAngle: number;
|
||||||
|
enableLimit: boolean;
|
||||||
|
lowerAngle: number;
|
||||||
|
upperAngle: number;
|
||||||
|
enableMotor: boolean;
|
||||||
|
motorSpeed: number;
|
||||||
|
maxMotorTorque: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class RevoluteJoint extends Joint {
|
||||||
|
GetLocalAnchorA(): Vec2;
|
||||||
|
GetLocalAnchorB(): Vec2;
|
||||||
|
GetReferenceAngle(): number;
|
||||||
|
GetJointAngle(): number;
|
||||||
|
GetJointSpeed(): number;
|
||||||
|
IsLimitEnabled(): boolean;
|
||||||
|
EnableLimit(flag: boolean): void;
|
||||||
|
GetLowerLimit(): number;
|
||||||
|
GetUpperLimit(): number;
|
||||||
|
SetLimits(lower: number, upper: number): void;
|
||||||
|
IsMotorEnabled(): boolean;
|
||||||
|
EnableMotor(flag: boolean): void;
|
||||||
|
SetMotorSpeed(speed: number): void;
|
||||||
|
GetMotorSpeed(): number;
|
||||||
|
SetMaxMotorTorque(torque: number): void;
|
||||||
|
GetMaxMotorTorque(): number;
|
||||||
|
GetMotorTorque(inv_dt: number): number;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class RopeJointDef extends JointDef {
|
||||||
|
constructor();
|
||||||
|
localAnchorA: Vec2;
|
||||||
|
localAnchorB: Vec2;
|
||||||
|
maxLength: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class RopeJoint extends Joint {
|
||||||
|
GetLocalAnchorA(): Vec2;
|
||||||
|
GetLocalAnchorB(): Vec2;
|
||||||
|
GetReactionForce(inv_dt: number): Vec2;
|
||||||
|
GetReactionTorque(inv_dt: number): number;
|
||||||
|
SetMaxLength(length: number): void;
|
||||||
|
GetMaxLength(): number;
|
||||||
|
GetLength(): number;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class WeldJointDef extends JointDef {
|
||||||
|
constructor();
|
||||||
|
localAnchorA: Vec2;
|
||||||
|
localAnchorB: Vec2;
|
||||||
|
referenceAngle: number;
|
||||||
|
stiffness: number;
|
||||||
|
damping: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class WeldJoint extends Joint {
|
||||||
|
GetLocalAnchorA(): Vec2;
|
||||||
|
GetLocalAnchorB(): Vec2;
|
||||||
|
GetReferenceAngle(): number;
|
||||||
|
SetStiffness(stiffness: number): void;
|
||||||
|
GetStiffness(): number;
|
||||||
|
SetDamping(damping: number): void;
|
||||||
|
GetDamping(): number;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
class WheelJointDef extends JointDef {
|
||||||
|
constructor();
|
||||||
|
localAnchorA: Vec2;
|
||||||
|
localAnchorB: Vec2;
|
||||||
|
localAxisA: Vec2;
|
||||||
|
enableLimit: boolean;
|
||||||
|
lowerTranslation: number;
|
||||||
|
upperTranslation: number;
|
||||||
|
enableMotor: boolean;
|
||||||
|
maxMotorTorque: number;
|
||||||
|
motorSpeed: number;
|
||||||
|
stiffness: number;
|
||||||
|
damping: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class WheelJoint extends Joint {
|
||||||
|
GetLocalAnchorA(): Vec2;
|
||||||
|
GetLocalAnchorB(): Vec2;
|
||||||
|
GetLocalAxisA(): Vec2;
|
||||||
|
GetJointTranslation(): number;
|
||||||
|
IsMotorEnabled(): boolean;
|
||||||
|
EnableMotor(flag: boolean): void;
|
||||||
|
SetMotorSpeed(speed: number): void;
|
||||||
|
GetMotorSpeed(): number;
|
||||||
|
SetMaxMotorTorque(torque: number): void;
|
||||||
|
GetMaxMotorTorque(): number;
|
||||||
|
GetMotorTorque(inv_dt: number): number;
|
||||||
|
SetStiffness(stiffness: number): void;
|
||||||
|
GetStiffness(): number;
|
||||||
|
SetDamping(damping: number): void;
|
||||||
|
GetDamping(): number;
|
||||||
|
Dump(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// functions
|
||||||
|
//
|
||||||
|
function ConvexPartition(verticesIn: Vec2Vector, trianglesIn: Int32Vector, verticesOut: Vec2Vector, trianglesOut: Int32Vector): void;
|
||||||
|
function GetFloat32(memory: number, offset: number): number;
|
||||||
|
function SetLinearFrequencyAndDampingRatio(body: Joint, frequencyHertz: number, dampingRatio: number): void;
|
||||||
|
|
||||||
|
//Contact
|
||||||
|
function ContactSetEnabled(contactPtr: number, flag: boolean): void;
|
||||||
|
function ContactIsTouching(contactPtr: number): boolean;
|
||||||
|
function ContactSetTangentSpeed(contactPtr: number, speed: number): void;
|
||||||
|
function ContactGetTangentSpeed(contactPtr: number): number;
|
||||||
|
function ContactSetFriction(contactPtr: number, friction: number): void;
|
||||||
|
function ContactGetFriction(contactPtr: number): number;
|
||||||
|
function ContactResetFriction(contactPtr: number): void;
|
||||||
|
function ContactSetRestitution(contactPtr: number, restitution: number): void;
|
||||||
|
function ContactGetRestitution(contactPtr: number): number;
|
||||||
|
function ContactResetRestitution(contactPtr: number): void;
|
||||||
|
function ContactGetFixtureA(contactPtr: number): number;
|
||||||
|
function ContactGetFixtureB(contactPtr: number): number;
|
||||||
|
function ContactGetWorldManifold(contactPtr: number, worldManifoldPtr: number): number;
|
||||||
|
function ContactGetManifold(contactPtr: number): number;
|
||||||
|
|
||||||
|
//Manifold
|
||||||
|
function ManifoldGetType(manifoldPtr: number): number;
|
||||||
|
function ManifoldGetPointCount(manifoldPtr: number): number;
|
||||||
|
function ManifoldGetManifoldPointPtr(manifoldPtr: number, index: number): number;
|
||||||
|
function ManifoldGetLocalPointValueX(manifoldPtr: number): number;
|
||||||
|
function ManifoldGetLocalPointValueY(manifoldPtr: number): number;
|
||||||
|
function ManifoldGetLocalNormalValueX(manifoldPtr: number): number;
|
||||||
|
function ManifoldGetLocalNormalValueY(manifoldPtr: number): number;
|
||||||
|
|
||||||
|
//ManifoldPoint
|
||||||
|
function ManifoldPointGetLocalPointX(manifoldPointPtr: number): number;
|
||||||
|
function ManifoldPointGetLocalPointY(manifoldPointPtr: number): number;
|
||||||
|
function ManifoldPointGetNormalImpulse(manifoldPointPtr: number): number;
|
||||||
|
function ManifoldPointGetTangentImpulse(manifoldPointPtr: number): number;
|
||||||
|
|
||||||
|
//WorldManifold
|
||||||
|
function WorldManifoldNew(): number;
|
||||||
|
function WorldManifoldGetPointValueX(worldManifoldPtr: number, index: number): number;
|
||||||
|
function WorldManifoldGetPointValueY(worldManifoldPtr: number, index: number): number;
|
||||||
|
function WorldManifoldGetSeparationValue(worldManifoldPtr: number, index: number): number;
|
||||||
|
function WorldManifoldGetNormalValueX(worldManifoldPtr: number): number;
|
||||||
|
function WorldManifoldGetNormalValueY(worldManifoldPtr: number): number;
|
||||||
|
function WorldManifoldDelete(worldManifoldPtr: number): void;
|
||||||
|
|
||||||
|
//ContactImpulse
|
||||||
|
function ContactImpulseGetNormalImpulse(contactImpulsePtr: number, index: number): number;
|
||||||
|
function ContactImpulseGetTangentImpulse(contactImpulsePtr: number, index: number): number;
|
||||||
|
function ContactImpulseGetCount(contactImpulsePtr: number): number;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
// eslint-disable-next-line @typescript-eslint/triple-slash-reference
|
||||||
|
/// <reference path="./b2.d.ts" />
|
||||||
|
|
||||||
|
declare module 'external:emscripten/box2d/box2d.release.asm.js' {
|
||||||
|
export default BOX2D;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'external:emscripten/box2d/box2d.release.wasm.js' {
|
||||||
|
export default BOX2D;
|
||||||
|
}
|
||||||
|
|
||||||
|
// tslint:disable
|
||||||
|
declare function BOX2D (moduleOptions?: any): Promise<void>;
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Loading…
Reference in New Issue