lecodes-viewer 0.20.2 → 1.1.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/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "lecodes-viewer",
3
- "version": "0.20.2",
3
+ "version": "1.1.0",
4
4
  "main": "src/createViewer.ts",
5
5
  "dependencies": {
6
- "lecodes-renderer": "0.20.2",
6
+ "lecodes-renderer": "1.1.0",
7
7
  "ogl": "^1.0.11",
8
- "lecodes-viewer-lite": "0.20.2"
8
+ "lecodes-viewer-lite": "1.1.0"
9
9
  },
10
10
  "scripts": {
11
11
  "dev": "vite",
@@ -240,7 +240,7 @@ export const createTransitionSystem = (
240
240
  }
241
241
 
242
242
  // Options-bag meta keys of animateTo/animateFrom — everything that is not a style target.
243
- const META_KEYS = new Set(["duration", "delay", "layer", "commit", "loop", "loopMode"])
243
+ const META_KEYS = new Set(["duration", "delay", "easing", "layer", "commit", "loop", "loopMode"])
244
244
 
245
245
  const cssAliases: Record<string, string> = {
246
246
  bgColor: "background-color",
@@ -233,7 +233,7 @@ export const createViewer = async (canvas: HTMLCanvasElement, options: ViewerOpt
233
233
  // Each read-back writes into a caller-owned `out`, so there's no shared-buffer aliasing — we only
234
234
  // drop the per-call malloc/free + view allocation. Read module.HEAPF32 FRESH each call (emscripten
235
235
  // swaps that view on heap growth; the scratch address survives).
236
- const READ_SCRATCH = 64 // largest reader: vehicleGetState = 7 + 3 per wheel
236
+ const READ_SCRATCH = 128 // largest reader: vehicleGetState = 11 + 11 per wheel
237
237
  const readScratchPtr = module._malloc(READ_SCRATCH * 4)
238
238
  const readInto = (out: Float32Array, n: number, fn: (ptr: number) => void): void => {
239
239
  fn(readScratchPtr)
@@ -396,16 +396,18 @@ export const createViewer = async (canvas: HTMLCanvasElement, options: ViewerOpt
396
396
  return id
397
397
  },
398
398
  vehicleDestroy: (vehicleId: number) => module._vehicleDestroy(vehicleId),
399
- vehicleSetTransmission: (vehicleId: number, ratio: number, clutch: number) =>
400
- module._vehicleSetTransmission(vehicleId, ratio, clutch),
401
399
  vehicleSetTuning: (vehicleId: number, settings: Float32Array) => {
402
400
  const ptr = module._malloc(settings.byteLength)
403
401
  module.HEAPF32.set(settings, ptr / 4)
404
402
  module._vehicleSetTuning(vehicleId, ptr, settings.length)
405
403
  module._free(ptr)
406
404
  },
407
- vehicleSetInput: (vehicleId: number, forward: number, right: number, brake: number, handBrake: number) =>
408
- module._vehicleSetInput(vehicleId, forward, right, brake, handBrake),
405
+ vehicleSetInput: (vehicleId: number, input: Float32Array) => {
406
+ const ptr = module._malloc(input.length * 4)
407
+ module.HEAPF32.set(input, ptr >> 2)
408
+ module._vehicleSetInput(vehicleId, ptr, input.length)
409
+ module._free(ptr)
410
+ },
409
411
  vehicleGetState: (vehicleId: number, out: Float32Array) =>
410
412
  readInto(out, Math.min(out.length, READ_SCRATCH), (ptr) => module._vehicleGetState(vehicleId, ptr, Math.min(out.length, READ_SCRATCH))),
411
413
  vehicleReset: (vehicleId: number, x: number, y: number, z: number, qx: number, qy: number, qz: number, qw: number) =>
@@ -426,7 +428,8 @@ export const createViewer = async (canvas: HTMLCanvasElement, options: ViewerOpt
426
428
  ragdollDestroy: (ragdollId: number) => module._ragdollDestroy(ragdollId),
427
429
  ragdollActivate: (ragdollId: number, vx: number, vy: number, vz: number): boolean =>
428
430
  !!module._ragdollActivate(ragdollId, vx, vy, vz),
429
- ragdollDeactivate: (ragdollId: number) => module._ragdollDeactivate(ragdollId),
431
+ ragdollDeactivate: (ragdollId: number, blend: number) => module._ragdollDeactivate(ragdollId, blend || 0),
432
+ ragdollSetDrive: (ragdollId: number, strength: number, anchor: boolean) => module._ragdollSetDrive(ragdollId, strength, anchor ? 1 : 0),
430
433
  ragdollActive: (ragdollId: number): boolean => !!module._ragdollActive(ragdollId),
431
434
  ragdollBodyId: (ragdollId: number, index: number): number => module._ragdollBodyId(ragdollId, index),
432
435
  computeBoundingBox(entityId: number) {
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file