@fps-games/engine 0.0.1-beta.2 → 0.0.1-beta.20
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/asset-resource.d.ts +45 -0
- package/dist/asset-resource.d.ts.map +1 -0
- package/dist/asset-resource.js +147 -0
- package/dist/asset-resource.js.map +1 -0
- package/dist/babylon/camera.d.ts +25 -0
- package/dist/babylon/camera.d.ts.map +1 -0
- package/dist/babylon/camera.js +149 -0
- package/dist/babylon/camera.js.map +1 -0
- package/dist/babylon/frame-pump.d.ts +27 -0
- package/dist/babylon/frame-pump.d.ts.map +1 -0
- package/dist/babylon/frame-pump.js +90 -0
- package/dist/babylon/frame-pump.js.map +1 -0
- package/dist/babylon/game-world-plugin-lifecycle.d.ts +26 -0
- package/dist/babylon/game-world-plugin-lifecycle.d.ts.map +1 -0
- package/dist/babylon/game-world-plugin-lifecycle.js +257 -0
- package/dist/babylon/game-world-plugin-lifecycle.js.map +1 -0
- package/dist/babylon/lighting-controller.d.ts.map +1 -1
- package/dist/babylon/lighting-controller.js +162 -16
- package/dist/babylon/lighting-controller.js.map +1 -1
- package/dist/babylon/plugin-contract.d.ts +15 -0
- package/dist/babylon/plugin-contract.d.ts.map +1 -0
- package/dist/babylon/plugin-contract.js +10 -0
- package/dist/babylon/plugin-contract.js.map +1 -0
- package/dist/babylon/renderer/asset-container-instantiation.d.ts +39 -0
- package/dist/babylon/renderer/asset-container-instantiation.d.ts.map +1 -0
- package/dist/babylon/renderer/asset-container-instantiation.js +287 -0
- package/dist/babylon/renderer/asset-container-instantiation.js.map +1 -0
- package/dist/babylon/renderer/brdf-texture-settlement.d.ts +7 -0
- package/dist/babylon/renderer/brdf-texture-settlement.d.ts.map +1 -0
- package/dist/babylon/renderer/brdf-texture-settlement.js +29 -0
- package/dist/babylon/renderer/brdf-texture-settlement.js.map +1 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.d.ts +7 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.js +358 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.js.map +1 -0
- package/dist/babylon/renderer/environment/index.d.ts +4 -0
- package/dist/babylon/renderer/environment/index.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/index.js +4 -0
- package/dist/babylon/renderer/environment/index.js.map +1 -0
- package/dist/babylon/renderer/environment/profile.d.ts +3 -0
- package/dist/babylon/renderer/environment/profile.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/profile.js +27 -0
- package/dist/babylon/renderer/environment/profile.js.map +1 -0
- package/dist/babylon/renderer/environment/types.d.ts +24 -0
- package/dist/babylon/renderer/environment/types.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/types.js +6 -0
- package/dist/babylon/renderer/environment/types.js.map +1 -0
- package/dist/babylon/renderer/index.d.ts +26 -0
- package/dist/babylon/renderer/index.d.ts.map +1 -0
- package/dist/babylon/renderer/index.js +26 -0
- package/dist/babylon/renderer/index.js.map +1 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.d.ts +17 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.d.ts.map +1 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.js +67 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.js.map +1 -0
- package/dist/babylon/renderer/material-owner-candidates.d.ts +21 -0
- package/dist/babylon/renderer/material-owner-candidates.d.ts.map +1 -0
- package/dist/babylon/renderer/material-owner-candidates.js +217 -0
- package/dist/babylon/renderer/material-owner-candidates.js.map +1 -0
- package/dist/babylon/renderer/materials/index.d.ts +3 -0
- package/dist/babylon/renderer/materials/index.d.ts.map +1 -0
- package/dist/babylon/renderer/materials/index.js +3 -0
- package/dist/babylon/renderer/materials/index.js.map +1 -0
- package/dist/babylon/renderer/materials/material-runtime.d.ts +29 -0
- package/dist/babylon/renderer/materials/material-runtime.d.ts.map +1 -0
- package/dist/babylon/renderer/materials/material-runtime.js +660 -0
- package/dist/babylon/renderer/materials/material-runtime.js.map +1 -0
- package/dist/babylon/renderer/materials/material-slot-owner.d.ts +42 -0
- package/dist/babylon/renderer/materials/material-slot-owner.d.ts.map +1 -0
- package/dist/babylon/renderer/materials/material-slot-owner.js +318 -0
- package/dist/babylon/renderer/materials/material-slot-owner.js.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.d.ts +4 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.js +45 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.js.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.d.ts +3 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.js +2 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.js.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.d.ts +7 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.js +2 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.js.map +1 -0
- package/dist/babylon/renderer/outlines/index.d.ts +4 -0
- package/dist/babylon/renderer/outlines/index.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/index.js +3 -0
- package/dist/babylon/renderer/outlines/index.js.map +1 -0
- package/dist/babylon/renderer/outlines/runtime-override.d.ts +36 -0
- package/dist/babylon/renderer/outlines/runtime-override.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/runtime-override.js +131 -0
- package/dist/babylon/renderer/outlines/runtime-override.js.map +1 -0
- package/dist/babylon/renderer/outlines/types.d.ts +7 -0
- package/dist/babylon/renderer/outlines/types.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/types.js +2 -0
- package/dist/babylon/renderer/outlines/types.js.map +1 -0
- package/dist/babylon/renderer/placement/index.d.ts +2 -0
- package/dist/babylon/renderer/placement/index.d.ts.map +1 -0
- package/dist/babylon/renderer/placement/index.js +2 -0
- package/dist/babylon/renderer/placement/index.js.map +1 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.d.ts +24 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.d.ts.map +1 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.js +63 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.js.map +1 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.d.ts +7 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.js +301 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.js.map +1 -0
- package/dist/babylon/renderer/post-process/index.d.ts +5 -0
- package/dist/babylon/renderer/post-process/index.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/index.js +5 -0
- package/dist/babylon/renderer/post-process/index.js.map +1 -0
- package/dist/babylon/renderer/post-process/profile.d.ts +5 -0
- package/dist/babylon/renderer/post-process/profile.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/profile.js +155 -0
- package/dist/babylon/renderer/post-process/profile.js.map +1 -0
- package/dist/babylon/renderer/post-process/types.d.ts +81 -0
- package/dist/babylon/renderer/post-process/types.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/types.js +24 -0
- package/dist/babylon/renderer/post-process/types.js.map +1 -0
- package/dist/babylon/renderer/post-process/volume-stack.d.ts +4 -0
- package/dist/babylon/renderer/post-process/volume-stack.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/volume-stack.js +105 -0
- package/dist/babylon/renderer/post-process/volume-stack.js.map +1 -0
- package/dist/babylon/renderer/rendering/image-node.d.ts +35 -0
- package/dist/babylon/renderer/rendering/image-node.d.ts.map +1 -0
- package/dist/babylon/renderer/rendering/image-node.js +39 -0
- package/dist/babylon/renderer/rendering/image-node.js.map +1 -0
- package/dist/babylon/renderer/rendering/index.d.ts +3 -0
- package/dist/babylon/renderer/rendering/index.d.ts.map +1 -0
- package/dist/babylon/renderer/rendering/index.js +3 -0
- package/dist/babylon/renderer/rendering/index.js.map +1 -0
- package/dist/babylon/renderer/rendering/node-rendering.d.ts +19 -0
- package/dist/babylon/renderer/rendering/node-rendering.d.ts.map +1 -0
- package/dist/babylon/renderer/rendering/node-rendering.js +66 -0
- package/dist/babylon/renderer/rendering/node-rendering.js.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.d.ts +5 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.js +46 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.js.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.d.ts +5 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.js +402 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.d.ts +87 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.js +659 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.d.ts +7 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.js +316 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.js.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.d.ts +5 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.js +1562 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.d.ts +14 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.js +14 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.js.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.d.ts +69 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.js +847 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.d.ts +148 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.js +4533 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.d.ts +4 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.js +645 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.d.ts +61 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.js +382 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.d.ts +47 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.js +285 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.d.ts +88 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.js +830 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.d.ts +3 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.js +60 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.d.ts +27 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.js +220 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.js.map +1 -0
- package/dist/babylon/renderer/shadows/types.d.ts +421 -0
- package/dist/babylon/renderer/shadows/types.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/types.js +127 -0
- package/dist/babylon/renderer/shadows/types.js.map +1 -0
- package/dist/babylon/renderer/world-rendering-controller.d.ts +29 -0
- package/dist/babylon/renderer/world-rendering-controller.d.ts.map +1 -0
- package/dist/babylon/renderer/world-rendering-controller.js +183 -0
- package/dist/babylon/renderer/world-rendering-controller.js.map +1 -0
- package/dist/babylon/renderer-controller.d.ts +93 -0
- package/dist/babylon/renderer-controller.d.ts.map +1 -0
- package/dist/babylon/renderer-controller.js +706 -0
- package/dist/babylon/renderer-controller.js.map +1 -0
- package/dist/babylon/scene-renderer.d.ts +20 -0
- package/dist/babylon/scene-renderer.d.ts.map +1 -0
- package/dist/babylon/scene-renderer.js +58 -0
- package/dist/babylon/scene-renderer.js.map +1 -0
- package/dist/babylon.d.ts +7 -0
- package/dist/babylon.d.ts.map +1 -1
- package/dist/babylon.js +7 -0
- package/dist/babylon.js.map +1 -1
- package/dist/build-info.json +4 -4
- package/dist/camera.d.ts +25 -0
- package/dist/camera.d.ts.map +1 -0
- package/dist/camera.js +68 -0
- package/dist/camera.js.map +1 -0
- package/dist/compiled-scene-data.d.ts +23 -0
- package/dist/compiled-scene-data.d.ts.map +1 -0
- package/dist/compiled-scene-data.js +100 -0
- package/dist/compiled-scene-data.js.map +1 -0
- package/dist/config.d.ts +9 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +21 -0
- package/dist/config.js.map +1 -1
- package/dist/frame.d.ts +32 -0
- package/dist/frame.d.ts.map +1 -0
- package/dist/frame.js +54 -0
- package/dist/frame.js.map +1 -0
- package/dist/ground-decal.d.ts +22 -0
- package/dist/ground-decal.d.ts.map +1 -0
- package/dist/ground-decal.js +48 -0
- package/dist/ground-decal.js.map +1 -0
- package/dist/index.d.ts +16 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/lighting.d.ts +13 -5
- package/dist/lighting.d.ts.map +1 -1
- package/dist/lighting.js +11 -5
- package/dist/lighting.js.map +1 -1
- package/dist/material-owner.d.ts +141 -0
- package/dist/material-owner.d.ts.map +1 -0
- package/dist/material-owner.js +552 -0
- package/dist/material-owner.js.map +1 -0
- package/dist/material-profile.d.ts +62 -0
- package/dist/material-profile.d.ts.map +1 -0
- package/dist/material-profile.js +132 -0
- package/dist/material-profile.js.map +1 -0
- package/dist/rendering/index.d.ts +14 -0
- package/dist/rendering/index.d.ts.map +1 -0
- package/dist/rendering/index.js +12 -0
- package/dist/rendering/index.js.map +1 -0
- package/dist/rendering/rendering-profile-types.d.ts +322 -0
- package/dist/rendering/rendering-profile-types.d.ts.map +1 -0
- package/dist/rendering/rendering-profile-types.js +2 -0
- package/dist/rendering/rendering-profile-types.js.map +1 -0
- package/dist/rendering/rendering-profile-validation.d.ts +2 -0
- package/dist/rendering/rendering-profile-validation.d.ts.map +1 -0
- package/dist/rendering/rendering-profile-validation.js +364 -0
- package/dist/rendering/rendering-profile-validation.js.map +1 -0
- package/dist/rendering/rendering-profile-values.d.ts +19 -0
- package/dist/rendering/rendering-profile-values.d.ts.map +1 -0
- package/dist/rendering/rendering-profile-values.js +79 -0
- package/dist/rendering/rendering-profile-values.js.map +1 -0
- package/dist/rendering/rendering-profile.d.ts +15 -0
- package/dist/rendering/rendering-profile.d.ts.map +1 -0
- package/dist/rendering/rendering-profile.js +442 -0
- package/dist/rendering/rendering-profile.js.map +1 -0
- package/dist/rendering/shadow-map-experiment-depth.d.ts +63 -0
- package/dist/rendering/shadow-map-experiment-depth.d.ts.map +1 -0
- package/dist/rendering/shadow-map-experiment-depth.js +186 -0
- package/dist/rendering/shadow-map-experiment-depth.js.map +1 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.d.ts +94 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.d.ts.map +1 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.js +407 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.js.map +1 -0
- package/dist/rendering/shadow-map-experiment.d.ts +189 -0
- package/dist/rendering/shadow-map-experiment.d.ts.map +1 -0
- package/dist/rendering/shadow-map-experiment.js +549 -0
- package/dist/rendering/shadow-map-experiment.js.map +1 -0
- package/dist/rendering/shadow-quality.d.ts +5 -0
- package/dist/rendering/shadow-quality.d.ts.map +1 -0
- package/dist/rendering/shadow-quality.js +83 -0
- package/dist/rendering/shadow-quality.js.map +1 -0
- package/dist/rendering/shadow-runtime.d.ts +59 -0
- package/dist/rendering/shadow-runtime.d.ts.map +1 -0
- package/dist/rendering/shadow-runtime.js +378 -0
- package/dist/rendering/shadow-runtime.js.map +1 -0
- package/dist/rendering/shadow-settings.d.ts +15 -0
- package/dist/rendering/shadow-settings.d.ts.map +1 -0
- package/dist/rendering/shadow-settings.js +129 -0
- package/dist/rendering/shadow-settings.js.map +1 -0
- package/dist/rendering/shadow-types.d.ts +99 -0
- package/dist/rendering/shadow-types.d.ts.map +1 -0
- package/dist/rendering/shadow-types.js +5 -0
- package/dist/rendering/shadow-types.js.map +1 -0
- package/dist/rendering/shadow-validation.d.ts +3 -0
- package/dist/rendering/shadow-validation.d.ts.map +1 -0
- package/dist/rendering/shadow-validation.js +166 -0
- package/dist/rendering/shadow-validation.js.map +1 -0
- package/dist/rendering/value.d.ts +2 -0
- package/dist/rendering/value.d.ts.map +1 -0
- package/dist/rendering/value.js +6 -0
- package/dist/rendering/value.js.map +1 -0
- package/dist/runtime-data-token.d.ts +4 -0
- package/dist/runtime-data-token.d.ts.map +1 -0
- package/dist/runtime-data-token.js +4 -0
- package/dist/runtime-data-token.js.map +1 -0
- package/dist/runtime-data-types.d.ts +83 -0
- package/dist/runtime-data-types.d.ts.map +1 -0
- package/dist/runtime-data-types.js +2 -0
- package/dist/runtime-data-types.js.map +1 -0
- package/dist/runtime-data.d.ts +18 -0
- package/dist/runtime-data.d.ts.map +1 -0
- package/dist/runtime-data.js +301 -0
- package/dist/runtime-data.js.map +1 -0
- package/dist/runtime-scene-resolvers.d.ts +33 -0
- package/dist/runtime-scene-resolvers.d.ts.map +1 -0
- package/dist/runtime-scene-resolvers.js +36 -0
- package/dist/runtime-scene-resolvers.js.map +1 -0
- package/dist/scene-artifact-types.d.ts +385 -0
- package/dist/scene-artifact-types.d.ts.map +1 -0
- package/dist/scene-artifact-types.js +2 -0
- package/dist/scene-artifact-types.js.map +1 -0
- package/dist/scene-artifact-validation.d.ts +20 -0
- package/dist/scene-artifact-validation.d.ts.map +1 -0
- package/dist/scene-artifact-validation.js +1402 -0
- package/dist/scene-artifact-validation.js.map +1 -0
- package/dist/static-shadow-artifact.d.ts +131 -0
- package/dist/static-shadow-artifact.d.ts.map +1 -0
- package/dist/static-shadow-artifact.js +327 -0
- package/dist/static-shadow-artifact.js.map +1 -0
- package/package.json +51 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export function fitFpsGroundDecalTextureSizeToAspect(maximumWidth, maximumHeight, aspectRatio) {
|
|
2
|
+
const widthLimit = normalizeTextureDimension(maximumWidth) ?? 512;
|
|
3
|
+
const heightLimit = normalizeTextureDimension(maximumHeight) ?? 512;
|
|
4
|
+
if (!Number.isFinite(aspectRatio) || aspectRatio <= 0) {
|
|
5
|
+
return { width: widthLimit, height: heightLimit };
|
|
6
|
+
}
|
|
7
|
+
let width = widthLimit;
|
|
8
|
+
let height = Math.max(1, Math.round(width / aspectRatio));
|
|
9
|
+
if (height > heightLimit) {
|
|
10
|
+
height = heightLimit;
|
|
11
|
+
width = Math.max(1, Math.round(height * aspectRatio));
|
|
12
|
+
}
|
|
13
|
+
return { width, height };
|
|
14
|
+
}
|
|
15
|
+
export function resolveFpsGroundDecalRenderTextureSize(decal) {
|
|
16
|
+
const width = decal.rendering?.textureWidth ?? 512;
|
|
17
|
+
const height = decal.rendering?.textureHeight ?? 512;
|
|
18
|
+
const aspectRatio = decal.size.width > 0 && decal.size.depth > 0
|
|
19
|
+
? decal.size.width / decal.size.depth
|
|
20
|
+
: width / height;
|
|
21
|
+
return fitFpsGroundDecalTextureSizeToAspect(width, height, aspectRatio);
|
|
22
|
+
}
|
|
23
|
+
export function containFpsGroundDecalImageRect(rect, sourceWidth, sourceHeight) {
|
|
24
|
+
if (!Number.isFinite(sourceWidth)
|
|
25
|
+
|| sourceWidth <= 0
|
|
26
|
+
|| !Number.isFinite(sourceHeight)
|
|
27
|
+
|| sourceHeight <= 0
|
|
28
|
+
|| !Number.isFinite(rect.width)
|
|
29
|
+
|| rect.width <= 0
|
|
30
|
+
|| !Number.isFinite(rect.height)
|
|
31
|
+
|| rect.height <= 0) {
|
|
32
|
+
return { ...rect };
|
|
33
|
+
}
|
|
34
|
+
const sourceAspectRatio = sourceWidth / sourceHeight;
|
|
35
|
+
const rectAspectRatio = rect.width / rect.height;
|
|
36
|
+
if (rectAspectRatio > sourceAspectRatio) {
|
|
37
|
+
const width = rect.height * sourceAspectRatio;
|
|
38
|
+
return { x: rect.x + (rect.width - width) / 2, y: rect.y, width, height: rect.height };
|
|
39
|
+
}
|
|
40
|
+
const height = rect.width / sourceAspectRatio;
|
|
41
|
+
return { x: rect.x, y: rect.y + (rect.height - height) / 2, width: rect.width, height };
|
|
42
|
+
}
|
|
43
|
+
function normalizeTextureDimension(value) {
|
|
44
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0)
|
|
45
|
+
return null;
|
|
46
|
+
return Math.max(64, Math.min(2048, Math.round(value)));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ground-decal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ground-decal.js","sourceRoot":"","sources":["../src/ground-decal.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,5 +4,20 @@ export interface FpsEngineRuntimeDataMarker {
|
|
|
4
4
|
readonly schemaVersion: 1;
|
|
5
5
|
readonly marker: typeof ENGINE_PACKAGE_MARKER;
|
|
6
6
|
}
|
|
7
|
-
export
|
|
7
|
+
export * from './runtime-data-types.js';
|
|
8
|
+
export * from './runtime-data.js';
|
|
9
|
+
export * from './runtime-data-token.js';
|
|
10
|
+
export * from './compiled-scene-data.js';
|
|
11
|
+
export * from './asset-resource.js';
|
|
12
|
+
export * from './material-owner.js';
|
|
13
|
+
export * from './material-profile.js';
|
|
14
|
+
export * from './runtime-scene-resolvers.js';
|
|
15
|
+
export * from './static-shadow-artifact.js';
|
|
16
|
+
export * from './scene-artifact-types.js';
|
|
17
|
+
export * from './scene-artifact-validation.js';
|
|
18
|
+
export * from './ground-decal.js';
|
|
19
|
+
export * from './rendering/index.js';
|
|
20
|
+
export { FPS_FRAME_CLOCK_DEFAULT_MAX_DELTA_SECONDS, createFpsFrameClock, type FpsFrameClock, type FpsFrameClockOptions, type FpsFrameContext, } from './frame.js';
|
|
21
|
+
export { FPS_CAMERA_PROJECTION_SCHEMA_VERSION, FpsCameraProjectionDataError, createFpsCameraProjectionSnapshot, type FpsCameraProjectionMode, type FpsCameraProjectionSnapshot, } from './camera.js';
|
|
22
|
+
export { FPS_RUNTIME_LIGHT_COMPONENT_SCHEMA_VERSION, FpsRuntimeLightingDataError, createFpsRuntimeLightSnapshot, createFpsRuntimeStandardSystemLightingSnapshot, normalizeFpsRuntimeLightDirection, type FpsRuntimeDirectionalLight, type FpsRuntimeHemisphericLight, type FpsRuntimeLight, type FpsRuntimeLightColorRgb, type FpsRuntimeLightNodeSnapshot, type FpsRuntimeLightVec3, type FpsRuntimeStandardSystemLightingSnapshot, } from './lighting.js';
|
|
8
23
|
//# 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,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAE9D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,qBAAqB,CAAC;CAC/C;AAED,OAAO,EACL,0CAA0C,EAC1C,2BAA2B,EAC3B,6BAA6B,EAC7B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAE9D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,qBAAqB,CAAC;CAC/C;AAED,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,yCAAyC,EACzC,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oCAAoC,EACpC,4BAA4B,EAC5B,iCAAiC,EACjC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,GACjC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,0CAA0C,EAC1C,2BAA2B,EAC3B,6BAA6B,EAC7B,8CAA8C,EAC9C,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,wCAAwC,GAC9C,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
export const ENGINE_PACKAGE_MARKER = '@fps-games/engine';
|
|
2
2
|
export const ENGINE_IMPLEMENTATION_PHASE = 'domain-migration';
|
|
3
|
-
export
|
|
3
|
+
export * from './runtime-data-types.js';
|
|
4
|
+
export * from './runtime-data.js';
|
|
5
|
+
export * from './runtime-data-token.js';
|
|
6
|
+
export * from './compiled-scene-data.js';
|
|
7
|
+
export * from './asset-resource.js';
|
|
8
|
+
export * from './material-owner.js';
|
|
9
|
+
export * from './material-profile.js';
|
|
10
|
+
export * from './runtime-scene-resolvers.js';
|
|
11
|
+
export * from './static-shadow-artifact.js';
|
|
12
|
+
export * from './scene-artifact-types.js';
|
|
13
|
+
export * from './scene-artifact-validation.js';
|
|
14
|
+
export * from './ground-decal.js';
|
|
15
|
+
export * from './rendering/index.js';
|
|
16
|
+
export { FPS_FRAME_CLOCK_DEFAULT_MAX_DELTA_SECONDS, createFpsFrameClock, } from './frame.js';
|
|
17
|
+
export { FPS_CAMERA_PROJECTION_SCHEMA_VERSION, FpsCameraProjectionDataError, createFpsCameraProjectionSnapshot, } from './camera.js';
|
|
18
|
+
export { FPS_RUNTIME_LIGHT_COMPONENT_SCHEMA_VERSION, FpsRuntimeLightingDataError, createFpsRuntimeLightSnapshot, createFpsRuntimeStandardSystemLightingSnapshot, normalizeFpsRuntimeLightDirection, } from './lighting.js';
|
|
4
19
|
//# 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,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,kBAAkB,CAAC;AAO9D,OAAO,EACL,0CAA0C,EAC1C,2BAA2B,EAC3B,6BAA6B,EAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,kBAAkB,CAAC;AAO9D,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,yCAAyC,EACzC,mBAAmB,GAIpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oCAAoC,EACpC,4BAA4B,EAC5B,iCAAiC,GAGlC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,0CAA0C,EAC1C,2BAA2B,EAC3B,6BAA6B,EAC7B,8CAA8C,EAC9C,iCAAiC,GAQlC,MAAM,eAAe,CAAC"}
|
package/dist/lighting.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export interface FpsRuntimeDirectionalLight {
|
|
|
16
16
|
readonly direction: FpsRuntimeLightVec3;
|
|
17
17
|
readonly diffuseColor: FpsRuntimeLightColorRgb;
|
|
18
18
|
}
|
|
19
|
+
/** Schema v1 models a zenith-up environment light; direction is not configurable. */
|
|
19
20
|
export interface FpsRuntimeHemisphericLight {
|
|
20
21
|
readonly schemaVersion: typeof FPS_RUNTIME_LIGHT_COMPONENT_SCHEMA_VERSION;
|
|
21
22
|
readonly type: 'hemispheric';
|
|
@@ -29,7 +30,12 @@ export interface FpsRuntimeLightNodeSnapshot<TLight extends FpsRuntimeLight = Fp
|
|
|
29
30
|
readonly enabled: boolean;
|
|
30
31
|
readonly light: TLight;
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Forge Play's standard two-light scene profile. This is a product policy,
|
|
35
|
+
* not a limit on the number or kinds of lights the Babylon controller owns.
|
|
36
|
+
* In schema v1 the environment light is zenith-up by definition.
|
|
37
|
+
*/
|
|
38
|
+
export interface FpsRuntimeStandardSystemLightingSnapshot {
|
|
33
39
|
readonly environment: FpsRuntimeLightNodeSnapshot<FpsRuntimeHemisphericLight>;
|
|
34
40
|
readonly directional: FpsRuntimeLightNodeSnapshot<FpsRuntimeDirectionalLight>;
|
|
35
41
|
}
|
|
@@ -46,9 +52,11 @@ export declare class FpsRuntimeLightingDataError extends Error {
|
|
|
46
52
|
export declare function normalizeFpsRuntimeLightDirection(value: unknown, path?: string): Readonly<FpsRuntimeLightVec3>;
|
|
47
53
|
export declare function createFpsRuntimeLightSnapshot(value: unknown, path?: string): Readonly<FpsRuntimeLight>;
|
|
48
54
|
/**
|
|
49
|
-
* Resolves
|
|
50
|
-
*
|
|
51
|
-
*
|
|
55
|
+
* Resolves Forge Play's standard two-light scene profile before a Renderer
|
|
56
|
+
* creates resources. The roles are intentionally inferred from the two v1
|
|
57
|
+
* component types; this helper must not be used as a general scene-light
|
|
58
|
+
* collection API. Extra non-light scene nodes are ignored, while duplicate or
|
|
59
|
+
* missing standard roles fail closed.
|
|
52
60
|
*/
|
|
53
|
-
export declare function
|
|
61
|
+
export declare function createFpsRuntimeStandardSystemLightingSnapshot(value: unknown, path?: string): Readonly<FpsRuntimeStandardSystemLightingSnapshot>;
|
|
54
62
|
//# sourceMappingURL=lighting.d.ts.map
|
package/dist/lighting.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lighting.d.ts","sourceRoot":"","sources":["../src/lighting.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0CAA0C,EAAG,CAAU,CAAC;AAErE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,OAAO,0CAA0C,CAAC;IAC1E,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;CAChD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,OAAO,0CAA0C,CAAC;IAC1E,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;CAC/C;AAED,MAAM,MAAM,eAAe,GAAG,0BAA0B,GAAG,0BAA0B,CAAC;AAEtF,MAAM,WAAW,2BAA2B,CAAC,MAAM,SAAS,eAAe,GAAG,eAAe;IAC3F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"lighting.d.ts","sourceRoot":"","sources":["../src/lighting.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0CAA0C,EAAG,CAAU,CAAC;AAErE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,OAAO,0CAA0C,CAAC;IAC1E,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;CAChD;AAED,qFAAqF;AACrF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,OAAO,0CAA0C,CAAC;IAC1E,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;CAC/C;AAED,MAAM,MAAM,eAAe,GAAG,0BAA0B,GAAG,0BAA0B,CAAC;AAEtF,MAAM,WAAW,2BAA2B,CAAC,MAAM,SAAS,eAAe,GAAG,eAAe;IAC3F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC,0BAA0B,CAAC,CAAC;IAC9E,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC,0BAA0B,CAAC,CAAC;CAC/E;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IAIlD,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAJzB,QAAQ,CAAC,IAAI,8BAA8B;gBAGhC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;CAK1B;AAyBD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,OAAO,EACd,IAAI,SAAgB,GACnB,QAAQ,CAAC,mBAAmB,CAAC,CAS/B;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,IAAI,SAAY,GACf,QAAQ,CAAC,eAAe,CAAC,CAyC3B;AAED;;;;;;GAMG;AACH,wBAAgB,8CAA8C,CAC5D,KAAK,EAAE,OAAO,EACd,IAAI,SAAkB,GACrB,QAAQ,CAAC,wCAAwC,CAAC,CA8BpD"}
|
package/dist/lighting.js
CHANGED
|
@@ -11,7 +11,11 @@ export class FpsRuntimeLightingDataError extends Error {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
const DIRECTION_LENGTH_EPSILON = 0.000001;
|
|
14
|
-
|
|
14
|
+
// Runtime SceneArtifact numbers are canonically serialized to four decimal
|
|
15
|
+
// places. Rounding each component of a unit vector can move its length by at
|
|
16
|
+
// most sqrt(3) * 0.00005, so 1e-4 accepts that representation without
|
|
17
|
+
// admitting meaningfully non-normalized producer data.
|
|
18
|
+
const DIRECTION_UNIT_TOLERANCE = 0.0001;
|
|
15
19
|
const DIRECTIONAL_FIELDS = new Set([
|
|
16
20
|
'schemaVersion',
|
|
17
21
|
'type',
|
|
@@ -80,11 +84,13 @@ export function createFpsRuntimeLightSnapshot(value, path = '$.light') {
|
|
|
80
84
|
invalid(`${path}.type`, 'expected directional or hemispheric');
|
|
81
85
|
}
|
|
82
86
|
/**
|
|
83
|
-
* Resolves
|
|
84
|
-
*
|
|
85
|
-
*
|
|
87
|
+
* Resolves Forge Play's standard two-light scene profile before a Renderer
|
|
88
|
+
* creates resources. The roles are intentionally inferred from the two v1
|
|
89
|
+
* component types; this helper must not be used as a general scene-light
|
|
90
|
+
* collection API. Extra non-light scene nodes are ignored, while duplicate or
|
|
91
|
+
* missing standard roles fail closed.
|
|
86
92
|
*/
|
|
87
|
-
export function
|
|
93
|
+
export function createFpsRuntimeStandardSystemLightingSnapshot(value, path = '$.scene.nodes') {
|
|
88
94
|
if (!Array.isArray(value))
|
|
89
95
|
invalid(path, 'expected an array of Runtime scene nodes');
|
|
90
96
|
let environment;
|
package/dist/lighting.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lighting.js","sourceRoot":"","sources":["../src/lighting.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0CAA0C,GAAG,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"lighting.js","sourceRoot":"","sources":["../src/lighting.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/** Stable topology identity for one GLB/glTF source surface within a logical material slot. */
|
|
2
|
+
export interface MaterialSlotSourceSurfaceDescriptor {
|
|
3
|
+
ownerNodePath: string;
|
|
4
|
+
nodeIndex?: number;
|
|
5
|
+
nodeIndexPath?: number[];
|
|
6
|
+
meshIndex?: number;
|
|
7
|
+
primitiveIndex?: number;
|
|
8
|
+
sourceMaterialIndex?: number;
|
|
9
|
+
sourceMeshName?: string;
|
|
10
|
+
triangleCount?: number;
|
|
11
|
+
boundingBox?: {
|
|
12
|
+
min?: [number, number, number];
|
|
13
|
+
max?: [number, number, number];
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** Stable logical material slot emitted by GLB/glTF analysis. */
|
|
17
|
+
export interface MaterialSlotSourceDescriptor {
|
|
18
|
+
slotId: string;
|
|
19
|
+
label?: string;
|
|
20
|
+
sourceSurfaces: MaterialSlotSourceSurfaceDescriptor[];
|
|
21
|
+
materialName?: string;
|
|
22
|
+
materialNames?: string[];
|
|
23
|
+
}
|
|
24
|
+
/** Engine-neutral subset required to resolve an authored slot to a live material owner. */
|
|
25
|
+
export interface MaterialOwnerDescriptor {
|
|
26
|
+
ownerNodePath: string;
|
|
27
|
+
nodeIndex?: number;
|
|
28
|
+
nodeIndexPath?: number[];
|
|
29
|
+
meshIndex?: number;
|
|
30
|
+
primitiveIndex?: number;
|
|
31
|
+
sourceMaterialIndex?: number;
|
|
32
|
+
sourceMaterialIndices?: number[];
|
|
33
|
+
}
|
|
34
|
+
export type MaterialOwnerMatchKind = 'gltf-pointer' | 'instanced-source' | 'canonical-path' | 'canonical-parent-path' | 'generated-name' | 'legacy-path' | 'source-owner-alias';
|
|
35
|
+
export interface MaterialOwnerPointerEvidence {
|
|
36
|
+
nodeIndex?: number;
|
|
37
|
+
nodeIndexPath?: readonly number[];
|
|
38
|
+
meshIndex?: number;
|
|
39
|
+
primitiveIndex?: number;
|
|
40
|
+
materialIndices?: readonly number[];
|
|
41
|
+
hasPointerEvidence?: boolean;
|
|
42
|
+
/** Multiple live pointer targets exist at the same owner tier; resolve as ambiguity, not conflict. */
|
|
43
|
+
pointerAmbiguous?: boolean;
|
|
44
|
+
pointerConflict?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface MaterialOwnerCandidate<TTarget> extends MaterialOwnerPointerEvidence {
|
|
47
|
+
/** Stable within the asset root and independent from traversal order. */
|
|
48
|
+
candidateId: string;
|
|
49
|
+
/** The object that material mutation must target (source mesh for instances). */
|
|
50
|
+
target: TTarget;
|
|
51
|
+
canonicalPath: string;
|
|
52
|
+
nodeIndex?: number;
|
|
53
|
+
nodeIndexPath?: readonly number[];
|
|
54
|
+
meshIndex?: number;
|
|
55
|
+
primitiveIndex?: number;
|
|
56
|
+
materialIndices?: readonly number[];
|
|
57
|
+
/** True when any glTF pointer evidence exists for this target. */
|
|
58
|
+
hasPointerEvidence?: boolean;
|
|
59
|
+
/** Conflicting pointers were observed on the same live owner; never resolve it as strong evidence. */
|
|
60
|
+
pointerConflict?: boolean;
|
|
61
|
+
/** Only candidates backed by an instance/sourceMesh relationship may expose aliases. */
|
|
62
|
+
sourceOwnerAliases?: readonly string[];
|
|
63
|
+
/** Authored/runtime aliases of the instance that delegates writes to sourceMesh. */
|
|
64
|
+
instanceOwnerAliases?: readonly string[];
|
|
65
|
+
/** Pointer identity of sourceMesh, isolated from the instance's own pointer tier. */
|
|
66
|
+
sourceOwnerEvidence?: MaterialOwnerPointerEvidence;
|
|
67
|
+
/** Optional pointer evidence for the authored instance itself. */
|
|
68
|
+
instanceOwnerEvidence?: MaterialOwnerPointerEvidence;
|
|
69
|
+
isSourceOwnerAliasCandidate?: boolean;
|
|
70
|
+
}
|
|
71
|
+
export interface MaterialOwnerCandidateSummary {
|
|
72
|
+
candidateId: string;
|
|
73
|
+
canonicalPath: string;
|
|
74
|
+
nodeIndex?: number;
|
|
75
|
+
nodeIndexPath?: readonly number[];
|
|
76
|
+
meshIndex?: number;
|
|
77
|
+
primitiveIndex?: number;
|
|
78
|
+
materialIndices?: readonly number[];
|
|
79
|
+
sourceOwnerAliases?: readonly string[];
|
|
80
|
+
instanceOwnerAliases?: readonly string[];
|
|
81
|
+
sourceOwnerEvidence?: MaterialOwnerPointerEvidence;
|
|
82
|
+
instanceOwnerEvidence?: MaterialOwnerPointerEvidence;
|
|
83
|
+
pointerAmbiguous?: boolean;
|
|
84
|
+
pointerConflict?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export type MaterialOwnerResolvedIdentityStrategy = 'gltf-pointer' | 'instanced-source' | 'canonical-path';
|
|
87
|
+
export interface MaterialOwnerResolvedPointerIdentity {
|
|
88
|
+
nodeIndex?: number;
|
|
89
|
+
nodeIndexPath?: readonly number[];
|
|
90
|
+
meshIndex: number;
|
|
91
|
+
primitiveIndex: number;
|
|
92
|
+
materialIndices?: readonly number[];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Engine-neutral identity for the one live owner selected by the resolver.
|
|
96
|
+
* `key` intentionally excludes Babylon runtime ids and material display names.
|
|
97
|
+
*/
|
|
98
|
+
export interface MaterialOwnerResolvedIdentity {
|
|
99
|
+
key: string;
|
|
100
|
+
strategy: MaterialOwnerResolvedIdentityStrategy;
|
|
101
|
+
/** Canonical path of the runtime node receiving the binding. */
|
|
102
|
+
runtimePath: string;
|
|
103
|
+
/** Canonical paths of the writable owner; sourceMesh aliases for instances. */
|
|
104
|
+
ownerPaths: readonly string[];
|
|
105
|
+
/** Canonical authored/runtime paths that identified an instanced source candidate. */
|
|
106
|
+
instancePaths?: readonly string[];
|
|
107
|
+
/** Optional pointer identity of the authored instance, distinct from source pointer. */
|
|
108
|
+
instanceIdentity?: {
|
|
109
|
+
nodeIndex?: number;
|
|
110
|
+
nodeIndexPath?: readonly number[];
|
|
111
|
+
};
|
|
112
|
+
pointer?: MaterialOwnerResolvedPointerIdentity;
|
|
113
|
+
viaSourceOwner: boolean;
|
|
114
|
+
}
|
|
115
|
+
export interface MaterialOwnerResolutionDiagnostic {
|
|
116
|
+
code: 'material-owner-unmatched' | 'material-owner-ambiguous' | 'material-owner-pointer-conflict' | 'material-owner-legacy-path-fallback' | 'material-owner-source-alias' | 'material-owner-instanced-source';
|
|
117
|
+
severity: 'info' | 'warning' | 'error';
|
|
118
|
+
message: string;
|
|
119
|
+
}
|
|
120
|
+
export type MaterialOwnerResolution<TTarget> = {
|
|
121
|
+
status: 'resolved';
|
|
122
|
+
matchKind: MaterialOwnerMatchKind;
|
|
123
|
+
target: TTarget;
|
|
124
|
+
identity: MaterialOwnerResolvedIdentity;
|
|
125
|
+
candidate: MaterialOwnerCandidateSummary;
|
|
126
|
+
candidates: readonly MaterialOwnerCandidateSummary[];
|
|
127
|
+
diagnostic?: MaterialOwnerResolutionDiagnostic;
|
|
128
|
+
} | {
|
|
129
|
+
status: 'unmatched' | 'ambiguous';
|
|
130
|
+
matchKind: MaterialOwnerMatchKind | null;
|
|
131
|
+
candidates: readonly MaterialOwnerCandidateSummary[];
|
|
132
|
+
diagnostic: MaterialOwnerResolutionDiagnostic;
|
|
133
|
+
};
|
|
134
|
+
export interface ResolveMaterialOwnerOptions {
|
|
135
|
+
/** Source-owner aliases are never considered for inherited/default material lookup. */
|
|
136
|
+
explicitSlotBinding?: boolean;
|
|
137
|
+
}
|
|
138
|
+
export declare function resolveMaterialOwner<TTarget>(descriptor: MaterialOwnerDescriptor, candidatesInput: readonly MaterialOwnerCandidate<TTarget>[], options?: ResolveMaterialOwnerOptions): MaterialOwnerResolution<TTarget>;
|
|
139
|
+
/** True only when the winning runtime target is backed by matching live primitive pointer evidence. */
|
|
140
|
+
export declare function isMaterialOwnerResolutionPointerVerified<TTarget>(descriptor: MaterialOwnerDescriptor, resolution: MaterialOwnerResolution<TTarget>): boolean;
|
|
141
|
+
//# sourceMappingURL=material-owner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-owner.d.ts","sourceRoot":"","sources":["../src/material-owner.ts"],"names":[],"mappings":"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"}
|