@adobe/data-gpu 0.9.69
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/CLAUDE.md +98 -0
- package/LICENSE +21 -0
- package/dist/core/core-plugin.d.ts +44 -0
- package/dist/core/core-plugin.js +90 -0
- package/dist/core/core-plugin.js.map +1 -0
- package/dist/core/frame-time/frame-time-plugin.d.ts +25 -0
- package/dist/core/frame-time/frame-time-plugin.js +41 -0
- package/dist/core/frame-time/frame-time-plugin.js.map +1 -0
- package/dist/core/frame-time/frame-time.d.ts +18 -0
- package/dist/core/frame-time/frame-time.js +3 -0
- package/dist/core/frame-time/frame-time.js.map +1 -0
- package/dist/core/frame-time/public.d.ts +1 -0
- package/dist/core/frame-time/public.js +3 -0
- package/dist/core/frame-time/public.js.map +1 -0
- package/dist/graphics/animation/animation-data-plugin.d.ts +216 -0
- package/dist/graphics/animation/animation-data-plugin.js +110 -0
- package/dist/graphics/animation/animation-data-plugin.js.map +1 -0
- package/dist/graphics/animation/animation-plugin.d.ts +214 -0
- package/dist/graphics/animation/animation-plugin.js +26 -0
- package/dist/graphics/animation/animation-plugin.js.map +1 -0
- package/dist/graphics/animation/animation-plugin.test.d.ts +1 -0
- package/dist/graphics/animation/animation-plugin.test.js +142 -0
- package/dist/graphics/animation/animation-plugin.test.js.map +1 -0
- package/dist/graphics/animation/animation-track/animation-track.d.ts +13 -0
- package/dist/graphics/animation/animation-track/animation-track.js +3 -0
- package/dist/graphics/animation/animation-track/animation-track.js.map +1 -0
- package/dist/graphics/animation/animation-track/componentwise-lerp.d.ts +7 -0
- package/dist/graphics/animation/animation-track/componentwise-lerp.js +22 -0
- package/dist/graphics/animation/animation-track/componentwise-lerp.js.map +1 -0
- package/dist/graphics/animation/animation-track/interpolate.d.ts +8 -0
- package/dist/graphics/animation/animation-track/interpolate.js +18 -0
- package/dist/graphics/animation/animation-track/interpolate.js.map +1 -0
- package/dist/graphics/animation/animation-track/public.d.ts +1 -0
- package/dist/graphics/animation/animation-track/public.js +3 -0
- package/dist/graphics/animation/animation-track/public.js.map +1 -0
- package/dist/graphics/animation/animation-track/sample.d.ts +7 -0
- package/dist/graphics/animation/animation-track/sample.js +44 -0
- package/dist/graphics/animation/animation-track/sample.js.map +1 -0
- package/dist/graphics/animation/interpolation-mode/interpolation-mode.d.ts +4 -0
- package/dist/graphics/animation/interpolation-mode/interpolation-mode.js +3 -0
- package/dist/graphics/animation/interpolation-mode/interpolation-mode.js.map +1 -0
- package/dist/graphics/animation/interpolation-mode/public.d.ts +1 -0
- package/dist/graphics/animation/interpolation-mode/public.js +3 -0
- package/dist/graphics/animation/interpolation-mode/public.js.map +1 -0
- package/dist/graphics/animation/interpolation-mode/schema.d.ts +4 -0
- package/dist/graphics/animation/interpolation-mode/schema.js +3 -0
- package/dist/graphics/animation/interpolation-mode/schema.js.map +1 -0
- package/dist/graphics/camera/camera-plugin.d.ts +112 -0
- package/dist/graphics/camera/camera-plugin.js +36 -0
- package/dist/graphics/camera/camera-plugin.js.map +1 -0
- package/dist/graphics/camera/camera.d.ts +4 -0
- package/dist/graphics/camera/camera.js +3 -0
- package/dist/graphics/camera/camera.js.map +1 -0
- package/dist/graphics/camera/orbit/attach-orbit-drag.d.ts +31 -0
- package/dist/graphics/camera/orbit/attach-orbit-drag.js +44 -0
- package/dist/graphics/camera/orbit/attach-orbit-drag.js.map +1 -0
- package/dist/graphics/camera/orbit/orbit-data-plugin.d.ts +290 -0
- package/dist/graphics/camera/orbit/orbit-data-plugin.js +42 -0
- package/dist/graphics/camera/orbit/orbit-data-plugin.js.map +1 -0
- package/dist/graphics/camera/orbit/orbit-plugin.d.ts +281 -0
- package/dist/graphics/camera/orbit/orbit-plugin.js +12 -0
- package/dist/graphics/camera/orbit/orbit-plugin.js.map +1 -0
- package/dist/graphics/camera/orbit/orbit-system-plugin.d.ts +292 -0
- package/dist/graphics/camera/orbit/orbit-system-plugin.js +71 -0
- package/dist/graphics/camera/orbit/orbit-system-plugin.js.map +1 -0
- package/dist/graphics/camera/orbit/orbit.d.ts +32 -0
- package/dist/graphics/camera/orbit/orbit.js +3 -0
- package/dist/graphics/camera/orbit/orbit.js.map +1 -0
- package/dist/graphics/camera/orbit/public.d.ts +5 -0
- package/dist/graphics/camera/orbit/public.js +6 -0
- package/dist/graphics/camera/orbit/public.js.map +1 -0
- package/dist/graphics/camera/public.d.ts +4 -0
- package/dist/graphics/camera/public.js +6 -0
- package/dist/graphics/camera/public.js.map +1 -0
- package/dist/graphics/camera/schema.d.ts +65 -0
- package/dist/graphics/camera/schema.js +19 -0
- package/dist/graphics/camera/schema.js.map +1 -0
- package/dist/graphics/camera/screen-to-world-ray.d.ts +10 -0
- package/dist/graphics/camera/screen-to-world-ray.js +31 -0
- package/dist/graphics/camera/screen-to-world-ray.js.map +1 -0
- package/dist/graphics/camera/to-view-projection.d.ts +3 -0
- package/dist/graphics/camera/to-view-projection.js +23 -0
- package/dist/graphics/camera/to-view-projection.js.map +1 -0
- package/dist/graphics/graphics-plugin.d.ts +121 -0
- package/dist/graphics/graphics-plugin.js +106 -0
- package/dist/graphics/graphics-plugin.js.map +1 -0
- package/dist/graphics/picking/pick-hit.d.ts +10 -0
- package/dist/graphics/picking/pick-hit.js +3 -0
- package/dist/graphics/picking/pick-hit.js.map +1 -0
- package/dist/graphics/picking/picking-plugin.d.ts +3819 -0
- package/dist/graphics/picking/picking-plugin.js +88 -0
- package/dist/graphics/picking/picking-plugin.js.map +1 -0
- package/dist/graphics/rendering/bone-collider-plugin.d.ts +1619 -0
- package/dist/graphics/rendering/bone-collider-plugin.js +207 -0
- package/dist/graphics/rendering/bone-collider-plugin.js.map +1 -0
- package/dist/graphics/rendering/display-transform-plugin.d.ts +52 -0
- package/dist/graphics/rendering/display-transform-plugin.js +25 -0
- package/dist/graphics/rendering/display-transform-plugin.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/brdf.wgsl.d.ts +2 -0
- package/dist/graphics/rendering/ibl-render/brdf.wgsl.js +42 -0
- package/dist/graphics/rendering/ibl-render/brdf.wgsl.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/brdf-lut.d.ts +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/brdf-lut.js +91 -0
- package/dist/graphics/rendering/ibl-render/ibl/brdf-lut.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/build-ibl-resources.d.ts +24 -0
- package/dist/graphics/rendering/ibl-render/ibl/build-ibl-resources.js +34 -0
- package/dist/graphics/rendering/ibl-render/ibl/build-ibl-resources.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/create-cubemap.d.ts +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/create-cubemap.js +12 -0
- package/dist/graphics/rendering/ibl-render/ibl/create-cubemap.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/cube-face-view.d.ts +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/cube-face-view.js +11 -0
- package/dist/graphics/rendering/ibl-render/ibl/cube-face-view.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/cubemap-sample-view.d.ts +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/cubemap-sample-view.js +9 -0
- package/dist/graphics/rendering/ibl-render/ibl/cubemap-sample-view.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/environment.d.ts +8 -0
- package/dist/graphics/rendering/ibl-render/ibl/environment.js +170 -0
- package/dist/graphics/rendering/ibl-render/ibl/environment.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/float-to-half.d.ts +2 -0
- package/dist/graphics/rendering/ibl-render/ibl/float-to-half.js +32 -0
- package/dist/graphics/rendering/ibl-render/ibl/float-to-half.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/ibl-math.wgsl.d.ts +2 -0
- package/dist/graphics/rendering/ibl-render/ibl/ibl-math.wgsl.js +59 -0
- package/dist/graphics/rendering/ibl-render/ibl/ibl-math.wgsl.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/irradiance.d.ts +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/irradiance.js +94 -0
- package/dist/graphics/rendering/ibl-render/ibl/irradiance.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/parse-hdr.d.ts +6 -0
- package/dist/graphics/rendering/ibl-render/ibl/parse-hdr.js +106 -0
- package/dist/graphics/rendering/ibl-render/ibl/parse-hdr.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/prefilter.d.ts +5 -0
- package/dist/graphics/rendering/ibl-render/ibl/prefilter.js +103 -0
- package/dist/graphics/rendering/ibl-render/ibl/prefilter.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl/render-helpers.d.ts +4 -0
- package/dist/graphics/rendering/ibl-render/ibl/render-helpers.js +16 -0
- package/dist/graphics/rendering/ibl-render/ibl/render-helpers.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl-render-plugin.d.ts +1028 -0
- package/dist/graphics/rendering/ibl-render/ibl-render-plugin.js +409 -0
- package/dist/graphics/rendering/ibl-render/ibl-render-plugin.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/ibl-shader.wgsl.d.ts +8 -0
- package/dist/graphics/rendering/ibl-render/ibl-shader.wgsl.js +173 -0
- package/dist/graphics/rendering/ibl-render/ibl-shader.wgsl.js.map +1 -0
- package/dist/graphics/rendering/ibl-render/skybox-shader.wgsl.d.ts +2 -0
- package/dist/graphics/rendering/ibl-render/skybox-shader.wgsl.js +50 -0
- package/dist/graphics/rendering/ibl-render/skybox-shader.wgsl.js.map +1 -0
- package/dist/graphics/rendering/interpolation-plugin.d.ts +485 -0
- package/dist/graphics/rendering/interpolation-plugin.js +98 -0
- package/dist/graphics/rendering/interpolation-plugin.js.map +1 -0
- package/dist/graphics/rendering/interpolation.test.d.ts +1 -0
- package/dist/graphics/rendering/interpolation.test.js +38 -0
- package/dist/graphics/rendering/interpolation.test.js.map +1 -0
- package/dist/graphics/rendering/jolt-ragdoll-plugin.d.ts +1628 -0
- package/dist/graphics/rendering/jolt-ragdoll-plugin.js +218 -0
- package/dist/graphics/rendering/jolt-ragdoll-plugin.js.map +1 -0
- package/dist/graphics/rendering/material-gpu/material-arrays.d.ts +47 -0
- package/dist/graphics/rendering/material-gpu/material-arrays.js +83 -0
- package/dist/graphics/rendering/material-gpu/material-arrays.js.map +1 -0
- package/dist/graphics/rendering/material-gpu/material-bind-group.d.ts +9 -0
- package/dist/graphics/rendering/material-gpu/material-bind-group.js +52 -0
- package/dist/graphics/rendering/material-gpu/material-bind-group.js.map +1 -0
- package/dist/graphics/rendering/material-gpu/material-gpu-plugin.d.ts +259 -0
- package/dist/graphics/rendering/material-gpu/material-gpu-plugin.js +90 -0
- package/dist/graphics/rendering/material-gpu/material-gpu-plugin.js.map +1 -0
- package/dist/graphics/rendering/model-collider-plugin.d.ts +1232 -0
- package/dist/graphics/rendering/model-collider-plugin.js +81 -0
- package/dist/graphics/rendering/model-collider-plugin.js.map +1 -0
- package/dist/graphics/rendering/pbr-core-plugin.d.ts +75 -0
- package/dist/graphics/rendering/pbr-core-plugin.js +39 -0
- package/dist/graphics/rendering/pbr-core-plugin.js.map +1 -0
- package/dist/graphics/rendering/pbr-render/pbr-array-shader.wgsl.d.ts +10 -0
- package/dist/graphics/rendering/pbr-render/pbr-array-shader.wgsl.js +145 -0
- package/dist/graphics/rendering/pbr-render/pbr-array-shader.wgsl.js.map +1 -0
- package/dist/graphics/rendering/pbr-render/pbr-render-plugin.d.ts +1266 -0
- package/dist/graphics/rendering/pbr-render/pbr-render-plugin.js +254 -0
- package/dist/graphics/rendering/pbr-render/pbr-render-plugin.js.map +1 -0
- package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.d.ts +1004 -0
- package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.js +116 -0
- package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.js.map +1 -0
- package/dist/graphics/rendering/ragdoll-trigger-plugin.d.ts +31 -0
- package/dist/graphics/rendering/ragdoll-trigger-plugin.js +20 -0
- package/dist/graphics/rendering/ragdoll-trigger-plugin.js.map +1 -0
- package/dist/graphics/rendering/rendering-plugin.d.ts +1 -0
- package/dist/graphics/rendering/rendering-plugin.js +3 -0
- package/dist/graphics/rendering/rendering-plugin.js.map +1 -0
- package/dist/graphics/rendering/skinning/skinning-attributes/layout.d.ts +2 -0
- package/dist/graphics/rendering/skinning/skinning-attributes/layout.js +18 -0
- package/dist/graphics/rendering/skinning/skinning-attributes/layout.js.map +1 -0
- package/dist/graphics/rendering/skinning/skinning-attributes/public.d.ts +1 -0
- package/dist/graphics/rendering/skinning/skinning-attributes/public.js +3 -0
- package/dist/graphics/rendering/skinning/skinning-attributes/public.js.map +1 -0
- package/dist/graphics/rendering/skinning/skinning-attributes/skinning-attributes.d.ts +1 -0
- package/dist/graphics/rendering/skinning/skinning-attributes/skinning-attributes.js +3 -0
- package/dist/graphics/rendering/skinning/skinning-attributes/skinning-attributes.js.map +1 -0
- package/dist/graphics/rendering/skinning/skinning-plugin.d.ts +1212 -0
- package/dist/graphics/rendering/skinning/skinning-plugin.js +207 -0
- package/dist/graphics/rendering/skinning/skinning-plugin.js.map +1 -0
- package/dist/graphics/rendering/standard-vertex/layout.d.ts +2 -0
- package/dist/graphics/rendering/standard-vertex/layout.js +16 -0
- package/dist/graphics/rendering/standard-vertex/layout.js.map +1 -0
- package/dist/graphics/rendering/standard-vertex/public.d.ts +2 -0
- package/dist/graphics/rendering/standard-vertex/public.js +4 -0
- package/dist/graphics/rendering/standard-vertex/public.js.map +1 -0
- package/dist/graphics/rendering/standard-vertex/schema.d.ts +52 -0
- package/dist/graphics/rendering/standard-vertex/schema.js +15 -0
- package/dist/graphics/rendering/standard-vertex/schema.js.map +1 -0
- package/dist/graphics/rendering/standard-vertex/standard-vertex.d.ts +4 -0
- package/dist/graphics/rendering/standard-vertex/standard-vertex.js +3 -0
- package/dist/graphics/rendering/standard-vertex/standard-vertex.js.map +1 -0
- package/dist/graphics/rendering/visible-material/color-material-options.d.ts +7 -0
- package/dist/graphics/rendering/visible-material/color-material-options.js +3 -0
- package/dist/graphics/rendering/visible-material/color-material-options.js.map +1 -0
- package/dist/graphics/rendering/visible-material/create-bind-group-layout.d.ts +8 -0
- package/dist/graphics/rendering/visible-material/create-bind-group-layout.js +35 -0
- package/dist/graphics/rendering/visible-material/create-bind-group-layout.js.map +1 -0
- package/dist/graphics/rendering/visible-material/create-color-bind-group.d.ts +10 -0
- package/dist/graphics/rendering/visible-material/create-color-bind-group.js +26 -0
- package/dist/graphics/rendering/visible-material/create-color-bind-group.js.map +1 -0
- package/dist/graphics/rendering/visible-material/public.d.ts +4 -0
- package/dist/graphics/rendering/visible-material/public.js +5 -0
- package/dist/graphics/rendering/visible-material/public.js.map +1 -0
- package/dist/graphics/rendering/visible-material/schema.d.ts +49 -0
- package/dist/graphics/rendering/visible-material/schema.js +23 -0
- package/dist/graphics/rendering/visible-material/schema.js.map +1 -0
- package/dist/graphics/rendering/visible-material/visible-material.d.ts +4 -0
- package/dist/graphics/rendering/visible-material/visible-material.js +3 -0
- package/dist/graphics/rendering/visible-material/visible-material.js.map +1 -0
- package/dist/graphics/scene/light/light-plugin.d.ts +30 -0
- package/dist/graphics/scene/light/light-plugin.js +35 -0
- package/dist/graphics/scene/light/light-plugin.js.map +1 -0
- package/dist/graphics/scene/light/light.d.ts +14 -0
- package/dist/graphics/scene/light/light.js +3 -0
- package/dist/graphics/scene/light/light.js.map +1 -0
- package/dist/graphics/scene/light/public.d.ts +1 -0
- package/dist/graphics/scene/light/public.js +2 -0
- package/dist/graphics/scene/light/public.js.map +1 -0
- package/dist/graphics/scene/model/geometry/geometry.d.ts +9 -0
- package/dist/graphics/scene/model/geometry/geometry.js +3 -0
- package/dist/graphics/scene/model/geometry/geometry.js.map +1 -0
- package/dist/graphics/scene/model/geometry/public.d.ts +1 -0
- package/dist/graphics/scene/model/geometry/public.js +3 -0
- package/dist/graphics/scene/model/geometry/public.js.map +1 -0
- package/dist/graphics/scene/model/gltf/accessor-view.d.ts +9 -0
- package/dist/graphics/scene/model/gltf/accessor-view.js +44 -0
- package/dist/graphics/scene/model/gltf/accessor-view.js.map +1 -0
- package/dist/graphics/scene/model/gltf/build-material-bind-group.d.ts +22 -0
- package/dist/graphics/scene/model/gltf/build-material-bind-group.js +75 -0
- package/dist/graphics/scene/model/gltf/build-material-bind-group.js.map +1 -0
- package/dist/graphics/scene/model/gltf/compute-world-matrices.d.ts +7 -0
- package/dist/graphics/scene/model/gltf/compute-world-matrices.js +38 -0
- package/dist/graphics/scene/model/gltf/compute-world-matrices.js.map +1 -0
- package/dist/graphics/scene/model/gltf/create-color-material.d.ts +3 -0
- package/dist/graphics/scene/model/gltf/create-color-material.js +34 -0
- package/dist/graphics/scene/model/gltf/create-color-material.js.map +1 -0
- package/dist/graphics/scene/model/gltf/decode-images.d.ts +12 -0
- package/dist/graphics/scene/model/gltf/decode-images.js +68 -0
- package/dist/graphics/scene/model/gltf/decode-images.js.map +1 -0
- package/dist/graphics/scene/model/gltf/gltf-schema.d.ts +152 -0
- package/dist/graphics/scene/model/gltf/gltf-schema.js +20 -0
- package/dist/graphics/scene/model/gltf/gltf-schema.js.map +1 -0
- package/dist/graphics/scene/model/gltf/load-gltf-model.d.ts +42 -0
- package/dist/graphics/scene/model/gltf/load-gltf-model.js +175 -0
- package/dist/graphics/scene/model/gltf/load-gltf-model.js.map +1 -0
- package/dist/graphics/scene/model/gltf/pack-vertex-buffer.d.ts +21 -0
- package/dist/graphics/scene/model/gltf/pack-vertex-buffer.js +106 -0
- package/dist/graphics/scene/model/gltf/pack-vertex-buffer.js.map +1 -0
- package/dist/graphics/scene/model/gltf/parse-animations.d.ts +18 -0
- package/dist/graphics/scene/model/gltf/parse-animations.js +51 -0
- package/dist/graphics/scene/model/gltf/parse-animations.js.map +1 -0
- package/dist/graphics/scene/model/gltf/parse-glb.d.ts +6 -0
- package/dist/graphics/scene/model/gltf/parse-glb.js +40 -0
- package/dist/graphics/scene/model/gltf/parse-glb.js.map +1 -0
- package/dist/graphics/scene/model/gltf/parse-skin.d.ts +19 -0
- package/dist/graphics/scene/model/gltf/parse-skin.js +43 -0
- package/dist/graphics/scene/model/gltf/parse-skin.js.map +1 -0
- package/dist/graphics/scene/model/model-loader-plugin.d.ts +922 -0
- package/dist/graphics/scene/model/model-loader-plugin.js +120 -0
- package/dist/graphics/scene/model/model-loader-plugin.js.map +1 -0
- package/dist/graphics/scene/model/model-plugin.d.ts +352 -0
- package/dist/graphics/scene/model/model-plugin.js +39 -0
- package/dist/graphics/scene/model/model-plugin.js.map +1 -0
- package/dist/graphics/scene/model/model.d.ts +11 -0
- package/dist/graphics/scene/model/model.js +3 -0
- package/dist/graphics/scene/model/model.js.map +1 -0
- package/dist/graphics/scene/model/public.d.ts +1 -0
- package/dist/graphics/scene/model/public.js +2 -0
- package/dist/graphics/scene/model/public.js.map +1 -0
- package/dist/graphics/scene/model/shape/convex-hull.d.ts +36 -0
- package/dist/graphics/scene/model/shape/convex-hull.js +152 -0
- package/dist/graphics/scene/model/shape/convex-hull.js.map +1 -0
- package/dist/graphics/scene/model/shape/convex-hull.test.d.ts +1 -0
- package/dist/graphics/scene/model/shape/convex-hull.test.js +78 -0
- package/dist/graphics/scene/model/shape/convex-hull.test.js.map +1 -0
- package/dist/graphics/scene/model/shape/shape-geometry-plugin.d.ts +631 -0
- package/dist/graphics/scene/model/shape/shape-geometry-plugin.js +61 -0
- package/dist/graphics/scene/model/shape/shape-geometry-plugin.js.map +1 -0
- package/dist/graphics/scene/model/shape/shape-mesh.d.ts +34 -0
- package/dist/graphics/scene/model/shape/shape-mesh.js +142 -0
- package/dist/graphics/scene/model/shape/shape-mesh.js.map +1 -0
- package/dist/graphics/scene/model/shape/upload-shape-mesh.d.ts +9 -0
- package/dist/graphics/scene/model/shape/upload-shape-mesh.js +12 -0
- package/dist/graphics/scene/model/shape/upload-shape-mesh.js.map +1 -0
- package/dist/graphics/scene/model/world-bounds-plugin.d.ts +909 -0
- package/dist/graphics/scene/model/world-bounds-plugin.js +93 -0
- package/dist/graphics/scene/model/world-bounds-plugin.js.map +1 -0
- package/dist/graphics/scene/node/node-data-plugin.d.ts +113 -0
- package/dist/graphics/scene/node/node-data-plugin.js +27 -0
- package/dist/graphics/scene/node/node-data-plugin.js.map +1 -0
- package/dist/graphics/scene/node/node-plugin.d.ts +102 -0
- package/dist/graphics/scene/node/node-plugin.js +12 -0
- package/dist/graphics/scene/node/node-plugin.js.map +1 -0
- package/dist/graphics/scene/node/node.d.ts +19 -0
- package/dist/graphics/scene/node/node.js +3 -0
- package/dist/graphics/scene/node/node.js.map +1 -0
- package/dist/graphics/scene/node/public.d.ts +1 -0
- package/dist/graphics/scene/node/public.js +2 -0
- package/dist/graphics/scene/node/public.js.map +1 -0
- package/dist/graphics/scene/node/transform-plugin.d.ts +123 -0
- package/dist/graphics/scene/node/transform-plugin.js +65 -0
- package/dist/graphics/scene/node/transform-plugin.js.map +1 -0
- package/dist/graphics/scene/scene-plugin.d.ts +461 -0
- package/dist/graphics/scene/scene-plugin.js +19 -0
- package/dist/graphics/scene/scene-plugin.js.map +1 -0
- package/dist/graphics/scene/scene-uniforms/create-bind-group-layout.d.ts +7 -0
- package/dist/graphics/scene/scene-uniforms/create-bind-group-layout.js +19 -0
- package/dist/graphics/scene/scene-uniforms/create-bind-group-layout.js.map +1 -0
- package/dist/graphics/scene/scene-uniforms/public.d.ts +3 -0
- package/dist/graphics/scene/scene-uniforms/public.js +5 -0
- package/dist/graphics/scene/scene-uniforms/public.js.map +1 -0
- package/dist/graphics/scene/scene-uniforms/scene-uniforms-plugin.d.ts +137 -0
- package/dist/graphics/scene/scene-uniforms/scene-uniforms-plugin.js +59 -0
- package/dist/graphics/scene/scene-uniforms/scene-uniforms-plugin.js.map +1 -0
- package/dist/graphics/scene/scene-uniforms/scene-uniforms.d.ts +11 -0
- package/dist/graphics/scene/scene-uniforms/scene-uniforms.js +3 -0
- package/dist/graphics/scene/scene-uniforms/scene-uniforms.js.map +1 -0
- package/dist/graphics/scene/scene-uniforms/schema.d.ts +56 -0
- package/dist/graphics/scene/scene-uniforms/schema.js +15 -0
- package/dist/graphics/scene/scene-uniforms/schema.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/material/material-plugin.d.ts +221 -0
- package/dist/material/material-plugin.js +60 -0
- package/dist/material/material-plugin.js.map +1 -0
- package/dist/material/material.d.ts +31 -0
- package/dist/material/material.js +3 -0
- package/dist/material/material.js.map +1 -0
- package/dist/material/public.d.ts +2 -0
- package/dist/material/public.js +4 -0
- package/dist/material/public.js.map +1 -0
- package/dist/material/standard-materials.d.ts +3 -0
- package/dist/material/standard-materials.js +35 -0
- package/dist/material/standard-materials.js.map +1 -0
- package/dist/physics/body/body-type/body-type.d.ts +10 -0
- package/dist/physics/body/body-type/body-type.js +3 -0
- package/dist/physics/body/body-type/body-type.js.map +1 -0
- package/dist/physics/body/body-type/is-dynamic.d.ts +3 -0
- package/dist/physics/body/body-type/is-dynamic.js +6 -0
- package/dist/physics/body/body-type/is-dynamic.js.map +1 -0
- package/dist/physics/body/body-type/public.d.ts +2 -0
- package/dist/physics/body/body-type/public.js +4 -0
- package/dist/physics/body/body-type/public.js.map +1 -0
- package/dist/physics/body/body-type/schema.d.ts +4 -0
- package/dist/physics/body/body-type/schema.js +3 -0
- package/dist/physics/body/body-type/schema.js.map +1 -0
- package/dist/physics/body/collider-mesh.d.ts +11 -0
- package/dist/physics/body/collider-mesh.js +3 -0
- package/dist/physics/body/collider-mesh.js.map +1 -0
- package/dist/physics/body/collider-shape/collider-shape.d.ts +15 -0
- package/dist/physics/body/collider-shape/collider-shape.js +3 -0
- package/dist/physics/body/collider-shape/collider-shape.js.map +1 -0
- package/dist/physics/body/collider-shape/list.d.ts +3 -0
- package/dist/physics/body/collider-shape/list.js +5 -0
- package/dist/physics/body/collider-shape/list.js.map +1 -0
- package/dist/physics/body/collider-shape/mass-properties.d.ts +10 -0
- package/dist/physics/body/collider-shape/mass-properties.js +48 -0
- package/dist/physics/body/collider-shape/mass-properties.js.map +1 -0
- package/dist/physics/body/collider-shape/public.d.ts +4 -0
- package/dist/physics/body/collider-shape/public.js +6 -0
- package/dist/physics/body/collider-shape/public.js.map +1 -0
- package/dist/physics/body/collider-shape/schema.d.ts +4 -0
- package/dist/physics/body/collider-shape/schema.js +3 -0
- package/dist/physics/body/collider-shape/schema.js.map +1 -0
- package/dist/physics/body/collider-shape/to-index.d.ts +3 -0
- package/dist/physics/body/collider-shape/to-index.js +6 -0
- package/dist/physics/body/collider-shape/to-index.js.map +1 -0
- package/dist/physics/body/rigid-body.d.ts +23 -0
- package/dist/physics/body/rigid-body.js +3 -0
- package/dist/physics/body/rigid-body.js.map +1 -0
- package/dist/physics/body/static-collider.d.ts +25 -0
- package/dist/physics/body/static-collider.js +3 -0
- package/dist/physics/body/static-collider.js.map +1 -0
- package/dist/physics/joint/joint-plugin.d.ts +88 -0
- package/dist/physics/joint/joint-plugin.js +32 -0
- package/dist/physics/joint/joint-plugin.js.map +1 -0
- package/dist/physics/joint/joint-type/joint-type.d.ts +15 -0
- package/dist/physics/joint/joint-type/joint-type.js +3 -0
- package/dist/physics/joint/joint-type/joint-type.js.map +1 -0
- package/dist/physics/joint/joint-type/public.d.ts +1 -0
- package/dist/physics/joint/joint-type/public.js +3 -0
- package/dist/physics/joint/joint-type/public.js.map +1 -0
- package/dist/physics/joint/joint-type/schema.d.ts +4 -0
- package/dist/physics/joint/joint-type/schema.js +3 -0
- package/dist/physics/joint/joint-type/schema.js.map +1 -0
- package/dist/physics/joint/joint.d.ts +24 -0
- package/dist/physics/joint/joint.js +3 -0
- package/dist/physics/joint/joint.js.map +1 -0
- package/dist/physics/physics-clock-plugin.d.ts +86 -0
- package/dist/physics/physics-clock-plugin.js +37 -0
- package/dist/physics/physics-clock-plugin.js.map +1 -0
- package/dist/physics/physics-clock.test.d.ts +1 -0
- package/dist/physics/physics-clock.test.js +45 -0
- package/dist/physics/physics-clock.test.js.map +1 -0
- package/dist/physics/physics-data-plugin.d.ts +348 -0
- package/dist/physics/physics-data-plugin.js +71 -0
- package/dist/physics/physics-data-plugin.js.map +1 -0
- package/dist/physics/ragdoll/fit-bone-capsules.d.ts +39 -0
- package/dist/physics/ragdoll/fit-bone-capsules.js +87 -0
- package/dist/physics/ragdoll/fit-bone-capsules.js.map +1 -0
- package/dist/physics/ragdoll/fit-bone-capsules.test.d.ts +1 -0
- package/dist/physics/ragdoll/fit-bone-capsules.test.js +67 -0
- package/dist/physics/ragdoll/fit-bone-capsules.test.js.map +1 -0
- package/dist/physics/solvers/jolt-solver-plugin.d.ts +465 -0
- package/dist/physics/solvers/jolt-solver-plugin.js +440 -0
- package/dist/physics/solvers/jolt-solver-plugin.js.map +1 -0
- package/dist/physics/solvers/rapier-jolt.benchmark.test.d.ts +1 -0
- package/dist/physics/solvers/rapier-jolt.benchmark.test.js +35 -0
- package/dist/physics/solvers/rapier-jolt.benchmark.test.js.map +1 -0
- package/dist/physics/solvers/rapier-solver-plugin.d.ts +444 -0
- package/dist/physics/solvers/rapier-solver-plugin.js +284 -0
- package/dist/physics/solvers/rapier-solver-plugin.js.map +1 -0
- package/dist/physics/solvers/solver-benchmark.d.ts +45 -0
- package/dist/physics/solvers/solver-benchmark.js +115 -0
- package/dist/physics/solvers/solver-benchmark.js.map +1 -0
- package/package.json +34 -0
- package/src/core/core-plugin.ts +92 -0
- package/src/core/frame-time/frame-time-plugin.ts +44 -0
- package/src/core/frame-time/frame-time.ts +21 -0
- package/src/core/frame-time/public.ts +3 -0
- package/src/graphics/animation/animation-data-plugin.ts +119 -0
- package/src/graphics/animation/animation-plugin.test.ts +161 -0
- package/src/graphics/animation/animation-plugin.ts +26 -0
- package/src/graphics/animation/animation-track/animation-track.ts +17 -0
- package/src/graphics/animation/animation-track/componentwise-lerp.ts +24 -0
- package/src/graphics/animation/animation-track/interpolate.ts +24 -0
- package/src/graphics/animation/animation-track/public.ts +3 -0
- package/src/graphics/animation/animation-track/sample.ts +48 -0
- package/src/graphics/animation/interpolation-mode/interpolation-mode.ts +8 -0
- package/src/graphics/animation/interpolation-mode/public.ts +3 -0
- package/src/graphics/animation/interpolation-mode/schema.ts +5 -0
- package/src/graphics/camera/camera-plugin.ts +37 -0
- package/src/graphics/camera/camera.ts +8 -0
- package/src/graphics/camera/orbit/attach-orbit-drag.ts +62 -0
- package/src/graphics/camera/orbit/orbit-data-plugin.ts +44 -0
- package/src/graphics/camera/orbit/orbit-plugin.ts +13 -0
- package/src/graphics/camera/orbit/orbit-system-plugin.ts +74 -0
- package/src/graphics/camera/orbit/orbit.ts +36 -0
- package/src/graphics/camera/orbit/public.ts +7 -0
- package/src/graphics/camera/public.ts +6 -0
- package/src/graphics/camera/schema.ts +21 -0
- package/src/graphics/camera/screen-to-world-ray.ts +47 -0
- package/src/graphics/camera/to-view-projection.ts +29 -0
- package/src/graphics/graphics-plugin.ts +108 -0
- package/src/graphics/picking/pick-hit.ts +13 -0
- package/src/graphics/picking/picking-plugin.ts +101 -0
- package/src/graphics/plugins.md +120 -0
- package/src/graphics/rendering/bone-collider-plugin.ts +182 -0
- package/src/graphics/rendering/display-transform-plugin.ts +26 -0
- package/src/graphics/rendering/ibl-render/brdf.wgsl.ts +43 -0
- package/src/graphics/rendering/ibl-render/ibl/brdf-lut.ts +101 -0
- package/src/graphics/rendering/ibl-render/ibl/build-ibl-resources.ts +57 -0
- package/src/graphics/rendering/ibl-render/ibl/create-cubemap.ts +17 -0
- package/src/graphics/rendering/ibl-render/ibl/cube-face-view.ts +11 -0
- package/src/graphics/rendering/ibl-render/ibl/cubemap-sample-view.ts +9 -0
- package/src/graphics/rendering/ibl-render/ibl/environment.ts +190 -0
- package/src/graphics/rendering/ibl-render/ibl/float-to-half.ts +35 -0
- package/src/graphics/rendering/ibl-render/ibl/ibl-math.wgsl.ts +60 -0
- package/src/graphics/rendering/ibl-render/ibl/irradiance.ts +105 -0
- package/src/graphics/rendering/ibl-render/ibl/parse-hdr.ts +108 -0
- package/src/graphics/rendering/ibl-render/ibl/prefilter.ts +121 -0
- package/src/graphics/rendering/ibl-render/ibl/render-helpers.ts +17 -0
- package/src/graphics/rendering/ibl-render/ibl-render-plugin.ts +415 -0
- package/src/graphics/rendering/ibl-render/ibl-shader.wgsl.ts +185 -0
- package/src/graphics/rendering/ibl-render/skybox-shader.wgsl.ts +51 -0
- package/src/graphics/rendering/interpolation-plugin.ts +97 -0
- package/src/graphics/rendering/interpolation.test.ts +52 -0
- package/src/graphics/rendering/jolt-ragdoll-plugin.ts +174 -0
- package/src/graphics/rendering/material-gpu/material-arrays.ts +113 -0
- package/src/graphics/rendering/material-gpu/material-bind-group.ts +61 -0
- package/src/graphics/rendering/material-gpu/material-gpu-plugin.ts +95 -0
- package/src/graphics/rendering/model-collider-plugin.ts +77 -0
- package/src/graphics/rendering/pbr-core-plugin.ts +40 -0
- package/src/graphics/rendering/pbr-render/pbr-array-shader.wgsl.ts +146 -0
- package/src/graphics/rendering/pbr-render/pbr-render-plugin.ts +247 -0
- package/src/graphics/rendering/pbr-render/physics-bridge-plugin.ts +106 -0
- package/src/graphics/rendering/ragdoll-trigger-plugin.ts +21 -0
- package/src/graphics/rendering/rendering-plugin.ts +3 -0
- package/src/graphics/rendering/skinning/skinning-attributes/layout.ts +20 -0
- package/src/graphics/rendering/skinning/skinning-attributes/public.ts +3 -0
- package/src/graphics/rendering/skinning/skinning-attributes/skinning-attributes.ts +3 -0
- package/src/graphics/rendering/skinning/skinning-plugin.ts +213 -0
- package/src/graphics/rendering/standard-vertex/layout.ts +19 -0
- package/src/graphics/rendering/standard-vertex/public.ts +4 -0
- package/src/graphics/rendering/standard-vertex/schema.ts +17 -0
- package/src/graphics/rendering/standard-vertex/standard-vertex.ts +8 -0
- package/src/graphics/rendering/visible-material/color-material-options.ts +10 -0
- package/src/graphics/rendering/visible-material/create-bind-group-layout.ts +35 -0
- package/src/graphics/rendering/visible-material/create-color-bind-group.ts +40 -0
- package/src/graphics/rendering/visible-material/public.ts +6 -0
- package/src/graphics/rendering/visible-material/schema.ts +25 -0
- package/src/graphics/rendering/visible-material/visible-material.ts +8 -0
- package/src/graphics/scene/light/light-plugin.ts +37 -0
- package/src/graphics/scene/light/light.ts +18 -0
- package/src/graphics/scene/light/public.ts +1 -0
- package/src/graphics/scene/model/geometry/geometry.ts +12 -0
- package/src/graphics/scene/model/geometry/public.ts +4 -0
- package/src/graphics/scene/model/gltf/accessor-view.ts +53 -0
- package/src/graphics/scene/model/gltf/build-material-bind-group.ts +110 -0
- package/src/graphics/scene/model/gltf/compute-world-matrices.ts +43 -0
- package/src/graphics/scene/model/gltf/create-color-material.ts +47 -0
- package/src/graphics/scene/model/gltf/decode-images.ts +93 -0
- package/src/graphics/scene/model/gltf/gltf-schema.ts +161 -0
- package/src/graphics/scene/model/gltf/load-gltf-model.ts +220 -0
- package/src/graphics/scene/model/gltf/pack-vertex-buffer.ts +116 -0
- package/src/graphics/scene/model/gltf/parse-animations.ts +66 -0
- package/src/graphics/scene/model/gltf/parse-glb.ts +51 -0
- package/src/graphics/scene/model/gltf/parse-skin.ts +67 -0
- package/src/graphics/scene/model/model-loader-plugin.ts +131 -0
- package/src/graphics/scene/model/model-plugin.ts +46 -0
- package/src/graphics/scene/model/model.ts +15 -0
- package/src/graphics/scene/model/public.ts +1 -0
- package/src/graphics/scene/model/shape/convex-hull.test.ts +72 -0
- package/src/graphics/scene/model/shape/convex-hull.ts +141 -0
- package/src/graphics/scene/model/shape/shape-geometry-plugin.ts +61 -0
- package/src/graphics/scene/model/shape/shape-mesh.ts +150 -0
- package/src/graphics/scene/model/shape/upload-shape-mesh.ts +14 -0
- package/src/graphics/scene/model/world-bounds-plugin.ts +88 -0
- package/src/graphics/scene/node/node-data-plugin.ts +28 -0
- package/src/graphics/scene/node/node-plugin.ts +13 -0
- package/src/graphics/scene/node/node.ts +23 -0
- package/src/graphics/scene/node/public.ts +1 -0
- package/src/graphics/scene/node/transform-plugin.ts +72 -0
- package/src/graphics/scene/scene-plugin.ts +20 -0
- package/src/graphics/scene/scene-uniforms/create-bind-group-layout.ts +19 -0
- package/src/graphics/scene/scene-uniforms/public.ts +5 -0
- package/src/graphics/scene/scene-uniforms/scene-uniforms-plugin.ts +64 -0
- package/src/graphics/scene/scene-uniforms/scene-uniforms.ts +15 -0
- package/src/graphics/scene/scene-uniforms/schema.ts +17 -0
- package/src/index.ts +72 -0
- package/src/material/material-plugin.ts +61 -0
- package/src/material/material.ts +38 -0
- package/src/material/public.ts +4 -0
- package/src/material/standard-materials.ts +43 -0
- package/src/physics/README.md +71 -0
- package/src/physics/body/body-type/body-type.ts +14 -0
- package/src/physics/body/body-type/is-dynamic.ts +8 -0
- package/src/physics/body/body-type/public.ts +4 -0
- package/src/physics/body/body-type/schema.ts +5 -0
- package/src/physics/body/collider-mesh.ts +13 -0
- package/src/physics/body/collider-shape/collider-shape.ts +19 -0
- package/src/physics/body/collider-shape/list.ts +7 -0
- package/src/physics/body/collider-shape/mass-properties.ts +47 -0
- package/src/physics/body/collider-shape/public.ts +6 -0
- package/src/physics/body/collider-shape/schema.ts +5 -0
- package/src/physics/body/collider-shape/to-index.ts +8 -0
- package/src/physics/body/rigid-body.ts +26 -0
- package/src/physics/body/static-collider.ts +28 -0
- package/src/physics/joint/joint-plugin.ts +33 -0
- package/src/physics/joint/joint-type/joint-type.ts +19 -0
- package/src/physics/joint/joint-type/public.ts +3 -0
- package/src/physics/joint/joint-type/schema.ts +5 -0
- package/src/physics/joint/joint.ts +27 -0
- package/src/physics/physics-clock-plugin.ts +61 -0
- package/src/physics/physics-clock.test.ts +55 -0
- package/src/physics/physics-data-plugin.ts +73 -0
- package/src/physics/ragdoll/fit-bone-capsules.test.ts +66 -0
- package/src/physics/ragdoll/fit-bone-capsules.ts +106 -0
- package/src/physics/solvers/README.md +63 -0
- package/src/physics/solvers/jolt-solver-plugin.ts +382 -0
- package/src/physics/solvers/rapier-jolt.benchmark.test.ts +39 -0
- package/src/physics/solvers/rapier-solver-plugin.ts +251 -0
- package/src/physics/solvers/solver-benchmark.ts +172 -0
- package/tsconfig.json +25 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { Database } from "@adobe/data/ecs";
|
|
3
|
+
import { pbrCore } from "../../rendering/pbr-core-plugin.js";
|
|
4
|
+
import { animation } from "../../animation/animation-plugin.js";
|
|
5
|
+
import { core } from "../../../core/core-plugin.js";
|
|
6
|
+
import { Model } from "./model.js";
|
|
7
|
+
import { loadGltfPrimitives } from "./gltf/load-gltf-model.js";
|
|
8
|
+
/**
|
|
9
|
+
* modelLoader
|
|
10
|
+
* query: Geometry-_bounds
|
|
11
|
+
* read:
|
|
12
|
+
* modelUrl
|
|
13
|
+
* write:
|
|
14
|
+
* _bounds: Aabb
|
|
15
|
+
* _skinJointTemplate: JointTemplate[]
|
|
16
|
+
* _skinInverseBindMatrices: Float32Array | null
|
|
17
|
+
* _animationClipRefs: EntityId[]
|
|
18
|
+
* _VisibleMaterial
|
|
19
|
+
* _PbrPrimitive
|
|
20
|
+
* AnimationClip // when the glTF carries animations
|
|
21
|
+
*/
|
|
22
|
+
export const modelLoader = Database.Plugin.create({
|
|
23
|
+
extends: Database.Plugin.combine(pbrCore, Model.plugin, core, animation),
|
|
24
|
+
components: {
|
|
25
|
+
_bounds: { default: null },
|
|
26
|
+
_skinJointTemplate: { default: [] },
|
|
27
|
+
_skinInverseBindMatrices: { default: null },
|
|
28
|
+
_animationClipRefs: { default: [] },
|
|
29
|
+
// CPU-retained model-space collision geometry (auto-collider source).
|
|
30
|
+
_cpuPositions: { default: null },
|
|
31
|
+
_cpuIndices: { default: null },
|
|
32
|
+
// CPU-retained skin (mesh-bind positions + 4 joints + 4 weights per vertex),
|
|
33
|
+
// for fitting per-bone ragdoll capsules.
|
|
34
|
+
_cpuSkin: { default: null },
|
|
35
|
+
},
|
|
36
|
+
transactions: {
|
|
37
|
+
insertLoadedPrimitives(t, args) {
|
|
38
|
+
for (const p of args.primitives) {
|
|
39
|
+
const materialId = t.archetypes._VisibleMaterial.insert({
|
|
40
|
+
ephemeral: true,
|
|
41
|
+
_materialBindGroup: p.pbrMaterialBindGroup,
|
|
42
|
+
_geometry: args.geometry,
|
|
43
|
+
});
|
|
44
|
+
t.archetypes._PbrPrimitive.insert({
|
|
45
|
+
ephemeral: true,
|
|
46
|
+
_geometry: args.geometry,
|
|
47
|
+
_material: materialId,
|
|
48
|
+
_vertexBuffer: p.pbrVertexBuffer,
|
|
49
|
+
_skinVertexBuffer: p.pbrSkinVertexBuffer,
|
|
50
|
+
_indexBuffer: p.pbrIndexBuffer,
|
|
51
|
+
_indexCount: p.pbrIndexCount,
|
|
52
|
+
_indexFormat: p.pbrIndexFormat,
|
|
53
|
+
_nodeLocalMatrix: p.pbrNodeLocalMatrix,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
const clipRefs = [];
|
|
57
|
+
for (const anim of args.animations) {
|
|
58
|
+
if (anim.tracks.length === 0)
|
|
59
|
+
continue;
|
|
60
|
+
const clipId = t.archetypes.AnimationClip.insert({
|
|
61
|
+
animationClipTracks: anim.tracks,
|
|
62
|
+
animationClipDuration: anim.duration,
|
|
63
|
+
});
|
|
64
|
+
clipRefs.push(clipId);
|
|
65
|
+
}
|
|
66
|
+
t.update(args.geometry, {
|
|
67
|
+
_bounds: args.bounds,
|
|
68
|
+
_skinJointTemplate: args.skinJointTemplate,
|
|
69
|
+
_skinInverseBindMatrices: args.skinInverseBindMatrices,
|
|
70
|
+
_animationClipRefs: clipRefs,
|
|
71
|
+
_cpuPositions: args.collision?.positions ?? null,
|
|
72
|
+
_cpuIndices: args.collision?.indices ?? null,
|
|
73
|
+
_cpuSkin: args.skinVertices,
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
systems: {
|
|
78
|
+
modelLoadSystem: {
|
|
79
|
+
create: db => {
|
|
80
|
+
const inFlight = new Set();
|
|
81
|
+
return () => {
|
|
82
|
+
const { device } = db.store.resources;
|
|
83
|
+
if (!device)
|
|
84
|
+
return;
|
|
85
|
+
for (const arch of db.store.queryArchetypes(["modelUrl"])) {
|
|
86
|
+
const ids = arch.columns.id;
|
|
87
|
+
const urls = arch.columns.modelUrl;
|
|
88
|
+
for (let i = 0; i < arch.rowCount; i++) {
|
|
89
|
+
const id = ids.get(i);
|
|
90
|
+
if (inFlight.has(id))
|
|
91
|
+
continue;
|
|
92
|
+
const url = urls.get(i);
|
|
93
|
+
if (!url)
|
|
94
|
+
continue; // procedural geometries (shapes) carry no URL
|
|
95
|
+
inFlight.add(id);
|
|
96
|
+
loadGltfPrimitives(device, url)
|
|
97
|
+
.then(loaded => {
|
|
98
|
+
db.transactions.insertLoadedPrimitives({
|
|
99
|
+
geometry: id,
|
|
100
|
+
bounds: loaded.bounds,
|
|
101
|
+
primitives: loaded.primitives,
|
|
102
|
+
skinJointTemplate: loaded.skin?.jointTemplate ?? [],
|
|
103
|
+
skinInverseBindMatrices: loaded.skin?.inverseBindMatrices ?? null,
|
|
104
|
+
animations: loaded.animations,
|
|
105
|
+
collision: loaded.collision,
|
|
106
|
+
skinVertices: loaded.skinVertices,
|
|
107
|
+
});
|
|
108
|
+
})
|
|
109
|
+
.catch(err => {
|
|
110
|
+
console.error("[modelLoader] Failed to load model", urls.get(i), err);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
},
|
|
116
|
+
schedule: { during: ["preUpdate"] },
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
//# sourceMappingURL=model-loader-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-loader-plugin.js","sourceRoot":"","sources":["../../../../src/graphics/scene/model/model-loader-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import { Quat, type Vec3 } from "@adobe/data/math";
|
|
2
|
+
/**
|
|
3
|
+
* Authored renderable scene. A `Geometry` is an asset identified by URL; a
|
|
4
|
+
* `Model` is a placed instance of a Geometry — a Node plus a reference to
|
|
5
|
+
* the Geometry it draws.
|
|
6
|
+
*
|
|
7
|
+
* Loading is performed by `modelLoader`, which reads the `modelUrl` and
|
|
8
|
+
* produces the GPU primitives the renderers consume.
|
|
9
|
+
*/
|
|
10
|
+
export declare const model: {
|
|
11
|
+
readonly components: {
|
|
12
|
+
readonly visible: {
|
|
13
|
+
readonly type: "boolean";
|
|
14
|
+
readonly const: true;
|
|
15
|
+
readonly default: true;
|
|
16
|
+
};
|
|
17
|
+
readonly position: {
|
|
18
|
+
readonly type: "array";
|
|
19
|
+
readonly items: {
|
|
20
|
+
readonly type: "number";
|
|
21
|
+
readonly precision: 1;
|
|
22
|
+
readonly default: number;
|
|
23
|
+
};
|
|
24
|
+
readonly minItems: 3;
|
|
25
|
+
readonly maxItems: 3;
|
|
26
|
+
readonly default: readonly [0, 0, 0];
|
|
27
|
+
};
|
|
28
|
+
readonly rotation: {
|
|
29
|
+
readonly type: "array";
|
|
30
|
+
readonly items: {
|
|
31
|
+
readonly type: "number";
|
|
32
|
+
readonly precision: 1;
|
|
33
|
+
readonly default: number;
|
|
34
|
+
};
|
|
35
|
+
readonly minItems: 4;
|
|
36
|
+
readonly maxItems: 4;
|
|
37
|
+
readonly default: readonly [0, 0, 0, 1];
|
|
38
|
+
readonly interpolators: {
|
|
39
|
+
readonly linear: (q1: any, q2: any, t: number) => any;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
readonly scale: {
|
|
43
|
+
readonly type: "array";
|
|
44
|
+
readonly items: {
|
|
45
|
+
readonly type: "number";
|
|
46
|
+
readonly precision: 1;
|
|
47
|
+
readonly default: number;
|
|
48
|
+
};
|
|
49
|
+
readonly minItems: 3;
|
|
50
|
+
readonly maxItems: 3;
|
|
51
|
+
readonly default: readonly [0, 0, 0];
|
|
52
|
+
};
|
|
53
|
+
readonly parent: {
|
|
54
|
+
readonly type: "integer";
|
|
55
|
+
readonly minimum: -2147483648;
|
|
56
|
+
readonly maximum: 2147483647;
|
|
57
|
+
readonly default: number;
|
|
58
|
+
};
|
|
59
|
+
readonly _worldMatrix: {
|
|
60
|
+
readonly type: "array";
|
|
61
|
+
readonly items: {
|
|
62
|
+
readonly type: "number";
|
|
63
|
+
readonly precision: 1;
|
|
64
|
+
readonly default: number;
|
|
65
|
+
};
|
|
66
|
+
readonly minItems: 16;
|
|
67
|
+
readonly maxItems: 16;
|
|
68
|
+
readonly default: readonly [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
|
69
|
+
};
|
|
70
|
+
readonly _worldBounds: {
|
|
71
|
+
readonly type: "object";
|
|
72
|
+
readonly properties: {
|
|
73
|
+
readonly min: {
|
|
74
|
+
readonly type: "array";
|
|
75
|
+
readonly items: {
|
|
76
|
+
readonly type: "number";
|
|
77
|
+
readonly precision: 1;
|
|
78
|
+
readonly default: number;
|
|
79
|
+
};
|
|
80
|
+
readonly minItems: 3;
|
|
81
|
+
readonly maxItems: 3;
|
|
82
|
+
readonly default: readonly [0, 0, 0];
|
|
83
|
+
};
|
|
84
|
+
readonly max: {
|
|
85
|
+
readonly type: "array";
|
|
86
|
+
readonly items: {
|
|
87
|
+
readonly type: "number";
|
|
88
|
+
readonly precision: 1;
|
|
89
|
+
readonly default: number;
|
|
90
|
+
};
|
|
91
|
+
readonly minItems: 3;
|
|
92
|
+
readonly maxItems: 3;
|
|
93
|
+
readonly default: readonly [0, 0, 0];
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
readonly required: readonly ["min", "max"];
|
|
97
|
+
readonly additionalProperties: false;
|
|
98
|
+
readonly default: {
|
|
99
|
+
readonly min: readonly [0, 0, 0];
|
|
100
|
+
readonly max: readonly [0, 0, 0];
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
} & {} & {
|
|
104
|
+
readonly modelUrl: {
|
|
105
|
+
readonly type: "string";
|
|
106
|
+
};
|
|
107
|
+
readonly geometry: {
|
|
108
|
+
readonly type: "integer";
|
|
109
|
+
readonly minimum: -2147483648;
|
|
110
|
+
readonly maximum: 2147483647;
|
|
111
|
+
readonly default: number;
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
readonly resources: {};
|
|
115
|
+
readonly archetypes: {
|
|
116
|
+
readonly Node: readonly ["position", "rotation", "scale", "parent", "visible"];
|
|
117
|
+
} & {} & {
|
|
118
|
+
readonly Geometry: readonly ["modelUrl"];
|
|
119
|
+
readonly Model: readonly ["geometry", "position", "rotation", "scale", "visible", "parent"];
|
|
120
|
+
};
|
|
121
|
+
readonly transactions: {} & {} & {
|
|
122
|
+
readonly insertGeometry: (t: import("@adobe/data/ecs").TransactionContext<import("@adobe/data/schema").FromSchemas<{
|
|
123
|
+
readonly modelUrl: {
|
|
124
|
+
readonly type: "string";
|
|
125
|
+
};
|
|
126
|
+
readonly geometry: {
|
|
127
|
+
readonly type: "integer";
|
|
128
|
+
readonly minimum: -2147483648;
|
|
129
|
+
readonly maximum: 2147483647;
|
|
130
|
+
readonly default: number;
|
|
131
|
+
};
|
|
132
|
+
} & {
|
|
133
|
+
readonly visible: {
|
|
134
|
+
readonly type: "boolean";
|
|
135
|
+
readonly const: true;
|
|
136
|
+
readonly default: true;
|
|
137
|
+
};
|
|
138
|
+
readonly position: {
|
|
139
|
+
readonly type: "array";
|
|
140
|
+
readonly items: {
|
|
141
|
+
readonly type: "number";
|
|
142
|
+
readonly precision: 1;
|
|
143
|
+
readonly default: number;
|
|
144
|
+
};
|
|
145
|
+
readonly minItems: 3;
|
|
146
|
+
readonly maxItems: 3;
|
|
147
|
+
readonly default: readonly [0, 0, 0];
|
|
148
|
+
};
|
|
149
|
+
readonly rotation: {
|
|
150
|
+
readonly type: "array";
|
|
151
|
+
readonly items: {
|
|
152
|
+
readonly type: "number";
|
|
153
|
+
readonly precision: 1;
|
|
154
|
+
readonly default: number;
|
|
155
|
+
};
|
|
156
|
+
readonly minItems: 4;
|
|
157
|
+
readonly maxItems: 4;
|
|
158
|
+
readonly default: readonly [0, 0, 0, 1];
|
|
159
|
+
readonly interpolators: {
|
|
160
|
+
readonly linear: (q1: any, q2: any, t: number) => any;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
readonly scale: {
|
|
164
|
+
readonly type: "array";
|
|
165
|
+
readonly items: {
|
|
166
|
+
readonly type: "number";
|
|
167
|
+
readonly precision: 1;
|
|
168
|
+
readonly default: number;
|
|
169
|
+
};
|
|
170
|
+
readonly minItems: 3;
|
|
171
|
+
readonly maxItems: 3;
|
|
172
|
+
readonly default: readonly [0, 0, 0];
|
|
173
|
+
};
|
|
174
|
+
readonly parent: {
|
|
175
|
+
readonly type: "integer";
|
|
176
|
+
readonly minimum: -2147483648;
|
|
177
|
+
readonly maximum: 2147483647;
|
|
178
|
+
readonly default: number;
|
|
179
|
+
};
|
|
180
|
+
readonly _worldMatrix: {
|
|
181
|
+
readonly type: "array";
|
|
182
|
+
readonly items: {
|
|
183
|
+
readonly type: "number";
|
|
184
|
+
readonly precision: 1;
|
|
185
|
+
readonly default: number;
|
|
186
|
+
};
|
|
187
|
+
readonly minItems: 16;
|
|
188
|
+
readonly maxItems: 16;
|
|
189
|
+
readonly default: readonly [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
|
190
|
+
};
|
|
191
|
+
readonly _worldBounds: {
|
|
192
|
+
readonly type: "object";
|
|
193
|
+
readonly properties: {
|
|
194
|
+
readonly min: {
|
|
195
|
+
readonly type: "array";
|
|
196
|
+
readonly items: {
|
|
197
|
+
readonly type: "number";
|
|
198
|
+
readonly precision: 1;
|
|
199
|
+
readonly default: number;
|
|
200
|
+
};
|
|
201
|
+
readonly minItems: 3;
|
|
202
|
+
readonly maxItems: 3;
|
|
203
|
+
readonly default: readonly [0, 0, 0];
|
|
204
|
+
};
|
|
205
|
+
readonly max: {
|
|
206
|
+
readonly type: "array";
|
|
207
|
+
readonly items: {
|
|
208
|
+
readonly type: "number";
|
|
209
|
+
readonly precision: 1;
|
|
210
|
+
readonly default: number;
|
|
211
|
+
};
|
|
212
|
+
readonly minItems: 3;
|
|
213
|
+
readonly maxItems: 3;
|
|
214
|
+
readonly default: readonly [0, 0, 0];
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
readonly required: readonly ["min", "max"];
|
|
218
|
+
readonly additionalProperties: false;
|
|
219
|
+
readonly default: {
|
|
220
|
+
readonly min: readonly [0, 0, 0];
|
|
221
|
+
readonly max: readonly [0, 0, 0];
|
|
222
|
+
};
|
|
223
|
+
};
|
|
224
|
+
} & {}>, import("@adobe/data/schema").FromSchemas<{}>, {
|
|
225
|
+
readonly Geometry: readonly ["modelUrl"];
|
|
226
|
+
readonly Model: readonly ["geometry", "position", "rotation", "scale", "visible", "parent"];
|
|
227
|
+
} & {
|
|
228
|
+
readonly Node: readonly ["position", "rotation", "scale", "parent", "visible"];
|
|
229
|
+
} & {}, {} & {} & {}>, args: {
|
|
230
|
+
modelUrl: string;
|
|
231
|
+
}) => number;
|
|
232
|
+
readonly insertModel: (t: import("@adobe/data/ecs").TransactionContext<import("@adobe/data/schema").FromSchemas<{
|
|
233
|
+
readonly modelUrl: {
|
|
234
|
+
readonly type: "string";
|
|
235
|
+
};
|
|
236
|
+
readonly geometry: {
|
|
237
|
+
readonly type: "integer";
|
|
238
|
+
readonly minimum: -2147483648;
|
|
239
|
+
readonly maximum: 2147483647;
|
|
240
|
+
readonly default: number;
|
|
241
|
+
};
|
|
242
|
+
} & {
|
|
243
|
+
readonly visible: {
|
|
244
|
+
readonly type: "boolean";
|
|
245
|
+
readonly const: true;
|
|
246
|
+
readonly default: true;
|
|
247
|
+
};
|
|
248
|
+
readonly position: {
|
|
249
|
+
readonly type: "array";
|
|
250
|
+
readonly items: {
|
|
251
|
+
readonly type: "number";
|
|
252
|
+
readonly precision: 1;
|
|
253
|
+
readonly default: number;
|
|
254
|
+
};
|
|
255
|
+
readonly minItems: 3;
|
|
256
|
+
readonly maxItems: 3;
|
|
257
|
+
readonly default: readonly [0, 0, 0];
|
|
258
|
+
};
|
|
259
|
+
readonly rotation: {
|
|
260
|
+
readonly type: "array";
|
|
261
|
+
readonly items: {
|
|
262
|
+
readonly type: "number";
|
|
263
|
+
readonly precision: 1;
|
|
264
|
+
readonly default: number;
|
|
265
|
+
};
|
|
266
|
+
readonly minItems: 4;
|
|
267
|
+
readonly maxItems: 4;
|
|
268
|
+
readonly default: readonly [0, 0, 0, 1];
|
|
269
|
+
readonly interpolators: {
|
|
270
|
+
readonly linear: (q1: any, q2: any, t: number) => any;
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
readonly scale: {
|
|
274
|
+
readonly type: "array";
|
|
275
|
+
readonly items: {
|
|
276
|
+
readonly type: "number";
|
|
277
|
+
readonly precision: 1;
|
|
278
|
+
readonly default: number;
|
|
279
|
+
};
|
|
280
|
+
readonly minItems: 3;
|
|
281
|
+
readonly maxItems: 3;
|
|
282
|
+
readonly default: readonly [0, 0, 0];
|
|
283
|
+
};
|
|
284
|
+
readonly parent: {
|
|
285
|
+
readonly type: "integer";
|
|
286
|
+
readonly minimum: -2147483648;
|
|
287
|
+
readonly maximum: 2147483647;
|
|
288
|
+
readonly default: number;
|
|
289
|
+
};
|
|
290
|
+
readonly _worldMatrix: {
|
|
291
|
+
readonly type: "array";
|
|
292
|
+
readonly items: {
|
|
293
|
+
readonly type: "number";
|
|
294
|
+
readonly precision: 1;
|
|
295
|
+
readonly default: number;
|
|
296
|
+
};
|
|
297
|
+
readonly minItems: 16;
|
|
298
|
+
readonly maxItems: 16;
|
|
299
|
+
readonly default: readonly [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
|
300
|
+
};
|
|
301
|
+
readonly _worldBounds: {
|
|
302
|
+
readonly type: "object";
|
|
303
|
+
readonly properties: {
|
|
304
|
+
readonly min: {
|
|
305
|
+
readonly type: "array";
|
|
306
|
+
readonly items: {
|
|
307
|
+
readonly type: "number";
|
|
308
|
+
readonly precision: 1;
|
|
309
|
+
readonly default: number;
|
|
310
|
+
};
|
|
311
|
+
readonly minItems: 3;
|
|
312
|
+
readonly maxItems: 3;
|
|
313
|
+
readonly default: readonly [0, 0, 0];
|
|
314
|
+
};
|
|
315
|
+
readonly max: {
|
|
316
|
+
readonly type: "array";
|
|
317
|
+
readonly items: {
|
|
318
|
+
readonly type: "number";
|
|
319
|
+
readonly precision: 1;
|
|
320
|
+
readonly default: number;
|
|
321
|
+
};
|
|
322
|
+
readonly minItems: 3;
|
|
323
|
+
readonly maxItems: 3;
|
|
324
|
+
readonly default: readonly [0, 0, 0];
|
|
325
|
+
};
|
|
326
|
+
};
|
|
327
|
+
readonly required: readonly ["min", "max"];
|
|
328
|
+
readonly additionalProperties: false;
|
|
329
|
+
readonly default: {
|
|
330
|
+
readonly min: readonly [0, 0, 0];
|
|
331
|
+
readonly max: readonly [0, 0, 0];
|
|
332
|
+
};
|
|
333
|
+
};
|
|
334
|
+
} & {}>, import("@adobe/data/schema").FromSchemas<{}>, {
|
|
335
|
+
readonly Geometry: readonly ["modelUrl"];
|
|
336
|
+
readonly Model: readonly ["geometry", "position", "rotation", "scale", "visible", "parent"];
|
|
337
|
+
} & {
|
|
338
|
+
readonly Node: readonly ["position", "rotation", "scale", "parent", "visible"];
|
|
339
|
+
} & {}, {} & {} & {}>, args: {
|
|
340
|
+
geometry: number;
|
|
341
|
+
position?: Vec3;
|
|
342
|
+
rotation?: Quat;
|
|
343
|
+
scale?: Vec3;
|
|
344
|
+
parent?: number;
|
|
345
|
+
}) => number;
|
|
346
|
+
};
|
|
347
|
+
readonly systems: import("@adobe/data/ecs").SystemDeclarations<"transformCreateWorldMatrix" | "transformSystem">;
|
|
348
|
+
readonly actions: {};
|
|
349
|
+
readonly services: {};
|
|
350
|
+
readonly computed: {};
|
|
351
|
+
readonly indexes: {} & {} & {};
|
|
352
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { Database, Entity } from "@adobe/data/ecs";
|
|
3
|
+
import { Quat } from "@adobe/data/math";
|
|
4
|
+
import { Node } from "../node/node.js";
|
|
5
|
+
/**
|
|
6
|
+
* Authored renderable scene. A `Geometry` is an asset identified by URL; a
|
|
7
|
+
* `Model` is a placed instance of a Geometry — a Node plus a reference to
|
|
8
|
+
* the Geometry it draws.
|
|
9
|
+
*
|
|
10
|
+
* Loading is performed by `modelLoader`, which reads the `modelUrl` and
|
|
11
|
+
* produces the GPU primitives the renderers consume.
|
|
12
|
+
*/
|
|
13
|
+
export const model = Database.Plugin.create({
|
|
14
|
+
extends: Node.plugin,
|
|
15
|
+
components: {
|
|
16
|
+
modelUrl: { type: "string" },
|
|
17
|
+
geometry: Entity.schema,
|
|
18
|
+
},
|
|
19
|
+
archetypes: {
|
|
20
|
+
Geometry: ["modelUrl"],
|
|
21
|
+
Model: ["geometry", "position", "rotation", "scale", "visible", "parent"],
|
|
22
|
+
},
|
|
23
|
+
transactions: {
|
|
24
|
+
insertGeometry(t, args) {
|
|
25
|
+
return t.archetypes.Geometry.insert({ modelUrl: args.modelUrl });
|
|
26
|
+
},
|
|
27
|
+
insertModel(t, args) {
|
|
28
|
+
return t.archetypes.Model.insert({
|
|
29
|
+
geometry: args.geometry,
|
|
30
|
+
position: args.position ?? [0, 0, 0],
|
|
31
|
+
rotation: args.rotation ?? Quat.identity,
|
|
32
|
+
scale: args.scale ?? [1, 1, 1],
|
|
33
|
+
visible: true,
|
|
34
|
+
parent: args.parent ?? 0,
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=model-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-plugin.js","sourceRoot":"","sources":["../../../../src/graphics/scene/model/model-plugin.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAa,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,IAAI,CAAC,MAAM;IACpB,UAAU,EAAE;QACR,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM;KAC1B;IACD,UAAU,EAAE;QACR,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,KAAK,EAAK,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;KAC/E;IACD,YAAY,EAAE;QACV,cAAc,CAAC,CAAC,EAAE,IAA0B;YACxC,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,WAAW,CAAC,CAAC,EAAE,IAMd;YACG,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;gBACxC,KAAK,EAAK,IAAI,CAAC,KAAK,IAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpC,OAAO,EAAG,IAAI;gBACd,MAAM,EAAI,IAAI,CAAC,MAAM,IAAM,CAAC;aAC/B,CAAC,CAAC;QACP,CAAC;KACJ;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Entity } from "@adobe/data/ecs";
|
|
2
|
+
import type { Node } from "../node/node.js";
|
|
3
|
+
/**
|
|
4
|
+
* One row of the `Model` archetype — a placed instance of a Geometry. A
|
|
5
|
+
* Node (transform + visibility + parent) plus a reference to the Geometry
|
|
6
|
+
* the renderer should draw.
|
|
7
|
+
*/
|
|
8
|
+
export interface Model extends Node {
|
|
9
|
+
geometry: Entity;
|
|
10
|
+
}
|
|
11
|
+
export * as Model from "./public.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/graphics/scene/model/model.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAcvD,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { model as plugin } from "./model-plugin.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../../../src/graphics/scene/model/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ShapeMesh } from "./shape-mesh.js";
|
|
2
|
+
/**
|
|
3
|
+
* Faceted render mesh of the convex hull of a point cloud (flat per-face normals,
|
|
4
|
+
* StandardVertex layout). A convex collider is *authored* as a point cloud — the
|
|
5
|
+
* physics engine builds the collision hull from the same points — but rendering
|
|
6
|
+
* needs a triangulated surface, which this computes. Phase-2 auto-hull (hull of a
|
|
7
|
+
* render mesh's vertices) reuses it.
|
|
8
|
+
*
|
|
9
|
+
* Incremental 3D hull: seed a tetrahedron, then fold each remaining point in by
|
|
10
|
+
* deleting the faces it can see and bridging the horizon to it. Every face's
|
|
11
|
+
* normal is oriented away from a fixed interior point (the seed centroid, always
|
|
12
|
+
* strictly inside a convex hull) — so orientation is robust without half-edge
|
|
13
|
+
* bookkeeping. Authored hulls are small (tens of points), so the simple O(n·f)
|
|
14
|
+
* form is plenty fast. Degenerate input (< 4 points or coplanar) → empty mesh.
|
|
15
|
+
*/
|
|
16
|
+
interface Face {
|
|
17
|
+
a: number;
|
|
18
|
+
b: number;
|
|
19
|
+
c: number;
|
|
20
|
+
nx: number;
|
|
21
|
+
ny: number;
|
|
22
|
+
nz: number;
|
|
23
|
+
}
|
|
24
|
+
export declare function convexHullMesh(points: Float32Array): ShapeMesh;
|
|
25
|
+
/**
|
|
26
|
+
* The deduplicated hull vertices (the extreme points) of a cloud — a minimal
|
|
27
|
+
* point set whose convex hull equals the cloud's. Used to feed a physics engine's
|
|
28
|
+
* convex-hull builder a *simplified* collider from a detailed mesh (thousands of
|
|
29
|
+
* verts → a few dozen). Empty for degenerate input.
|
|
30
|
+
*/
|
|
31
|
+
export declare function hullVertices(points: Float32Array): Float32Array;
|
|
32
|
+
/** The hull's triangular faces, each normal oriented outward, or null if the
|
|
33
|
+
* point cloud is degenerate (fewer than 4 points, or all coplanar). Exported
|
|
34
|
+
* for tests; rendering goes through {@link convexHullMesh}. */
|
|
35
|
+
export declare function hullFaces(points: Float32Array): Face[] | null;
|
|
36
|
+
export {};
|