@rapierphysicsplugin/client 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/clock-sync.test.d.ts +2 -0
- package/dist/__tests__/clock-sync.test.d.ts.map +1 -0
- package/dist/__tests__/clock-sync.test.js +63 -0
- package/dist/__tests__/clock-sync.test.js.map +1 -0
- package/dist/__tests__/interpolator.test.d.ts +2 -0
- package/dist/__tests__/interpolator.test.d.ts.map +1 -0
- package/dist/__tests__/interpolator.test.js +82 -0
- package/dist/__tests__/interpolator.test.js.map +1 -0
- package/dist/__tests__/state-reconciler.test.d.ts +2 -0
- package/dist/__tests__/state-reconciler.test.d.ts.map +1 -0
- package/dist/__tests__/state-reconciler.test.js +86 -0
- package/dist/__tests__/state-reconciler.test.js.map +1 -0
- package/dist/clock-sync.d.ts +17 -0
- package/dist/clock-sync.d.ts.map +1 -0
- package/dist/clock-sync.js +63 -0
- package/dist/clock-sync.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/input-manager.d.ts +18 -0
- package/dist/input-manager.d.ts.map +1 -0
- package/dist/input-manager.js +62 -0
- package/dist/input-manager.js.map +1 -0
- package/dist/interpolator.d.ts +35 -0
- package/dist/interpolator.d.ts.map +1 -0
- package/dist/interpolator.js +198 -0
- package/dist/interpolator.js.map +1 -0
- package/dist/networked-rapier-plugin.d.ts +82 -0
- package/dist/networked-rapier-plugin.d.ts.map +1 -0
- package/dist/networked-rapier-plugin.js +698 -0
- package/dist/networked-rapier-plugin.js.map +1 -0
- package/dist/rapier-body-ops.d.ts +27 -0
- package/dist/rapier-body-ops.d.ts.map +1 -0
- package/dist/rapier-body-ops.js +208 -0
- package/dist/rapier-body-ops.js.map +1 -0
- package/dist/rapier-collision-ops.d.ts +6 -0
- package/dist/rapier-collision-ops.d.ts.map +1 -0
- package/dist/rapier-collision-ops.js +200 -0
- package/dist/rapier-collision-ops.js.map +1 -0
- package/dist/rapier-constraint-ops.d.ts +29 -0
- package/dist/rapier-constraint-ops.d.ts.map +1 -0
- package/dist/rapier-constraint-ops.js +286 -0
- package/dist/rapier-constraint-ops.js.map +1 -0
- package/dist/rapier-plugin.d.ts +145 -0
- package/dist/rapier-plugin.d.ts.map +1 -0
- package/dist/rapier-plugin.js +263 -0
- package/dist/rapier-plugin.js.map +1 -0
- package/dist/rapier-shape-ops.d.ts +21 -0
- package/dist/rapier-shape-ops.d.ts.map +1 -0
- package/dist/rapier-shape-ops.js +314 -0
- package/dist/rapier-shape-ops.js.map +1 -0
- package/dist/rapier-types.d.ts +58 -0
- package/dist/rapier-types.d.ts.map +1 -0
- package/dist/rapier-types.js +4 -0
- package/dist/rapier-types.js.map +1 -0
- package/dist/state-reconciler.d.ts +28 -0
- package/dist/state-reconciler.d.ts.map +1 -0
- package/dist/state-reconciler.js +119 -0
- package/dist/state-reconciler.js.map +1 -0
- package/dist/sync-client.d.ts +110 -0
- package/dist/sync-client.d.ts.map +1 -0
- package/dist/sync-client.js +514 -0
- package/dist/sync-client.js.map +1 -0
- package/package.json +21 -0
- package/src/__tests__/clock-sync.test.ts +72 -0
- package/src/__tests__/interpolator.test.ts +98 -0
- package/src/__tests__/state-reconciler.test.ts +102 -0
- package/src/clock-sync.ts +77 -0
- package/src/index.ts +9 -0
- package/src/input-manager.ts +72 -0
- package/src/interpolator.ts +256 -0
- package/src/networked-rapier-plugin.ts +909 -0
- package/src/rapier-body-ops.ts +251 -0
- package/src/rapier-collision-ops.ts +229 -0
- package/src/rapier-constraint-ops.ts +327 -0
- package/src/rapier-plugin.ts +364 -0
- package/src/rapier-shape-ops.ts +369 -0
- package/src/rapier-types.ts +60 -0
- package/src/state-reconciler.ts +151 -0
- package/src/sync-client.ts +640 -0
- package/tsconfig.json +12 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rapier-shape-ops.js","sourceRoot":"","sources":["../src/rapier-shape-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type RAPIER from '@dimforge/rapier3d-compat';
|
|
2
|
+
import type { Observable, PhysicsBody, PhysicsShape, PhysicsConstraint, PhysicsMaterial, PhysicsShapeType, IPhysicsCollisionEvent, IBasePhysicsCollisionEvent } from '@babylonjs/core';
|
|
3
|
+
import type { Vector3, Quaternion } from '@babylonjs/core';
|
|
4
|
+
import type { Vec3 } from '@rapierphysicsplugin/shared';
|
|
5
|
+
import { PhysicsConstraintAxisLimitMode, PhysicsConstraintMotorType } from '@babylonjs/core';
|
|
6
|
+
export interface AxisConfig {
|
|
7
|
+
mode?: PhysicsConstraintAxisLimitMode;
|
|
8
|
+
minLimit?: number;
|
|
9
|
+
maxLimit?: number;
|
|
10
|
+
friction?: number;
|
|
11
|
+
motorType?: PhysicsConstraintMotorType;
|
|
12
|
+
motorTarget?: number;
|
|
13
|
+
motorMaxForce?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function v3toVec(v: Vector3): Vec3;
|
|
16
|
+
export interface RapierPluginState {
|
|
17
|
+
rapier: typeof RAPIER;
|
|
18
|
+
world: RAPIER.World;
|
|
19
|
+
bodyToRigidBody: Map<PhysicsBody, RAPIER.RigidBody>;
|
|
20
|
+
bodyToColliders: Map<PhysicsBody, RAPIER.Collider[]>;
|
|
21
|
+
shapeToColliderDesc: Map<PhysicsShape, RAPIER.ColliderDesc>;
|
|
22
|
+
shapeTypeMap: Map<PhysicsShape, PhysicsShapeType>;
|
|
23
|
+
shapeMaterialMap: Map<PhysicsShape, PhysicsMaterial>;
|
|
24
|
+
shapeDensityMap: Map<PhysicsShape, number>;
|
|
25
|
+
shapeFilterMembership: Map<PhysicsShape, number>;
|
|
26
|
+
shapeFilterCollide: Map<PhysicsShape, number>;
|
|
27
|
+
bodyCollisionObservables: Map<PhysicsBody, Observable<IPhysicsCollisionEvent>>;
|
|
28
|
+
bodyCollisionEndedObservables: Map<PhysicsBody, Observable<IBasePhysicsCollisionEvent>>;
|
|
29
|
+
constraintToJoint: Map<PhysicsConstraint, RAPIER.ImpulseJoint>;
|
|
30
|
+
constraintBodies: Map<PhysicsConstraint, {
|
|
31
|
+
body: PhysicsBody;
|
|
32
|
+
childBody: PhysicsBody;
|
|
33
|
+
}>;
|
|
34
|
+
constraintAxisState: Map<PhysicsConstraint, Map<number, AxisConfig>>;
|
|
35
|
+
constraintEnabled: Map<PhysicsConstraint, boolean>;
|
|
36
|
+
constraintDescriptors: Map<PhysicsConstraint, {
|
|
37
|
+
body: PhysicsBody;
|
|
38
|
+
childBody: PhysicsBody;
|
|
39
|
+
}>;
|
|
40
|
+
collisionCallbackEnabled: Set<PhysicsBody>;
|
|
41
|
+
collisionEndedCallbackEnabled: Set<PhysicsBody>;
|
|
42
|
+
triggerShapes: Set<PhysicsShape>;
|
|
43
|
+
bodyIdToPhysicsBody: Map<string, PhysicsBody>;
|
|
44
|
+
bodyToShape: Map<PhysicsBody, PhysicsShape>;
|
|
45
|
+
shapeToBody: Map<PhysicsShape, PhysicsBody>;
|
|
46
|
+
compoundChildren: Map<PhysicsShape, Array<{
|
|
47
|
+
child: PhysicsShape;
|
|
48
|
+
translation?: Vector3;
|
|
49
|
+
rotation?: Quaternion;
|
|
50
|
+
scale?: Vector3;
|
|
51
|
+
}>>;
|
|
52
|
+
bodyEventMask: Map<PhysicsBody, number>;
|
|
53
|
+
colliderHandleToBody: Map<number, PhysicsBody>;
|
|
54
|
+
onCollisionObservable: Observable<IPhysicsCollisionEvent>;
|
|
55
|
+
onCollisionEndedObservable: Observable<IBasePhysicsCollisionEvent>;
|
|
56
|
+
onTriggerCollisionObservable: Observable<IBasePhysicsCollisionEvent>;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=rapier-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rapier-types.d.ts","sourceRoot":"","sources":["../src/rapier-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE7F,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,8BAA8B,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAExC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;IACpB,eAAe,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,eAAe,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,mBAAmB,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5D,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAClD,gBAAgB,EAAE,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACrD,eAAe,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3C,qBAAqB,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjD,kBAAkB,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9C,wBAAwB,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC/E,6BAA6B,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACxF,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/D,gBAAgB,EAAE,GAAG,CAAC,iBAAiB,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,SAAS,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IACxF,mBAAmB,EAAE,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACrE,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACnD,qBAAqB,EAAE,GAAG,CAAC,iBAAiB,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,SAAS,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IAC7F,wBAAwB,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,6BAA6B,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAChD,aAAa,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9C,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5C,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5C,gBAAgB,EAAE,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IACnI,aAAa,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACxC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/C,qBAAqB,EAAE,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAC1D,0BAA0B,EAAE,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACnE,4BAA4B,EAAE,UAAU,CAAC,0BAA0B,CAAC,CAAC;CACtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rapier-types.js","sourceRoot":"","sources":["../src/rapier-types.ts"],"names":[],"mappings":"AAyBA,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { BodyState, RoomSnapshot, ClientInput } from '@rapierphysicsplugin/shared';
|
|
2
|
+
import { Interpolator } from './interpolator.js';
|
|
3
|
+
export interface ReconciliationResult {
|
|
4
|
+
/** Bodies that the local client controls — apply corrections */
|
|
5
|
+
localCorrections: Map<string, BodyState>;
|
|
6
|
+
/** Bodies controlled by remote players — use interpolated states */
|
|
7
|
+
remoteStates: Map<string, BodyState>;
|
|
8
|
+
}
|
|
9
|
+
export declare class StateReconciler {
|
|
10
|
+
private interpolator;
|
|
11
|
+
private localBodyIds;
|
|
12
|
+
private pendingInputs;
|
|
13
|
+
private lastServerTick;
|
|
14
|
+
constructor(interpolator?: Interpolator);
|
|
15
|
+
setLocalBodies(bodyIds: string[]): void;
|
|
16
|
+
addLocalBody(bodyId: string): void;
|
|
17
|
+
removeLocalBody(bodyId: string): void;
|
|
18
|
+
addPendingInput(input: ClientInput): void;
|
|
19
|
+
processServerState(snapshot: RoomSnapshot): ReconciliationResult;
|
|
20
|
+
getInterpolatedRemoteState(bodyId: string, currentTime: number): BodyState | null;
|
|
21
|
+
getPendingInputs(): ClientInput[];
|
|
22
|
+
get lastProcessedServerTick(): number;
|
|
23
|
+
getInterpolator(): Interpolator;
|
|
24
|
+
clear(): void;
|
|
25
|
+
}
|
|
26
|
+
export declare function needsCorrection(predicted: BodyState, authoritative: BodyState): boolean;
|
|
27
|
+
export declare function blendBodyState(current: BodyState, target: BodyState): BodyState;
|
|
28
|
+
//# sourceMappingURL=state-reconciler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-reconciler.d.ts","sourceRoot":"","sources":["../src/state-reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAc,MAAM,6BAA6B,CAAC;AAMpG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,oEAAoE;IACpE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACtC;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,cAAc,CAAK;gBAEf,YAAY,CAAC,EAAE,YAAY;IAIvC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAIvC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrC,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIzC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,oBAAoB;IA0BhE,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIjF,gBAAgB,IAAI,WAAW,EAAE;IAIjC,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED,eAAe,IAAI,YAAY;IAI/B,KAAK,IAAI,IAAI;CAMd;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,GAAG,OAAO,CAMvF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAQ/E"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { RECONCILIATION_THRESHOLD, POSITION_LERP_SPEED, ROTATION_SLERP_SPEED, } from '@rapierphysicsplugin/shared';
|
|
2
|
+
import { Interpolator } from './interpolator.js';
|
|
3
|
+
export class StateReconciler {
|
|
4
|
+
constructor(interpolator) {
|
|
5
|
+
this.localBodyIds = new Set();
|
|
6
|
+
this.pendingInputs = [];
|
|
7
|
+
this.lastServerTick = 0;
|
|
8
|
+
this.interpolator = interpolator ?? new Interpolator();
|
|
9
|
+
}
|
|
10
|
+
setLocalBodies(bodyIds) {
|
|
11
|
+
this.localBodyIds = new Set(bodyIds);
|
|
12
|
+
}
|
|
13
|
+
addLocalBody(bodyId) {
|
|
14
|
+
this.localBodyIds.add(bodyId);
|
|
15
|
+
}
|
|
16
|
+
removeLocalBody(bodyId) {
|
|
17
|
+
this.localBodyIds.delete(bodyId);
|
|
18
|
+
}
|
|
19
|
+
addPendingInput(input) {
|
|
20
|
+
this.pendingInputs.push(input);
|
|
21
|
+
}
|
|
22
|
+
processServerState(snapshot) {
|
|
23
|
+
const result = {
|
|
24
|
+
localCorrections: new Map(),
|
|
25
|
+
remoteStates: new Map(),
|
|
26
|
+
};
|
|
27
|
+
this.lastServerTick = snapshot.tick;
|
|
28
|
+
// Discard inputs that the server has already processed
|
|
29
|
+
this.pendingInputs = this.pendingInputs.filter(input => input.tick > snapshot.tick);
|
|
30
|
+
for (const body of snapshot.bodies) {
|
|
31
|
+
if (this.localBodyIds.has(body.id)) {
|
|
32
|
+
// Local body — check if correction needed
|
|
33
|
+
result.localCorrections.set(body.id, body);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Remote body — feed to interpolator (render loop queries at proper render time)
|
|
37
|
+
this.interpolator.addSnapshot(body.id, body, snapshot.timestamp);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
getInterpolatedRemoteState(bodyId, currentTime) {
|
|
43
|
+
return this.interpolator.getInterpolatedState(bodyId, currentTime);
|
|
44
|
+
}
|
|
45
|
+
getPendingInputs() {
|
|
46
|
+
return this.pendingInputs;
|
|
47
|
+
}
|
|
48
|
+
get lastProcessedServerTick() {
|
|
49
|
+
return this.lastServerTick;
|
|
50
|
+
}
|
|
51
|
+
getInterpolator() {
|
|
52
|
+
return this.interpolator;
|
|
53
|
+
}
|
|
54
|
+
clear() {
|
|
55
|
+
this.localBodyIds.clear();
|
|
56
|
+
this.pendingInputs = [];
|
|
57
|
+
this.interpolator.clear();
|
|
58
|
+
this.lastServerTick = 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export function needsCorrection(predicted, authoritative) {
|
|
62
|
+
const dx = predicted.position.x - authoritative.position.x;
|
|
63
|
+
const dy = predicted.position.y - authoritative.position.y;
|
|
64
|
+
const dz = predicted.position.z - authoritative.position.z;
|
|
65
|
+
const distSq = dx * dx + dy * dy + dz * dz;
|
|
66
|
+
return distSq > RECONCILIATION_THRESHOLD * RECONCILIATION_THRESHOLD;
|
|
67
|
+
}
|
|
68
|
+
export function blendBodyState(current, target) {
|
|
69
|
+
return {
|
|
70
|
+
id: current.id,
|
|
71
|
+
position: lerpVec3(current.position, target.position, POSITION_LERP_SPEED),
|
|
72
|
+
rotation: slerpQuat(current.rotation, target.rotation, ROTATION_SLERP_SPEED),
|
|
73
|
+
linVel: target.linVel,
|
|
74
|
+
angVel: target.angVel,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function lerpVec3(a, b, t) {
|
|
78
|
+
return {
|
|
79
|
+
x: a.x + (b.x - a.x) * t,
|
|
80
|
+
y: a.y + (b.y - a.y) * t,
|
|
81
|
+
z: a.z + (b.z - a.z) * t,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function slerpQuat(a, b, t) {
|
|
85
|
+
let dot = a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
|
|
86
|
+
let bx = b.x, by = b.y, bz = b.z, bw = b.w;
|
|
87
|
+
if (dot < 0) {
|
|
88
|
+
dot = -dot;
|
|
89
|
+
bx = -bx;
|
|
90
|
+
by = -by;
|
|
91
|
+
bz = -bz;
|
|
92
|
+
bw = -bw;
|
|
93
|
+
}
|
|
94
|
+
if (dot > 0.9995) {
|
|
95
|
+
const len = Math.sqrt((a.x + (bx - a.x) * t) ** 2 +
|
|
96
|
+
(a.y + (by - a.y) * t) ** 2 +
|
|
97
|
+
(a.z + (bz - a.z) * t) ** 2 +
|
|
98
|
+
(a.w + (bw - a.w) * t) ** 2);
|
|
99
|
+
return {
|
|
100
|
+
x: (a.x + (bx - a.x) * t) / len,
|
|
101
|
+
y: (a.y + (by - a.y) * t) / len,
|
|
102
|
+
z: (a.z + (bz - a.z) * t) / len,
|
|
103
|
+
w: (a.w + (bw - a.w) * t) / len,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
const theta0 = Math.acos(dot);
|
|
107
|
+
const theta = theta0 * t;
|
|
108
|
+
const sinTheta = Math.sin(theta);
|
|
109
|
+
const sinTheta0 = Math.sin(theta0);
|
|
110
|
+
const s0 = Math.cos(theta) - dot * sinTheta / sinTheta0;
|
|
111
|
+
const s1 = sinTheta / sinTheta0;
|
|
112
|
+
return {
|
|
113
|
+
x: s0 * a.x + s1 * bx,
|
|
114
|
+
y: s0 * a.y + s1 * by,
|
|
115
|
+
z: s0 * a.z + s1 * bz,
|
|
116
|
+
w: s0 * a.w + s1 * bw,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=state-reconciler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-reconciler.js","sourceRoot":"","sources":["../src/state-reconciler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { BodyDescriptor, CollisionEventData, ConstraintDescriptor, RoomSnapshot, InputAction } from '@rapierphysicsplugin/shared';
|
|
2
|
+
import type { MeshBinaryMessage, GeometryDefData, MeshRefData, MaterialDefData, TextureDefData } from '@rapierphysicsplugin/shared';
|
|
3
|
+
import { ClockSyncClient } from './clock-sync.js';
|
|
4
|
+
import { StateReconciler } from './state-reconciler.js';
|
|
5
|
+
import { InputManager } from './input-manager.js';
|
|
6
|
+
type StateUpdateCallback = (state: RoomSnapshot) => void;
|
|
7
|
+
type BodyAddedCallback = (body: BodyDescriptor) => void;
|
|
8
|
+
type BodyRemovedCallback = (bodyId: string) => void;
|
|
9
|
+
type SimulationStartedCallback = (snapshot: RoomSnapshot) => void;
|
|
10
|
+
type CollisionEventsCallback = (events: CollisionEventData[]) => void;
|
|
11
|
+
type ConstraintAddedCallback = (constraint: ConstraintDescriptor) => void;
|
|
12
|
+
type ConstraintRemovedCallback = (constraintId: string) => void;
|
|
13
|
+
type MeshBinaryCallback = (msg: MeshBinaryMessage) => void;
|
|
14
|
+
type GeometryDefCallback = (data: GeometryDefData) => void;
|
|
15
|
+
type MeshRefCallback = (data: MeshRefData) => void;
|
|
16
|
+
type MaterialDefCallback = (data: MaterialDefData) => void;
|
|
17
|
+
type TextureDefCallback = (data: TextureDefData) => void;
|
|
18
|
+
export declare class PhysicsSyncClient {
|
|
19
|
+
private ws;
|
|
20
|
+
private clockSync;
|
|
21
|
+
private reconciler;
|
|
22
|
+
private inputManager;
|
|
23
|
+
private clientId;
|
|
24
|
+
private roomId;
|
|
25
|
+
private indexToId;
|
|
26
|
+
private idToIndex;
|
|
27
|
+
private fullStateMap;
|
|
28
|
+
private _simulationRunning;
|
|
29
|
+
private _bytesSent;
|
|
30
|
+
private _bytesReceived;
|
|
31
|
+
private stateUpdateCallbacks;
|
|
32
|
+
private bodyAddedCallbacks;
|
|
33
|
+
private bodyRemovedCallbacks;
|
|
34
|
+
private simulationStartedCallbacks;
|
|
35
|
+
private collisionEventsCallbacks;
|
|
36
|
+
private constraintAddedCallbacks;
|
|
37
|
+
private constraintRemovedCallbacks;
|
|
38
|
+
private meshBinaryCallbacks;
|
|
39
|
+
private geometryDefCallbacks;
|
|
40
|
+
private meshRefCallbacks;
|
|
41
|
+
private materialDefCallbacks;
|
|
42
|
+
private textureDefCallbacks;
|
|
43
|
+
private connectResolve;
|
|
44
|
+
private connectReject;
|
|
45
|
+
private joinResolve;
|
|
46
|
+
private createResolve;
|
|
47
|
+
constructor();
|
|
48
|
+
connect(url: string): Promise<void>;
|
|
49
|
+
createRoom(roomId: string, initialBodies: BodyDescriptor[], gravity?: {
|
|
50
|
+
x: number;
|
|
51
|
+
y: number;
|
|
52
|
+
z: number;
|
|
53
|
+
}): Promise<void>;
|
|
54
|
+
joinRoom(roomId: string): Promise<RoomSnapshot>;
|
|
55
|
+
leaveRoom(): void;
|
|
56
|
+
sendInput(actions: InputAction[]): void;
|
|
57
|
+
addLocalBody(bodyId: string): void;
|
|
58
|
+
removeLocalBody(bodyId: string): void;
|
|
59
|
+
addBody(body: BodyDescriptor): void;
|
|
60
|
+
removeBody(bodyId: string): void;
|
|
61
|
+
addConstraint(constraint: ConstraintDescriptor): void;
|
|
62
|
+
removeConstraint(constraintId: string): void;
|
|
63
|
+
onStateUpdate(callback: StateUpdateCallback): void;
|
|
64
|
+
onBodyAdded(callback: BodyAddedCallback): void;
|
|
65
|
+
onBodyRemoved(callback: BodyRemovedCallback): void;
|
|
66
|
+
onSimulationStarted(callback: SimulationStartedCallback): void;
|
|
67
|
+
onCollisionEvents(callback: CollisionEventsCallback): void;
|
|
68
|
+
onConstraintAdded(callback: ConstraintAddedCallback): void;
|
|
69
|
+
onConstraintRemoved(callback: ConstraintRemovedCallback): void;
|
|
70
|
+
onMeshBinary(callback: MeshBinaryCallback): void;
|
|
71
|
+
onGeometryDef(callback: GeometryDefCallback): void;
|
|
72
|
+
onMeshRef(callback: MeshRefCallback): void;
|
|
73
|
+
onMaterialDef(callback: MaterialDefCallback): void;
|
|
74
|
+
onTextureDef(callback: TextureDefCallback): void;
|
|
75
|
+
/** Send pre-encoded binary mesh data directly over the WebSocket (no msgpackr wrapping). */
|
|
76
|
+
sendMeshBinary(encoded: Uint8Array): void;
|
|
77
|
+
/** Send pre-encoded GEOMETRY_DEF directly over the WebSocket. */
|
|
78
|
+
sendGeometryDef(encoded: Uint8Array): void;
|
|
79
|
+
/** Send pre-encoded MESH_REF directly over the WebSocket. */
|
|
80
|
+
sendMeshRef(encoded: Uint8Array): void;
|
|
81
|
+
/** Send pre-encoded MATERIAL_DEF directly over the WebSocket. */
|
|
82
|
+
sendMaterialDef(encoded: Uint8Array): void;
|
|
83
|
+
/** Send pre-encoded TEXTURE_DEF directly over the WebSocket. */
|
|
84
|
+
sendTextureDef(encoded: Uint8Array): void;
|
|
85
|
+
startSimulation(): void;
|
|
86
|
+
get simulationRunning(): boolean;
|
|
87
|
+
/** Total number of bodies the client knows about (including sleeping/unchanged ones) */
|
|
88
|
+
get totalBodyCount(): number;
|
|
89
|
+
disconnect(): void;
|
|
90
|
+
private initBodyIdMap;
|
|
91
|
+
private addBodyIdMapping;
|
|
92
|
+
private initFullState;
|
|
93
|
+
/**
|
|
94
|
+
* Merge partial delta bodies into the full state map.
|
|
95
|
+
* Returns the merged (complete) body states for the bodies that were in the delta.
|
|
96
|
+
*/
|
|
97
|
+
private mergeDelta;
|
|
98
|
+
private handleMessage;
|
|
99
|
+
private sendClientInput;
|
|
100
|
+
private send;
|
|
101
|
+
getReconciler(): StateReconciler;
|
|
102
|
+
getClockSync(): ClockSyncClient;
|
|
103
|
+
getInputManager(): InputManager;
|
|
104
|
+
getClientId(): string | null;
|
|
105
|
+
getRoomId(): string | null;
|
|
106
|
+
get bytesSent(): number;
|
|
107
|
+
get bytesReceived(): number;
|
|
108
|
+
}
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=sync-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../src/sync-client.ts"],"names":[],"mappings":"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"}
|