@flighthq/scene3d-resources 0.3.0-next.906.07cea63 → 0.3.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/anisotropyPbrScene3DMaterialTextures.d.ts +3 -0
- package/dist/anisotropyPbrScene3DMaterialTextures.d.ts.map +1 -0
- package/dist/anisotropyPbrScene3DMaterialTextures.js +10 -0
- package/dist/anisotropyPbrScene3DMaterialTextures.js.map +1 -0
- package/dist/awd2Load.d.ts.map +1 -1
- package/dist/awd2Load.js +3 -2
- package/dist/awd2Load.js.map +1 -1
- package/dist/clearcoatPbrScene3DMaterialTextures.d.ts +3 -0
- package/dist/clearcoatPbrScene3DMaterialTextures.d.ts.map +1 -0
- package/dist/clearcoatPbrScene3DMaterialTextures.js +14 -0
- package/dist/clearcoatPbrScene3DMaterialTextures.js.map +1 -0
- package/dist/contract.d.ts +10 -1
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +10 -1
- package/dist/contract.js.map +1 -1
- package/dist/enableScene3DResourceFailureGuards.d.ts.map +1 -1
- package/dist/enableScene3DResourceFailureGuards.js +2 -2
- package/dist/enableScene3DResourceFailureGuards.js.map +1 -1
- package/dist/explainScene3DResourceCoverage.d.ts +4 -0
- package/dist/explainScene3DResourceCoverage.d.ts.map +1 -0
- package/dist/explainScene3DResourceCoverage.js +42 -0
- package/dist/explainScene3DResourceCoverage.js.map +1 -0
- package/dist/getScene3DResourceTextures.d.ts +3 -2
- package/dist/getScene3DResourceTextures.d.ts.map +1 -1
- package/dist/getScene3DResourceTextures.js +23 -27
- package/dist/getScene3DResourceTextures.js.map +1 -1
- package/dist/imageResourceFetch.d.ts +2 -2
- package/dist/imageResourceFetch.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/iridescencePbrScene3DMaterialTextures.d.ts +3 -0
- package/dist/iridescencePbrScene3DMaterialTextures.d.ts.map +1 -0
- package/dist/iridescencePbrScene3DMaterialTextures.js +12 -0
- package/dist/iridescencePbrScene3DMaterialTextures.js.map +1 -0
- package/dist/loadScene3DResources.d.ts +4 -0
- package/dist/loadScene3DResources.d.ts.map +1 -0
- package/dist/{resolveScene3DResourcesAndWait.js → loadScene3DResources.js} +11 -21
- package/dist/loadScene3DResources.js.map +1 -0
- package/dist/resolveScene3DResources.d.ts +4 -3
- package/dist/resolveScene3DResources.d.ts.map +1 -1
- package/dist/resolveScene3DResources.js +49 -26
- package/dist/resolveScene3DResources.js.map +1 -1
- package/dist/revealScene3DResourcesOnResolve.d.ts +2 -2
- package/dist/revealScene3DResourcesOnResolve.d.ts.map +1 -1
- package/dist/revealScene3DResourcesOnResolve.js +9 -6
- package/dist/revealScene3DResourcesOnResolve.js.map +1 -1
- package/dist/sceneMaterialTextureRegistry.d.ts +6 -2
- package/dist/sceneMaterialTextureRegistry.d.ts.map +1 -1
- package/dist/sceneMaterialTextureRegistry.js +31 -8
- package/dist/sceneMaterialTextureRegistry.js.map +1 -1
- package/dist/sceneResourceRecovery.d.ts +2 -4
- package/dist/sceneResourceRecovery.d.ts.map +1 -1
- package/dist/sceneResourceRecovery.js +9 -28
- package/dist/sceneResourceRecovery.js.map +1 -1
- package/dist/sceneResourceResolver.d.ts.map +1 -1
- package/dist/sceneResourceResolver.js +6 -2
- package/dist/sceneResourceResolver.js.map +1 -1
- package/dist/shadedScene3DMaterialTextures.d.ts +3 -0
- package/dist/shadedScene3DMaterialTextures.d.ts.map +1 -0
- package/dist/shadedScene3DMaterialTextures.js +30 -0
- package/dist/shadedScene3DMaterialTextures.js.map +1 -0
- package/dist/sheenPbrScene3DMaterialTextures.d.ts +3 -0
- package/dist/sheenPbrScene3DMaterialTextures.d.ts.map +1 -0
- package/dist/sheenPbrScene3DMaterialTextures.js +12 -0
- package/dist/sheenPbrScene3DMaterialTextures.js.map +1 -0
- package/dist/specularPbrScene3DMaterialTextures.d.ts +3 -0
- package/dist/specularPbrScene3DMaterialTextures.d.ts.map +1 -0
- package/dist/specularPbrScene3DMaterialTextures.js +12 -0
- package/dist/specularPbrScene3DMaterialTextures.js.map +1 -0
- package/dist/transmissionVolumePbrScene3DMaterialTextures.d.ts +3 -0
- package/dist/transmissionVolumePbrScene3DMaterialTextures.d.ts.map +1 -0
- package/dist/transmissionVolumePbrScene3DMaterialTextures.js +12 -0
- package/dist/transmissionVolumePbrScene3DMaterialTextures.js.map +1 -0
- package/dist/wrappedDiffusePbrScene3DMaterialTextures.d.ts +3 -0
- package/dist/wrappedDiffusePbrScene3DMaterialTextures.d.ts.map +1 -0
- package/dist/wrappedDiffusePbrScene3DMaterialTextures.js +12 -0
- package/dist/wrappedDiffusePbrScene3DMaterialTextures.js.map +1 -0
- package/package.json +16 -13
- package/src/anisotropyPbrScene3DMaterialTextures.test.ts +26 -0
- package/src/awd2Load.test.ts +2 -2
- package/src/clearcoatPbrScene3DMaterialTextures.test.ts +36 -0
- package/src/enableScene3DResourceFailureGuards.test.ts +9 -8
- package/src/explainScene3DResourceCoverage.test.ts +115 -0
- package/src/getScene3DResourceTextures.test.ts +65 -38
- package/src/gltfLoad.test.ts +2 -2
- package/src/imageResourceFetch.test.ts +3 -3
- package/src/iridescencePbrScene3DMaterialTextures.test.ts +34 -0
- package/src/{resolveScene3DResourcesAndWait.test.ts → loadScene3DResources.test.ts} +40 -18
- package/src/md2Load.test.ts +2 -2
- package/src/md5Load.test.ts +2 -2
- package/src/objLoad.test.ts +2 -2
- package/src/resolveScene3DResources.test.ts +136 -53
- package/src/revealScene3DResourcesOnResolve.test.ts +39 -21
- package/src/sceneMaterialTextureRegistry.test.ts +118 -26
- package/src/sceneResourceRecovery.test.ts +13 -47
- package/src/sceneResourceResolver.test.ts +14 -11
- package/src/sceneResourceResolverTreeShaking.test.ts +1 -1
- package/src/shadedScene3DMaterialTextures.test.ts +52 -0
- package/src/sheenPbrScene3DMaterialTextures.test.ts +29 -0
- package/src/specularPbrScene3DMaterialTextures.test.ts +29 -0
- package/src/threeDsLoad.test.ts +2 -2
- package/src/transmissionVolumePbrScene3DMaterialTextures.test.ts +34 -0
- package/src/wrappedDiffusePbrScene3DMaterialTextures.test.ts +34 -0
- package/dist/resolveScene3DResourcesAndWait.d.ts +0 -4
- package/dist/resolveScene3DResourcesAndWait.d.ts.map +0 -1
- package/dist/resolveScene3DResourcesAndWait.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anisotropyPbrScene3DMaterialTextures.d.ts","sourceRoot":"","sources":["../src/anisotropyPbrScene3DMaterialTextures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAKvG,wBAAgB,4CAA4C,CAAC,QAAQ,EAAE,8BAA8B,GAAG,IAAI,CAK3G"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AnisotropyPbrExtensionKind } from '@flighthq/types/contract';
|
|
2
|
+
import { registerScene3DPbrExtensionTextures } from './sceneMaterialTextureRegistry';
|
|
3
|
+
export function registerAnisotropyPbrScene3DMaterialTextures(registry) {
|
|
4
|
+
registerScene3DPbrExtensionTextures(registry, AnisotropyPbrExtensionKind, (extension, out) => {
|
|
5
|
+
const anisotropy = extension;
|
|
6
|
+
if (anisotropy.anisotropyMap !== null)
|
|
7
|
+
out.push(anisotropy.anisotropyMap);
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=anisotropyPbrScene3DMaterialTextures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anisotropyPbrScene3DMaterialTextures.js","sourceRoot":"","sources":["../src/anisotropyPbrScene3DMaterialTextures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,mCAAmC,EAAE,MAAM,gCAAgC,CAAC;AAErF,MAAM,UAAU,4CAA4C,CAAC,QAAwC;IACnG,mCAAmC,CAAC,QAAQ,EAAE,0BAA0B,EAAE,CAAC,SAAS,EAAE,GAAG,EAAQ,EAAE;QACjG,MAAM,UAAU,GAAG,SAA6C,CAAC;QACjE,IAAI,UAAU,CAAC,aAAa,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/awd2Load.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"awd2Load.d.ts","sourceRoot":"","sources":["../src/awd2Load.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"awd2Load.d.ts","sourceRoot":"","sources":["../src/awd2Load.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAS5F,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAC7C,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAMjC"}
|
package/dist/awd2Load.js
CHANGED
|
@@ -2,8 +2,9 @@ import { parseAwd2 } from '@flighthq/scene3d-formats/contract';
|
|
|
2
2
|
import { loadScene3DDocumentBytesFromUrl, setScene3DDocumentResourceBasePathFromUrl } from './sceneDocumentSource';
|
|
3
3
|
// Fetches an Away3D AWD file from a URL and parses it into a format-neutral Scene3DDocument (geometry, skins,
|
|
4
4
|
// and its skeleton animation). Fetches only the FILE — the document's texture refs stay unresolved; assemble
|
|
5
|
-
// with createScene3DFromDocument and
|
|
6
|
-
// failure returns null; it never creates a renderer or GPU
|
|
5
|
+
// with createScene3DFromDocument and acquire on your own schedule with loadScene3DResources or
|
|
6
|
+
// updateScene3DResourceStreaming. On a fetch failure returns null; it never creates a renderer or GPU
|
|
7
|
+
// resource.
|
|
7
8
|
export async function loadScene3DDocumentFromAwd2Url(url, options) {
|
|
8
9
|
const bytes = await loadScene3DDocumentBytesFromUrl(url, options);
|
|
9
10
|
if (bytes === null)
|
package/dist/awd2Load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"awd2Load.js","sourceRoot":"","sources":["../src/awd2Load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAG/D,OAAO,EAAE,+BAA+B,EAAE,yCAAyC,EAAE,MAAM,uBAAuB,CAAC;AAEnH,8GAA8G;AAC9G,6GAA6G;AAC7G,
|
|
1
|
+
{"version":3,"file":"awd2Load.js","sourceRoot":"","sources":["../src/awd2Load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAG/D,OAAO,EAAE,+BAA+B,EAAE,yCAAyC,EAAE,MAAM,uBAAuB,CAAC;AAEnH,8GAA8G;AAC9G,6GAA6G;AAC7G,+FAA+F;AAC/F,sGAAsG;AACtG,YAAY;AACZ,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,GAAW,EACX,OAA8C;IAE9C,MAAM,KAAK,GAAG,MAAM,+BAA+B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,yCAAyC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACzD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clearcoatPbrScene3DMaterialTextures.d.ts","sourceRoot":"","sources":["../src/clearcoatPbrScene3DMaterialTextures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAKtG,wBAAgB,2CAA2C,CAAC,QAAQ,EAAE,8BAA8B,GAAG,IAAI,CAO1G"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ClearcoatPbrExtensionKind } from '@flighthq/types/contract';
|
|
2
|
+
import { registerScene3DPbrExtensionTextures } from './sceneMaterialTextureRegistry';
|
|
3
|
+
export function registerClearcoatPbrScene3DMaterialTextures(registry) {
|
|
4
|
+
registerScene3DPbrExtensionTextures(registry, ClearcoatPbrExtensionKind, (extension, out) => {
|
|
5
|
+
const clearcoat = extension;
|
|
6
|
+
if (clearcoat.clearcoatMap !== null)
|
|
7
|
+
out.push(clearcoat.clearcoatMap);
|
|
8
|
+
if (clearcoat.clearcoatNormalMap !== null)
|
|
9
|
+
out.push(clearcoat.clearcoatNormalMap);
|
|
10
|
+
if (clearcoat.clearcoatRoughnessMap !== null)
|
|
11
|
+
out.push(clearcoat.clearcoatRoughnessMap);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=clearcoatPbrScene3DMaterialTextures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clearcoatPbrScene3DMaterialTextures.js","sourceRoot":"","sources":["../src/clearcoatPbrScene3DMaterialTextures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAE,mCAAmC,EAAE,MAAM,gCAAgC,CAAC;AAErF,MAAM,UAAU,2CAA2C,CAAC,QAAwC;IAClG,mCAAmC,CAAC,QAAQ,EAAE,yBAAyB,EAAE,CAAC,SAAS,EAAE,GAAG,EAAQ,EAAE;QAChG,MAAM,SAAS,GAAG,SAA4C,CAAC;QAC/D,IAAI,SAAS,CAAC,YAAY,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtE,IAAI,SAAS,CAAC,kBAAkB,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAClF,IAAI,SAAS,CAAC,qBAAqB,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/contract.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './explainScene3DResourceCoverage';
|
|
1
2
|
export * from './getScene3DResourceTextures';
|
|
2
3
|
export * from './threeDsLoad';
|
|
3
4
|
export * from './gltfLoad';
|
|
@@ -7,12 +8,20 @@ export * from './objLoad';
|
|
|
7
8
|
export * from './sceneDocumentSource';
|
|
8
9
|
export * from './awd2Load';
|
|
9
10
|
export * from './resolveScene3DResources';
|
|
10
|
-
export * from './
|
|
11
|
+
export * from './loadScene3DResources';
|
|
11
12
|
export * from './revealScene3DResourcesOnResolve';
|
|
12
13
|
export * from './sceneMaterialTextureRegistry';
|
|
13
14
|
export * from './sceneResourceRecovery';
|
|
14
15
|
export * from './imageResourceFetch';
|
|
16
|
+
export * from './iridescencePbrScene3DMaterialTextures';
|
|
15
17
|
export * from './sceneResourceResolver';
|
|
16
18
|
export * from './sceneResourceSignals';
|
|
19
|
+
export * from './shadedScene3DMaterialTextures';
|
|
20
|
+
export * from './sheenPbrScene3DMaterialTextures';
|
|
21
|
+
export * from './specularPbrScene3DMaterialTextures';
|
|
22
|
+
export * from './transmissionVolumePbrScene3DMaterialTextures';
|
|
23
|
+
export * from './wrappedDiffusePbrScene3DMaterialTextures';
|
|
17
24
|
export * from './enableScene3DResourceFailureGuards';
|
|
25
|
+
export * from './anisotropyPbrScene3DMaterialTextures';
|
|
26
|
+
export * from './clearcoatPbrScene3DMaterialTextures';
|
|
18
27
|
//# sourceMappingURL=contract.d.ts.map
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './explainScene3DResourceCoverage';
|
|
1
2
|
export * from './getScene3DResourceTextures';
|
|
2
3
|
export * from './threeDsLoad';
|
|
3
4
|
export * from './gltfLoad';
|
|
@@ -7,12 +8,20 @@ export * from './objLoad';
|
|
|
7
8
|
export * from './sceneDocumentSource';
|
|
8
9
|
export * from './awd2Load';
|
|
9
10
|
export * from './resolveScene3DResources';
|
|
10
|
-
export * from './
|
|
11
|
+
export * from './loadScene3DResources';
|
|
11
12
|
export * from './revealScene3DResourcesOnResolve';
|
|
12
13
|
export * from './sceneMaterialTextureRegistry';
|
|
13
14
|
export * from './sceneResourceRecovery';
|
|
14
15
|
export * from './imageResourceFetch';
|
|
16
|
+
export * from './iridescencePbrScene3DMaterialTextures';
|
|
15
17
|
export * from './sceneResourceResolver';
|
|
16
18
|
export * from './sceneResourceSignals';
|
|
19
|
+
export * from './shadedScene3DMaterialTextures';
|
|
20
|
+
export * from './sheenPbrScene3DMaterialTextures';
|
|
21
|
+
export * from './specularPbrScene3DMaterialTextures';
|
|
22
|
+
export * from './transmissionVolumePbrScene3DMaterialTextures';
|
|
23
|
+
export * from './wrappedDiffusePbrScene3DMaterialTextures';
|
|
17
24
|
export * from './enableScene3DResourceFailureGuards';
|
|
25
|
+
export * from './anisotropyPbrScene3DMaterialTextures';
|
|
26
|
+
export * from './clearcoatPbrScene3DMaterialTextures';
|
|
18
27
|
//# sourceMappingURL=contract.js.map
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableScene3DResourceFailureGuards.d.ts","sourceRoot":"","sources":["../src/enableScene3DResourceFailureGuards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enableScene3DResourceFailureGuards.d.ts","sourceRoot":"","sources":["../src/enableScene3DResourceFailureGuards.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAwB,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAM9F,wBAAgB,sCAAsC,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAE3G;AAGD,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAO3F;AAMD,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,IAAI,CA4BhG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { explainImageResourceReferenceResolution } from '@flighthq/image/contract';
|
|
1
2
|
import { logOnce } from '@flighthq/log/contract';
|
|
2
3
|
import { connectSignal, disconnectSignal } from '@flighthq/signals/contract';
|
|
3
4
|
import { LogLevel } from '@flighthq/types/contract';
|
|
4
|
-
import { explainImageResourceReferenceResolution } from './sceneResourceRecovery';
|
|
5
5
|
import { enableScene3DResourceSignals } from './sceneResourceSignals';
|
|
6
6
|
// Returns whether the failure guard is installed on `resolver`.
|
|
7
7
|
export function areScene3DResourceFailureGuardsEnabled(resolver) {
|
|
@@ -35,7 +35,7 @@ export function enableScene3DResourceFailureGuards(resolver) {
|
|
|
35
35
|
failureKind: explanation.failure?.kind ?? null,
|
|
36
36
|
failureName: explanation.failure?.name ?? null,
|
|
37
37
|
failureMessage: explanation.failure?.message ?? null,
|
|
38
|
-
message: '
|
|
38
|
+
message: 'Scene3D resource acquisition failed — call retryFailedScene3DResources to request it again',
|
|
39
39
|
resourceKind: explanation.kind,
|
|
40
40
|
}, 'scene-resources');
|
|
41
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableScene3DResourceFailureGuards.js","sourceRoot":"","sources":["../src/enableScene3DResourceFailureGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"enableScene3DResourceFailureGuards.js","sourceRoot":"","sources":["../src/enableScene3DResourceFailureGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uCAAuC,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAEtE,gEAAgE;AAChE,MAAM,UAAU,sCAAsC,CAAC,QAA2C;IAChG,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,mCAAmC,CAAC,QAAiC;IACnF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,MAAM,OAAO,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACvD,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,gGAAgG;AAChG,kGAAkG;AAClG,qGAAqG;AACrG,sGAAsG;AACtG,MAAM,UAAU,kCAAkC,CAAC,QAAiC;IAClF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,GAAG,EAAE,CAAC,mCAAmC,CAAC,QAAQ,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,IAAI,OAAO,EAAuE,CAAC;IAClG,MAAM,OAAO,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,CAAC,KAAqC,EAAQ,EAAE;QAC7D,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACjF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,uCAAuC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvE,OAAO,CACL,oDAAoD,EAAE,UAAU,EAAE,EAClE,QAAQ,CAAC,IAAI,EACb;YACE,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI;YAC9C,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI;YAC9C,cAAc,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI;YACpD,OAAO,EAAE,4FAA4F;YACrG,YAAY,EAAE,WAAW,CAAC,IAAI;SAC/B,EACD,iBAAiB,CAClB,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,KAAqC,EAAQ,EAAE;QAC/D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAChD,aAAa,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5C,OAAO,GAAG,EAAE,CAAC,mCAAmC,CAAC,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAOD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAkE,CAAC;AAC9F,IAAI,UAAU,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SceneCoverageEntry, Scene3DKindUsage, Scene3DResourceResolver } from '@flighthq/types/contract';
|
|
2
|
+
export declare function explainScene3DResourceCoverage(out: SceneCoverageEntry[], resolver: Readonly<Scene3DResourceResolver>, usage: Readonly<Scene3DKindUsage>): void;
|
|
3
|
+
export declare function hasScene3DResourceCoverage(resolver: Readonly<Scene3DResourceResolver>, usage: Readonly<Scene3DKindUsage>): boolean;
|
|
4
|
+
//# sourceMappingURL=explainScene3DResourceCoverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explainScene3DResourceCoverage.d.ts","sourceRoot":"","sources":["../src/explainScene3DResourceCoverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAkB9G,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,kBAAkB,EAAE,EACzB,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAC3C,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAChC,IAAI,CAGN;AAID,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAC3C,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAChC,OAAO,CAET"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { RenderRegistry, SceneCoverage } from '@flighthq/types/contract';
|
|
2
|
+
import { hasScene3DMaterialTextureLister } from './sceneMaterialTextureRegistry';
|
|
3
|
+
// Clears `out`, then reports EVERY material kind in `usage` with how well this resolver describes it —
|
|
4
|
+
// satisfied ones included, so one call is a complete manifest rather than only a list of complaints. The resource
|
|
5
|
+
// layer's half of the scene↔consumer seam: @flighthq/scene3d says what a document uses, each holder of a
|
|
6
|
+
// registry answers for its own. It reads the registry rather than a table of names, so it cannot go
|
|
7
|
+
// stale against a registrar rename.
|
|
8
|
+
//
|
|
9
|
+
// Ask it after parsing and before loading, while the answer is still actionable.
|
|
10
|
+
//
|
|
11
|
+
// A gap here is always Missing, never Fallback: the registry has no default lister, so an unlisted kind
|
|
12
|
+
// contributes nothing rather than something approximate. Note this no longer affects which images get
|
|
13
|
+
// fetched — getScene3DResourceTextures reads the resource back-edge and is registry-free — so the cost
|
|
14
|
+
// of a gap is confined to consumers that need mesh→texture ownership, chiefly the reveal-on-resolve
|
|
15
|
+
// recipe, whose meshes would wait for an event that never names them.
|
|
16
|
+
export function explainScene3DResourceCoverage(out, resolver, usage) {
|
|
17
|
+
out.length = 0;
|
|
18
|
+
collectScene3DResourceCoverageGaps(out, resolver, usage, false);
|
|
19
|
+
}
|
|
20
|
+
// Whether this resolver can describe every material kind `usage` names. Stops at the first gap and
|
|
21
|
+
// never allocates, so it is cheap enough to call per load. Use the explain form to find out WHICH kind.
|
|
22
|
+
export function hasScene3DResourceCoverage(resolver, usage) {
|
|
23
|
+
return !collectScene3DResourceCoverageGaps(null, resolver, usage, true);
|
|
24
|
+
}
|
|
25
|
+
// The single implementation both tiers read, so the boolean can never disagree with the explanation.
|
|
26
|
+
// `found` counts only real shortfalls, so appending satisfied entries to `out` never flips the predicate.
|
|
27
|
+
function collectScene3DResourceCoverageGaps(out, resolver, usage, stopAtFirst) {
|
|
28
|
+
let found = false;
|
|
29
|
+
for (let i = 0; i < usage.materialKinds.length; i++) {
|
|
30
|
+
const kind = usage.materialKinds[i];
|
|
31
|
+
if (hasScene3DMaterialTextureLister(resolver.registry, kind)) {
|
|
32
|
+
out?.push({ coverage: SceneCoverage.Satisfied, kind, registry: RenderRegistry.MaterialTextureLister });
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
found = true;
|
|
36
|
+
if (stopAtFirst)
|
|
37
|
+
return true;
|
|
38
|
+
out?.push({ coverage: SceneCoverage.Missing, kind, registry: RenderRegistry.MaterialTextureLister });
|
|
39
|
+
}
|
|
40
|
+
return found;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=explainScene3DResourceCoverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explainScene3DResourceCoverage.js","sourceRoot":"","sources":["../src/explainScene3DResourceCoverage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,uGAAuG;AACvG,kHAAkH;AAClH,yGAAyG;AACzG,oGAAoG;AACpG,oCAAoC;AACpC,EAAE;AACF,iFAAiF;AACjF,EAAE;AACF,wGAAwG;AACxG,sGAAsG;AACtG,uGAAuG;AACvG,oGAAoG;AACpG,sEAAsE;AACtE,MAAM,UAAU,8BAA8B,CAC5C,GAAyB,EACzB,QAA2C,EAC3C,KAAiC;IAEjC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACf,kCAAkC,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,mGAAmG;AACnG,wGAAwG;AACxG,MAAM,UAAU,0BAA0B,CACxC,QAA2C,EAC3C,KAAiC;IAEjC,OAAO,CAAC,kCAAkC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,qGAAqG;AACrG,0GAA0G;AAC1G,SAAS,kCAAkC,CACzC,GAAgC,EAChC,QAA2C,EAC3C,KAAiC,EACjC,WAAoB;IAEpB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,+BAA+B,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YAC7D,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,qBAAqB,EAAE,CAAC,CAAC;YACvG,SAAS;QACX,CAAC;QACD,KAAK,GAAG,IAAI,CAAC;QACb,IAAI,WAAW;YAAE,OAAO,IAAI,CAAC;QAC7B,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function getScene3DResourceTextures(
|
|
1
|
+
import type { ImageResourceReference, Scene3D, Texture } from '@flighthq/types/contract';
|
|
2
|
+
export declare function getScene3DResourceTextures(out: Texture[], scene: Readonly<Scene3D>): void;
|
|
3
|
+
export declare function getScene3DTextureResourceReference(scene: Readonly<Scene3D>, texture: Readonly<Texture>): ImageResourceReference | null;
|
|
3
4
|
//# sourceMappingURL=getScene3DResourceTextures.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getScene3DResourceTextures.d.ts","sourceRoot":"","sources":["../src/getScene3DResourceTextures.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getScene3DResourceTextures.d.ts","sourceRoot":"","sources":["../src/getScene3DResourceTextures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAezF,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAUzF;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GACzB,sBAAsB,GAAG,IAAI,CAK/B"}
|
|
@@ -1,37 +1,33 @@
|
|
|
1
|
-
import { forEachNodeDescendant } from '@flighthq/node/contract';
|
|
2
|
-
import { isMesh } from '@flighthq/scene3d/contract';
|
|
3
|
-
import { getScene3DMaterialTextures } from './sceneMaterialTextureRegistry';
|
|
4
1
|
// Clears `out`, then fills it with the unique Textures reachable through `scene` whose `resource` is
|
|
5
|
-
// non-null.
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
|
|
2
|
+
// non-null. Shared Textures (a parser memoizes one Texture object across meshes) are deduped by
|
|
3
|
+
// identity, so a resolver requests each pending image at most once.
|
|
4
|
+
//
|
|
5
|
+
// A document's resources already name their consuming textures — a parser binds the back-edge when it
|
|
6
|
+
// constructs the Texture — so that set alone is the complete answer, and no material registry is
|
|
7
|
+
// consulted to produce it. This used to walk the graph through a per-kind lister registry to NARROW the
|
|
8
|
+
// set, dropping textures whose material hung off no mesh; that narrowing was an optimization that
|
|
9
|
+
// silently disabled itself for any material kind the registry could not describe (including every
|
|
10
|
+
// custom one), and it made discovery depend on a registration the caller had no way to know it needed.
|
|
11
|
+
//
|
|
12
|
+
// Set iteration is insertion order, which is resource order then per-resource texture order — stable
|
|
13
|
+
// across runs, so a caller's request order does not drift.
|
|
14
|
+
export function getScene3DResourceTextures(out, scene) {
|
|
10
15
|
out.length = 0;
|
|
11
16
|
const seen = new Set();
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// isMesh inside the collector, so the cast only restores the trait fields the walk generic drops.
|
|
16
|
-
forEachNodeDescendant(scene, (node) => collectNodeResourceTextures(node, registry, out, seen, slots));
|
|
17
|
-
}
|
|
18
|
-
function collectNodeResourceTextures(node, registry, out, seen, slots) {
|
|
19
|
-
if (!isMesh(node))
|
|
20
|
-
return;
|
|
21
|
-
const materials = node.materials;
|
|
22
|
-
for (let i = 0; i < materials.length; i++) {
|
|
23
|
-
const material = materials[i];
|
|
24
|
-
if (material === null)
|
|
25
|
-
continue;
|
|
26
|
-
slots.length = 0;
|
|
27
|
-
getScene3DMaterialTextures(registry, material, slots);
|
|
28
|
-
for (let j = 0; j < slots.length; j++) {
|
|
29
|
-
const texture = slots[j];
|
|
30
|
-
if (texture.resource == null || seen.has(texture))
|
|
17
|
+
for (const resource of scene.resources) {
|
|
18
|
+
for (const texture of resource.textures ?? []) {
|
|
19
|
+
if (seen.has(texture))
|
|
31
20
|
continue;
|
|
32
21
|
seen.add(texture);
|
|
33
22
|
out.push(texture);
|
|
34
23
|
}
|
|
35
24
|
}
|
|
36
25
|
}
|
|
26
|
+
export function getScene3DTextureResourceReference(scene, texture) {
|
|
27
|
+
for (const resource of scene.resources) {
|
|
28
|
+
if (resource.textures?.includes(texture) === true)
|
|
29
|
+
return resource;
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
37
33
|
//# sourceMappingURL=getScene3DResourceTextures.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getScene3DResourceTextures.js","sourceRoot":"","sources":["../src/getScene3DResourceTextures.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getScene3DResourceTextures.js","sourceRoot":"","sources":["../src/getScene3DResourceTextures.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,gGAAgG;AAChG,oEAAoE;AACpE,EAAE;AACF,sGAAsG;AACtG,iGAAiG;AACjG,wGAAwG;AACxG,kGAAkG;AAClG,kGAAkG;AAClG,uGAAuG;AACvG,EAAE;AACF,qGAAqG;AACrG,2DAA2D;AAC3D,MAAM,UAAU,0BAA0B,CAAC,GAAc,EAAE,KAAwB;IACjF,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,SAAS;YAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,KAAwB,EACxB,OAA0B;IAE1B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAkB,CAAC,KAAK,IAAI;YAAE,OAAO,QAAQ,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExternalImageResourceReference,
|
|
2
|
-
export declare function fetchWebImageResource(ref: Readonly<ExternalImageResourceReference>, signal: AbortSignal): Promise<
|
|
1
|
+
import type { ExternalImageResourceReference, Image } from '@flighthq/types/contract';
|
|
2
|
+
export declare function fetchWebImageResource(ref: Readonly<ExternalImageResourceReference>, signal: AbortSignal): Promise<Image | null>;
|
|
3
3
|
export declare function resolveImageResourceUri(uri: string, basePath: string | null): string;
|
|
4
4
|
//# sourceMappingURL=imageResourceFetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResourceFetch.d.ts","sourceRoot":"","sources":["../src/imageResourceFetch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,8BAA8B,EAAE,
|
|
1
|
+
{"version":3,"file":"imageResourceFetch.d.ts","sourceRoot":"","sources":["../src/imageResourceFetch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAKtF,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,QAAQ,CAAC,8BAA8B,CAAC,EAC7C,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAQvB;AAKD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAIpF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { areScene3DResourceFailureGuardsEnabled, createBuiltInScene3DResourceResolver,
|
|
1
|
+
export { areScene3DResourceFailureGuardsEnabled, createBuiltInScene3DResourceResolver, createScene3DResourceResolver, disableScene3DResourceFailureGuards, disposeScene3DResourceResolver, enableScene3DResourceFailureGuards, enableScene3DResourceSignals, fetchWebImageResource, getScene3DDocumentBasePathFromUrl, getScene3DResourceSignals, getScene3DResourceTextures, loadScene3DDocumentBytesFromUrl, loadScene3DDocumentFrom3dsUrl, loadScene3DDocumentFromAwd2Url, loadScene3DDocumentFromGlbUrl, loadScene3DDocumentFromGltfUrl, loadScene3DDocumentFromMd2Url, loadScene3DDocumentFromMd5MeshUrl, loadScene3DDocumentFromObjUrl, loadScene3DDocumentTextFromUrl, loadScene3DResources, resolveImageResourceUri, resolveOneScene3DResourceTexture, resolveScene3DResources, retryFailedScene3DResources, revealScene3DResourcesOnResolve, setScene3DDocumentResourceBasePathFromUrl, updateScene3DResourceStreaming, waitForScene3DResourceResolver, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sCAAsC,EACtC,oCAAoC,EACpC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sCAAsC,EACtC,oCAAoC,EACpC,6BAA6B,EAC7B,mCAAmC,EACnC,8BAA8B,EAC9B,kCAAkC,EAClC,4BAA4B,EAC5B,qBAAqB,EACrB,iCAAiC,EACjC,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,EAC7B,8BAA8B,EAC9B,oBAAoB,EACpB,uBAAuB,EACvB,gCAAgC,EAChC,uBAAuB,EACvB,2BAA2B,EAC3B,+BAA+B,EAC/B,yCAAyC,EACzC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { areScene3DResourceFailureGuardsEnabled, createBuiltInScene3DResourceResolver,
|
|
1
|
+
export { areScene3DResourceFailureGuardsEnabled, createBuiltInScene3DResourceResolver, createScene3DResourceResolver, disableScene3DResourceFailureGuards, disposeScene3DResourceResolver, enableScene3DResourceFailureGuards, enableScene3DResourceSignals, fetchWebImageResource, getScene3DDocumentBasePathFromUrl, getScene3DResourceSignals, getScene3DResourceTextures, loadScene3DDocumentBytesFromUrl, loadScene3DDocumentFrom3dsUrl, loadScene3DDocumentFromAwd2Url, loadScene3DDocumentFromGlbUrl, loadScene3DDocumentFromGltfUrl, loadScene3DDocumentFromMd2Url, loadScene3DDocumentFromMd5MeshUrl, loadScene3DDocumentFromObjUrl, loadScene3DDocumentTextFromUrl, loadScene3DResources, resolveImageResourceUri, resolveOneScene3DResourceTexture, resolveScene3DResources, retryFailedScene3DResources, revealScene3DResourcesOnResolve, setScene3DDocumentResourceBasePathFromUrl, updateScene3DResourceStreaming, waitForScene3DResourceResolver, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sCAAsC,EACtC,oCAAoC,EACpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sCAAsC,EACtC,oCAAoC,EACpC,6BAA6B,EAC7B,mCAAmC,EACnC,8BAA8B,EAC9B,kCAAkC,EAClC,4BAA4B,EAC5B,qBAAqB,EACrB,iCAAiC,EACjC,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,EAC7B,8BAA8B,EAC9B,oBAAoB,EACpB,uBAAuB,EACvB,gCAAgC,EAChC,uBAAuB,EACvB,2BAA2B,EAC3B,+BAA+B,EAC/B,yCAAyC,EACzC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iridescencePbrScene3DMaterialTextures.d.ts","sourceRoot":"","sources":["../src/iridescencePbrScene3DMaterialTextures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAKxG,wBAAgB,6CAA6C,CAAC,QAAQ,EAAE,8BAA8B,GAAG,IAAI,CAM5G"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IridescencePbrExtensionKind } from '@flighthq/types/contract';
|
|
2
|
+
import { registerScene3DPbrExtensionTextures } from './sceneMaterialTextureRegistry';
|
|
3
|
+
export function registerIridescencePbrScene3DMaterialTextures(registry) {
|
|
4
|
+
registerScene3DPbrExtensionTextures(registry, IridescencePbrExtensionKind, (extension, out) => {
|
|
5
|
+
const iridescence = extension;
|
|
6
|
+
if (iridescence.iridescenceMap !== null)
|
|
7
|
+
out.push(iridescence.iridescenceMap);
|
|
8
|
+
if (iridescence.iridescenceThicknessMap !== null)
|
|
9
|
+
out.push(iridescence.iridescenceThicknessMap);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=iridescencePbrScene3DMaterialTextures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iridescencePbrScene3DMaterialTextures.js","sourceRoot":"","sources":["../src/iridescencePbrScene3DMaterialTextures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,mCAAmC,EAAE,MAAM,gCAAgC,CAAC;AAErF,MAAM,UAAU,6CAA6C,CAAC,QAAwC;IACpG,mCAAmC,CAAC,QAAQ,EAAE,2BAA2B,EAAE,CAAC,SAAS,EAAE,GAAG,EAAQ,EAAE;QAClG,MAAM,WAAW,GAAG,SAA8C,CAAC;QACnE,IAAI,WAAW,CAAC,cAAc,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC9E,IAAI,WAAW,CAAC,uBAAuB,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { LoadScene3DResourcesOptions, Scene3D, Scene3DResourceResolver } from '@flighthq/types/contract';
|
|
2
|
+
export declare function loadScene3DResources(scene: Readonly<Scene3D>, resolver: Scene3DResourceResolver, options?: Readonly<LoadScene3DResourcesOptions>): Promise<void>;
|
|
3
|
+
export declare function waitForScene3DResourceResolver(resolver: Readonly<Scene3DResourceResolver>): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=loadScene3DResources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadScene3DResources.d.ts","sourceRoot":"","sources":["../src/loadScene3DResources.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,2BAA2B,EAC3B,OAAO,EACP,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAUlC,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,QAAQ,EAAE,uBAAuB,EACjC,OAAO,CAAC,EAAE,QAAQ,CAAC,2BAA2B,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAID,wBAAsB,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/G"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { emitSignal } from '@flighthq/signals/contract';
|
|
2
2
|
import { ResourceResolutionState } from '@flighthq/types/contract';
|
|
3
3
|
import { Scene3DResourceResolverRuntimeKey } from '@flighthq/types/contract';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// deterministic sibling of the fire-and-forget resolveScene3DResources — for loads, tests, and capture
|
|
9
|
-
// that need the finished scene rather than progressive availability.
|
|
4
|
+
import { updateScene3DResourceStreaming } from './resolveScene3DResources';
|
|
5
|
+
// Eager/deterministic asynchronous load: reconciles the selected working set, starts its acquisitions,
|
|
6
|
+
// then awaits every in-flight load it started so each reference has settled to Resolved or Failed on
|
|
7
|
+
// return. Progressive callers use updateScene3DResourceStreaming instead.
|
|
10
8
|
export async function loadScene3DResources(scene, resolver, options) {
|
|
11
|
-
const
|
|
12
|
-
|
|
9
|
+
const resources = updateScene3DResourceStreaming(scene, resolver, options);
|
|
10
|
+
const refs = new Set();
|
|
11
|
+
for (let i = 0; i < resources.resolved.length; i++)
|
|
12
|
+
refs.add(resources.resolved[i].ref);
|
|
13
|
+
for (let i = 0; i < resources.unresolved.length; i++)
|
|
14
|
+
refs.add(resources.unresolved[i].ref);
|
|
13
15
|
const runtime = resolver[Scene3DResourceResolverRuntimeKey];
|
|
14
16
|
const total = refs.size;
|
|
15
17
|
let loaded = 0;
|
|
@@ -42,16 +44,4 @@ export async function waitForScene3DResourceResolver(resolver) {
|
|
|
42
44
|
promises.push(entry.promise);
|
|
43
45
|
await Promise.allSettled(promises);
|
|
44
46
|
}
|
|
45
|
-
|
|
46
|
-
const textures = [];
|
|
47
|
-
const refs = new Set();
|
|
48
|
-
getScene3DResourceTextures(scene, resolver.registry, textures);
|
|
49
|
-
for (const texture of textures) {
|
|
50
|
-
const ref = texture.resource;
|
|
51
|
-
if (ref !== null && ref !== undefined && (options?.select === undefined || options.select(texture, ref))) {
|
|
52
|
-
refs.add(ref);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return refs;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=resolveScene3DResourcesAndWait.js.map
|
|
47
|
+
//# sourceMappingURL=loadScene3DResources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadScene3DResources.js","sourceRoot":"","sources":["../src/loadScene3DResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAOxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAG7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAE3E,uGAAuG;AACvG,qGAAqG;AACrG,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAwB,EACxB,QAAiC,EACjC,OAA+C;IAE/C,MAAM,SAAS,GAAG,8BAA8B,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAI,QAA+C,CAAC,iCAAiC,CAAC,CAAC;IACpG,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,KAAK,KAAK,uBAAuB,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,uBAAuB,CAAC,MAAM,EAAE,CAAC;YACnG,MAAM,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACtB,MAAM,EAAE,CAAC;YACT,IAAI,QAAQ,KAAK,SAAS;gBAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS;QAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,iGAAiG;AACjG,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,QAA2C;IAC9F,MAAM,OAAO,GAAI,QAA+C,CAAC,iCAAiC,CAAC,CAAC;IACpG,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5E,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function resolveOneScene3DResourceTexture(resolver: Readonly<Scene3DResourceResolver>, ref: Readonly<ImageResourceReference>, signal: AbortSignal): Promise<
|
|
3
|
-
export declare function resolveScene3DResources(scene: Readonly<
|
|
1
|
+
import type { Image, Scene3D, ImageResourceReference, ResolveScene3DResourcesOptions, Scene3DResources, Scene3DResourceResolver, UpdateScene3DResourceStreamingOptions } from '@flighthq/types/contract';
|
|
2
|
+
export declare function resolveOneScene3DResourceTexture(resolver: Readonly<Scene3DResourceResolver>, ref: Readonly<ImageResourceReference>, signal: AbortSignal): Promise<Image | null>;
|
|
3
|
+
export declare function resolveScene3DResources(scene: Readonly<Scene3D>, resolver: Scene3DResourceResolver, options?: Readonly<ResolveScene3DResourcesOptions>): Scene3DResources;
|
|
4
|
+
export declare function updateScene3DResourceStreaming(scene: Readonly<Scene3D>, resolver: Scene3DResourceResolver, options?: Readonly<UpdateScene3DResourceStreamingOptions>): Scene3DResources;
|
|
4
5
|
//# sourceMappingURL=resolveScene3DResources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveScene3DResources.d.ts","sourceRoot":"","sources":["../src/resolveScene3DResources.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"resolveScene3DResources.d.ts","sourceRoot":"","sources":["../src/resolveScene3DResources.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,EAChB,uBAAuB,EAGvB,qCAAqC,EACtC,MAAM,0BAA0B,CAAC;AAelC,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAC3C,GAAG,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EACrC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAKvB;AAMD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,QAAQ,EAAE,uBAAuB,EACjC,OAAO,CAAC,EAAE,QAAQ,CAAC,8BAA8B,CAAC,GACjD,gBAAgB,CA0ClB;AAID,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,QAAQ,EAAE,uBAAuB,EACjC,OAAO,CAAC,EAAE,QAAQ,CAAC,qCAAqC,CAAC,GACxD,gBAAgB,CAQlB"}
|