@aura3d/engine 4.0.2 → 4.0.4
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/README.md +13 -3
- package/dist/animation/AnimationAction.d.ts +55 -1
- package/dist/animation/AnimationAction.d.ts.map +1 -1
- package/dist/animation/AnimationAction.js +156 -27
- package/dist/animation/AnimationAction.js.map +1 -1
- package/dist/animation/AnimationController.d.ts +8 -0
- package/dist/animation/AnimationController.d.ts.map +1 -1
- package/dist/animation/AnimationController.js.map +1 -1
- package/dist/animation/AnimationEvents.d.ts +1 -1
- package/dist/animation/AnimationEvents.d.ts.map +1 -1
- package/dist/animation/AnimationEvents.js +33 -14
- package/dist/animation/AnimationEvents.js.map +1 -1
- package/dist/animation/AnimationMixer.d.ts +35 -0
- package/dist/animation/AnimationMixer.d.ts.map +1 -1
- package/dist/animation/AnimationMixer.js +60 -10
- package/dist/animation/AnimationMixer.js.map +1 -1
- package/dist/animation/AnimationObjectGroup.d.ts +28 -0
- package/dist/animation/AnimationObjectGroup.d.ts.map +1 -0
- package/dist/animation/AnimationObjectGroup.js +242 -0
- package/dist/animation/AnimationObjectGroup.js.map +1 -0
- package/dist/animation/AnimationTrack.d.ts +18 -2
- package/dist/animation/AnimationTrack.d.ts.map +1 -1
- package/dist/animation/AnimationTrack.js +62 -0
- package/dist/animation/AnimationTrack.js.map +1 -1
- package/dist/animation/AnimationUtils.d.ts +56 -0
- package/dist/animation/AnimationUtils.d.ts.map +1 -0
- package/dist/animation/AnimationUtils.js +202 -0
- package/dist/animation/AnimationUtils.js.map +1 -0
- package/dist/animation/PropertyBinding.d.ts +93 -0
- package/dist/animation/PropertyBinding.d.ts.map +1 -0
- package/dist/animation/PropertyBinding.js +393 -0
- package/dist/animation/PropertyBinding.js.map +1 -0
- package/dist/animation/SceneAnimationBridge.d.ts +23 -1
- package/dist/animation/SceneAnimationBridge.d.ts.map +1 -1
- package/dist/animation/SceneAnimationBridge.js +152 -14
- package/dist/animation/SceneAnimationBridge.js.map +1 -1
- package/dist/animation/browser-index.d.ts +3 -0
- package/dist/animation/browser-index.d.ts.map +1 -1
- package/dist/animation/browser-index.js +3 -0
- package/dist/animation/browser-index.js.map +1 -1
- package/dist/animation/index.d.ts +3 -0
- package/dist/animation/index.d.ts.map +1 -1
- package/dist/animation/index.js +3 -0
- package/dist/animation/index.js.map +1 -1
- package/dist/animation/pose/blendKernels.d.ts +1 -1
- package/dist/animation/pose/blendKernels.d.ts.map +1 -1
- package/dist/animation/pose/blendKernels.js +3 -3
- package/dist/animation/pose/blendKernels.js.map +1 -1
- package/dist/assets/DataTextureLoader.d.ts +16 -0
- package/dist/assets/DataTextureLoader.d.ts.map +1 -0
- package/dist/assets/DataTextureLoader.js +29 -0
- package/dist/assets/DataTextureLoader.js.map +1 -0
- package/dist/assets/EXRLoader.d.ts +78 -0
- package/dist/assets/EXRLoader.d.ts.map +1 -0
- package/dist/assets/EXRLoader.js +1398 -0
- package/dist/assets/EXRLoader.js.map +1 -0
- package/dist/assets/FileLoader.d.ts +32 -0
- package/dist/assets/FileLoader.d.ts.map +1 -0
- package/dist/assets/FileLoader.js +79 -0
- package/dist/assets/FileLoader.js.map +1 -0
- package/dist/assets/GLTFRenderResources.d.ts +9 -0
- package/dist/assets/GLTFRenderResources.d.ts.map +1 -1
- package/dist/assets/GLTFRenderResources.js +47 -4
- package/dist/assets/GLTFRenderResources.js.map +1 -1
- package/dist/assets/GLTFSharedTextureCache.d.ts +40 -0
- package/dist/assets/GLTFSharedTextureCache.d.ts.map +1 -0
- package/dist/assets/GLTFSharedTextureCache.js +68 -0
- package/dist/assets/GLTFSharedTextureCache.js.map +1 -0
- package/dist/assets/ImageBitmapLoader.d.ts +27 -0
- package/dist/assets/ImageBitmapLoader.d.ts.map +1 -0
- package/dist/assets/ImageBitmapLoader.js +51 -0
- package/dist/assets/ImageBitmapLoader.js.map +1 -0
- package/dist/assets/ImageLoader.d.ts.map +1 -1
- package/dist/assets/ImageLoader.js +12 -5
- package/dist/assets/ImageLoader.js.map +1 -1
- package/dist/assets/LoadContext.d.ts +4 -1
- package/dist/assets/LoadContext.d.ts.map +1 -1
- package/dist/assets/LoadContext.js +7 -2
- package/dist/assets/LoadContext.js.map +1 -1
- package/dist/assets/LoaderFetch.d.ts +12 -0
- package/dist/assets/LoaderFetch.d.ts.map +1 -0
- package/dist/assets/LoaderFetch.js +54 -0
- package/dist/assets/LoaderFetch.js.map +1 -0
- package/dist/assets/TextureLoader.d.ts.map +1 -1
- package/dist/assets/TextureLoader.js +3 -1
- package/dist/assets/TextureLoader.js.map +1 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts +6 -0
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts.map +1 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js +2 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js.map +1 -1
- package/dist/assets/browser-index.d.ts +9 -0
- package/dist/assets/browser-index.d.ts.map +1 -1
- package/dist/assets/browser-index.js +5 -0
- package/dist/assets/browser-index.js.map +1 -1
- package/dist/assets/gltf-runtime.d.ts +2 -0
- package/dist/assets/gltf-runtime.d.ts.map +1 -1
- package/dist/assets/gltf-runtime.js +1 -0
- package/dist/assets/gltf-runtime.js.map +1 -1
- package/dist/assets/index.d.ts +11 -0
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +7 -0
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/loaders/TextureLoader.d.ts +27 -1
- package/dist/assets/loaders/TextureLoader.d.ts.map +1 -1
- package/dist/assets/loaders/TextureLoader.js +62 -4
- package/dist/assets/loaders/TextureLoader.js.map +1 -1
- package/dist/audio/AudioAnalyser.d.ts +42 -0
- package/dist/audio/AudioAnalyser.d.ts.map +1 -0
- package/dist/audio/AudioAnalyser.js +75 -0
- package/dist/audio/AudioAnalyser.js.map +1 -0
- package/dist/audio/AudioContextManager.d.ts +6 -0
- package/dist/audio/AudioContextManager.d.ts.map +1 -1
- package/dist/audio/AudioContextManager.js.map +1 -1
- package/dist/audio/AudioListener.d.ts +27 -0
- package/dist/audio/AudioListener.d.ts.map +1 -1
- package/dist/audio/AudioListener.js +34 -0
- package/dist/audio/AudioListener.js.map +1 -1
- package/dist/audio/PositionalEmitter.d.ts +58 -2
- package/dist/audio/PositionalEmitter.d.ts.map +1 -1
- package/dist/audio/PositionalEmitter.js +111 -12
- package/dist/audio/PositionalEmitter.js.map +1 -1
- package/dist/audio/SpatialAudio.d.ts +24 -0
- package/dist/audio/SpatialAudio.d.ts.map +1 -1
- package/dist/audio/SpatialAudio.js +31 -2
- package/dist/audio/SpatialAudio.js.map +1 -1
- package/dist/audio/game-sound/SpatialVoice.d.ts +2 -2
- package/dist/audio/game-sound/SpatialVoice.d.ts.map +1 -1
- package/dist/audio/game-sound/SpatialVoice.js +1 -1
- package/dist/audio/index.d.ts +5 -3
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +2 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/aura3d-cli/codemods/camera-cast.d.ts +34 -0
- package/dist/aura3d-cli/codemods/camera-cast.d.ts.map +1 -0
- package/dist/aura3d-cli/codemods/camera-cast.js +259 -0
- package/dist/aura3d-cli/codemods/camera-cast.js.map +1 -0
- package/dist/aura3d-cli/codemods/core-v2.d.ts +55 -0
- package/dist/aura3d-cli/codemods/core-v2.d.ts.map +1 -0
- package/dist/aura3d-cli/codemods/core-v2.js +371 -0
- package/dist/aura3d-cli/codemods/core-v2.js.map +1 -0
- package/dist/aura3d-cli/codemods/engine-entry-imports.js +3 -3
- package/dist/aura3d-cli/codemods/engine-entry-imports.js.map +1 -1
- package/dist/aura3d-cli/codemods/post-v2.d.ts +88 -0
- package/dist/aura3d-cli/codemods/post-v2.d.ts.map +1 -0
- package/dist/aura3d-cli/codemods/post-v2.js +379 -0
- package/dist/aura3d-cli/codemods/post-v2.js.map +1 -0
- package/dist/aura3d-cli/commands/prd01/index.js +1 -1
- package/dist/aura3d-cli/commands/prd01/index.js.map +1 -1
- package/dist/aura3d-cli/commands/prd02/environmentsBake.d.ts.map +1 -1
- package/dist/aura3d-cli/commands/prd02/environmentsBake.js +1 -1
- package/dist/aura3d-cli/commands/prd02/environmentsBake.js.map +1 -1
- package/dist/aura3d-cli/commands/prd03/index.d.ts +4 -2
- package/dist/aura3d-cli/commands/prd03/index.d.ts.map +1 -1
- package/dist/aura3d-cli/commands/prd03/index.js +4 -2
- package/dist/aura3d-cli/commands/prd03/index.js.map +1 -1
- package/dist/aura3d-cli/commands/prd08/feelLint.js +1 -1
- package/dist/aura3d-cli/commands/prd08/feelLint.js.map +1 -1
- package/dist/aura3d-cli/commands/prd08/index.js +1 -1
- package/dist/aura3d-cli/commands/prd08/index.js.map +1 -1
- package/dist/aura3d-cli/commands/prd10/index.js +8 -1
- package/dist/aura3d-cli/commands/prd10/index.js.map +1 -1
- package/dist/aura3d-cli/lint/feelSourceScan.d.ts +20 -0
- package/dist/aura3d-cli/lint/feelSourceScan.d.ts.map +1 -0
- package/dist/aura3d-cli/lint/feelSourceScan.js +91 -0
- package/dist/aura3d-cli/lint/feelSourceScan.js.map +1 -0
- package/dist/aura3d-cli/look/lint-static.js +1 -1
- package/dist/aura3d-cli/look/lint-static.js.map +1 -1
- package/dist/aura3d-cli/migrate-three/CompatibilityWarnings.d.ts.map +1 -1
- package/dist/aura3d-cli/migrate-three/CompatibilityWarnings.js +57 -12
- package/dist/aura3d-cli/migrate-three/CompatibilityWarnings.js.map +1 -1
- package/dist/aura3d-cli/migrate-three/ImportMap.d.ts +36 -12
- package/dist/aura3d-cli/migrate-three/ImportMap.d.ts.map +1 -1
- package/dist/aura3d-cli/migrate-three/ImportMap.js +120 -22
- package/dist/aura3d-cli/migrate-three/ImportMap.js.map +1 -1
- package/dist/aura3d-cli/migrate-three/ThreeToA3DAdapter.d.ts.map +1 -1
- package/dist/aura3d-cli/migrate-three/ThreeToA3DAdapter.js +3 -1
- package/dist/aura3d-cli/migrate-three/ThreeToA3DAdapter.js.map +1 -1
- package/dist/aura3d-cli/migrate-three/emit.d.ts +14 -1
- package/dist/aura3d-cli/migrate-three/emit.d.ts.map +1 -1
- package/dist/aura3d-cli/migrate-three/emit.js +670 -23
- package/dist/aura3d-cli/migrate-three/emit.js.map +1 -1
- package/dist/aura3d-cli/migrate-three/mappings.d.ts +24 -2
- package/dist/aura3d-cli/migrate-three/mappings.d.ts.map +1 -1
- package/dist/aura3d-cli/migrate-three/mappings.js +259 -12
- package/dist/aura3d-cli/migrate-three/mappings.js.map +1 -1
- package/dist/aura3d-cli/migrate-three/parse.d.ts +2 -0
- package/dist/aura3d-cli/migrate-three/parse.d.ts.map +1 -1
- package/dist/aura3d-cli/migrate-three/parse.js +134 -19
- package/dist/aura3d-cli/migrate-three/parse.js.map +1 -1
- package/dist/aura3d-cli/migrate-three/report.d.ts +1 -0
- package/dist/aura3d-cli/migrate-three/report.d.ts.map +1 -1
- package/dist/aura3d-cli/migrate-three/report.js +1 -1
- package/dist/aura3d-cli/migrate-three/report.js.map +1 -1
- package/dist/create-aura3d/index.js +1 -1
- package/dist/create-aura3d/showcase-spec-artifacts.d.ts +1 -1
- package/dist/engine/agent-api/AnimationMixerBuilders.d.ts +4 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.d.ts.map +1 -1
- package/dist/engine/agent-api/AnimationMixerBuilders.js +17 -7
- package/dist/engine/agent-api/AnimationMixerBuilders.js.map +1 -1
- package/dist/engine/agent-api/Clock.d.ts +37 -0
- package/dist/engine/agent-api/Clock.d.ts.map +1 -0
- package/dist/engine/agent-api/Clock.js +67 -0
- package/dist/engine/agent-api/Clock.js.map +1 -0
- package/dist/engine/agent-api/RootGeometry.d.ts +124 -4
- package/dist/engine/agent-api/RootGeometry.d.ts.map +1 -1
- package/dist/engine/agent-api/RootGeometry.js +426 -19
- package/dist/engine/agent-api/RootGeometry.js.map +1 -1
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +14 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
- package/dist/engine/agent-api/RuntimeNodeHandle.js +22 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
- package/dist/engine/agent-api/SceneQueries.d.ts +67 -1
- package/dist/engine/agent-api/SceneQueries.d.ts.map +1 -1
- package/dist/engine/agent-api/SceneQueries.js +211 -5
- package/dist/engine/agent-api/SceneQueries.js.map +1 -1
- package/dist/engine/agent-api/app/actorAnimationHandle.d.ts +44 -0
- package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
- package/dist/engine/agent-api/app/actorAnimationHandle.js +98 -0
- package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
- package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
- package/dist/engine/agent-api/app/createAuraApp.js +93 -0
- package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
- package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
- package/dist/engine/agent-api/app/frameLoop.js +4 -0
- package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
- package/dist/engine/agent-api/app/routeState.d.ts +1 -0
- package/dist/engine/agent-api/app/routeState.d.ts.map +1 -1
- package/dist/engine/agent-api/app/routeState.js +14 -0
- package/dist/engine/agent-api/app/routeState.js.map +1 -1
- package/dist/engine/agent-api/app/runtimeNodes.d.ts +7 -0
- package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
- package/dist/engine/agent-api/app/runtimeNodes.js +340 -12
- package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
- package/dist/engine/agent-api/assetEvents.d.ts +25 -0
- package/dist/engine/agent-api/assetEvents.d.ts.map +1 -0
- package/dist/engine/agent-api/assetEvents.js +36 -0
- package/dist/engine/agent-api/assetEvents.js.map +1 -0
- package/dist/engine/agent-api/camera/Spline.d.ts +10 -4
- package/dist/engine/agent-api/camera/Spline.d.ts.map +1 -1
- package/dist/engine/agent-api/camera/Spline.js +28 -101
- package/dist/engine/agent-api/camera/Spline.js.map +1 -1
- package/dist/engine/agent-api/characters/clone.d.ts +55 -0
- package/dist/engine/agent-api/characters/clone.d.ts.map +1 -0
- package/dist/engine/agent-api/characters/clone.js +99 -0
- package/dist/engine/agent-api/characters/clone.js.map +1 -0
- package/dist/engine/agent-api/color.d.ts.map +1 -1
- package/dist/engine/agent-api/color.js +4 -18
- package/dist/engine/agent-api/color.js.map +1 -1
- package/dist/engine/agent-api/compiler/actors.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/actors.js +19 -7
- package/dist/engine/agent-api/compiler/actors.js.map +1 -1
- package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/animation.js +8 -1
- package/dist/engine/agent-api/compiler/animation.js.map +1 -1
- package/dist/engine/agent-api/compiler/backgroundImage.d.ts +24 -0
- package/dist/engine/agent-api/compiler/backgroundImage.d.ts.map +1 -0
- package/dist/engine/agent-api/compiler/backgroundImage.js +134 -0
- package/dist/engine/agent-api/compiler/backgroundImage.js.map +1 -0
- package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/compileScene.js +7 -2
- package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
- package/dist/engine/agent-api/compiler/customMaterial.d.ts +80 -0
- package/dist/engine/agent-api/compiler/customMaterial.d.ts.map +1 -0
- package/dist/engine/agent-api/compiler/customMaterial.js +628 -0
- package/dist/engine/agent-api/compiler/customMaterial.js.map +1 -0
- package/dist/engine/agent-api/compiler/environment.d.ts +1 -1
- package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/environment.js +10 -5
- package/dist/engine/agent-api/compiler/environment.js.map +1 -1
- package/dist/engine/agent-api/compiler/environmentSourcesState.d.ts +15 -0
- package/dist/engine/agent-api/compiler/environmentSourcesState.d.ts.map +1 -0
- package/dist/engine/agent-api/compiler/environmentSourcesState.js +13 -0
- package/dist/engine/agent-api/compiler/environmentSourcesState.js.map +1 -0
- package/dist/engine/agent-api/compiler/errors.d.ts +1 -1
- package/dist/engine/agent-api/compiler/errors.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/errors.js.map +1 -1
- package/dist/engine/agent-api/compiler/geometry.d.ts +20 -5
- package/dist/engine/agent-api/compiler/geometry.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/geometry.js +34 -8
- package/dist/engine/agent-api/compiler/geometry.js.map +1 -1
- package/dist/engine/agent-api/compiler/handlers.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/handlers.js +35 -1
- package/dist/engine/agent-api/compiler/handlers.js.map +1 -1
- package/dist/engine/agent-api/compiler/lensFlare.d.ts +21 -0
- package/dist/engine/agent-api/compiler/lensFlare.d.ts.map +1 -0
- package/dist/engine/agent-api/compiler/lensFlare.js +173 -0
- package/dist/engine/agent-api/compiler/lensFlare.js.map +1 -0
- package/dist/engine/agent-api/compiler/lights.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/lights.js +23 -0
- package/dist/engine/agent-api/compiler/lights.js.map +1 -1
- package/dist/engine/agent-api/compiler/lines.d.ts +23 -0
- package/dist/engine/agent-api/compiler/lines.d.ts.map +1 -0
- package/dist/engine/agent-api/compiler/lines.js +520 -0
- package/dist/engine/agent-api/compiler/lines.js.map +1 -0
- package/dist/engine/agent-api/compiler/modelMaterials.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/modelMaterials.js +11 -0
- package/dist/engine/agent-api/compiler/modelMaterials.js.map +1 -1
- package/dist/engine/agent-api/compiler/observations.d.ts +7 -0
- package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/observations.js +33 -1
- package/dist/engine/agent-api/compiler/observations.js.map +1 -1
- package/dist/engine/agent-api/compiler/paritySurfaces.d.ts +37 -0
- package/dist/engine/agent-api/compiler/paritySurfaces.d.ts.map +1 -0
- package/dist/engine/agent-api/compiler/paritySurfaces.js +310 -0
- package/dist/engine/agent-api/compiler/paritySurfaces.js.map +1 -0
- package/dist/engine/agent-api/compiler/postprocess.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/postprocess.js +6 -3
- package/dist/engine/agent-api/compiler/postprocess.js.map +1 -1
- package/dist/engine/agent-api/compiler/primitives.d.ts +22 -3
- package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/primitives.js +320 -57
- package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
- package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/renderInput.js +42 -5
- package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
- package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/renderer.js +44 -6
- package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
- package/dist/engine/agent-api/compiler/textures.d.ts +64 -2
- package/dist/engine/agent-api/compiler/textures.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/textures.js +257 -21
- package/dist/engine/agent-api/compiler/textures.js.map +1 -1
- package/dist/engine/agent-api/devtools/routeHealth.d.ts +12 -1
- package/dist/engine/agent-api/devtools/routeHealth.d.ts.map +1 -1
- package/dist/engine/agent-api/devtools/routeHealth.js +3 -3
- package/dist/engine/agent-api/devtools/routeHealth.js.map +1 -1
- package/dist/engine/agent-api/index.d.ts +33 -5
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +19 -3
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/lodMarkers.d.ts +23 -0
- package/dist/engine/agent-api/lodMarkers.d.ts.map +1 -0
- package/dist/engine/agent-api/lodMarkers.js +33 -0
- package/dist/engine/agent-api/lodMarkers.js.map +1 -0
- package/dist/engine/agent-api/nodes/batched.d.ts +96 -0
- package/dist/engine/agent-api/nodes/batched.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/batched.js +456 -0
- package/dist/engine/agent-api/nodes/batched.js.map +1 -0
- package/dist/engine/agent-api/nodes/batchedState.d.ts +137 -0
- package/dist/engine/agent-api/nodes/batchedState.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/batchedState.js +435 -0
- package/dist/engine/agent-api/nodes/batchedState.js.map +1 -0
- package/dist/engine/agent-api/nodes/builder.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/builder.js +0 -3
- package/dist/engine/agent-api/nodes/builder.js.map +1 -1
- package/dist/engine/agent-api/nodes/camera.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/camera.js +2 -1
- package/dist/engine/agent-api/nodes/camera.js.map +1 -1
- package/dist/engine/agent-api/nodes/cameras.d.ts +114 -0
- package/dist/engine/agent-api/nodes/cameras.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/cameras.js +107 -0
- package/dist/engine/agent-api/nodes/cameras.js.map +1 -0
- package/dist/engine/agent-api/nodes/compute.d.ts +48 -0
- package/dist/engine/agent-api/nodes/compute.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/compute.js +73 -0
- package/dist/engine/agent-api/nodes/compute.js.map +1 -0
- package/dist/engine/agent-api/nodes/effects.composite.d.ts +3 -2
- package/dist/engine/agent-api/nodes/effects.composite.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/effects.post.d.ts +35 -0
- package/dist/engine/agent-api/nodes/effects.post.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/effects.post.js +69 -0
- package/dist/engine/agent-api/nodes/effects.post.js.map +1 -1
- package/dist/engine/agent-api/nodes/environments.composite.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/environments.d.ts +1 -1
- package/dist/engine/agent-api/nodes/environments.js +1 -1
- package/dist/engine/agent-api/nodes/environments.js.map +1 -1
- package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts +19 -6
- package/dist/engine/agent-api/nodes/game/instanceTransforms.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/game/instanceTransforms.js +31 -9
- package/dist/engine/agent-api/nodes/game/instanceTransforms.js.map +1 -1
- package/dist/engine/agent-api/nodes/geometry.d.ts +28 -1
- package/dist/engine/agent-api/nodes/geometry.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/geometry.js +62 -2
- package/dist/engine/agent-api/nodes/geometry.js.map +1 -1
- package/dist/engine/agent-api/nodes/groups.d.ts +8 -1
- package/dist/engine/agent-api/nodes/groups.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/groups.js +28 -0
- package/dist/engine/agent-api/nodes/groups.js.map +1 -1
- package/dist/engine/agent-api/nodes/helpers.d.ts +100 -0
- package/dist/engine/agent-api/nodes/helpers.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/helpers.js +254 -0
- package/dist/engine/agent-api/nodes/helpers.js.map +1 -0
- package/dist/engine/agent-api/nodes/instancedMesh.d.ts +87 -0
- package/dist/engine/agent-api/nodes/instancedMesh.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/instancedMesh.js +156 -0
- package/dist/engine/agent-api/nodes/instancedMesh.js.map +1 -0
- package/dist/engine/agent-api/nodes/instances.d.ts +49 -1
- package/dist/engine/agent-api/nodes/instances.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/instances.js +21 -0
- package/dist/engine/agent-api/nodes/instances.js.map +1 -1
- package/dist/engine/agent-api/nodes/lensFlare.d.ts +126 -0
- package/dist/engine/agent-api/nodes/lensFlare.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/lensFlare.js +184 -0
- package/dist/engine/agent-api/nodes/lensFlare.js.map +1 -0
- package/dist/engine/agent-api/nodes/lights.d.ts +34 -0
- package/dist/engine/agent-api/nodes/lights.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/lights.js +27 -0
- package/dist/engine/agent-api/nodes/lights.js.map +1 -1
- package/dist/engine/agent-api/nodes/lines.d.ts +69 -0
- package/dist/engine/agent-api/nodes/lines.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/lines.js +136 -0
- package/dist/engine/agent-api/nodes/lines.js.map +1 -0
- package/dist/engine/agent-api/nodes/material.d.ts +9 -1
- package/dist/engine/agent-api/nodes/material.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/material.js +12 -0
- package/dist/engine/agent-api/nodes/material.js.map +1 -1
- package/dist/engine/agent-api/nodes/overrideMaterial.d.ts +18 -0
- package/dist/engine/agent-api/nodes/overrideMaterial.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/overrideMaterial.js +43 -0
- package/dist/engine/agent-api/nodes/overrideMaterial.js.map +1 -0
- package/dist/engine/agent-api/nodes/points.d.ts +29 -0
- package/dist/engine/agent-api/nodes/points.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/points.js +34 -0
- package/dist/engine/agent-api/nodes/points.js.map +1 -0
- package/dist/engine/agent-api/nodes/primitives.d.ts +11 -0
- package/dist/engine/agent-api/nodes/primitives.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/primitives.js +55 -1
- package/dist/engine/agent-api/nodes/primitives.js.map +1 -1
- package/dist/engine/agent-api/nodes/prompt/promptPlanV2.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/prompt/promptPlanV2.js +6 -2
- package/dist/engine/agent-api/nodes/prompt/promptPlanV2.js.map +1 -1
- package/dist/engine/agent-api/nodes/prompt/promptRecipes.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/prompt/promptRecipes.js +7 -1
- package/dist/engine/agent-api/nodes/prompt/promptRecipes.js.map +1 -1
- package/dist/engine/agent-api/nodes/scene.d.ts +22 -3
- package/dist/engine/agent-api/nodes/scene.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/scene.js +41 -2
- package/dist/engine/agent-api/nodes/scene.js.map +1 -1
- package/dist/engine/agent-api/nodes/sprites.d.ts +29 -0
- package/dist/engine/agent-api/nodes/sprites.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/sprites.js +43 -0
- package/dist/engine/agent-api/nodes/sprites.js.map +1 -0
- package/dist/engine/agent-api/nodes/surfaces.d.ts +48 -0
- package/dist/engine/agent-api/nodes/surfaces.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/surfaces.js +32 -0
- package/dist/engine/agent-api/nodes/surfaces.js.map +1 -0
- package/dist/engine/agent-api/nodes/texture.d.ts +114 -0
- package/dist/engine/agent-api/nodes/texture.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/texture.js +590 -0
- package/dist/engine/agent-api/nodes/texture.js.map +1 -0
- package/dist/engine/agent-api/nodes/types/runtime.d.ts +91 -4
- package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/types.d.ts +387 -4
- package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
- package/dist/engine/agent-api/postBridge.d.ts +7 -0
- package/dist/engine/agent-api/postBridge.d.ts.map +1 -1
- package/dist/engine/agent-api/postBridge.js +63 -5
- package/dist/engine/agent-api/postBridge.js.map +1 -1
- package/dist/engine/agent-api/public/devtools.d.ts +1 -0
- package/dist/engine/agent-api/public/devtools.d.ts.map +1 -1
- package/dist/engine/agent-api/public/devtools.js.map +1 -1
- package/dist/engine/agent-api/publishedUnion.d.ts +137 -1
- package/dist/engine/agent-api/publishedUnion.d.ts.map +1 -1
- package/dist/engine/agent-api/publishedUnion.js +109 -0
- package/dist/engine/agent-api/publishedUnion.js.map +1 -1
- package/dist/engine/agent-api/runtimeEvidence.d.ts +10 -0
- package/dist/engine/agent-api/runtimeEvidence.d.ts.map +1 -1
- package/dist/engine/agent-api/runtimeEvidence.js +18 -1
- package/dist/engine/agent-api/runtimeEvidence.js.map +1 -1
- package/dist/engine/agent-api/sceneMath.d.ts +2 -2
- package/dist/engine/agent-api/sceneMath.d.ts.map +1 -1
- package/dist/engine/agent-api/sceneMath.js +8 -5
- package/dist/engine/agent-api/sceneMath.js.map +1 -1
- package/dist/engine/agent-api/sceneMath.lookLowering.d.ts +14 -0
- package/dist/engine/agent-api/sceneMath.lookLowering.d.ts.map +1 -0
- package/dist/engine/agent-api/sceneMath.lookLowering.js +8 -0
- package/dist/engine/agent-api/sceneMath.lookLowering.js.map +1 -0
- package/dist/engine/agent-api/stereoMath.d.ts +45 -0
- package/dist/engine/agent-api/stereoMath.d.ts.map +1 -0
- package/dist/engine/agent-api/stereoMath.js +78 -0
- package/dist/engine/agent-api/stereoMath.js.map +1 -0
- package/dist/engine/agent-api/vfx/atmosphere-api.d.ts +13 -0
- package/dist/engine/agent-api/vfx/atmosphere-api.d.ts.map +1 -1
- package/dist/engine/agent-api/vfx/atmosphere-api.js +19 -0
- package/dist/engine/agent-api/vfx/atmosphere-api.js.map +1 -1
- package/dist/engine/agent-api/world/kits.d.ts +1 -1
- package/dist/engine/agent-api/world/placement.js.map +1 -1
- package/dist/engine/agent-api/world/spline.d.ts +7 -22
- package/dist/engine/agent-api/world/spline.d.ts.map +1 -1
- package/dist/engine/agent-api/world/spline.js +30 -24
- package/dist/engine/agent-api/world/spline.js.map +1 -1
- package/dist/engine/agent-api/xr/index.d.ts +18 -0
- package/dist/engine/agent-api/xr/index.d.ts.map +1 -0
- package/dist/engine/agent-api/xr/index.js +15 -0
- package/dist/engine/agent-api/xr/index.js.map +1 -0
- package/dist/engine/agent-api/xr/types.d.ts +85 -0
- package/dist/engine/agent-api/xr/types.d.ts.map +1 -0
- package/dist/engine/agent-api/xr/types.js +2 -0
- package/dist/engine/agent-api/xr/types.js.map +1 -0
- package/dist/engine/agent-api/xr/xrButton.d.ts +50 -0
- package/dist/engine/agent-api/xr/xrButton.d.ts.map +1 -0
- package/dist/engine/agent-api/xr/xrButton.js +93 -0
- package/dist/engine/agent-api/xr/xrButton.js.map +1 -0
- package/dist/engine/agent-api/xr/xrRuntime.d.ts +40 -0
- package/dist/engine/agent-api/xr/xrRuntime.d.ts.map +1 -0
- package/dist/engine/agent-api/xr/xrRuntime.js +236 -0
- package/dist/engine/agent-api/xr/xrRuntime.js.map +1 -0
- package/dist/engine/agent-api/xr/xrViewOverride.d.ts +35 -0
- package/dist/engine/agent-api/xr/xrViewOverride.d.ts.map +1 -0
- package/dist/engine/agent-api/xr/xrViewOverride.js +99 -0
- package/dist/engine/agent-api/xr/xrViewOverride.js.map +1 -0
- package/dist/engine/contracts/animation.d.ts +18 -0
- package/dist/engine/contracts/animation.d.ts.map +1 -1
- package/dist/engine/contracts/animation.js +4 -1
- package/dist/engine/contracts/animation.js.map +1 -1
- package/dist/engine/contracts/compiler.d.ts +5 -0
- package/dist/engine/contracts/compiler.d.ts.map +1 -1
- package/dist/engine/contracts/compiler.js.map +1 -1
- package/dist/engine/contracts/flags.d.ts.map +1 -1
- package/dist/engine/contracts/flags.js +19 -2
- package/dist/engine/contracts/flags.js.map +1 -1
- package/dist/engine/contracts/post.d.ts +12 -0
- package/dist/engine/contracts/post.d.ts.map +1 -1
- package/dist/engine/contracts/post.js.map +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +5 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/lanes/prd02.d.ts +1 -0
- package/dist/engine/lanes/prd02.d.ts.map +1 -1
- package/dist/engine/lanes/prd02.js +15 -0
- package/dist/engine/lanes/prd02.js.map +1 -1
- package/dist/engine/lanes/prd06.d.ts.map +1 -1
- package/dist/engine/lanes/prd06.js +21 -2
- package/dist/engine/lanes/prd06.js.map +1 -1
- package/dist/engine/lanes/prd13.d.ts.map +1 -1
- package/dist/engine/lanes/prd13.js +4 -1
- package/dist/engine/lanes/prd13.js.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +8 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.js +4 -3
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
- package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.d.ts +5 -1
- package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.d.ts.map +1 -1
- package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.js +10 -6
- package/dist/engine/production-runtime/actor/TypedGLBActorAnimation.js.map +1 -1
- package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts +19 -1
- package/dist/engine/production-runtime/effects/EffectNodeLowering.d.ts.map +1 -1
- package/dist/engine/production-runtime/effects/EffectNodeLowering.js +39 -25
- package/dist/engine/production-runtime/effects/EffectNodeLowering.js.map +1 -1
- package/dist/engine/production-runtime/effects/ProductionEffectSystem.d.ts +5 -0
- package/dist/engine/production-runtime/effects/ProductionEffectSystem.d.ts.map +1 -1
- package/dist/engine/production-runtime/effects/ProductionEffectSystem.js +79 -8
- package/dist/engine/production-runtime/effects/ProductionEffectSystem.js.map +1 -1
- package/dist/engine/public/index.d.ts +6 -2
- package/dist/engine/public/index.d.ts.map +1 -1
- package/dist/engine/public/index.js +5 -1
- package/dist/engine/public/index.js.map +1 -1
- package/dist/engine/public/renderTarget.d.ts +14 -0
- package/dist/engine/public/renderTarget.d.ts.map +1 -0
- package/dist/engine/public/renderTarget.js +13 -0
- package/dist/engine/public/renderTarget.js.map +1 -0
- package/dist/engine/public/renderer.d.ts +4 -0
- package/dist/engine/public/renderer.d.ts.map +1 -1
- package/dist/engine/public/renderer.js +8 -0
- package/dist/engine/public/renderer.js.map +1 -1
- package/dist/input/WebXRSessionController.d.ts +43 -0
- package/dist/input/WebXRSessionController.d.ts.map +1 -1
- package/dist/input/WebXRSessionController.js +8 -0
- package/dist/input/WebXRSessionController.js.map +1 -1
- package/dist/input/index.d.ts +1 -15
- package/dist/input/index.d.ts.map +1 -1
- package/dist/input/index.js +0 -7
- package/dist/input/index.js.map +1 -1
- package/dist/math/Box3.d.ts +50 -0
- package/dist/math/Box3.d.ts.map +1 -1
- package/dist/math/Box3.js +177 -6
- package/dist/math/Box3.js.map +1 -1
- package/dist/math/Capsule.d.ts +25 -0
- package/dist/math/Capsule.d.ts.map +1 -0
- package/dist/math/Capsule.js +54 -0
- package/dist/math/Capsule.js.map +1 -0
- package/dist/math/Color.d.ts +27 -0
- package/dist/math/Color.d.ts.map +1 -1
- package/dist/math/Color.js +87 -0
- package/dist/math/Color.js.map +1 -1
- package/dist/math/ConvexHull.d.ts +100 -0
- package/dist/math/ConvexHull.d.ts.map +1 -0
- package/dist/math/ConvexHull.js +578 -0
- package/dist/math/ConvexHull.js.map +1 -0
- package/dist/math/Curves.d.ts +59 -18
- package/dist/math/Curves.d.ts.map +1 -1
- package/dist/math/Curves.js +15 -73
- package/dist/math/Curves.js.map +1 -1
- package/dist/math/Cylindrical.d.ts +19 -0
- package/dist/math/Cylindrical.d.ts.map +1 -0
- package/dist/math/Cylindrical.js +40 -0
- package/dist/math/Cylindrical.js.map +1 -0
- package/dist/math/Euler.d.ts +24 -0
- package/dist/math/Euler.d.ts.map +1 -1
- package/dist/math/Euler.js +126 -2
- package/dist/math/Euler.js.map +1 -1
- package/dist/math/Frustum.d.ts +18 -0
- package/dist/math/Frustum.d.ts.map +1 -1
- package/dist/math/Frustum.js +62 -12
- package/dist/math/Frustum.js.map +1 -1
- package/dist/math/Line3.d.ts +38 -0
- package/dist/math/Line3.d.ts.map +1 -0
- package/dist/math/Line3.js +122 -0
- package/dist/math/Line3.js.map +1 -0
- package/dist/math/MathUtils.d.ts +37 -0
- package/dist/math/MathUtils.d.ts.map +1 -0
- package/dist/math/MathUtils.js +105 -0
- package/dist/math/MathUtils.js.map +1 -0
- package/dist/math/Matrix3.d.ts +23 -2
- package/dist/math/Matrix3.d.ts.map +1 -1
- package/dist/math/Matrix3.js +90 -0
- package/dist/math/Matrix3.js.map +1 -1
- package/dist/math/Matrix4.d.ts +3 -0
- package/dist/math/Matrix4.d.ts.map +1 -1
- package/dist/math/Matrix4.js +17 -0
- package/dist/math/Matrix4.js.map +1 -1
- package/dist/math/OBB.d.ts +44 -0
- package/dist/math/OBB.d.ts.map +1 -0
- package/dist/math/OBB.js +214 -0
- package/dist/math/OBB.js.map +1 -0
- package/dist/math/Octree.d.ts +72 -0
- package/dist/math/Octree.d.ts.map +1 -0
- package/dist/math/Octree.js +385 -0
- package/dist/math/Octree.js.map +1 -0
- package/dist/math/Plane.d.ts +42 -0
- package/dist/math/Plane.d.ts.map +1 -1
- package/dist/math/Plane.js +79 -3
- package/dist/math/Plane.js.map +1 -1
- package/dist/math/Quaternion.d.ts +6 -1
- package/dist/math/Quaternion.d.ts.map +1 -1
- package/dist/math/Quaternion.js +28 -3
- package/dist/math/Quaternion.js.map +1 -1
- package/dist/math/Ray.d.ts +42 -2
- package/dist/math/Ray.d.ts.map +1 -1
- package/dist/math/Ray.js +202 -9
- package/dist/math/Ray.js.map +1 -1
- package/dist/math/ShapeUtils.d.ts +28 -0
- package/dist/math/ShapeUtils.d.ts.map +1 -0
- package/dist/math/ShapeUtils.js +551 -0
- package/dist/math/ShapeUtils.js.map +1 -0
- package/dist/math/Sphere.d.ts +32 -0
- package/dist/math/Sphere.d.ts.map +1 -1
- package/dist/math/Sphere.js +122 -4
- package/dist/math/Sphere.js.map +1 -1
- package/dist/math/Spherical.d.ts +21 -0
- package/dist/math/Spherical.d.ts.map +1 -0
- package/dist/math/Spherical.js +50 -0
- package/dist/math/Spherical.js.map +1 -0
- package/dist/math/SphericalHarmonics3.d.ts +35 -0
- package/dist/math/SphericalHarmonics3.d.ts.map +1 -0
- package/dist/math/SphericalHarmonics3.js +115 -0
- package/dist/math/SphericalHarmonics3.js.map +1 -0
- package/dist/math/Triangle.d.ts +45 -0
- package/dist/math/Triangle.d.ts.map +1 -0
- package/dist/math/Triangle.js +160 -0
- package/dist/math/Triangle.js.map +1 -0
- package/dist/math/Vector2.d.ts +7 -0
- package/dist/math/Vector2.d.ts.map +1 -1
- package/dist/math/Vector2.js +17 -0
- package/dist/math/Vector2.js.map +1 -1
- package/dist/math/Vector3.d.ts +16 -0
- package/dist/math/Vector3.d.ts.map +1 -1
- package/dist/math/Vector3.js +35 -0
- package/dist/math/Vector3.js.map +1 -1
- package/dist/math/curves/ArcCurve.d.ts +7 -0
- package/dist/math/curves/ArcCurve.d.ts.map +1 -0
- package/dist/math/curves/ArcCurve.js +9 -0
- package/dist/math/curves/ArcCurve.js.map +1 -0
- package/dist/math/curves/CatmullRomCurve3.d.ts +39 -0
- package/dist/math/curves/CatmullRomCurve3.d.ts.map +1 -0
- package/dist/math/curves/CatmullRomCurve3.js +176 -0
- package/dist/math/curves/CatmullRomCurve3.js.map +1 -0
- package/dist/math/curves/ClampedCatmullRomCurve3.d.ts +26 -0
- package/dist/math/curves/ClampedCatmullRomCurve3.d.ts.map +1 -0
- package/dist/math/curves/ClampedCatmullRomCurve3.js +48 -0
- package/dist/math/curves/ClampedCatmullRomCurve3.js.map +1 -0
- package/dist/math/curves/CubicBezierCurve.d.ts +14 -0
- package/dist/math/curves/CubicBezierCurve.d.ts.map +1 -0
- package/dist/math/curves/CubicBezierCurve.js +25 -0
- package/dist/math/curves/CubicBezierCurve.js.map +1 -0
- package/dist/math/curves/CubicBezierCurve3.d.ts +14 -0
- package/dist/math/curves/CubicBezierCurve3.d.ts.map +1 -0
- package/dist/math/curves/CubicBezierCurve3.js +25 -0
- package/dist/math/curves/CubicBezierCurve3.js.map +1 -0
- package/dist/math/curves/CurveBase.d.ts +49 -0
- package/dist/math/curves/CurveBase.d.ts.map +1 -0
- package/dist/math/curves/CurveBase.js +199 -0
- package/dist/math/curves/CurveBase.js.map +1 -0
- package/dist/math/curves/CurvePath.d.ts +34 -0
- package/dist/math/curves/CurvePath.d.ts.map +1 -0
- package/dist/math/curves/CurvePath.js +135 -0
- package/dist/math/curves/CurvePath.js.map +1 -0
- package/dist/math/curves/EllipseCurve.d.ts +18 -0
- package/dist/math/curves/EllipseCurve.d.ts.map +1 -0
- package/dist/math/curves/EllipseCurve.js +67 -0
- package/dist/math/curves/EllipseCurve.js.map +1 -0
- package/dist/math/curves/Interpolations.d.ts +9 -0
- package/dist/math/curves/Interpolations.d.ts.map +1 -0
- package/dist/math/curves/Interpolations.js +21 -0
- package/dist/math/curves/Interpolations.js.map +1 -0
- package/dist/math/curves/LineCurve.d.ts +16 -0
- package/dist/math/curves/LineCurve.d.ts.map +1 -0
- package/dist/math/curves/LineCurve.js +32 -0
- package/dist/math/curves/LineCurve.js.map +1 -0
- package/dist/math/curves/LineCurve3.d.ts +16 -0
- package/dist/math/curves/LineCurve3.d.ts.map +1 -0
- package/dist/math/curves/LineCurve3.js +32 -0
- package/dist/math/curves/LineCurve3.js.map +1 -0
- package/dist/math/curves/Path.d.ts +23 -0
- package/dist/math/curves/Path.d.ts.map +1 -0
- package/dist/math/curves/Path.js +94 -0
- package/dist/math/curves/Path.js.map +1 -0
- package/dist/math/curves/QuadraticBezierCurve.d.ts +13 -0
- package/dist/math/curves/QuadraticBezierCurve.d.ts.map +1 -0
- package/dist/math/curves/QuadraticBezierCurve.js +23 -0
- package/dist/math/curves/QuadraticBezierCurve.js.map +1 -0
- package/dist/math/curves/QuadraticBezierCurve3.d.ts +13 -0
- package/dist/math/curves/QuadraticBezierCurve3.d.ts.map +1 -0
- package/dist/math/curves/QuadraticBezierCurve3.js +23 -0
- package/dist/math/curves/QuadraticBezierCurve3.js.map +1 -0
- package/dist/math/curves/Shape.d.ts +15 -0
- package/dist/math/curves/Shape.d.ts.map +1 -0
- package/dist/math/curves/Shape.js +26 -0
- package/dist/math/curves/Shape.js.map +1 -0
- package/dist/math/curves/SplineCurve.d.ts +11 -0
- package/dist/math/curves/SplineCurve.d.ts.map +1 -0
- package/dist/math/curves/SplineCurve.js +27 -0
- package/dist/math/curves/SplineCurve.js.map +1 -0
- package/dist/math/index.d.ts +12 -0
- package/dist/math/index.d.ts.map +1 -1
- package/dist/math/index.js +16 -0
- package/dist/math/index.js.map +1 -1
- package/dist/physics-rapier/index.d.ts.map +1 -1
- package/dist/physics-rapier/index.js +20 -5
- package/dist/physics-rapier/index.js.map +1 -1
- package/dist/rendering/EnvironmentPlatform.d.ts.map +1 -1
- package/dist/rendering/EnvironmentPlatform.js +6 -2
- package/dist/rendering/EnvironmentPlatform.js.map +1 -1
- package/dist/rendering/ForwardPass.d.ts +2 -0
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +70 -5
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/Geometry.d.ts +40 -0
- package/dist/rendering/Geometry.d.ts.map +1 -1
- package/dist/rendering/Geometry.js +39 -2
- package/dist/rendering/Geometry.js.map +1 -1
- package/dist/rendering/IndexBuffer.d.ts +16 -1
- package/dist/rendering/IndexBuffer.d.ts.map +1 -1
- package/dist/rendering/IndexBuffer.js +46 -1
- package/dist/rendering/IndexBuffer.js.map +1 -1
- package/dist/rendering/InstancedPBRMaterial.d.ts +2 -0
- package/dist/rendering/InstancedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/InstancedPBRMaterial.js +1 -0
- package/dist/rendering/InstancedPBRMaterial.js.map +1 -1
- package/dist/rendering/Material.d.ts +9 -0
- package/dist/rendering/Material.d.ts.map +1 -1
- package/dist/rendering/Material.js +3 -0
- package/dist/rendering/Material.js.map +1 -1
- package/dist/rendering/PBRMaterial.d.ts +2 -0
- package/dist/rendering/PBRMaterial.d.ts.map +1 -1
- package/dist/rendering/PBRMaterial.js +1 -0
- package/dist/rendering/PBRMaterial.js.map +1 -1
- package/dist/rendering/PortableShaderMaterial.d.ts +13 -3
- package/dist/rendering/PortableShaderMaterial.d.ts.map +1 -1
- package/dist/rendering/PortableShaderMaterial.js +24 -12
- package/dist/rendering/PortableShaderMaterial.js.map +1 -1
- package/dist/rendering/RenderDevice.d.ts +98 -0
- package/dist/rendering/RenderDevice.d.ts.map +1 -1
- package/dist/rendering/RenderDevice.js +129 -0
- package/dist/rendering/RenderDevice.js.map +1 -1
- package/dist/rendering/Renderer.d.ts +94 -0
- package/dist/rendering/Renderer.d.ts.map +1 -1
- package/dist/rendering/Renderer.js +321 -26
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/Sampler.d.ts +35 -0
- package/dist/rendering/Sampler.d.ts.map +1 -1
- package/dist/rendering/Sampler.js +96 -0
- package/dist/rendering/Sampler.js.map +1 -1
- package/dist/rendering/ShaderLibraryCore.d.ts +14 -0
- package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
- package/dist/rendering/ShaderLibraryCore.js +94 -4
- package/dist/rendering/ShaderLibraryCore.js.map +1 -1
- package/dist/rendering/Texture.d.ts +53 -1
- package/dist/rendering/Texture.d.ts.map +1 -1
- package/dist/rendering/Texture.js +53 -2
- package/dist/rendering/Texture.js.map +1 -1
- package/dist/rendering/UnlitMaterial.d.ts +46 -0
- package/dist/rendering/UnlitMaterial.d.ts.map +1 -1
- package/dist/rendering/UnlitMaterial.js +32 -3
- package/dist/rendering/UnlitMaterial.js.map +1 -1
- package/dist/rendering/VertexFormat.d.ts +19 -1
- package/dist/rendering/VertexFormat.d.ts.map +1 -1
- package/dist/rendering/VertexFormat.js +40 -1
- package/dist/rendering/VertexFormat.js.map +1 -1
- package/dist/rendering/WebGL2Device.d.ts +16 -0
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +31 -6
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/WebGPUDevice.d.ts +92 -1
- package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
- package/dist/rendering/WebGPUDevice.js +417 -44
- package/dist/rendering/WebGPUDevice.js.map +1 -1
- package/dist/rendering/batching/BatchedGeometryPool.d.ts +22 -1
- package/dist/rendering/batching/BatchedGeometryPool.d.ts.map +1 -1
- package/dist/rendering/batching/BatchedGeometryPool.js +50 -2
- package/dist/rendering/batching/BatchedGeometryPool.js.map +1 -1
- package/dist/rendering/batching/DrawDataTexture.d.ts +21 -1
- package/dist/rendering/batching/DrawDataTexture.d.ts.map +1 -1
- package/dist/rendering/batching/DrawDataTexture.js +30 -4
- package/dist/rendering/batching/DrawDataTexture.js.map +1 -1
- package/dist/rendering/batching/MultiDrawBatch.d.ts +26 -0
- package/dist/rendering/batching/MultiDrawBatch.d.ts.map +1 -1
- package/dist/rendering/batching/MultiDrawBatch.js +64 -2
- package/dist/rendering/batching/MultiDrawBatch.js.map +1 -1
- package/dist/rendering/batching/index.d.ts +2 -2
- package/dist/rendering/batching/index.d.ts.map +1 -1
- package/dist/rendering/batching/index.js +2 -2
- package/dist/rendering/batching/index.js.map +1 -1
- package/dist/rendering/compute/ComputeContext.d.ts +84 -0
- package/dist/rendering/compute/ComputeContext.d.ts.map +1 -0
- package/dist/rendering/compute/ComputeContext.js +371 -0
- package/dist/rendering/compute/ComputeContext.js.map +1 -0
- package/dist/rendering/compute/index.d.ts +4 -0
- package/dist/rendering/compute/index.d.ts.map +1 -0
- package/dist/rendering/compute/index.js +3 -0
- package/dist/rendering/compute/index.js.map +1 -0
- package/dist/rendering/compute/types.d.ts +108 -0
- package/dist/rendering/compute/types.d.ts.map +1 -0
- package/dist/rendering/compute/types.js +25 -0
- package/dist/rendering/compute/types.js.map +1 -0
- package/dist/rendering/contracts/core.d.ts +1 -1
- package/dist/rendering/contracts/core.d.ts.map +1 -1
- package/dist/rendering/contracts/core.js.map +1 -1
- package/dist/rendering/contracts/flags.state.d.ts.map +1 -1
- package/dist/rendering/contracts/flags.state.js +20 -1
- package/dist/rendering/contracts/flags.state.js.map +1 -1
- package/dist/rendering/contracts/output.d.ts +1 -1
- package/dist/rendering/contracts/output.d.ts.map +1 -1
- package/dist/rendering/contracts/output.js.map +1 -1
- package/dist/rendering/contracts/post.d.ts +7 -0
- package/dist/rendering/contracts/post.d.ts.map +1 -1
- package/dist/rendering/contracts/post.js.map +1 -1
- package/dist/rendering/contracts/renderItem.d.ts +15 -0
- package/dist/rendering/contracts/renderItem.d.ts.map +1 -1
- package/dist/rendering/contracts/renderSource.d.ts +3 -1
- package/dist/rendering/contracts/renderSource.d.ts.map +1 -1
- package/dist/rendering/contracts/sampling.d.ts +23 -0
- package/dist/rendering/contracts/sampling.d.ts.map +1 -1
- package/dist/rendering/contracts/sampling.js.map +1 -1
- package/dist/rendering/environment/EnvironmentCache.d.ts.map +1 -1
- package/dist/rendering/environment/EnvironmentCache.js +7 -3
- package/dist/rendering/environment/EnvironmentCache.js.map +1 -1
- package/dist/rendering/environment/RoomEnvironmentScene.d.ts +2 -2
- package/dist/rendering/environment/RoomEnvironmentScene.d.ts.map +1 -1
- package/dist/rendering/environment/RoomEnvironmentScene.js.map +1 -1
- package/dist/rendering/geometry/Circle.d.ts +14 -0
- package/dist/rendering/geometry/Circle.d.ts.map +1 -0
- package/dist/rendering/geometry/Circle.js +31 -0
- package/dist/rendering/geometry/Circle.js.map +1 -0
- package/dist/rendering/geometry/Cone.d.ts +37 -0
- package/dist/rendering/geometry/Cone.d.ts.map +1 -0
- package/dist/rendering/geometry/Cone.js +129 -0
- package/dist/rendering/geometry/Cone.js.map +1 -0
- package/dist/rendering/geometry/Convex.d.ts +19 -0
- package/dist/rendering/geometry/Convex.d.ts.map +1 -0
- package/dist/rendering/geometry/Convex.js +27 -0
- package/dist/rendering/geometry/Convex.js.map +1 -0
- package/dist/rendering/geometry/Edges.d.ts +15 -0
- package/dist/rendering/geometry/Edges.d.ts.map +1 -0
- package/dist/rendering/geometry/Edges.js +98 -0
- package/dist/rendering/geometry/Edges.js.map +1 -0
- package/dist/rendering/geometry/Extrude.d.ts +29 -0
- package/dist/rendering/geometry/Extrude.d.ts.map +1 -0
- package/dist/rendering/geometry/Extrude.js +403 -0
- package/dist/rendering/geometry/Extrude.js.map +1 -0
- package/dist/rendering/geometry/Lathe.d.ts +20 -0
- package/dist/rendering/geometry/Lathe.d.ts.map +1 -0
- package/dist/rendering/geometry/Lathe.js +94 -0
- package/dist/rendering/geometry/Lathe.js.map +1 -0
- package/dist/rendering/geometry/Polyhedron.d.ts +21 -0
- package/dist/rendering/geometry/Polyhedron.d.ts.map +1 -0
- package/dist/rendering/geometry/Polyhedron.js +201 -0
- package/dist/rendering/geometry/Polyhedron.js.map +1 -0
- package/dist/rendering/geometry/Primitives.d.ts +38 -2
- package/dist/rendering/geometry/Primitives.d.ts.map +1 -1
- package/dist/rendering/geometry/Primitives.js +114 -0
- package/dist/rendering/geometry/Primitives.js.map +1 -1
- package/dist/rendering/geometry/Ring.d.ts +16 -0
- package/dist/rendering/geometry/Ring.d.ts.map +1 -0
- package/dist/rendering/geometry/Ring.js +44 -0
- package/dist/rendering/geometry/Ring.js.map +1 -0
- package/dist/rendering/geometry/RoundedBox.d.ts +22 -0
- package/dist/rendering/geometry/RoundedBox.d.ts.map +1 -0
- package/dist/rendering/geometry/RoundedBox.js +191 -0
- package/dist/rendering/geometry/RoundedBox.js.map +1 -0
- package/dist/rendering/geometry/Shape.d.ts +15 -0
- package/dist/rendering/geometry/Shape.d.ts.map +1 -0
- package/dist/rendering/geometry/Shape.js +44 -0
- package/dist/rendering/geometry/Shape.js.map +1 -0
- package/dist/rendering/geometry/Support.d.ts +137 -0
- package/dist/rendering/geometry/Support.d.ts.map +1 -0
- package/dist/rendering/geometry/Support.js +1066 -0
- package/dist/rendering/geometry/Support.js.map +1 -0
- package/dist/rendering/geometry/TorusKnot.d.ts +18 -0
- package/dist/rendering/geometry/TorusKnot.d.ts.map +1 -0
- package/dist/rendering/geometry/TorusKnot.js +83 -0
- package/dist/rendering/geometry/TorusKnot.js.map +1 -0
- package/dist/rendering/geometry/Tube.d.ts +19 -0
- package/dist/rendering/geometry/Tube.d.ts.map +1 -0
- package/dist/rendering/geometry/Tube.js +70 -0
- package/dist/rendering/geometry/Tube.js.map +1 -0
- package/dist/rendering/geometry/Wireframe.d.ts +19 -0
- package/dist/rendering/geometry/Wireframe.d.ts.map +1 -0
- package/dist/rendering/geometry/Wireframe.js +63 -0
- package/dist/rendering/geometry/Wireframe.js.map +1 -0
- package/dist/rendering/index.d.ts +38 -7
- package/dist/rendering/index.d.ts.map +1 -1
- package/dist/rendering/index.js +25 -3
- package/dist/rendering/index.js.map +1 -1
- package/dist/rendering/lanes/prd11.js +1 -1
- package/dist/rendering/lanes/prd11.js.map +1 -1
- package/dist/rendering/output/ToneMappingOperators.glsl.d.ts +1 -1
- package/dist/rendering/output/ToneMappingOperators.glsl.d.ts.map +1 -1
- package/dist/rendering/output/ToneMappingOperators.glsl.js +9 -1
- package/dist/rendering/output/ToneMappingOperators.glsl.js.map +1 -1
- package/dist/rendering/post/v2Entry.d.ts +1 -0
- package/dist/rendering/post/v2Entry.d.ts.map +1 -1
- package/dist/rendering/post/v2Entry.js.map +1 -1
- package/dist/rendering/post/v2Stages.d.ts +30 -1
- package/dist/rendering/post/v2Stages.d.ts.map +1 -1
- package/dist/rendering/post/v2Stages.js +87 -21
- package/dist/rendering/post/v2Stages.js.map +1 -1
- package/dist/rendering/program/ProgramCache.d.ts.map +1 -1
- package/dist/rendering/program/ProgramCache.js +12 -0
- package/dist/rendering/program/ProgramCache.js.map +1 -1
- package/dist/rendering/program/ProgramGenerator.d.ts.map +1 -1
- package/dist/rendering/program/ProgramGenerator.js +3 -0
- package/dist/rendering/program/ProgramGenerator.js.map +1 -1
- package/dist/rendering/reference/PostProcessPass.d.ts +1 -1
- package/dist/rendering/reference/PostProcessPass.d.ts.map +1 -1
- package/dist/rendering/reference/PostProcessPass.js +8 -1
- package/dist/rendering/reference/PostProcessPass.js.map +1 -1
- package/dist/rendering/renderer/CullingBatching.d.ts +44 -2
- package/dist/rendering/renderer/CullingBatching.d.ts.map +1 -1
- package/dist/rendering/renderer/CullingBatching.js +66 -11
- package/dist/rendering/renderer/CullingBatching.js.map +1 -1
- package/dist/rendering/shaders/chunks/lighting_mirrors.d.ts +2 -2
- package/dist/rendering/shaders/chunks/lighting_mirrors.d.ts.map +1 -1
- package/dist/rendering/shaders/chunks/lighting_mirrors.js.map +1 -1
- package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts +8 -8
- package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts.map +1 -1
- package/dist/rendering/shadows/DirectionalCascadeFitter.js.map +1 -1
- package/dist/rendering/shadows/ShadowAtlas.d.ts +5 -5
- package/dist/rendering/shadows/ShadowAtlas.d.ts.map +1 -1
- package/dist/rendering/shadows/ShadowAtlas.js.map +1 -1
- package/dist/rendering/vfx/ProceduralVolumeEmitter.d.ts +11 -0
- package/dist/rendering/vfx/ProceduralVolumeEmitter.d.ts.map +1 -1
- package/dist/rendering/vfx/ProceduralVolumeEmitter.js +20 -6
- package/dist/rendering/vfx/ProceduralVolumeEmitter.js.map +1 -1
- package/dist/rendering/webgl2/ContextLifecycle.d.ts +36 -0
- package/dist/rendering/webgl2/ContextLifecycle.d.ts.map +1 -1
- package/dist/rendering/webgl2/ContextLifecycle.js +110 -2
- package/dist/rendering/webgl2/ContextLifecycle.js.map +1 -1
- package/dist/rendering/webgl2/LegacyPost.d.ts +16 -1
- package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
- package/dist/rendering/webgl2/LegacyPost.js +49 -16
- package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
- package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
- package/dist/rendering/webgl2/MultiDraw.js +42 -2
- package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
- package/dist/rendering/webgl2/TextureUpload.d.ts +7 -0
- package/dist/rendering/webgl2/TextureUpload.d.ts.map +1 -1
- package/dist/rendering/webgl2/TextureUpload.js +54 -10
- package/dist/rendering/webgl2/TextureUpload.js.map +1 -1
- package/dist/scene/Layers.d.ts +5 -0
- package/dist/scene/Layers.d.ts.map +1 -1
- package/dist/scene/Layers.js +13 -0
- package/dist/scene/Layers.js.map +1 -1
- package/dist/scene/SceneNode.d.ts +27 -1
- package/dist/scene/SceneNode.d.ts.map +1 -1
- package/dist/scene/SceneNode.js +33 -1
- package/dist/scene/SceneNode.js.map +1 -1
- package/package.json +77 -32
- package/templates/cinematic-scene/index.html +2 -28
- package/templates/cinematic-scene/package.json +2 -1
- package/templates/cinematic-scene/src/main.ts +3 -3
- package/templates/cinematic-scene/tests/look-floor.ts +73 -3
- package/templates/cinematic-scene/tests/route-health.spec.ts +1 -1
- package/templates/cinematic-scene/tests/screenshot.spec.ts +12 -2
- package/templates/cinematic-scene/vite.config.ts +7 -0
- package/templates/mini-game/index.html +1 -27
- package/templates/mini-game/package-lock.json +1312 -0
- package/templates/mini-game/package.json +2 -1
- package/templates/mini-game/src/main.ts +1 -1
- package/templates/mini-game/tests/certified-rig.spec.ts +1 -1
- package/templates/mini-game/tests/look-floor.ts +73 -3
- package/templates/mini-game/tests/playable.spec.ts +57 -12
- package/templates/mini-game/tests/screenshot.spec.ts +12 -2
- package/templates/mini-game/vite.config.ts +7 -0
- package/templates/product-viewer/index.html +2 -27
- package/templates/product-viewer/package.json +2 -1
- package/templates/product-viewer/tests/look-floor.ts +73 -3
- package/templates/product-viewer/tests/screenshot.spec.ts +13 -4
- package/templates/product-viewer/vite.config.ts +7 -0
- package/templates/production-asset-inspector/package.json +1 -1
- package/templates/production-material-studio/package.json +1 -1
- package/templates/production-product-configurator/package.json +1 -1
- package/templates/production-product-viewer/package.json +1 -1
- package/dist/input/controls/CameraRig.d.ts +0 -3
- package/dist/input/controls/CameraRig.d.ts.map +0 -1
- package/dist/input/controls/CameraRig.js +0 -3
- package/dist/input/controls/CameraRig.js.map +0 -1
- package/dist/input/controls/ControlTypes.d.ts +0 -3
- package/dist/input/controls/ControlTypes.d.ts.map +0 -1
- package/dist/input/controls/ControlTypes.js +0 -3
- package/dist/input/controls/ControlTypes.js.map +0 -1
- package/dist/input/controls/EditorFlyControls.d.ts +0 -3
- package/dist/input/controls/EditorFlyControls.d.ts.map +0 -1
- package/dist/input/controls/EditorFlyControls.js +0 -3
- package/dist/input/controls/EditorFlyControls.js.map +0 -1
- package/dist/input/controls/FirstPersonControls.d.ts +0 -3
- package/dist/input/controls/FirstPersonControls.d.ts.map +0 -1
- package/dist/input/controls/FirstPersonControls.js +0 -3
- package/dist/input/controls/FirstPersonControls.js.map +0 -1
- package/dist/input/controls/OrbitControls.d.ts +0 -3
- package/dist/input/controls/OrbitControls.d.ts.map +0 -1
- package/dist/input/controls/OrbitControls.js +0 -3
- package/dist/input/controls/OrbitControls.js.map +0 -1
- package/dist/input/controls/PointerLockControls.d.ts +0 -2
- package/dist/input/controls/PointerLockControls.d.ts.map +0 -1
- package/dist/input/controls/PointerLockControls.js +0 -3
- package/dist/input/controls/PointerLockControls.js.map +0 -1
- package/dist/input/controls/SceneCameraAdapter.d.ts +0 -3
- package/dist/input/controls/SceneCameraAdapter.d.ts.map +0 -1
- package/dist/input/controls/SceneCameraAdapter.js +0 -3
- package/dist/input/controls/SceneCameraAdapter.js.map +0 -1
- package/dist/input/controls/ThirdPersonFollowControls.d.ts +0 -3
- package/dist/input/controls/ThirdPersonFollowControls.d.ts.map +0 -1
- package/dist/input/controls/ThirdPersonFollowControls.js +0 -3
- package/dist/input/controls/ThirdPersonFollowControls.js.map +0 -1
- package/templates/cinematic-scene/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/cinematic-scene/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/cinematic-scene/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
- package/templates/mini-game/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/mini-game/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/mini-game/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
- package/templates/product-viewer/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/product-viewer/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/product-viewer/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AuraColor, AuraModelNode, AuraPrimitiveNode, AuraRuntimeNodeRegistry, AuraSceneNode, AuraTransformSpec, AuraVec3, ProductionRuntimePrimitiveEntry, ProductionRuntimePrimitiveResource, ProductionRuntimePrimitiveState } from "../nodes/types.js";
|
|
2
2
|
import { type TextureStreamingResidency } from "../../../assets/browser-index.js";
|
|
3
|
-
import { type EnvironmentLightingOptions } from "../../../rendering/index.js";
|
|
3
|
+
import { PortableShaderMaterial, type EnvironmentLightingOptions } from "../../../rendering/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* Q-15-2: `qr` (from `qrPrimitiveGeometryOptions(flags, quality)`) routes the
|
|
6
6
|
* builtin primitives through @aura3d/rendering `createPrimitiveGeometry` under
|
|
@@ -86,7 +86,7 @@ interface ProductionPrimitiveScalars {
|
|
|
86
86
|
readonly envMapIntensity: number;
|
|
87
87
|
}
|
|
88
88
|
export declare function resolveProductionPrimitiveScalars(node: AuraPrimitiveNode): ProductionPrimitiveScalars;
|
|
89
|
-
export declare function createProductionPrimitiveMaterial(node: AuraPrimitiveNode): PBRMaterial | InstancedPBRMaterial;
|
|
89
|
+
export declare function createProductionPrimitiveMaterial(node: AuraPrimitiveNode): PBRMaterial | InstancedPBRMaterial | PortableShaderMaterial;
|
|
90
90
|
/** Q-15-2: the flag-on mesh for a builtin primitive node; undefined = legacy path (flag off, custom, geometry spec). */
|
|
91
91
|
export declare function qrPrimitiveMeshFor(node: AuraPrimitiveNode, qr: QrPrimitiveGeometryOptions | undefined): ProductionPrimitiveMesh | undefined;
|
|
92
92
|
/** Q-15-2: flag-on geometry + bounds, pooled per mount when `qr.pool` is set (#545). */
|
|
@@ -105,8 +105,21 @@ export declare function primitiveGeometryBounds(nodeOrPrimitive: AuraPrimitiveNo
|
|
|
105
105
|
export interface ProductionPrimitiveMesh {
|
|
106
106
|
readonly positions: Float32Array;
|
|
107
107
|
readonly normals: Float32Array;
|
|
108
|
-
readonly indices: Uint16Array;
|
|
108
|
+
readonly indices: Uint16Array | Uint32Array;
|
|
109
109
|
readonly bounds: GltfBounds;
|
|
110
|
+
/** threejs-parity L2: `"lines"`/`"points"` topologies (edges/wireframe paths). Default `"triangles"`. */
|
|
111
|
+
readonly topology?: "triangles" | "lines" | "points";
|
|
112
|
+
/** threejs-parity L2: three's geometry.groups — material-index index ranges. */
|
|
113
|
+
readonly groups?: readonly {
|
|
114
|
+
readonly start: number;
|
|
115
|
+
readonly count: number;
|
|
116
|
+
readonly materialIndex?: number;
|
|
117
|
+
}[];
|
|
118
|
+
/** threejs-parity L2: three's setDrawRange. */
|
|
119
|
+
readonly drawRange?: {
|
|
120
|
+
readonly start: number;
|
|
121
|
+
readonly count: number;
|
|
122
|
+
};
|
|
110
123
|
readonly uvs?: Float32Array;
|
|
111
124
|
readonly uv1s?: Float32Array;
|
|
112
125
|
/**
|
|
@@ -116,6 +129,12 @@ export interface ProductionPrimitiveMesh {
|
|
|
116
129
|
readonly tangents?: Float32Array;
|
|
117
130
|
}
|
|
118
131
|
export declare function tilingSecondUnwrap(uvs: Float32Array): Float32Array;
|
|
132
|
+
/** Queued partial attribute write produced by `handle.updateAttribute` (region parity:L2). */
|
|
133
|
+
export interface AuraL2AttributeUpdate {
|
|
134
|
+
readonly name: string;
|
|
135
|
+
readonly array: Float32Array | Uint16Array | Uint32Array;
|
|
136
|
+
readonly offset: number;
|
|
137
|
+
}
|
|
119
138
|
export {};
|
|
120
139
|
/**
|
|
121
140
|
* Build the production `PBRMaterial` for a primitive node.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/compiler/primitives.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,kCAAkC,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AAOhQ,OAAO,EAA2E,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACjJ,OAAO,EAAyI,KAAK,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/compiler/primitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,10 @@ import { primitive } from "../nodes/primitives.js";
|
|
|
7
7
|
import { createModelMatrix, primitiveSize, shouldNormalizeModelNode } from "../sceneMath.js";
|
|
8
8
|
import { selectAuraRootLodLevel } from "../RootGeometry.js";
|
|
9
9
|
import { evaluateDistancePrioritizedMipResidency } from "../../../assets/browser-index.js";
|
|
10
|
-
import { createDualProbeEnvironmentLightingResources, createProductionEnvironmentLightingResources, createProductionPbrHdrPipelineFromRadiance } from "../../../rendering/index.js";
|
|
10
|
+
import { PortableShaderMaterial, createDualProbeEnvironmentLightingResources, createProductionEnvironmentLightingResources, createProductionPbrHdrPipelineFromRadiance } from "../../../rendering/index.js";
|
|
11
|
+
import { applyCustomUniformWrites, createCustomShaderMaterial, customUniformWritesFor } from "./customMaterial.js";
|
|
11
12
|
import { normalizeTextureBudgetBytes } from "../app/rendererOptions.js";
|
|
13
|
+
import { AuraRuntimeError } from "./errors.js";
|
|
12
14
|
import { blankProductionPrimitiveTextureState, createSdfTextPrimitiveResource } from "./textures.js";
|
|
13
15
|
import { material } from "../nodes/material.js";
|
|
14
16
|
/**
|
|
@@ -38,6 +40,10 @@ export function createProductionPrimitiveResources(node, qr) {
|
|
|
38
40
|
sourceNode: node,
|
|
39
41
|
...blankProductionPrimitiveTextureState()
|
|
40
42
|
};
|
|
43
|
+
// threejs-parity L2: the spec object the resource geometry was built from.
|
|
44
|
+
// `handle.setGeometry` mutates `node.geometry` in place, so the applied
|
|
45
|
+
// marker must be captured here rather than re-read from `sourceNode`.
|
|
46
|
+
fallback.__parityL2AppliedGeometry = node.geometry;
|
|
41
47
|
// Sampler failures stay visible on the fallback resource (surfaced via
|
|
42
48
|
// texturedMaterials diagnostics), never swallowed by the mesh swap.
|
|
43
49
|
fallback.textureWarnings.push(...sdfWarnings);
|
|
@@ -67,6 +73,7 @@ export function createProductionPrimitiveResources(node, qr) {
|
|
|
67
73
|
sourceNode: levelNode,
|
|
68
74
|
...blankProductionPrimitiveTextureState()
|
|
69
75
|
};
|
|
76
|
+
levelFallback.__parityL2AppliedGeometry = levelNode.geometry;
|
|
70
77
|
levelFallback.textureWarnings.push(...levelWarnings);
|
|
71
78
|
return levelFallback;
|
|
72
79
|
});
|
|
@@ -79,6 +86,10 @@ export function selectProductionPrimitiveResource(entry, node, cameraPosition, l
|
|
|
79
86
|
mutableResource.materialSpec = node.material;
|
|
80
87
|
mutableResource.material = createProductionPrimitiveMaterial(node);
|
|
81
88
|
}
|
|
89
|
+
// threejs-parity L2 (SG-05): `handle.setGeometry`/`updateAttribute` —
|
|
90
|
+
// in-place buffer writes when the vertex count is unchanged, replace
|
|
91
|
+
// otherwise. Tracked per resource so unchanged frames cost nothing.
|
|
92
|
+
syncRuntimePrimitiveGeometry(resource, node);
|
|
82
93
|
return resource;
|
|
83
94
|
}
|
|
84
95
|
const position = node.position ?? [0, 0, 0];
|
|
@@ -116,22 +127,41 @@ export function resolveProductionPrimitiveRuntimeState(entry, runtimeNodes) {
|
|
|
116
127
|
const runtimeId = entry.node.runtime?.id;
|
|
117
128
|
if (!runtimeId)
|
|
118
129
|
return { node: entry.node, visible: true };
|
|
119
|
-
const
|
|
130
|
+
const runtimeHandle = runtimeNodes?.get(runtimeId);
|
|
131
|
+
const runtimeSnapshot = runtimeHandle?.snapshot();
|
|
132
|
+
// parity:L1 (SH-02): staged `handle.setUniform` writes land on the compiled
|
|
133
|
+
// portable material here — `setParameter` updates uniform state only, never
|
|
134
|
+
// the shader key, so no program is recompiled.
|
|
135
|
+
const uniformWrites = customUniformWritesFor(runtimeId);
|
|
136
|
+
if (uniformWrites?.size) {
|
|
137
|
+
for (const resource of entry.resources) {
|
|
138
|
+
if (resource.material instanceof PortableShaderMaterial) {
|
|
139
|
+
applyCustomUniformWrites(resource.material, uniformWrites);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
120
143
|
if (!runtimeSnapshot)
|
|
121
144
|
return { node: entry.node, visible: true };
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
145
|
+
// L2: drain the queued attribute writes so they apply exactly once.
|
|
146
|
+
const pendingAttributes = runtimeHandle?.__parityL2AttributeUpdates;
|
|
147
|
+
if (runtimeHandle && pendingAttributes && pendingAttributes.length > 0) {
|
|
148
|
+
runtimeHandle.__parityL2AttributeUpdates = [];
|
|
149
|
+
}
|
|
150
|
+
const resolvedNode = {
|
|
151
|
+
...entry.node,
|
|
152
|
+
position: runtimeSnapshot.position,
|
|
153
|
+
rotation: runtimeSnapshot.rotation,
|
|
154
|
+
scale: runtimeSnapshot.scale,
|
|
155
|
+
material: runtimeSnapshot.material ?? entry.node.material,
|
|
156
|
+
animation: runtimeSnapshot.animation ?? entry.node.animation,
|
|
157
|
+
...(runtimeSnapshot.instances ? { instances: runtimeSnapshot.instances } : {}),
|
|
158
|
+
...(runtimeSnapshot.instanceColors ? { instanceColors: runtimeSnapshot.instanceColors } : {}),
|
|
159
|
+
...(runtimeHandle?.__parityL2Geometry !== undefined ? { geometry: runtimeHandle.__parityL2Geometry } : {})
|
|
134
160
|
};
|
|
161
|
+
if (pendingAttributes && pendingAttributes.length > 0) {
|
|
162
|
+
resolvedNode.__parityL2AttributeUpdates = pendingAttributes;
|
|
163
|
+
}
|
|
164
|
+
return { node: resolvedNode, visible: runtimeSnapshot.visible };
|
|
135
165
|
}
|
|
136
166
|
export function describeTextureStreamingResidency(table, budgetBytes) {
|
|
137
167
|
const candidates = table.map((entry) => ({
|
|
@@ -190,13 +220,13 @@ export async function upgradeProductionEnvironmentHdri(url, intensity, reflectio
|
|
|
190
220
|
dualProbe: true
|
|
191
221
|
};
|
|
192
222
|
}
|
|
193
|
-
import { Geometry, IndexBuffer, InstancedPBRMaterial, PBRMaterial, VertexBuffer, VertexFormat } from "../../../rendering/index.js";
|
|
194
|
-
import { defineAuraCustomGeometry } from "../RootGeometry.js";
|
|
223
|
+
import { Geometry, IndexBuffer, InstancedPBRMaterial, PBRMaterial, VertexBuffer, VertexFormat, assignCustomAttributeLocations, customAttributeSemantic } from "../../../rendering/index.js";
|
|
224
|
+
import { computeAuraGeometryBounds, computeAuraGeometryNormals, defineAuraCustomGeometry, normalizeGeometryAttributes } from "../RootGeometry.js";
|
|
195
225
|
import { instances } from "../nodes/instances.js";
|
|
196
226
|
import { renderer } from "../rendererDiagnostics.js";
|
|
197
227
|
import { scene } from "../nodes/scene.js";
|
|
198
228
|
import { colorToLinearRgb } from "../colorUtils.js";
|
|
199
|
-
import { createPlaneGeometry, createBoxGeometry, createSphereGeometry, createCylinderGeometry, createTorusGeometry, createCapsuleApproxGeometry, createQrPrimitiveMesh, qrPrimitiveGeometryKey } from "./geometry.js";
|
|
229
|
+
import { createPlaneGeometry, createBoxGeometry, createSphereGeometry, createCylinderGeometry, createTorusGeometry, createCapsuleApproxGeometry, createQrPrimitiveMesh, qrPrimitiveGeometryKey, qrPrimitiveParamsPoolable } from "./geometry.js";
|
|
200
230
|
import { clamp01 } from "../sceneMath.js";
|
|
201
231
|
export function resolveProductionPrimitiveScalars(node) {
|
|
202
232
|
const materialSpec = node.material;
|
|
@@ -239,6 +269,11 @@ export function resolveProductionPrimitiveScalars(node) {
|
|
|
239
269
|
}
|
|
240
270
|
export function createProductionPrimitiveMaterial(node) {
|
|
241
271
|
const materialSpec = node.material;
|
|
272
|
+
// parity:L1 (SH-02): `material.custom(spec)` routes to the portable-shader
|
|
273
|
+
// adapter — a validated `PortableShaderMaterial`, never a PBR downgrade.
|
|
274
|
+
if (materialSpec?.kind === "custom" && materialSpec.custom) {
|
|
275
|
+
return createCustomShaderMaterial(materialSpec.custom, `primitive-${node.primitive}${node.name ? `-${node.name}` : ""}`);
|
|
276
|
+
}
|
|
242
277
|
const { baseColor, opacity, emissiveColor, clearcoat, sheenColor, declaresExtension, transmission, thicknessRange, sheen, iridescence, anisotropy, environmentIntensity, envMapIntensity } = resolveProductionPrimitiveScalars(node);
|
|
243
278
|
/*
|
|
244
279
|
* Native instance submission requires the renderer's instanced shader contract. The ordinary
|
|
@@ -258,6 +293,8 @@ export function createProductionPrimitiveMaterial(node) {
|
|
|
258
293
|
emissiveStrength: Math.max(0, materialSpec?.emissiveIntensity ?? (materialSpec?.emissive ? 1.35 : 0)),
|
|
259
294
|
environmentIntensity,
|
|
260
295
|
envMapIntensity,
|
|
296
|
+
// threejs-parity L7/SR-02: forward the frozen `AuraMaterialSpec.fog` opt-out.
|
|
297
|
+
fog: materialSpec?.fog,
|
|
261
298
|
renderState: {
|
|
262
299
|
blend: opacity < 0.999,
|
|
263
300
|
depthWrite: opacity >= 0.999,
|
|
@@ -289,6 +326,8 @@ export function createProductionPrimitiveMaterial(node) {
|
|
|
289
326
|
...(materialSpec?.attenuationDistance === undefined ? {} : { volumeAttenuationDistance: Math.max(0, materialSpec.attenuationDistance) }),
|
|
290
327
|
environmentIntensity,
|
|
291
328
|
envMapIntensity,
|
|
329
|
+
// threejs-parity L7/SR-02: forward the frozen `AuraMaterialSpec.fog` opt-out.
|
|
330
|
+
fog: materialSpec?.fog,
|
|
292
331
|
renderState: {
|
|
293
332
|
blend: opacity < 0.999,
|
|
294
333
|
depthWrite: opacity >= 0.999,
|
|
@@ -296,23 +335,52 @@ export function createProductionPrimitiveMaterial(node) {
|
|
|
296
335
|
}
|
|
297
336
|
});
|
|
298
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* threejs-parity L2 (§6 L2-01/02): every `AuraBuiltinPrimitive` kind now maps
|
|
340
|
+
* onto a real `createPrimitiveGeometry` generator — no fail-closed dispatch
|
|
341
|
+
* remains. `"custom"` still resolves through the geometry-spec path.
|
|
342
|
+
*/
|
|
343
|
+
function qrBuiltinPrimitive(primitive) {
|
|
344
|
+
switch (primitive) {
|
|
345
|
+
case "box":
|
|
346
|
+
case "sphere":
|
|
347
|
+
case "plane":
|
|
348
|
+
case "cylinder":
|
|
349
|
+
case "capsule":
|
|
350
|
+
case "torus":
|
|
351
|
+
case "cone":
|
|
352
|
+
case "circle":
|
|
353
|
+
case "ring":
|
|
354
|
+
case "tube":
|
|
355
|
+
case "lathe":
|
|
356
|
+
case "extrude":
|
|
357
|
+
case "shape":
|
|
358
|
+
case "torusKnot":
|
|
359
|
+
case "polyhedron":
|
|
360
|
+
case "roundedBox":
|
|
361
|
+
return primitive;
|
|
362
|
+
default:
|
|
363
|
+
throw new AuraRuntimeError("parity-not-implemented", `Aura3D primitive "${String(primitive)}" is not implemented (A3D_PARITY_GEOMETRY). See docs/workflows/threejs-parity-gaps.md.`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
299
366
|
/** Q-15-2: the flag-on mesh for a builtin primitive node; undefined = legacy path (flag off, custom, geometry spec). */
|
|
300
367
|
export function qrPrimitiveMeshFor(node, qr) {
|
|
301
368
|
if (!qr?.core || node.geometry || node.primitive === "custom")
|
|
302
369
|
return undefined;
|
|
303
|
-
return createQrPrimitiveMesh(node.primitive, primitiveSize(node), qr);
|
|
370
|
+
return createQrPrimitiveMesh(qrBuiltinPrimitive(node.primitive), primitiveSize(node), qr, node.params);
|
|
304
371
|
}
|
|
305
372
|
/** Q-15-2: flag-on geometry + bounds, pooled per mount when `qr.pool` is set (#545). */
|
|
306
373
|
export function qrPrimitiveGeometryFor(node, qr) {
|
|
307
374
|
if (!qr?.core || node.geometry || node.primitive === "custom")
|
|
308
375
|
return undefined;
|
|
309
376
|
const size = primitiveSize(node);
|
|
310
|
-
|
|
311
|
-
|
|
377
|
+
// L2: params carrying live curve/shape objects can't key a shared pool entry.
|
|
378
|
+
if (!qr.pool || !qrPrimitiveParamsPoolable(node.params)) {
|
|
379
|
+
const mesh = createQrPrimitiveMesh(qrBuiltinPrimitive(node.primitive), size, qr, node.params);
|
|
312
380
|
return { geometry: createProductionGeometryFromPrimitiveMesh(mesh), bounds: mesh.bounds };
|
|
313
381
|
}
|
|
314
|
-
const primitive = node.primitive;
|
|
315
|
-
const geometry = qr.pool.acquire(qrPrimitiveGeometryKey(primitive, size, qr), () => createProductionGeometryFromPrimitiveMesh(createQrPrimitiveMesh(primitive, size, qr)));
|
|
382
|
+
const primitive = qrBuiltinPrimitive(node.primitive);
|
|
383
|
+
const geometry = qr.pool.acquire(qrPrimitiveGeometryKey(primitive, size, qr, node.params), () => createProductionGeometryFromPrimitiveMesh(createQrPrimitiveMesh(primitive, size, qr, node.params)));
|
|
316
384
|
return { geometry, bounds: geometry.bounds };
|
|
317
385
|
}
|
|
318
386
|
export function createProductionPrimitiveGeometry(node) {
|
|
@@ -320,7 +388,7 @@ export function createProductionPrimitiveGeometry(node) {
|
|
|
320
388
|
return createProductionGeometryFromCustomSpec(node.geometry);
|
|
321
389
|
if (node.primitive === "custom")
|
|
322
390
|
throw new Error("Aura3D custom primitive requires geometry.");
|
|
323
|
-
return createProductionGeometryFromPrimitiveMesh(createProductionPrimitiveMesh(node.primitive));
|
|
391
|
+
return createProductionGeometryFromPrimitiveMesh(createProductionPrimitiveMesh(node.primitive, node));
|
|
324
392
|
}
|
|
325
393
|
export function primitiveGeometryBounds(nodeOrPrimitive) {
|
|
326
394
|
if (typeof nodeOrPrimitive === "object" && nodeOrPrimitive.geometry)
|
|
@@ -328,7 +396,7 @@ export function primitiveGeometryBounds(nodeOrPrimitive) {
|
|
|
328
396
|
const primitive = typeof nodeOrPrimitive === "string" ? nodeOrPrimitive : nodeOrPrimitive.primitive;
|
|
329
397
|
if (primitive === "custom")
|
|
330
398
|
throw new Error("Aura3D custom primitive requires geometry.");
|
|
331
|
-
return createProductionPrimitiveMesh(primitive).bounds;
|
|
399
|
+
return createProductionPrimitiveMesh(primitive, typeof nodeOrPrimitive === "object" ? nodeOrPrimitive : undefined).bounds;
|
|
332
400
|
}
|
|
333
401
|
export function tilingSecondUnwrap(uvs) {
|
|
334
402
|
const uv1s = new Float32Array(uvs.length);
|
|
@@ -336,7 +404,12 @@ export function tilingSecondUnwrap(uvs) {
|
|
|
336
404
|
uv1s[i] = (uvs[i] ?? 0) * 2;
|
|
337
405
|
return uv1s;
|
|
338
406
|
}
|
|
339
|
-
|
|
407
|
+
/**
|
|
408
|
+
* Legacy (flag-off) primitive mesh. The six original kinds keep their bespoke
|
|
409
|
+
* generators byte-for-byte; the ten threejs-parity L2 kinds route through the
|
|
410
|
+
* shared `createPrimitiveGeometry` factory with the node's params.
|
|
411
|
+
*/
|
|
412
|
+
function createProductionPrimitiveMesh(primitive, node) {
|
|
340
413
|
if (primitive === "sphere")
|
|
341
414
|
return createSphereGeometry();
|
|
342
415
|
if (primitive === "capsule")
|
|
@@ -347,43 +420,87 @@ function createProductionPrimitiveMesh(primitive) {
|
|
|
347
420
|
return createBoxGeometry();
|
|
348
421
|
if (primitive === "cylinder")
|
|
349
422
|
return createCylinderGeometry();
|
|
350
|
-
|
|
423
|
+
if (primitive === "plane")
|
|
424
|
+
return createPlaneGeometry();
|
|
425
|
+
// threejs-parity L2: the ten new kinds share the QR generator path (full
|
|
426
|
+
// segments — the C-27 tier halving only applies under A3D_QR_CORE).
|
|
427
|
+
const size = node ? primitiveSize(node) : [1, 1, 1];
|
|
428
|
+
return createQrPrimitiveMesh(qrBuiltinPrimitive(primitive), size, { core: true, primitiveSegments: "full" }, node?.params);
|
|
351
429
|
}
|
|
430
|
+
/**
|
|
431
|
+
* SG-05 (threejs-parity L2): custom/dynamic specs normalize flat or tuple
|
|
432
|
+
* attributes, optional colors, `"lines"` topology (edges/wireframe), groups,
|
|
433
|
+
* drawRange and morph targets onto the production `Geometry`.
|
|
434
|
+
*/
|
|
352
435
|
function createProductionGeometryFromCustomSpec(spec) {
|
|
353
|
-
const normalized =
|
|
354
|
-
const normals =
|
|
355
|
-
const vertexCount = normalized.
|
|
356
|
-
const
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
436
|
+
const normalized = normalizeGeometryAttributes(spec);
|
|
437
|
+
const normals = resolveSpecNormals(spec, normalized);
|
|
438
|
+
const vertexCount = normalized.vertexCount;
|
|
439
|
+
const attributes = [
|
|
440
|
+
{ semantic: "position", components: 3, offset: 0 },
|
|
441
|
+
{ semantic: "normal", components: 3, offset: 12 }
|
|
442
|
+
];
|
|
443
|
+
let cursor = 24;
|
|
444
|
+
if (normalized.uvs) {
|
|
445
|
+
attributes.push({ semantic: "uv", components: 2, offset: cursor });
|
|
446
|
+
cursor += 8;
|
|
447
|
+
}
|
|
448
|
+
if (normalized.colors) {
|
|
449
|
+
attributes.push({ semantic: "color", components: 4, offset: cursor });
|
|
450
|
+
cursor += 16;
|
|
451
|
+
}
|
|
452
|
+
// R-23: custom attributes follow the built-ins in name order and bind by
|
|
453
|
+
// their GLSL name; locations come from the stable pool.
|
|
454
|
+
const customLocations = assignCustomAttributeLocations(normalized.custom.map((entry) => entry.name));
|
|
455
|
+
for (const entry of normalized.custom) {
|
|
456
|
+
attributes.push({
|
|
457
|
+
semantic: customAttributeSemantic(entry.name),
|
|
458
|
+
components: entry.itemSize,
|
|
459
|
+
offset: cursor,
|
|
460
|
+
shaderName: entry.name,
|
|
461
|
+
shaderLocation: customLocations.get(entry.name)
|
|
462
|
+
});
|
|
463
|
+
cursor += entry.itemSize * 4;
|
|
464
|
+
}
|
|
465
|
+
const vertices = new VertexBuffer(new VertexFormat(attributes), vertexCount);
|
|
466
|
+
for (let index = 0; index < vertexCount; index += 1) {
|
|
467
|
+
vertices.setAttribute(index, "position", [normalized.positions[index * 3], normalized.positions[index * 3 + 1], normalized.positions[index * 3 + 2]]);
|
|
468
|
+
vertices.setAttribute(index, "normal", [normals[index * 3], normals[index * 3 + 1], normals[index * 3 + 2]]);
|
|
469
|
+
if (normalized.uvs)
|
|
470
|
+
vertices.setAttribute(index, "uv", [normalized.uvs[index * 2], normalized.uvs[index * 2 + 1]]);
|
|
471
|
+
if (normalized.colors)
|
|
472
|
+
vertices.setAttribute(index, "color", [normalized.colors[index * 4], normalized.colors[index * 4 + 1], normalized.colors[index * 4 + 2], normalized.colors[index * 4 + 3]]);
|
|
473
|
+
}
|
|
474
|
+
for (const entry of normalized.custom)
|
|
475
|
+
writeCustomAttribute(vertices, entry.name, entry.itemSize, entry.data, 0);
|
|
476
|
+
const indexList = normalized.indices ?? Uint32Array.from({ length: vertexCount }, (_, i) => i);
|
|
477
|
+
const indexBuffer = indexList.length > 0 ? new IndexBuffer(Array.from(indexList), vertexCount) : null;
|
|
478
|
+
const geometry = new Geometry(vertices, indexBuffer, spec.topology === "lines" ? "lines" : spec.topology === "points" ? "points" : "triangles", customGeometryBounds(spec));
|
|
479
|
+
if (spec.groups)
|
|
480
|
+
geometry.groups = [...spec.groups];
|
|
481
|
+
if (spec.drawRange)
|
|
482
|
+
geometry.drawRange = { ...spec.drawRange };
|
|
483
|
+
if (spec.morphTargets)
|
|
484
|
+
geometry.morphTargets = spec.morphTargets.map((target) => ({ ...target }));
|
|
485
|
+
return geometry;
|
|
486
|
+
}
|
|
487
|
+
/** Authored normals, else computed; points carry a constant +Y (a vertex count that is not a multiple of 3 would yield NaN face normals). */
|
|
488
|
+
function resolveSpecNormals(spec, normalized) {
|
|
489
|
+
if (normalized.normals)
|
|
490
|
+
return normalized.normals;
|
|
491
|
+
if (spec.topology === "points") {
|
|
492
|
+
const up = new Float32Array(normalized.positions.length);
|
|
493
|
+
for (let i = 1; i < up.length; i += 3)
|
|
494
|
+
up[i] = 1;
|
|
495
|
+
return up;
|
|
496
|
+
}
|
|
497
|
+
return computeAuraGeometryNormals({ positions: normalized.positions, indices: normalized.indices });
|
|
362
498
|
}
|
|
363
499
|
function customGeometryBounds(spec) {
|
|
364
500
|
if (spec.bounds)
|
|
365
501
|
return { min: spec.bounds.min, max: spec.bounds.max };
|
|
366
|
-
const
|
|
367
|
-
|
|
368
|
-
spec.positions.forEach((position) => { for (let axis = 0; axis < 3; axis += 1) {
|
|
369
|
-
min[axis] = Math.min(min[axis], position[axis]);
|
|
370
|
-
max[axis] = Math.max(max[axis], position[axis]);
|
|
371
|
-
} });
|
|
372
|
-
return { min, max };
|
|
373
|
-
}
|
|
374
|
-
function calculateCustomGeometryNormals(spec) {
|
|
375
|
-
const totals = Array.from({ length: spec.positions.length }, () => [0, 0, 0]);
|
|
376
|
-
for (let offset = 0; offset < spec.indices.length; offset += 3) {
|
|
377
|
-
const ia = spec.indices[offset], ib = spec.indices[offset + 1], ic = spec.indices[offset + 2];
|
|
378
|
-
const a = spec.positions[ia], b = spec.positions[ib], c = spec.positions[ic];
|
|
379
|
-
const ab = [b[0] - a[0], b[1] - a[1], b[2] - a[2]];
|
|
380
|
-
const ac = [c[0] - a[0], c[1] - a[1], c[2] - a[2]];
|
|
381
|
-
const normal = [ab[1] * ac[2] - ab[2] * ac[1], ab[2] * ac[0] - ab[0] * ac[2], ab[0] * ac[1] - ab[1] * ac[0]];
|
|
382
|
-
for (const index of [ia, ib, ic])
|
|
383
|
-
for (let axis = 0; axis < 3; axis += 1)
|
|
384
|
-
totals[index][axis] += normal[axis];
|
|
385
|
-
}
|
|
386
|
-
return totals.map((normal) => { const length = Math.hypot(...normal) || 1; return [normal[0] / length, normal[1] / length, normal[2] / length]; });
|
|
502
|
+
const computed = computeAuraGeometryBounds({ positions: spec.positions });
|
|
503
|
+
return { min: computed.min, max: computed.max };
|
|
387
504
|
}
|
|
388
505
|
function createProductionGeometryFromPrimitiveMesh(mesh) {
|
|
389
506
|
const vertexCount = mesh.positions.length / 3;
|
|
@@ -406,7 +523,153 @@ function createProductionGeometryFromPrimitiveMesh(mesh) {
|
|
|
406
523
|
vertices.setAttribute(index, "uv1", [uv1[uvBase] ?? 0, uv1[uvBase + 1] ?? 0]);
|
|
407
524
|
}
|
|
408
525
|
}
|
|
409
|
-
|
|
526
|
+
const geometry = new Geometry(vertices, new IndexBuffer(Array.from(mesh.indices), vertexCount), mesh.topology ?? "triangles", mesh.bounds);
|
|
527
|
+
// threejs-parity L2: carry three's groups/drawRange through to the draw path.
|
|
528
|
+
if (mesh.groups)
|
|
529
|
+
geometry.groups = [...mesh.groups];
|
|
530
|
+
if (mesh.drawRange)
|
|
531
|
+
geometry.drawRange = { ...mesh.drawRange };
|
|
532
|
+
return geometry;
|
|
533
|
+
}
|
|
534
|
+
const L2_UPDATE_SEMANTICS = {
|
|
535
|
+
position: "position",
|
|
536
|
+
positions: "position",
|
|
537
|
+
normal: "normal",
|
|
538
|
+
normals: "normal",
|
|
539
|
+
uv: "uv",
|
|
540
|
+
uv0: "uv",
|
|
541
|
+
uvs: "uv",
|
|
542
|
+
uv1: "uv1",
|
|
543
|
+
color: "color",
|
|
544
|
+
colors: "color",
|
|
545
|
+
tangent: "tangent",
|
|
546
|
+
tangents: "tangent"
|
|
547
|
+
};
|
|
548
|
+
/**
|
|
549
|
+
* SG-05: apply `handle.setGeometry` + `handle.updateAttribute` writes to the
|
|
550
|
+
* live resource. Same vertex count + same attribute set ⇒ write into the
|
|
551
|
+
* existing `VertexBuffer` (dirty ranges flush on the next `upload()` — the
|
|
552
|
+
* GPU allocation is never re-created). A different vertex count or attribute
|
|
553
|
+
* footprint rebuilds the `Geometry` once (realloc allowed then).
|
|
554
|
+
*/
|
|
555
|
+
function syncRuntimePrimitiveGeometry(resource, node) {
|
|
556
|
+
const tracked = resource;
|
|
557
|
+
const spec = node.geometry;
|
|
558
|
+
// `__parityL2AppliedGeometry` is tagged at resource build — `handle.setGeometry`
|
|
559
|
+
// also mutates `node.geometry` in place, so `sourceNode.geometry` can NOT
|
|
560
|
+
// serve as the applied marker (it already holds the new spec).
|
|
561
|
+
if (spec !== undefined && spec !== tracked.__parityL2AppliedGeometry) {
|
|
562
|
+
applyDynamicGeometrySpec(resource, spec);
|
|
563
|
+
tracked.__parityL2AppliedGeometry = spec;
|
|
564
|
+
if (tracked.sourceNode)
|
|
565
|
+
tracked.sourceNode = { ...tracked.sourceNode, geometry: spec };
|
|
566
|
+
}
|
|
567
|
+
const updates = node.__parityL2AttributeUpdates;
|
|
568
|
+
if (updates) {
|
|
569
|
+
for (const update of updates)
|
|
570
|
+
applyAttributeUpdateToGeometry(resource.geometry, update);
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
function applyDynamicGeometrySpec(resource, spec) {
|
|
574
|
+
const tracked = resource;
|
|
575
|
+
const normalized = normalizeGeometryAttributes(spec);
|
|
576
|
+
const geometry = resource.geometry;
|
|
577
|
+
const vertexBuffer = geometry.vertexBuffer;
|
|
578
|
+
const has = (semantic) => vertexBuffer.format.hasAttribute(semantic);
|
|
579
|
+
const sameFootprint = vertexBuffer.vertexCount === normalized.vertexCount
|
|
580
|
+
&& has("uv") === (normalized.uvs !== undefined)
|
|
581
|
+
&& has("color") === (normalized.colors !== undefined)
|
|
582
|
+
&& customFootprintMatches(vertexBuffer, normalized.custom)
|
|
583
|
+
&& geometry.topology === (spec.topology ?? "triangles")
|
|
584
|
+
&& vertexBuffer.format.hasAttribute("normal")
|
|
585
|
+
&& !has("tangent");
|
|
586
|
+
const normals = resolveSpecNormals(spec, normalized);
|
|
587
|
+
if (sameFootprint) {
|
|
588
|
+
// In-place path (L2-04): attribute writes mark byte ranges dirty; the next
|
|
589
|
+
// upload() flushes only those ranges — no new GPU buffer.
|
|
590
|
+
for (let index = 0; index < normalized.vertexCount; index += 1) {
|
|
591
|
+
vertexBuffer.setAttribute(index, "position", [normalized.positions[index * 3], normalized.positions[index * 3 + 1], normalized.positions[index * 3 + 2]]);
|
|
592
|
+
vertexBuffer.setAttribute(index, "normal", [normals[index * 3], normals[index * 3 + 1], normals[index * 3 + 2]]);
|
|
593
|
+
if (normalized.uvs)
|
|
594
|
+
vertexBuffer.setAttribute(index, "uv", [normalized.uvs[index * 2], normalized.uvs[index * 2 + 1]]);
|
|
595
|
+
if (normalized.colors)
|
|
596
|
+
vertexBuffer.setAttribute(index, "color", [normalized.colors[index * 4], normalized.colors[index * 4 + 1], normalized.colors[index * 4 + 2], normalized.colors[index * 4 + 3]]);
|
|
597
|
+
}
|
|
598
|
+
for (const entry of normalized.custom)
|
|
599
|
+
writeCustomAttribute(vertexBuffer, entry.name, entry.itemSize, entry.data, 0);
|
|
600
|
+
if (normalized.indices && geometry.indexBuffer && normalized.indices.length === geometry.indexBuffer.count) {
|
|
601
|
+
geometry.indexBuffer.setIndices(0, normalized.indices);
|
|
602
|
+
}
|
|
603
|
+
else if (normalized.indices) {
|
|
604
|
+
// Same vertex count but a different index count still fits the existing
|
|
605
|
+
// vertex allocation; only the index buffer is swapped.
|
|
606
|
+
geometry.indexBuffer?.dispose();
|
|
607
|
+
geometry.indexBuffer = new IndexBuffer(Array.from(normalized.indices), normalized.vertexCount);
|
|
608
|
+
}
|
|
609
|
+
const bounds = spec.bounds ? { min: spec.bounds.min, max: spec.bounds.max } : computeAuraGeometryBounds({ positions: normalized.positions });
|
|
610
|
+
geometry.bounds = { min: [...bounds.min], max: [...bounds.max] };
|
|
611
|
+
geometry.groups = spec.groups ? [...spec.groups] : undefined;
|
|
612
|
+
geometry.drawRange = spec.drawRange ? { ...spec.drawRange } : undefined;
|
|
613
|
+
geometry.morphTargets = spec.morphTargets ? spec.morphTargets.map((target) => ({ ...target })) : undefined;
|
|
614
|
+
tracked.bounds = { min: [...bounds.min], max: [...bounds.max] };
|
|
615
|
+
return;
|
|
616
|
+
}
|
|
617
|
+
// Realloc path: different vertex count, attribute footprint, or topology.
|
|
618
|
+
const next = createProductionGeometryFromCustomSpec(spec);
|
|
619
|
+
geometry.dispose();
|
|
620
|
+
tracked.geometry = next;
|
|
621
|
+
tracked.bounds = { min: [...next.bounds.min], max: [...next.bounds.max] };
|
|
622
|
+
}
|
|
623
|
+
/** R-23: write `data` (itemSize floats per vertex) into the named custom attribute starting at vertex `start`. */
|
|
624
|
+
function writeCustomAttribute(vertexBuffer, name, itemSize, data, start) {
|
|
625
|
+
const semantic = customAttributeSemantic(name);
|
|
626
|
+
const elements = data.length / itemSize;
|
|
627
|
+
const scratch = new Array(itemSize);
|
|
628
|
+
for (let element = 0; element < elements; element += 1) {
|
|
629
|
+
for (let component = 0; component < itemSize; component += 1)
|
|
630
|
+
scratch[component] = data[element * itemSize + component] ?? 0;
|
|
631
|
+
vertexBuffer.setAttribute(start + element, semantic, scratch);
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
/** R-23: the live buffer holds exactly the spec's custom attributes (same names, same itemSize). */
|
|
635
|
+
function customFootprintMatches(vertexBuffer, custom) {
|
|
636
|
+
const live = vertexBuffer.format.attributes.filter((attribute) => String(attribute.semantic).startsWith("custom:"));
|
|
637
|
+
if (live.length !== custom.length)
|
|
638
|
+
return false;
|
|
639
|
+
return custom.every((entry) => {
|
|
640
|
+
const semantic = customAttributeSemantic(entry.name);
|
|
641
|
+
return vertexBuffer.format.hasAttribute(semantic) && vertexBuffer.format.getAttribute(semantic).components === entry.itemSize;
|
|
642
|
+
});
|
|
643
|
+
}
|
|
644
|
+
/** SG-05 `updateAttribute`: partial write by element offset — dirty-ranged, never reallocates. */
|
|
645
|
+
function applyAttributeUpdateToGeometry(geometry, update) {
|
|
646
|
+
// R-23: exact-name custom attributes win; validated names never collide with the built-in aliases.
|
|
647
|
+
const customSemantic = customAttributeSemantic(update.name);
|
|
648
|
+
const semantic = geometry.vertexBuffer.format.hasAttribute(customSemantic) ? customSemantic : L2_UPDATE_SEMANTICS[update.name.toLowerCase()];
|
|
649
|
+
if (!semantic) {
|
|
650
|
+
throw new Error(`Aura3D updateAttribute name "${update.name}" is not a writable vertex semantic (position/normal/uv/uv1/color/tangent) or a custom attribute on this geometry.`);
|
|
651
|
+
}
|
|
652
|
+
const vertexBuffer = geometry.vertexBuffer;
|
|
653
|
+
if (!vertexBuffer.format.hasAttribute(semantic)) {
|
|
654
|
+
throw new Error(`Aura3D updateAttribute("${update.name}") — the live geometry has no "${semantic}" attribute.`);
|
|
655
|
+
}
|
|
656
|
+
const components = vertexBuffer.format.getAttribute(semantic).components;
|
|
657
|
+
const data = update.array;
|
|
658
|
+
if (data.length % components !== 0) {
|
|
659
|
+
throw new Error(`Aura3D updateAttribute("${update.name}") array length must be a multiple of ${components}.`);
|
|
660
|
+
}
|
|
661
|
+
const start = Math.max(0, Math.floor(update.offset));
|
|
662
|
+
const elements = data.length / components;
|
|
663
|
+
if (start + elements > vertexBuffer.vertexCount) {
|
|
664
|
+
throw new Error(`Aura3D updateAttribute("${update.name}") overruns the vertex buffer (${vertexBuffer.vertexCount} vertices).`);
|
|
665
|
+
}
|
|
666
|
+
const scratch = new Array(components);
|
|
667
|
+
for (let element = 0; element < elements; element += 1) {
|
|
668
|
+
for (let component = 0; component < components; component += 1) {
|
|
669
|
+
scratch[component] = data[element * components + component] ?? 0;
|
|
670
|
+
}
|
|
671
|
+
vertexBuffer.setAttribute(start + element, semantic, scratch);
|
|
672
|
+
}
|
|
410
673
|
}
|
|
411
674
|
/**
|
|
412
675
|
* Build the production `PBRMaterial` for a primitive node.
|