Skip to content

Commit 65eb00f

Browse files
authored
box2d wasm: opt node scale performance (#438)
1 parent fad60e3 commit 65eb00f

File tree

6 files changed

+9143
-13844
lines changed

6 files changed

+9143
-13844
lines changed

emscripten/box2d/b2.d.ts

+73-5
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ declare namespace B2 {
273273
IsEnabled(): boolean;
274274
SetFixedRotation(flag: boolean): void;
275275
IsFixedRotation(): boolean;
276-
GetFixtureList(): Fixture;
276+
GetFixtureList(): number;
277277
GetJointList(): number;
278278
GetWorld(): World;
279279
Dump(): void;
@@ -513,10 +513,10 @@ declare namespace B2 {
513513
SetMaxMotorTorque(torque: number): void;
514514
GetMaxMotorTorque(): number;
515515
GetMotorTorque(inv_dt: number): number;
516-
SetFrequency(hz: number): void;
517-
GetFrequency(): number;
518-
SetDampingRatio(ratio: number): void;
519-
GetDampingRatio(): number;
516+
SetSpringFrequencyHz(hz: number): void;
517+
GetSpringFrequencyHz(): number;
518+
SetSpringDampingRatio(ratio: number): void;
519+
GetSpringDampingRatio(): number;
520520
Dump(): void;
521521
}
522522

@@ -537,6 +537,7 @@ declare namespace B2 {
537537
function ContactSetRestitution(contactPtr: number, restitution: number): void;
538538
function ContactGetRestitution(contactPtr: number): number;
539539
function ContactResetRestitution(contactPtr: number): void;
540+
function ContactGetFixtureA(contactPtr: number): Vec2;
540541
function ContactGetFixtureA(contactPtr: number): number;
541542
function ContactGetFixtureB(contactPtr: number): number;
542543
function ContactGetWorldManifold(contactPtr: number, worldManifoldPtr: number): number;
@@ -576,4 +577,71 @@ declare namespace B2 {
576577
function JointEdgeGetJoint(jointEdgePtr: number): number;
577578
function JointEdgeGetPrev(jointEdgePtr: number): number;
578579
function JointEdgeGetNext(jointEdgePtr: number): number;
580+
581+
//FixtureDef
582+
function FixtureDefNew(): number;
583+
function FixtureDefDelete(fixtureDefPtr: number): void;
584+
function FixtureDefSetAll(fixtureDefPtr: number, shapePtr: number, userData: number,
585+
friction: number, restitution: number, density: number, isSensor: boolean): void;
586+
587+
//Fixture
588+
function FixtureGetType(fixturePtr: number): number;
589+
function FixtureGetShape(fixturePtr: number): number;
590+
function FixtureSetSensor(fixturePtr: number, sensor: boolean): void;
591+
function FixtureIsSensor(fixturePtr: number): boolean;
592+
function FixtureSetFilterData(fixturePtr: number, filterPtr: number): void;
593+
function FixtureGetFilterData(fixturePtr: number): number;
594+
function FixtureRefilter(fixturePtr: number): void;
595+
function FixtureGetBody(fixturePtr: number): number;
596+
function FixtureGetNext(fixturePtr: number): number;
597+
function FixtureTestPoint(fixturePtr: number, p: Vec2): boolean;
598+
// function FixtureRayCast(fixturePtr: number, outputPtr: number, inputPtr: number, childIndex: number): boolean;
599+
// function FixtureGetMassData(fixturePtr: number, massDataPtr: number): void;
600+
function FixtureSetDensity(fixturePtr: number, density: number): void;
601+
function FixtureGetDensity(fixturePtr: number): number;
602+
function FixtureGetFriction(fixturePtr: number): number;
603+
function FixtureSetFriction(fixturePtr: number, friction: number): void;
604+
function FixtureGetRestitution(fixturePtr: number): number;
605+
function FixtureSetRestitution(fixturePtr: number, restitution: number): void;
606+
function FixtureGetAABB(fixturePtr: number, childIndex: number): number;
607+
function FixtureDump(fixturePtr: number, bodyIndex: number): void;
608+
609+
//Shape
610+
function ShapeGetRadius(shapePtr: number): number;
611+
function ShapeSetRadius(shapePtr: number, radius: number): void;
612+
function ShapeGetType(shapePtr: number): number;
613+
function ShapeGetChildCount(shapePtr: number): number;
614+
function ShapeTestPoint(shapePtr: number, transformPtr: number, p: Vec2): boolean;
615+
// function ShapeRayCast(shapePtr: number, outputPtr: number, inputPtr: number, transformPtr: number, childIndex: number): boolean;
616+
// function ShapeComputeAABB(shapePtr: number, aabbPtr: number, transformPtr: number, childIndex: number): void;
617+
// function ShapeComputeMass(shapePtr: number, massDataPtr: number, density: number): void;
618+
619+
//CircleShape
620+
function CircleShapeNew(): number;
621+
function CircleShapeDelete(circleShapePtr: number): void;
622+
function CircleShapeSetPosition(circleShapePtr: number, positionPtr: number): void;
623+
function CircleShapeGetPosition(circleShapePtr: number): number;
624+
625+
//PolygonShape
626+
function PolygonShapeNew(): number;
627+
function PolygonShapeDelete(polygonShapePtr: number): void;
628+
function PolygonShapeSet(polygonShapePtr: number, verticesPtr: number, count: number): void;
629+
function PolygonShapeSetAsBox(polygonShapePtr: number, hx: number, hy: number): void;
630+
function PolygonShapeSetAsBoxWithCenterAndAngle(polygonShapePtr: number, hx: number, hy: number, centerPtr: number, angle: number): void;
631+
function PolygonShapeGetVertexCount(polygonShapePtr: number): number;
632+
633+
//Body
634+
function BodyCreateFixture(bodyPtr: number, fixtureDefPtr: number): number;
635+
function BodyCreateFixtureWithShape(bodyPtr: number, shapePtr: number, density: number): number;
636+
637+
//Vec2Vector
638+
function Vec2VectorNew(): number;
639+
function Vec2VectorDelete(vec2VectorPtr: number): void;
640+
function Vec2VectorPush(vec2VectorPtr: number, vec2Ptr: number): void;
641+
function Vec2VectorSize(vec2VectorPtr: number): number;
642+
function Vec2VectorGet(vec2VectorPtr: number, index: number): number;
643+
function Vec2VectorGetPtr(vec2VectorPtr: number, index: number): number;
644+
function Vec2VectorResize(vec2VectorPtr: number, size: number): void;
645+
function Vec2VectorClear(vec2VectorPtr: number): void;
646+
579647
}

emscripten/box2d/box2d.debug.asm.js

+9,063-13,832
Large diffs are not rendered by default.
-322 KB
Binary file not shown.

emscripten/box2d/box2d.release.asm.js

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

emscripten/box2d/box2d.release.wasm.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
-2.66 KB
Binary file not shown.

0 commit comments

Comments
 (0)