@sanox/sangine-core 0.2.5 → 0.2.6

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.
@@ -54,6 +54,10 @@ export type SangineEvent = "ready" | {
54
54
  routeUnderConstructionUpdated: {
55
55
  route: Route;
56
56
  };
57
+ } | {
58
+ assetsDownloading: {
59
+ downloading: boolean;
60
+ };
57
61
  };
58
62
  /**
59
63
  * This interface was referenced by `Schema`'s JSON-Schema
@@ -1 +1 @@
1
- {"version":3,"file":"gen-types.d.ts","sourceRoot":"","sources":["../src/gen-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gen-types.d.ts","sourceRoot":"","sources":["../src/gen-types.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";var f=Object.defineProperty;var y=(n,e,t)=>e in n?f(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var o=(n,e,t)=>y(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g="/static/sangine/wasm",_="77477298";class p{constructor(e,t){o(this,"workers");o(this,"idle");o(this,"queue",[]);this.workers=Array.from({length:t},e),this.idle=[...this.workers]}run(e){return new Promise((t,i)=>{const r=this.idle.pop();r?this.dispatch(r,e,t,i):this.queue.push({request:e,resolve:t,reject:i})})}dispatch(e,t,i,r){const d=s=>{i(s.data),a(),this.release(e)},c=s=>{r(s),a(),this.release(e)},a=()=>{e.removeEventListener("message",d),e.removeEventListener("error",c)};e.addEventListener("message",d,{once:!0}),e.addEventListener("error",c,{once:!0}),e.postMessage(t)}release(e){const t=this.queue.shift();t?this.dispatch(e,t.request,t.resolve,t.reject):this.idle.push(e)}terminate(){for(const e of this.workers)e.terminate()}}class R{constructor(e){o(this,"wasm",null);o(this,"callbackRegistry",{});o(this,"userActionRegistry",{});o(this,"windowCreatedPromiseRegistry",{});o(this,"windowCreatedPromiseResolveRegistry",{});o(this,"_inited",!1);o(this,"decodePool");o(this,"_readyPromise");o(this,"_resolveReady");o(this,"_rejectReady");this.config=e,this._readyPromise=new Promise((t,i)=>{this._resolveReady=t,this._rejectReady=i}),this.config=e}async init(){if(!(typeof window>"u")){if(this._inited)return this._readyPromise;try{const t=await import(new URL(`${g}/sangine/sangine.${_}.js`,window.location.origin).toString());await t.default(),this.wasm=t,this._inited=!0;const i=this.config.numWorkers??(navigator.hardwareConcurrency||2)-1;this.decodePool=new p(()=>this.config.createDecodeWorker(),Math.max(i,1)),this.wasm.register_asset_decoder(this.decodeAsset.bind(this)),this.wasm.register_event_listener(this.handleSangineEvent.bind(this)),this._resolveReady()}catch(e){throw this._rejectReady(e),e}return this._readyPromise}}ready(){return this._readyPromise}get inited(){return this._inited}getWasm(){if(!this.wasm)throw new Error("RendererService not initialized");return this.wasm}handleActionChanged(e,t){this.userActionRegistry[e]=t;for(const i of this.callbackRegistry[e].actionChanged)i(t)}handleMeasurementCreated(e,t){for(const i of this.callbackRegistry[e].measurementCreated)i(t)}handleRouteUpdated(e,t){for(const i of this.callbackRegistry[e].routeUpdated)i(t)}handleSangineEvent(e,t){t==="ready"?this.windowCreatedPromiseResolveRegistry[e]():"actionChanged"in t?this.handleActionChanged(e,t.actionChanged.action):"measurementCreated"in t?this.handleMeasurementCreated(e,t.measurementCreated.measurement):"routeUnderConstructionUpdated"in t&&this.handleRouteUpdated(e,t.routeUnderConstructionUpdated.route)}createWindow(e,t){if(!this.wasm)throw new Error("WASM not initialized");let i;const r=new Promise(c=>{i=c}),d=this.wasm.create_window(e,t);return this.windowCreatedPromiseResolveRegistry[d]=i,this.callbackRegistry[d]={actionChanged:[],routeUpdated:[],measurementCreated:[]},this.userActionRegistry[d]="watching",this.windowCreatedPromiseRegistry[d]=r,d}readUserAction(e){return this.userActionRegistry[e]}windowReady(e){return this.windowCreatedPromiseRegistry[e]}registerCallback(e,t,i){this.callbackRegistry[e][t].push(i)}setWindowAction(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_window_action(e,t)}destroyWindow(e){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.destroy_window(e),delete this.callbackRegistry[e],delete this.userActionRegistry[e]}setRouteHighlight(e,t,i){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_route_highlight(e,t,i)}setRouteVisible(e,t,i){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_route_visible(e,t,i)}animateToRoute(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.animate_to_route(e,t)}setSunProperties(e,t,i,r,d,c,a){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_sun_properties(e,t,i,r,d,c,a)}setNorthCorrection(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_north_correction(e,t)}setGpuMemoryBudgetMb(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_gpu_memory_budget_mb(e,t)}setRenderQuality(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_render_quality(e,t)}readCameraPos(e){if(!this.wasm)throw new Error("WASM not initialized");return this.wasm.read_camera_pos(e)}animateTo(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.animate_to(e,t)}setScale(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_window_scale(e,t)}async decodeAsset(e){if(!this.decodePool)throw new Error("Renderer not initialized");return this.decodePool.run(e)}destroy(){var e;(e=this.decodePool)==null||e.terminate()}}const b="fa5ceba1";function A(n,e){let t=!1,i=null,r=null;async function d(c,a){if(r){const s=`https://sangine-asset-cache/${c}`,w=await r.match(s);if(w)return w;const l=await a(),h=await fetch(l);return h.ok&&await r.put(s,h.clone()),h}return fetch(await a())}n.onmessage=async c=>{if(!t){const w=await import(new URL(`${g}/sbo-decode/wasm_sbo_decode.${b}.js`,n.location.origin).href);await w.default(),i=w,t=!0}!r&&typeof caches<"u"&&(r=await caches.open("sangine-assets-v1"));const{data:a}=c;if("texture-file"in a)try{const s=await d(a["texture-file"].pk,()=>e(a));if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);const w=await s.blob(),l=await createImageBitmap(w),h=new OffscreenCanvas(l.width,l.height),m=h.getContext("2d");if(m===null)throw new Error("Couldnt create canvas");m.drawImage(l,0,0);const u=m.getImageData(0,0,h.width,h.height);n.postMessage({success:!0,width:h.width,height:h.height,data:u.data.buffer},[u.data.buffer])}catch(s){n.postMessage({success:!1,error:s.message})}else if("model-part-mesh"in a){const s=await d(a["model-part-mesh"].pk,()=>e(a));if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);const w=await s.arrayBuffer(),l=new Uint8Array(w),h=i.decode_sbo(l);n.postMessage({success:!0,data:h.buffer},[h.buffer])}}}exports.RendererService=R;exports.registerDecodeWorker=A;
1
+ "use strict";var f=Object.defineProperty;var y=(n,e,t)=>e in n?f(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var r=(n,e,t)=>y(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g="/static/sangine/wasm",_="2f6d6a9d";class R{constructor(e,t){r(this,"workers");r(this,"idle");r(this,"queue",[]);this.workers=Array.from({length:t},e),this.idle=[...this.workers]}run(e){return new Promise((t,s)=>{const a=this.idle.pop();a?this.dispatch(a,e,t,s):this.queue.push({request:e,resolve:t,reject:s})})}dispatch(e,t,s,a){const d=i=>{s(i.data),o(),this.release(e)},c=i=>{a(i),o(),this.release(e)},o=()=>{e.removeEventListener("message",d),e.removeEventListener("error",c)};e.addEventListener("message",d,{once:!0}),e.addEventListener("error",c,{once:!0}),e.postMessage(t)}release(e){const t=this.queue.shift();t?this.dispatch(e,t.request,t.resolve,t.reject):this.idle.push(e)}terminate(){for(const e of this.workers)e.terminate()}}class p{constructor(e){r(this,"wasm",null);r(this,"callbackRegistry",{});r(this,"userActionRegistry",{});r(this,"assetsDownloadingRegistry",{});r(this,"windowCreatedPromiseRegistry",{});r(this,"windowCreatedPromiseResolveRegistry",{});r(this,"_inited",!1);r(this,"decodePool");r(this,"_readyPromise");r(this,"_resolveReady");r(this,"_rejectReady");this.config=e,this._readyPromise=new Promise((t,s)=>{this._resolveReady=t,this._rejectReady=s}),this.config=e}async init(){if(!(typeof window>"u")){if(this._inited)return this._readyPromise;try{const t=await import(new URL(`${g}/sangine/sangine.${_}.js`,window.location.origin).toString());await t.default(),this.wasm=t,this._inited=!0;const s=this.config.numWorkers??(navigator.hardwareConcurrency||2)-1;this.decodePool=new R(()=>this.config.createDecodeWorker(),Math.max(s,1)),this.wasm.register_asset_decoder(this.decodeAsset.bind(this)),this.wasm.register_event_listener(this.handleSangineEvent.bind(this)),this._resolveReady()}catch(e){throw this._rejectReady(e),e}return this._readyPromise}}ready(){return this._readyPromise}get inited(){return this._inited}getWasm(){if(!this.wasm)throw new Error("RendererService not initialized");return this.wasm}handleActionChanged(e,t){this.userActionRegistry[e]=t;for(const s of this.callbackRegistry[e].actionChanged)s(t)}handleMeasurementCreated(e,t){for(const s of this.callbackRegistry[e].measurementCreated)s(t)}handleRouteUpdated(e,t){for(const s of this.callbackRegistry[e].routeUpdated)s(t)}handleAssetsDownloading(e,t){this.assetsDownloadingRegistry[e]=t;for(const s of this.callbackRegistry[e].assetsDownloading)s(t)}handleSangineEvent(e,t){t==="ready"?this.windowCreatedPromiseResolveRegistry[e]():"actionChanged"in t?this.handleActionChanged(e,t.actionChanged.action):"measurementCreated"in t?this.handleMeasurementCreated(e,t.measurementCreated.measurement):"routeUnderConstructionUpdated"in t?this.handleRouteUpdated(e,t.routeUnderConstructionUpdated.route):"assetsDownloading"in t&&this.handleAssetsDownloading(e,t.assetsDownloading.downloading)}createWindow(e,t){if(!this.wasm)throw new Error("WASM not initialized");let s;const a=new Promise(c=>{s=c}),d=this.wasm.create_window(e,t);return this.windowCreatedPromiseResolveRegistry[d]=s,this.callbackRegistry[d]={actionChanged:[],routeUpdated:[],measurementCreated:[],assetsDownloading:[]},this.userActionRegistry[d]="watching",this.windowCreatedPromiseRegistry[d]=a,d}getAssetsDownloading(e){return this.assetsDownloadingRegistry[e]||!1}readUserAction(e){return this.userActionRegistry[e]}windowReady(e){return this.windowCreatedPromiseRegistry[e]}registerCallback(e,t,s){this.callbackRegistry[e][t].push(s)}setWindowAction(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_window_action(e,t)}destroyWindow(e){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.destroy_window(e),delete this.callbackRegistry[e],delete this.userActionRegistry[e]}setRouteHighlight(e,t,s){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_route_highlight(e,t,s)}setRouteVisible(e,t,s){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_route_visible(e,t,s)}animateToRoute(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.animate_to_route(e,t)}setSunProperties(e,t,s,a,d,c,o){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_sun_properties(e,t,s,a,d,c,o)}setNorthCorrection(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_north_correction(e,t)}setGpuMemoryBudgetMb(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_gpu_memory_budget_mb(e,t)}setRenderQuality(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_render_quality(e,t)}readCameraPos(e){if(!this.wasm)throw new Error("WASM not initialized");return this.wasm.read_camera_pos(e)}animateTo(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.animate_to(e,t)}setScale(e,t){if(!this.wasm)throw new Error("WASM not initialized");this.wasm.set_window_scale(e,t)}async decodeAsset(e){if(!this.decodePool)throw new Error("Renderer not initialized");return this.decodePool.run(e)}destroy(){var e;(e=this.decodePool)==null||e.terminate()}}const b="fa5ceba1";function A(n,e){let t=!1,s=null,a=null;async function d(c,o){if(a){const i=`https://sangine-asset-cache/${c}`,w=await a.match(i);if(w)return w;const l=await o(),h=await fetch(l);return h.ok&&await a.put(i,h.clone()),h}return fetch(await o())}n.onmessage=async c=>{if(!t){const w=await import(new URL(`${g}/sbo-decode/wasm_sbo_decode.${b}.js`,n.location.origin).href);await w.default(),s=w,t=!0}!a&&typeof caches<"u"&&(a=await caches.open("sangine-assets-v1"));const{data:o}=c;if("texture-file"in o)try{const i=await d(o["texture-file"].pk,()=>e(o));if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);const w=await i.blob(),l=await createImageBitmap(w),h=new OffscreenCanvas(l.width,l.height),m=h.getContext("2d");if(m===null)throw new Error("Couldnt create canvas");m.drawImage(l,0,0);const u=m.getImageData(0,0,h.width,h.height);n.postMessage({success:!0,width:h.width,height:h.height,data:u.data.buffer},[u.data.buffer])}catch(i){n.postMessage({success:!1,error:i.message})}else if("model-part-mesh"in o){const i=await d(o["model-part-mesh"].pk,()=>e(o));if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);const w=await i.arrayBuffer(),l=new Uint8Array(w),h=s.decode_sbo(l);n.postMessage({success:!0,data:h.buffer},[h.buffer])}}}exports.RendererService=p;exports.registerDecodeWorker=A;
package/dist/index.es.js CHANGED
@@ -1,26 +1,26 @@
1
- var g = Object.defineProperty;
2
- var y = (n, e, t) => e in n ? g(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
3
- var o = (n, e, t) => y(n, typeof e != "symbol" ? e + "" : e, t);
4
- const f = "/static/sangine/wasm", _ = "77477298";
5
- class p {
1
+ var f = Object.defineProperty;
2
+ var y = (n, e, t) => e in n ? f(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
3
+ var r = (n, e, t) => y(n, typeof e != "symbol" ? e + "" : e, t);
4
+ const g = "/static/sangine/wasm", _ = "2f6d6a9d";
5
+ class R {
6
6
  constructor(e, t) {
7
- o(this, "workers");
8
- o(this, "idle");
9
- o(this, "queue", []);
7
+ r(this, "workers");
8
+ r(this, "idle");
9
+ r(this, "queue", []);
10
10
  this.workers = Array.from({ length: t }, e), this.idle = [...this.workers];
11
11
  }
12
12
  run(e) {
13
13
  return new Promise((t, s) => {
14
- const r = this.idle.pop();
15
- r ? this.dispatch(r, e, t, s) : this.queue.push({ request: e, resolve: t, reject: s });
14
+ const a = this.idle.pop();
15
+ a ? this.dispatch(a, e, t, s) : this.queue.push({ request: e, resolve: t, reject: s });
16
16
  });
17
17
  }
18
- dispatch(e, t, s, r) {
18
+ dispatch(e, t, s, a) {
19
19
  const d = (i) => {
20
- s(i.data), a(), this.release(e);
20
+ s(i.data), o(), this.release(e);
21
21
  }, c = (i) => {
22
- r(i), a(), this.release(e);
23
- }, a = () => {
22
+ a(i), o(), this.release(e);
23
+ }, o = () => {
24
24
  e.removeEventListener("message", d), e.removeEventListener("error", c);
25
25
  };
26
26
  e.addEventListener("message", d, { once: !0 }), e.addEventListener("error", c, { once: !0 }), e.postMessage(t);
@@ -34,18 +34,19 @@ class p {
34
34
  e.terminate();
35
35
  }
36
36
  }
37
- class A {
37
+ class b {
38
38
  constructor(e) {
39
- o(this, "wasm", null);
40
- o(this, "callbackRegistry", {});
41
- o(this, "userActionRegistry", {});
42
- o(this, "windowCreatedPromiseRegistry", {});
43
- o(this, "windowCreatedPromiseResolveRegistry", {});
44
- o(this, "_inited", !1);
45
- o(this, "decodePool");
46
- o(this, "_readyPromise");
47
- o(this, "_resolveReady");
48
- o(this, "_rejectReady");
39
+ r(this, "wasm", null);
40
+ r(this, "callbackRegistry", {});
41
+ r(this, "userActionRegistry", {});
42
+ r(this, "assetsDownloadingRegistry", {});
43
+ r(this, "windowCreatedPromiseRegistry", {});
44
+ r(this, "windowCreatedPromiseResolveRegistry", {});
45
+ r(this, "_inited", !1);
46
+ r(this, "decodePool");
47
+ r(this, "_readyPromise");
48
+ r(this, "_resolveReady");
49
+ r(this, "_rejectReady");
49
50
  this.config = e, this._readyPromise = new Promise((t, s) => {
50
51
  this._resolveReady = t, this._rejectReady = s;
51
52
  }), this.config = e;
@@ -55,12 +56,12 @@ class A {
55
56
  if (this._inited) return this._readyPromise;
56
57
  try {
57
58
  const t = await import(new URL(
58
- `${f}/sangine/sangine.${_}.js`,
59
+ `${g}/sangine/sangine.${_}.js`,
59
60
  window.location.origin
60
61
  ).toString());
61
62
  await t.default(), this.wasm = t, this._inited = !0;
62
63
  const s = this.config.numWorkers ?? (navigator.hardwareConcurrency || 2) - 1;
63
- this.decodePool = new p(
64
+ this.decodePool = new R(
64
65
  () => this.config.createDecodeWorker(),
65
66
  Math.max(s, 1)
66
67
  ), this.wasm.register_asset_decoder(this.decodeAsset.bind(this)), this.wasm.register_event_listener(this.handleSangineEvent.bind(this)), this._resolveReady();
@@ -94,20 +95,29 @@ class A {
94
95
  for (const s of this.callbackRegistry[e].routeUpdated)
95
96
  s(t);
96
97
  }
98
+ handleAssetsDownloading(e, t) {
99
+ this.assetsDownloadingRegistry[e] = t;
100
+ for (const s of this.callbackRegistry[e].assetsDownloading)
101
+ s(t);
102
+ }
97
103
  handleSangineEvent(e, t) {
98
- t === "ready" ? this.windowCreatedPromiseResolveRegistry[e]() : "actionChanged" in t ? this.handleActionChanged(e, t.actionChanged.action) : "measurementCreated" in t ? this.handleMeasurementCreated(e, t.measurementCreated.measurement) : "routeUnderConstructionUpdated" in t && this.handleRouteUpdated(e, t.routeUnderConstructionUpdated.route);
104
+ t === "ready" ? this.windowCreatedPromiseResolveRegistry[e]() : "actionChanged" in t ? this.handleActionChanged(e, t.actionChanged.action) : "measurementCreated" in t ? this.handleMeasurementCreated(e, t.measurementCreated.measurement) : "routeUnderConstructionUpdated" in t ? this.handleRouteUpdated(e, t.routeUnderConstructionUpdated.route) : "assetsDownloading" in t && this.handleAssetsDownloading(e, t.assetsDownloading.downloading);
99
105
  }
100
106
  createWindow(e, t) {
101
107
  if (!this.wasm) throw new Error("WASM not initialized");
102
108
  let s;
103
- const r = new Promise((c) => {
109
+ const a = new Promise((c) => {
104
110
  s = c;
105
111
  }), d = this.wasm.create_window(e, t);
106
112
  return this.windowCreatedPromiseResolveRegistry[d] = s, this.callbackRegistry[d] = {
107
113
  actionChanged: [],
108
114
  routeUpdated: [],
109
- measurementCreated: []
110
- }, this.userActionRegistry[d] = "watching", this.windowCreatedPromiseRegistry[d] = r, d;
115
+ measurementCreated: [],
116
+ assetsDownloading: []
117
+ }, this.userActionRegistry[d] = "watching", this.windowCreatedPromiseRegistry[d] = a, d;
118
+ }
119
+ getAssetsDownloading(e) {
120
+ return this.assetsDownloadingRegistry[e] || !1;
111
121
  }
112
122
  readUserAction(e) {
113
123
  return this.userActionRegistry[e];
@@ -138,16 +148,16 @@ class A {
138
148
  if (!this.wasm) throw new Error("WASM not initialized");
139
149
  this.wasm.animate_to_route(e, t);
140
150
  }
141
- setSunProperties(e, t, s, r, d, c, a) {
151
+ setSunProperties(e, t, s, a, d, c, o) {
142
152
  if (!this.wasm) throw new Error("WASM not initialized");
143
153
  this.wasm.set_sun_properties(
144
154
  e,
145
155
  t,
146
156
  s,
147
- r,
157
+ a,
148
158
  d,
149
159
  c,
150
- a
160
+ o
151
161
  );
152
162
  }
153
163
  setNorthCorrection(e, t) {
@@ -183,31 +193,31 @@ class A {
183
193
  (e = this.decodePool) == null || e.terminate();
184
194
  }
185
195
  }
186
- const R = "fa5ceba1";
196
+ const p = "fa5ceba1";
187
197
  function E(n, e) {
188
- let t = !1, s = null, r = null;
189
- async function d(c, a) {
190
- if (r) {
191
- const i = `https://sangine-asset-cache/${c}`, w = await r.match(i);
198
+ let t = !1, s = null, a = null;
199
+ async function d(c, o) {
200
+ if (a) {
201
+ const i = `https://sangine-asset-cache/${c}`, w = await a.match(i);
192
202
  if (w) return w;
193
- const l = await a(), h = await fetch(l);
194
- return h.ok && await r.put(i, h.clone()), h;
203
+ const l = await o(), h = await fetch(l);
204
+ return h.ok && await a.put(i, h.clone()), h;
195
205
  }
196
- return fetch(await a());
206
+ return fetch(await o());
197
207
  }
198
208
  n.onmessage = async (c) => {
199
209
  if (!t) {
200
210
  const w = await import(new URL(
201
- `${f}/sbo-decode/wasm_sbo_decode.${R}.js`,
211
+ `${g}/sbo-decode/wasm_sbo_decode.${p}.js`,
202
212
  n.location.origin
203
213
  ).href);
204
214
  await w.default(), s = w, t = !0;
205
215
  }
206
- !r && typeof caches < "u" && (r = await caches.open("sangine-assets-v1"));
207
- const { data: a } = c;
208
- if ("texture-file" in a)
216
+ !a && typeof caches < "u" && (a = await caches.open("sangine-assets-v1"));
217
+ const { data: o } = c;
218
+ if ("texture-file" in o)
209
219
  try {
210
- const i = await d(a["texture-file"].pk, () => e(a));
220
+ const i = await d(o["texture-file"].pk, () => e(o));
211
221
  if (!i.ok)
212
222
  throw new Error(`HTTP error! status: ${i.status}`);
213
223
  const w = await i.blob(), l = await createImageBitmap(w), h = new OffscreenCanvas(l.width, l.height), m = h.getContext("2d");
@@ -227,8 +237,8 @@ function E(n, e) {
227
237
  } catch (i) {
228
238
  n.postMessage({ success: !1, error: i.message });
229
239
  }
230
- else if ("model-part-mesh" in a) {
231
- const i = await d(a["model-part-mesh"].pk, () => e(a));
240
+ else if ("model-part-mesh" in o) {
241
+ const i = await d(o["model-part-mesh"].pk, () => e(o));
232
242
  if (!i.ok)
233
243
  throw new Error(`HTTP error! status: ${i.status}`);
234
244
  const w = await i.arrayBuffer(), l = new Uint8Array(w), h = s.decode_sbo(l);
@@ -243,6 +253,6 @@ function E(n, e) {
243
253
  };
244
254
  }
245
255
  export {
246
- A as RendererService,
256
+ b as RendererService,
247
257
  E as registerDecodeWorker
248
258
  };
@@ -3,16 +3,19 @@ import type * as SangineModule from './wasm-types/sangine';
3
3
  type ActionChangedCallback = (action: UserAction) => void;
4
4
  type RouteUpdatedCallback = (route: Route) => void;
5
5
  type MeasurementCreatedCallback = (measurement: Measurement) => void;
6
+ type AssetsDownloadingCallback = (downloading: boolean) => void;
6
7
  interface CallbackMap {
7
8
  actionChanged: ActionChangedCallback;
8
9
  routeUpdated: RouteUpdatedCallback;
9
10
  measurementCreated: MeasurementCreatedCallback;
11
+ assetsDownloading: AssetsDownloadingCallback;
10
12
  }
11
13
  export declare class RendererService {
12
14
  private config;
13
15
  private wasm;
14
16
  private callbackRegistry;
15
17
  private userActionRegistry;
18
+ private assetsDownloadingRegistry;
16
19
  private windowCreatedPromiseRegistry;
17
20
  private windowCreatedPromiseResolveRegistry;
18
21
  private _inited;
@@ -28,8 +31,10 @@ export declare class RendererService {
28
31
  handleActionChanged(windowId: number, action: UserAction): void;
29
32
  handleMeasurementCreated(windowId: number, measurement: Measurement): void;
30
33
  handleRouteUpdated(windowId: number, route: Route): void;
34
+ handleAssetsDownloading(windowId: number, downloading: boolean): void;
31
35
  handleSangineEvent(windowId: number, event: SangineEvent): void;
32
36
  createWindow(containerId: string, scene: Scene): number;
37
+ getAssetsDownloading(containerId: number): boolean;
33
38
  readUserAction(windowId: number): UserAction;
34
39
  windowReady(windowId: number): Promise<void>;
35
40
  registerCallback<K extends keyof CallbackMap>(windowId: number, event: K, callback: CallbackMap[K]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"rendererService.d.ts","sourceRoot":"","sources":["../src/rendererService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rendererService.d.ts","sourceRoot":"","sources":["../src/rendererService.ts"],"names":[],"mappings":"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"}
@@ -3201,7 +3201,7 @@ async function __wbg_init(module_or_path) {
3201
3201
  }
3202
3202
 
3203
3203
  if (module_or_path === undefined) {
3204
- module_or_path = new URL('sangine_bg.77477298.wasm', import.meta.url);
3204
+ module_or_path = new URL('sangine_bg.2f6d6a9d.wasm', import.meta.url);
3205
3205
  }
3206
3206
  const imports = __wbg_get_imports();
3207
3207
 
@@ -1,2 +1,2 @@
1
- export declare const SANGINE_HASH = "77477298";
1
+ export declare const SANGINE_HASH = "2f6d6a9d";
2
2
  //# sourceMappingURL=sangine.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanox/sangine-core",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "Sangine core renderer runtime (WASM + workers)",
5
5
  "type": "module",
6
6
  "private": false,