@aura3d/engine 1.4.5 → 1.5.1
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 +95 -29
- package/dist/animation/Retargeting.d.ts +12 -0
- package/dist/animation/Retargeting.d.ts.map +1 -0
- package/dist/animation/Retargeting.js +19 -0
- package/dist/animation/Retargeting.js.map +1 -0
- package/dist/assets/GLTFLoader.d.ts +4 -0
- package/dist/assets/GLTFLoader.d.ts.map +1 -1
- package/dist/assets/GLTFLoader.js +39 -4
- package/dist/assets/GLTFLoader.js.map +1 -1
- package/dist/assets/GLTFRenderResources.d.ts +16 -0
- package/dist/assets/GLTFRenderResources.d.ts.map +1 -1
- package/dist/assets/GLTFRenderResources.js +42 -2
- package/dist/assets/GLTFRenderResources.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/index.d.ts +0 -1
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +0 -1
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/loaders/index.d.ts +0 -1
- package/dist/assets/loaders/index.d.ts.map +1 -1
- package/dist/assets/loaders/index.js +0 -1
- package/dist/assets/loaders/index.js.map +1 -1
- package/dist/aura3d-cli/asset-intent.d.ts +148 -0
- package/dist/aura3d-cli/asset-intent.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-intent.js +145 -0
- package/dist/aura3d-cli/asset-intent.js.map +1 -0
- package/dist/aura3d-cli/asset-role-admission.d.ts +174 -0
- package/dist/aura3d-cli/asset-role-admission.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-role-admission.js +381 -0
- package/dist/aura3d-cli/asset-role-admission.js.map +1 -0
- package/dist/aura3d-cli/asset-screening-effects.d.ts +95 -0
- package/dist/aura3d-cli/asset-screening-effects.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-screening-effects.js +321 -0
- package/dist/aura3d-cli/asset-screening-effects.js.map +1 -0
- package/dist/aura3d-cli/asset-screening-pipeline.d.ts +132 -0
- package/dist/aura3d-cli/asset-screening-pipeline.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-screening-pipeline.js +277 -0
- package/dist/aura3d-cli/asset-screening-pipeline.js.map +1 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.d.ts +15 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.d.ts.map +1 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.js +46 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.js.map +1 -0
- package/dist/aura3d-cli/cli-help.js +1 -1
- package/dist/aura3d-cli/cli.js +16 -2
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts +8 -0
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +390 -17
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.d.ts +4 -0
- package/dist/aura3d-cli/pull-bridge/search.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.js +22 -0
- package/dist/aura3d-cli/pull-bridge/search.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge.d.ts +20 -5
- package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge.js +38 -1
- package/dist/aura3d-cli/pull-bridge.js.map +1 -1
- package/dist/controls/ControlState.d.ts +1 -1
- package/dist/controls/ControlState.d.ts.map +1 -1
- package/dist/controls/DragControls.d.ts +21 -1
- package/dist/controls/DragControls.d.ts.map +1 -1
- package/dist/controls/DragControls.js +24 -2
- package/dist/controls/DragControls.js.map +1 -1
- package/dist/controls/FirstPersonControls.d.ts +10 -1
- package/dist/controls/FirstPersonControls.d.ts.map +1 -1
- package/dist/controls/FirstPersonControls.js +18 -2
- package/dist/controls/FirstPersonControls.js.map +1 -1
- package/dist/controls/FlyControls.d.ts +42 -0
- package/dist/controls/FlyControls.d.ts.map +1 -1
- package/dist/controls/FlyControls.js +106 -3
- package/dist/controls/FlyControls.js.map +1 -1
- package/dist/controls/MapControls.d.ts +13 -0
- package/dist/controls/MapControls.d.ts.map +1 -1
- package/dist/controls/MapControls.js +40 -2
- package/dist/controls/MapControls.js.map +1 -1
- package/dist/controls/OrbitControls.d.ts +54 -0
- package/dist/controls/OrbitControls.d.ts.map +1 -1
- package/dist/controls/OrbitControls.js +133 -0
- package/dist/controls/OrbitControls.js.map +1 -1
- package/dist/controls/PointerLockControls.d.ts +12 -5
- package/dist/controls/PointerLockControls.d.ts.map +1 -1
- package/dist/controls/PointerLockControls.js +30 -11
- package/dist/controls/PointerLockControls.js.map +1 -1
- package/dist/controls/SelectionManager.d.ts +22 -1
- package/dist/controls/SelectionManager.d.ts.map +1 -1
- package/dist/controls/SelectionManager.js +64 -6
- package/dist/controls/SelectionManager.js.map +1 -1
- package/dist/controls/TransformControls.d.ts +135 -1
- package/dist/controls/TransformControls.d.ts.map +1 -1
- package/dist/controls/TransformControls.js +534 -10
- package/dist/controls/TransformControls.js.map +1 -1
- package/dist/controls/index.d.ts +7 -2
- package/dist/controls/index.d.ts.map +1 -1
- package/dist/controls/index.js +1 -1
- package/dist/controls/index.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts +2 -0
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js +769 -42
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-template-evidence.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-template-evidence.js +22 -2
- package/dist/create-aura3d/showcase-spec-game-template-evidence.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-replacement-candidates.js +26 -0
- package/dist/create-aura3d/showcase-spec-replacement-candidates.js.map +1 -1
- package/dist/ecs/components/MeshComponent.d.ts +5 -2
- package/dist/ecs/components/MeshComponent.d.ts.map +1 -1
- package/dist/ecs/components/MeshComponent.js.map +1 -1
- package/dist/editor-runtime/CartoonSceneEditor.d.ts +111 -0
- package/dist/editor-runtime/CartoonSceneEditor.d.ts.map +1 -0
- package/dist/editor-runtime/CartoonSceneEditor.js +285 -0
- package/dist/editor-runtime/CartoonSceneEditor.js.map +1 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.d.ts +142 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.d.ts.map +1 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.js +468 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.js.map +1 -0
- package/dist/editor-runtime/index.d.ts +2 -0
- package/dist/editor-runtime/index.d.ts.map +1 -1
- package/dist/editor-runtime/index.js +1 -0
- package/dist/editor-runtime/index.js.map +1 -1
- package/dist/engine/agent-api/ApplicationKits.d.ts +307 -0
- package/dist/engine/agent-api/ApplicationKits.d.ts.map +1 -0
- package/dist/engine/agent-api/ApplicationKits.js +650 -0
- package/dist/engine/agent-api/ApplicationKits.js.map +1 -0
- package/dist/engine/agent-api/CartoonAssetManifest.d.ts +50 -0
- package/dist/engine/agent-api/CartoonAssetManifest.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonAssetManifest.js +65 -0
- package/dist/engine/agent-api/CartoonAssetManifest.js.map +1 -0
- package/dist/engine/agent-api/CartoonDirector.d.ts +120 -0
- package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonDirector.js +432 -0
- package/dist/engine/agent-api/CartoonDirector.js.map +1 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.d.ts +51 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.js +79 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.js.map +1 -0
- package/dist/engine/agent-api/CartoonMotionQuality.d.ts +83 -0
- package/dist/engine/agent-api/CartoonMotionQuality.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonMotionQuality.js +128 -0
- package/dist/engine/agent-api/CartoonMotionQuality.js.map +1 -0
- package/dist/engine/agent-api/CartoonPerformance.d.ts +150 -0
- package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonPerformance.js +345 -0
- package/dist/engine/agent-api/CartoonPerformance.js.map +1 -0
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts +143 -0
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonRenderQueue.js +410 -0
- package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -0
- package/dist/engine/agent-api/CartoonRouteProof.d.ts +112 -0
- package/dist/engine/agent-api/CartoonRouteProof.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonRouteProof.js +127 -0
- package/dist/engine/agent-api/CartoonRouteProof.js.map +1 -0
- package/dist/engine/agent-api/CombatFrameData.d.ts +210 -0
- package/dist/engine/agent-api/CombatFrameData.d.ts.map +1 -0
- package/dist/engine/agent-api/CombatFrameData.js +324 -0
- package/dist/engine/agent-api/CombatFrameData.js.map +1 -0
- package/dist/engine/agent-api/FocusSelection.d.ts +186 -0
- package/dist/engine/agent-api/FocusSelection.d.ts.map +1 -0
- package/dist/engine/agent-api/FocusSelection.js +436 -0
- package/dist/engine/agent-api/FocusSelection.js.map +1 -0
- package/dist/engine/agent-api/GameEvidence.d.ts +1 -0
- package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -1
- package/dist/engine/agent-api/GameEvidence.js +1 -0
- package/dist/engine/agent-api/GameEvidence.js.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.d.ts +43 -1
- package/dist/engine/agent-api/GameGenreKits.d.ts.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.js +79 -13
- package/dist/engine/agent-api/GameGenreKits.js.map +1 -1
- package/dist/engine/agent-api/GameRuntime.d.ts +1 -0
- package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/GameRuntime.js +1 -0
- package/dist/engine/agent-api/GameRuntime.js.map +1 -1
- package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts +22 -0
- package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts.map +1 -1
- package/dist/engine/agent-api/GameSceneGeometryBindings.js +9 -0
- package/dist/engine/agent-api/GameSceneGeometryBindings.js.map +1 -1
- package/dist/engine/agent-api/LayeredSceneComposition.d.ts +295 -0
- package/dist/engine/agent-api/LayeredSceneComposition.d.ts.map +1 -0
- package/dist/engine/agent-api/LayeredSceneComposition.js +387 -0
- package/dist/engine/agent-api/LayeredSceneComposition.js.map +1 -0
- package/dist/engine/agent-api/PlatformerMotion.d.ts +177 -0
- package/dist/engine/agent-api/PlatformerMotion.d.ts.map +1 -0
- package/dist/engine/agent-api/PlatformerMotion.js +207 -0
- package/dist/engine/agent-api/PlatformerMotion.js.map +1 -0
- package/dist/engine/agent-api/SceneGroundingUtils.d.ts +62 -0
- package/dist/engine/agent-api/SceneGroundingUtils.d.ts.map +1 -1
- package/dist/engine/agent-api/SceneGroundingUtils.js +37 -0
- package/dist/engine/agent-api/SceneGroundingUtils.js.map +1 -1
- package/dist/engine/agent-api/SceneQueries.d.ts +124 -0
- package/dist/engine/agent-api/SceneQueries.d.ts.map +1 -0
- package/dist/engine/agent-api/SceneQueries.js +221 -0
- package/dist/engine/agent-api/SceneQueries.js.map +1 -0
- package/dist/engine/agent-api/SpatialAnchoring.d.ts +232 -0
- package/dist/engine/agent-api/SpatialAnchoring.d.ts.map +1 -0
- package/dist/engine/agent-api/SpatialAnchoring.js +348 -0
- package/dist/engine/agent-api/SpatialAnchoring.js.map +1 -0
- package/dist/engine/agent-api/SubjectFramingUtils.d.ts +127 -0
- package/dist/engine/agent-api/SubjectFramingUtils.d.ts.map +1 -0
- package/dist/engine/agent-api/SubjectFramingUtils.js +126 -0
- package/dist/engine/agent-api/SubjectFramingUtils.js.map +1 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts +81 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts.map +1 -0
- package/dist/engine/agent-api/TouchControlBinding.js +116 -0
- package/dist/engine/agent-api/TouchControlBinding.js.map +1 -0
- package/dist/engine/agent-api/VehicleChassis.d.ts +192 -0
- package/dist/engine/agent-api/VehicleChassis.d.ts.map +1 -0
- package/dist/engine/agent-api/VehicleChassis.js +322 -0
- package/dist/engine/agent-api/VehicleChassis.js.map +1 -0
- package/dist/engine/agent-api/VehicleDriverAi.d.ts +123 -0
- package/dist/engine/agent-api/VehicleDriverAi.d.ts.map +1 -0
- package/dist/engine/agent-api/VehicleDriverAi.js +217 -0
- package/dist/engine/agent-api/VehicleDriverAi.js.map +1 -0
- package/dist/engine/agent-api/WorldLabelRenderer.d.ts +146 -0
- package/dist/engine/agent-api/WorldLabelRenderer.d.ts.map +1 -0
- package/dist/engine/agent-api/WorldLabelRenderer.js +331 -0
- package/dist/engine/agent-api/WorldLabelRenderer.js.map +1 -0
- package/dist/engine/agent-api/index.d.ts +69 -0
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +633 -75
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.d.ts +32 -0
- package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.js +37 -2
- package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +8 -0
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.js +2 -1
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
- package/dist/input/controls/PointerLockControls.d.ts +1 -1
- package/dist/input/controls/PointerLockControls.d.ts.map +1 -1
- package/dist/input/controls/PointerLockControls.js +12 -0
- package/dist/input/controls/PointerLockControls.js.map +1 -1
- package/dist/physics/Collider.d.ts +1 -1
- package/dist/physics/Collider.d.ts.map +1 -1
- package/dist/physics/Collider.js +2 -2
- package/dist/physics/Collider.js.map +1 -1
- package/dist/physics/CollisionEvents.d.ts +1 -0
- package/dist/physics/CollisionEvents.d.ts.map +1 -1
- package/dist/physics/CollisionEvents.js.map +1 -1
- package/dist/physics/NarrowPhase.d.ts +11 -0
- package/dist/physics/NarrowPhase.d.ts.map +1 -0
- package/dist/physics/NarrowPhase.js +565 -0
- package/dist/physics/NarrowPhase.js.map +1 -0
- package/dist/physics/PhysicsDebugDraw.js +19 -1
- package/dist/physics/PhysicsDebugDraw.js.map +1 -1
- package/dist/physics/PhysicsWorld.d.ts +43 -0
- package/dist/physics/PhysicsWorld.d.ts.map +1 -1
- package/dist/physics/PhysicsWorld.js +305 -30
- package/dist/physics/PhysicsWorld.js.map +1 -1
- package/dist/physics/RigidBody.d.ts +8 -1
- package/dist/physics/RigidBody.d.ts.map +1 -1
- package/dist/physics/RigidBody.js +32 -5
- package/dist/physics/RigidBody.js.map +1 -1
- package/dist/physics/Shape.d.ts +16 -2
- package/dist/physics/Shape.d.ts.map +1 -1
- package/dist/physics/Shape.js +93 -31
- package/dist/physics/Shape.js.map +1 -1
- package/dist/physics/TimeOfImpact.d.ts +15 -0
- package/dist/physics/TimeOfImpact.d.ts.map +1 -0
- package/dist/physics/TimeOfImpact.js +81 -0
- package/dist/physics/TimeOfImpact.js.map +1 -0
- package/dist/physics/index.d.ts +2 -0
- package/dist/physics/index.d.ts.map +1 -1
- package/dist/physics/index.js +2 -0
- package/dist/physics/index.js.map +1 -1
- package/dist/rendering/CascadedShadowMaps.d.ts +9 -1
- package/dist/rendering/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/rendering/CascadedShadowMaps.js +68 -0
- package/dist/rendering/CascadedShadowMaps.js.map +1 -1
- package/dist/rendering/ClusteredForwardLighting.d.ts +28 -0
- package/dist/rendering/ClusteredForwardLighting.d.ts.map +1 -0
- package/dist/rendering/ClusteredForwardLighting.js +156 -0
- package/dist/rendering/ClusteredForwardLighting.js.map +1 -0
- package/dist/rendering/DepthPass.d.ts +14 -1
- package/dist/rendering/DepthPass.d.ts.map +1 -1
- package/dist/rendering/DepthPass.js +19 -4
- package/dist/rendering/DepthPass.js.map +1 -1
- package/dist/rendering/EnvironmentMapResources.d.ts +59 -1
- package/dist/rendering/EnvironmentMapResources.d.ts.map +1 -1
- package/dist/rendering/EnvironmentMapResources.js +140 -100
- package/dist/rendering/EnvironmentMapResources.js.map +1 -1
- package/dist/rendering/EnvironmentPlatform.d.ts +3 -2
- package/dist/rendering/EnvironmentPlatform.d.ts.map +1 -1
- package/dist/rendering/EnvironmentPlatform.js +99 -44
- package/dist/rendering/EnvironmentPlatform.js.map +1 -1
- package/dist/rendering/ForwardPass.d.ts +37 -0
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +234 -7
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/Geometry.d.ts +19 -0
- package/dist/rendering/Geometry.d.ts.map +1 -1
- package/dist/rendering/Geometry.js +64 -0
- package/dist/rendering/Geometry.js.map +1 -1
- package/dist/rendering/IBL.d.ts.map +1 -1
- package/dist/rendering/IBL.js +0 -1
- package/dist/rendering/IBL.js.map +1 -1
- package/dist/rendering/LightCollector.d.ts +5 -1
- package/dist/rendering/LightCollector.d.ts.map +1 -1
- package/dist/rendering/LightCollector.js +16 -3
- package/dist/rendering/LightCollector.js.map +1 -1
- package/dist/rendering/LightUniforms.d.ts +26 -1
- package/dist/rendering/LightUniforms.d.ts.map +1 -1
- package/dist/rendering/LightUniforms.js +140 -8
- package/dist/rendering/LightUniforms.js.map +1 -1
- package/dist/rendering/LightingRig.d.ts +77 -0
- package/dist/rendering/LightingRig.d.ts.map +1 -1
- package/dist/rendering/LightingRig.js +100 -11
- package/dist/rendering/LightingRig.js.map +1 -1
- package/dist/rendering/MeshConsolidation.d.ts +63 -0
- package/dist/rendering/MeshConsolidation.d.ts.map +1 -0
- package/dist/rendering/MeshConsolidation.js +251 -0
- package/dist/rendering/MeshConsolidation.js.map +1 -0
- package/dist/rendering/PMREM.d.ts +13 -1
- package/dist/rendering/PMREM.d.ts.map +1 -1
- package/dist/rendering/PMREM.js +18 -4
- package/dist/rendering/PMREM.js.map +1 -1
- package/dist/rendering/PostProcessPass.d.ts +24 -2
- package/dist/rendering/PostProcessPass.d.ts.map +1 -1
- package/dist/rendering/PostProcessPass.js +136 -18
- package/dist/rendering/PostProcessPass.js.map +1 -1
- package/dist/rendering/PrimitiveSubmissionAudit.d.ts +195 -0
- package/dist/rendering/PrimitiveSubmissionAudit.d.ts.map +1 -0
- package/dist/rendering/PrimitiveSubmissionAudit.js +280 -0
- package/dist/rendering/PrimitiveSubmissionAudit.js.map +1 -0
- package/dist/rendering/ProductTurntableFixtures.d.ts.map +1 -1
- package/dist/rendering/ProductTurntableFixtures.js +93 -13
- package/dist/rendering/ProductTurntableFixtures.js.map +1 -1
- package/dist/rendering/ReflectionProbe.d.ts +59 -0
- package/dist/rendering/ReflectionProbe.d.ts.map +1 -1
- package/dist/rendering/ReflectionProbe.js +224 -0
- package/dist/rendering/ReflectionProbe.js.map +1 -1
- package/dist/rendering/ReflectionSurfaces.d.ts +4 -2
- package/dist/rendering/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/rendering/ReflectionSurfaces.js +13 -8
- package/dist/rendering/ReflectionSurfaces.js.map +1 -1
- package/dist/rendering/RenderBackend.d.ts +1 -1
- package/dist/rendering/RenderBackend.d.ts.map +1 -1
- package/dist/rendering/RenderBackend.js +5 -1
- package/dist/rendering/RenderBackend.js.map +1 -1
- package/dist/rendering/RenderDevice.d.ts +13 -2
- package/dist/rendering/RenderDevice.d.ts.map +1 -1
- package/dist/rendering/RenderDevice.js +5 -2
- package/dist/rendering/RenderDevice.js.map +1 -1
- package/dist/rendering/Renderer.d.ts +41 -1
- package/dist/rendering/Renderer.d.ts.map +1 -1
- package/dist/rendering/Renderer.js +406 -61
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.d.ts +10 -3
- package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.js +25 -5
- package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.d.ts +3 -2
- package/dist/rendering/RendererVisualPipelineReport.d.ts.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.js +2 -0
- package/dist/rendering/RendererVisualPipelineReport.js.map +1 -1
- package/dist/rendering/ScreenSpaceLineMaterial.d.ts +34 -0
- package/dist/rendering/ScreenSpaceLineMaterial.d.ts.map +1 -0
- package/dist/rendering/ScreenSpaceLineMaterial.js +93 -0
- package/dist/rendering/ScreenSpaceLineMaterial.js.map +1 -0
- package/dist/rendering/ShaderChunks.d.ts +7 -0
- package/dist/rendering/ShaderChunks.d.ts.map +1 -1
- package/dist/rendering/ShaderChunks.js +137 -0
- package/dist/rendering/ShaderChunks.js.map +1 -1
- package/dist/rendering/ShaderLibrary.d.ts +17 -0
- package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
- package/dist/rendering/ShaderLibrary.js +940 -98
- package/dist/rendering/ShaderLibrary.js.map +1 -1
- package/dist/rendering/ShadowPass.d.ts +10 -0
- package/dist/rendering/ShadowPass.d.ts.map +1 -1
- package/dist/rendering/ShadowPass.js +8 -1
- package/dist/rendering/ShadowPass.js.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.d.ts +6 -0
- package/dist/rendering/SkinnedLitMaterial.d.ts.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.js +22 -8
- package/dist/rendering/SkinnedLitMaterial.js.map +1 -1
- package/dist/rendering/SkinnedUnlitMaterial.d.ts +8 -0
- package/dist/rendering/SkinnedUnlitMaterial.d.ts.map +1 -1
- package/dist/rendering/SkinnedUnlitMaterial.js +26 -9
- package/dist/rendering/SkinnedUnlitMaterial.js.map +1 -1
- package/dist/rendering/SpecularPrefilter.d.ts +42 -0
- package/dist/rendering/SpecularPrefilter.d.ts.map +1 -0
- package/dist/rendering/SpecularPrefilter.js +480 -0
- package/dist/rendering/SpecularPrefilter.js.map +1 -0
- package/dist/rendering/TerrainFixtures.d.ts +24 -0
- package/dist/rendering/TerrainFixtures.d.ts.map +1 -1
- package/dist/rendering/TerrainFixtures.js +96 -0
- package/dist/rendering/TerrainFixtures.js.map +1 -1
- package/dist/rendering/Texture.d.ts +7 -0
- package/dist/rendering/Texture.d.ts.map +1 -1
- package/dist/rendering/Texture.js +9 -0
- package/dist/rendering/Texture.js.map +1 -1
- package/dist/rendering/VertexFormat.d.ts +34 -1
- package/dist/rendering/VertexFormat.d.ts.map +1 -1
- package/dist/rendering/VertexFormat.js +61 -0
- package/dist/rendering/VertexFormat.js.map +1 -1
- package/dist/rendering/WebGL2Device.d.ts +48 -0
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +1298 -44
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/WebGPUDevice.d.ts +7 -2
- package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
- package/dist/rendering/WebGPUDevice.js +111 -17
- package/dist/rendering/WebGPUDevice.js.map +1 -1
- package/dist/rendering/WebGPUSkinningLimits.d.ts +14 -0
- package/dist/rendering/WebGPUSkinningLimits.d.ts.map +1 -0
- package/dist/rendering/WebGPUSkinningLimits.js +14 -0
- package/dist/rendering/WebGPUSkinningLimits.js.map +1 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts +19 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.js +13 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.js.map +1 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.d.ts +36 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.js +23 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.js.map +1 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.d.ts +130 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.js +303 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.js.map +1 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.d.ts +28 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.js +39 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.js.map +1 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.d.ts +79 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.d.ts.map +1 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.js +88 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.js.map +1 -0
- package/dist/rendering/cartoon/index.d.ts +6 -0
- package/dist/rendering/cartoon/index.d.ts.map +1 -0
- package/dist/rendering/cartoon/index.js +6 -0
- package/dist/rendering/cartoon/index.js.map +1 -0
- package/dist/rendering/index.d.ts +26 -15
- package/dist/rendering/index.d.ts.map +1 -1
- package/dist/rendering/index.js +15 -9
- package/dist/rendering/index.js.map +1 -1
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts +93 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts.map +1 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js +202 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js.map +1 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.js +3 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts +1 -0
- package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionRendererTypes.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js +5 -3
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +9 -5
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.d.ts +5 -0
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.d.ts.map +1 -1
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.js +40 -0
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.js.map +1 -1
- package/dist/rendering/production-runtime/environment/HDRLoader.d.ts +6 -0
- package/dist/rendering/production-runtime/environment/HDRLoader.d.ts.map +1 -1
- package/dist/rendering/production-runtime/environment/HDRLoader.js +19 -0
- package/dist/rendering/production-runtime/environment/HDRLoader.js.map +1 -1
- package/dist/rendering/production-runtime/index.d.ts +3 -1
- package/dist/rendering/production-runtime/index.d.ts.map +1 -1
- package/dist/rendering/production-runtime/index.js +1 -0
- package/dist/rendering/production-runtime/index.js.map +1 -1
- package/dist/scene/Light.d.ts +1 -1
- package/dist/scene/Light.d.ts.map +1 -1
- package/dist/scene/RectAreaLight.d.ts +22 -0
- package/dist/scene/RectAreaLight.d.ts.map +1 -0
- package/dist/scene/RectAreaLight.js +46 -0
- package/dist/scene/RectAreaLight.js.map +1 -0
- package/dist/scene/Scene.d.ts +6 -1
- package/dist/scene/Scene.d.ts.map +1 -1
- package/dist/scene/Scene.js +8 -1
- package/dist/scene/Scene.js.map +1 -1
- package/dist/scene/SceneSerializer.d.ts +3 -1
- package/dist/scene/SceneSerializer.d.ts.map +1 -1
- package/dist/scene/SceneSerializer.js +14 -7
- package/dist/scene/SceneSerializer.js.map +1 -1
- package/dist/scene/index.d.ts +1 -0
- package/dist/scene/index.d.ts.map +1 -1
- package/dist/scene/index.js +1 -0
- package/dist/scene/index.js.map +1 -1
- package/dist/scripting/CartoonNodeCategories.d.ts +3 -0
- package/dist/scripting/CartoonNodeCategories.d.ts.map +1 -0
- package/dist/scripting/CartoonNodeCategories.js +9 -0
- package/dist/scripting/CartoonNodeCategories.js.map +1 -0
- package/dist/scripting/CartoonVisualNodes.d.ts +3 -0
- package/dist/scripting/CartoonVisualNodes.d.ts.map +1 -0
- package/dist/scripting/CartoonVisualNodes.js +41 -0
- package/dist/scripting/CartoonVisualNodes.js.map +1 -0
- package/package.json +131 -114
- package/templates/production-asset-inspector/README.md +5 -0
- package/templates/production-asset-inspector/asset-manifest.json +9 -0
- package/templates/production-asset-inspector/index.html +2 -0
- package/templates/production-asset-inspector/package.json +17 -0
- package/templates/production-asset-inspector/src/main.ts +16 -0
- package/templates/production-material-studio/README.md +5 -0
- package/templates/production-material-studio/asset-manifest.json +9 -0
- package/templates/production-material-studio/index.html +2 -0
- package/templates/production-material-studio/package.json +17 -0
- package/templates/production-material-studio/src/main.ts +16 -0
- package/templates/production-product-configurator/README.md +5 -0
- package/templates/production-product-configurator/asset-manifest.json +9 -0
- package/templates/production-product-configurator/index.html +2 -0
- package/templates/production-product-configurator/package.json +17 -0
- package/templates/production-product-configurator/src/main.ts +16 -0
- package/templates/production-product-viewer/README.md +7 -0
- package/templates/production-product-viewer/asset-manifest.json +8 -0
- package/templates/production-product-viewer/index.html +26 -0
- package/templates/production-product-viewer/package.json +17 -0
- package/templates/production-product-viewer/src/main.ts +70 -0
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* World-anchored label rendering.
|
|
3
|
+
*
|
|
4
|
+
* ## The defect this fixes
|
|
5
|
+
*
|
|
6
|
+
* `labels.callout(...)` built a valid label node, the node reached the scene
|
|
7
|
+
* snapshot, and evidence counted it -- but nothing drew it. Labels were rendered
|
|
8
|
+
* only by `drawLabelNode`, which lives in the **canvas2d fallback** path. Every
|
|
9
|
+
* public route with a typed GLB takes the **production WebGL2** path, where
|
|
10
|
+
* `createProductionRuntimeRendererInput` collects model and primitive render
|
|
11
|
+
* items and ignores `kind: "label"` entirely.
|
|
12
|
+
*
|
|
13
|
+
* So the API was not partially implemented or mis-projected: it was implemented
|
|
14
|
+
* in the wrong render path. Every callout in every production route was silently
|
|
15
|
+
* dropped. The evidence collector counted label *nodes*, which is why reports
|
|
16
|
+
* showed labels present while the screen showed none.
|
|
17
|
+
*
|
|
18
|
+
* The fix is a real screen-space label layer: labels are world-anchored, projected
|
|
19
|
+
* with the scene's own view-projection matrix each frame, and drawn into a DOM
|
|
20
|
+
* overlay above the canvas. DOM is the right medium for text -- it is legible,
|
|
21
|
+
* accessible, and responsive -- but the *placement* is driven entirely by the 3D
|
|
22
|
+
* projection, so a label tracks its anchor while the camera moves. This is not a
|
|
23
|
+
* route-local DOM overlay: it is one reusable layer owned by the runtime.
|
|
24
|
+
*
|
|
25
|
+
* The projection math here is pure and unit-testable; only `mount` touches the DOM.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Project a world point through a column-major 4x4 view-projection matrix.
|
|
29
|
+
*
|
|
30
|
+
* Returns clip-space w alongside NDC so callers can detect points behind the
|
|
31
|
+
* camera (`w <= 0`) rather than silently drawing a mirrored label.
|
|
32
|
+
*/
|
|
33
|
+
export function projectWorldPoint(viewProjection, point) {
|
|
34
|
+
const m = viewProjection;
|
|
35
|
+
const [x, y, z] = point;
|
|
36
|
+
// Column-major: element (row r, col c) is m[c * 4 + r], matching the matrices
|
|
37
|
+
// produced by `multiply4`/`perspective` in the agent API renderer.
|
|
38
|
+
const cx = m[0] * x + m[4] * y + m[8] * z + m[12];
|
|
39
|
+
const cy = m[1] * x + m[5] * y + m[9] * z + m[13];
|
|
40
|
+
const cz = m[2] * x + m[6] * y + m[10] * z + m[14];
|
|
41
|
+
const cw = m[3] * x + m[7] * y + m[11] * z + m[15];
|
|
42
|
+
if (cw === 0)
|
|
43
|
+
return { ndc: [0, 0, 0], w: 0 };
|
|
44
|
+
return { ndc: [cx / cw, cy / cw, cz / cw], w: cw };
|
|
45
|
+
}
|
|
46
|
+
/** Convert NDC to CSS-pixel screen coordinates for a viewport. */
|
|
47
|
+
export function ndcToScreen(ndc, viewport) {
|
|
48
|
+
return [
|
|
49
|
+
(ndc[0] * 0.5 + 0.5) * viewport.width,
|
|
50
|
+
(1 - (ndc[1] * 0.5 + 0.5)) * viewport.height
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
const SCREEN_ANCHOR_MARGIN = 14;
|
|
54
|
+
/**
|
|
55
|
+
* Project a set of world labels into screen space.
|
|
56
|
+
*
|
|
57
|
+
* Pure: no DOM. This is the function tests assert on, so label placement is
|
|
58
|
+
* verified by arithmetic rather than by looking at a screenshot.
|
|
59
|
+
*/
|
|
60
|
+
export function projectWorldLabels(labels, viewProjection, viewport) {
|
|
61
|
+
const compactScale = viewport.compact === true ? 0.86 : 1;
|
|
62
|
+
return labels.map((label) => {
|
|
63
|
+
const fontSize = Math.max(11, Math.round((label.fontSize ?? 14) * compactScale));
|
|
64
|
+
const color = label.color ?? "#f8fafc";
|
|
65
|
+
const background = label.background ?? "rgba(17,24,39,0.88)";
|
|
66
|
+
const leader = label.leader ?? false;
|
|
67
|
+
if (label.screenAnchor) {
|
|
68
|
+
const [x, y] = screenAnchorPosition(label.screenAnchor, viewport, fontSize);
|
|
69
|
+
return {
|
|
70
|
+
id: label.id,
|
|
71
|
+
text: label.text,
|
|
72
|
+
x,
|
|
73
|
+
y,
|
|
74
|
+
anchorX: x,
|
|
75
|
+
anchorY: y,
|
|
76
|
+
visible: true,
|
|
77
|
+
clamped: false,
|
|
78
|
+
behindCamera: false,
|
|
79
|
+
fontSize,
|
|
80
|
+
color,
|
|
81
|
+
background,
|
|
82
|
+
leader: false,
|
|
83
|
+
depth: 0
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
const projected = projectWorldPoint(viewProjection, label.anchor);
|
|
87
|
+
const behindCamera = projected.w <= 0;
|
|
88
|
+
const [boxAnchorX, boxAnchorY] = ndcToScreen(projected.ndc, viewport);
|
|
89
|
+
// The leader endpoint is projected separately so it lands on the subject, not
|
|
90
|
+
// on the label. Falls back to the label's own anchor when none is given.
|
|
91
|
+
const leaderTarget = label.leaderAnchor
|
|
92
|
+
? ndcToScreen(projectWorldPoint(viewProjection, label.leaderAnchor).ndc, viewport)
|
|
93
|
+
: [boxAnchorX, boxAnchorY];
|
|
94
|
+
const anchorX = leaderTarget[0];
|
|
95
|
+
const anchorY = leaderTarget[1];
|
|
96
|
+
const offset = label.screenOffset ?? [0, -28];
|
|
97
|
+
let x = boxAnchorX + offset[0] * compactScale;
|
|
98
|
+
let y = boxAnchorY + offset[1] * compactScale;
|
|
99
|
+
const policy = label.offscreenPolicy ?? "clamp";
|
|
100
|
+
const hideBehind = label.hideWhenBehindCamera ?? true;
|
|
101
|
+
// Estimated half-width from character count: the exact box is measured by the
|
|
102
|
+
// DOM, but clamping needs a bound before layout.
|
|
103
|
+
const halfWidth = Math.max(24, label.text.length * fontSize * 0.31);
|
|
104
|
+
const halfHeight = fontSize * 0.9;
|
|
105
|
+
const withinViewport = x >= -halfWidth && x <= viewport.width + halfWidth
|
|
106
|
+
&& y >= -halfHeight && y <= viewport.height + halfHeight;
|
|
107
|
+
let clamped = false;
|
|
108
|
+
let visible = true;
|
|
109
|
+
if (behindCamera && hideBehind) {
|
|
110
|
+
visible = false;
|
|
111
|
+
}
|
|
112
|
+
else if (!withinViewport) {
|
|
113
|
+
if (policy === "hide") {
|
|
114
|
+
visible = false;
|
|
115
|
+
}
|
|
116
|
+
else if (policy === "clamp") {
|
|
117
|
+
const clampedX = Math.min(Math.max(x, halfWidth + SCREEN_ANCHOR_MARGIN), viewport.width - halfWidth - SCREEN_ANCHOR_MARGIN);
|
|
118
|
+
const clampedY = Math.min(Math.max(y, halfHeight + SCREEN_ANCHOR_MARGIN), viewport.height - halfHeight - SCREEN_ANCHOR_MARGIN);
|
|
119
|
+
clamped = clampedX !== x || clampedY !== y;
|
|
120
|
+
x = clampedX;
|
|
121
|
+
y = clampedY;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
id: label.id,
|
|
126
|
+
text: label.text,
|
|
127
|
+
x: round(x),
|
|
128
|
+
y: round(y),
|
|
129
|
+
anchorX: round(anchorX),
|
|
130
|
+
anchorY: round(anchorY),
|
|
131
|
+
visible,
|
|
132
|
+
clamped,
|
|
133
|
+
behindCamera,
|
|
134
|
+
fontSize,
|
|
135
|
+
color,
|
|
136
|
+
background,
|
|
137
|
+
leader,
|
|
138
|
+
depth: round(projected.ndc[2])
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Resolve overlapping labels by nudging later ones vertically.
|
|
144
|
+
*
|
|
145
|
+
* Collision avoidance is a documented option on the label API, so it must
|
|
146
|
+
* actually happen. Labels are sorted front-to-back so nearer labels keep their
|
|
147
|
+
* requested position and farther ones move.
|
|
148
|
+
*/
|
|
149
|
+
export function resolveLabelCollisions(labels, options = {}) {
|
|
150
|
+
const minGap = options.minGap ?? 4;
|
|
151
|
+
const ordered = [...labels].sort((a, b) => a.depth - b.depth);
|
|
152
|
+
const placed = [];
|
|
153
|
+
for (const label of ordered) {
|
|
154
|
+
if (!label.visible) {
|
|
155
|
+
placed.push(label);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
let y = label.y;
|
|
159
|
+
const halfHeight = label.fontSize * 0.9;
|
|
160
|
+
const halfWidth = Math.max(24, label.text.length * label.fontSize * 0.31);
|
|
161
|
+
let moved = true;
|
|
162
|
+
let guard = 0;
|
|
163
|
+
while (moved && guard < 32) {
|
|
164
|
+
moved = false;
|
|
165
|
+
guard += 1;
|
|
166
|
+
for (const other of placed) {
|
|
167
|
+
if (!other.visible)
|
|
168
|
+
continue;
|
|
169
|
+
const otherHalfHeight = other.fontSize * 0.9;
|
|
170
|
+
const otherHalfWidth = Math.max(24, other.text.length * other.fontSize * 0.31);
|
|
171
|
+
const overlapsX = Math.abs(label.x - other.x) < halfWidth + otherHalfWidth;
|
|
172
|
+
const overlapsY = Math.abs(y - other.y) < halfHeight + otherHalfHeight + minGap;
|
|
173
|
+
if (overlapsX && overlapsY) {
|
|
174
|
+
y = other.y - (otherHalfHeight + halfHeight + minGap);
|
|
175
|
+
moved = true;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
placed.push(y === label.y ? label : { ...label, y: round(y) });
|
|
180
|
+
}
|
|
181
|
+
// Restore the caller's ordering so ids stay stable for tests and evidence.
|
|
182
|
+
const byId = new Map(placed.map((label) => [label.id, label]));
|
|
183
|
+
return labels.map((label) => byId.get(label.id) ?? label);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Mount the screen-space label layer.
|
|
187
|
+
*
|
|
188
|
+
* Uses `pointer-events: none` so labels never intercept scene interaction, and
|
|
189
|
+
* `aria-live="off"` with per-label `role="note"` so a screen reader can read the
|
|
190
|
+
* annotations without announcing every camera-driven reposition.
|
|
191
|
+
*/
|
|
192
|
+
export function createWorldLabelLayer(host) {
|
|
193
|
+
const root = document.createElement("div");
|
|
194
|
+
root.className = "aura-world-label-layer";
|
|
195
|
+
root.setAttribute("data-aura-world-labels", "");
|
|
196
|
+
root.style.cssText = [
|
|
197
|
+
"position:absolute",
|
|
198
|
+
"inset:0",
|
|
199
|
+
"overflow:hidden",
|
|
200
|
+
"pointer-events:none",
|
|
201
|
+
"z-index:6"
|
|
202
|
+
].join(";");
|
|
203
|
+
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
204
|
+
svg.setAttribute("width", "100%");
|
|
205
|
+
svg.setAttribute("height", "100%");
|
|
206
|
+
svg.style.cssText = "position:absolute;inset:0;overflow:visible";
|
|
207
|
+
root.append(svg);
|
|
208
|
+
const parentStyle = getComputedStyle(host.container);
|
|
209
|
+
if (parentStyle.position === "static")
|
|
210
|
+
host.container.style.position = "relative";
|
|
211
|
+
host.container.append(root);
|
|
212
|
+
let labels = [];
|
|
213
|
+
let projected = [];
|
|
214
|
+
const elements = new Map();
|
|
215
|
+
const leaders = new Map();
|
|
216
|
+
const viewport = () => {
|
|
217
|
+
const rect = host.canvas.getBoundingClientRect();
|
|
218
|
+
const width = rect.width || host.canvas.clientWidth || host.canvas.width;
|
|
219
|
+
const height = rect.height || host.canvas.clientHeight || host.canvas.height;
|
|
220
|
+
return { width, height, compact: width < 560 };
|
|
221
|
+
};
|
|
222
|
+
const ensureElement = (label) => {
|
|
223
|
+
let element = elements.get(label.id);
|
|
224
|
+
if (!element) {
|
|
225
|
+
element = document.createElement("div");
|
|
226
|
+
element.className = "aura-world-label";
|
|
227
|
+
element.setAttribute("role", "note");
|
|
228
|
+
element.setAttribute("data-aura-label-id", label.id);
|
|
229
|
+
element.style.cssText = [
|
|
230
|
+
"position:absolute",
|
|
231
|
+
"transform:translate(-50%,-50%)",
|
|
232
|
+
"white-space:nowrap",
|
|
233
|
+
"border-radius:6px",
|
|
234
|
+
"padding:4px 8px",
|
|
235
|
+
"font:600 14px/1.2 system-ui,-apple-system,BlinkMacSystemFont,sans-serif",
|
|
236
|
+
"border:1px solid rgba(148,163,184,0.5)",
|
|
237
|
+
"pointer-events:none"
|
|
238
|
+
].join(";");
|
|
239
|
+
root.append(element);
|
|
240
|
+
elements.set(label.id, element);
|
|
241
|
+
}
|
|
242
|
+
return element;
|
|
243
|
+
};
|
|
244
|
+
const ensureLeader = (id) => {
|
|
245
|
+
let line = leaders.get(id);
|
|
246
|
+
if (!line) {
|
|
247
|
+
line = document.createElementNS("http://www.w3.org/2000/svg", "line");
|
|
248
|
+
line.setAttribute("stroke-width", "1.2");
|
|
249
|
+
line.setAttribute("stroke-linecap", "round");
|
|
250
|
+
svg.append(line);
|
|
251
|
+
leaders.set(id, line);
|
|
252
|
+
}
|
|
253
|
+
return line;
|
|
254
|
+
};
|
|
255
|
+
const draw = () => {
|
|
256
|
+
const seen = new Set();
|
|
257
|
+
for (const label of projected) {
|
|
258
|
+
seen.add(label.id);
|
|
259
|
+
const element = ensureElement(label);
|
|
260
|
+
if (!label.visible) {
|
|
261
|
+
element.style.display = "none";
|
|
262
|
+
leaders.get(label.id)?.setAttribute("stroke", "transparent");
|
|
263
|
+
continue;
|
|
264
|
+
}
|
|
265
|
+
element.style.display = "block";
|
|
266
|
+
element.style.left = `${label.x}px`;
|
|
267
|
+
element.style.top = `${label.y}px`;
|
|
268
|
+
element.style.color = label.color;
|
|
269
|
+
element.style.background = label.background;
|
|
270
|
+
element.style.fontSize = `${label.fontSize}px`;
|
|
271
|
+
if (element.textContent !== label.text)
|
|
272
|
+
element.textContent = label.text;
|
|
273
|
+
if (label.leader) {
|
|
274
|
+
const line = ensureLeader(label.id);
|
|
275
|
+
line.setAttribute("x1", String(label.x));
|
|
276
|
+
line.setAttribute("y1", String(label.y));
|
|
277
|
+
line.setAttribute("x2", String(label.anchorX));
|
|
278
|
+
line.setAttribute("y2", String(label.anchorY));
|
|
279
|
+
line.setAttribute("stroke", label.color);
|
|
280
|
+
line.setAttribute("stroke-opacity", "0.72");
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
leaders.get(label.id)?.setAttribute("stroke", "transparent");
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
// Clean up labels whose target was removed.
|
|
287
|
+
for (const [id, element] of elements) {
|
|
288
|
+
if (seen.has(id))
|
|
289
|
+
continue;
|
|
290
|
+
element.remove();
|
|
291
|
+
elements.delete(id);
|
|
292
|
+
leaders.get(id)?.remove();
|
|
293
|
+
leaders.delete(id);
|
|
294
|
+
}
|
|
295
|
+
};
|
|
296
|
+
return {
|
|
297
|
+
setLabels(next) {
|
|
298
|
+
labels = next;
|
|
299
|
+
},
|
|
300
|
+
update(viewProjection) {
|
|
301
|
+
projected = resolveLabelCollisions(projectWorldLabels(labels, viewProjection, viewport()));
|
|
302
|
+
draw();
|
|
303
|
+
},
|
|
304
|
+
snapshot() {
|
|
305
|
+
return projected;
|
|
306
|
+
},
|
|
307
|
+
dispose() {
|
|
308
|
+
for (const element of elements.values())
|
|
309
|
+
element.remove();
|
|
310
|
+
elements.clear();
|
|
311
|
+
for (const line of leaders.values())
|
|
312
|
+
line.remove();
|
|
313
|
+
leaders.clear();
|
|
314
|
+
root.remove();
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
function screenAnchorPosition(anchor, viewport, fontSize) {
|
|
319
|
+
const margin = SCREEN_ANCHOR_MARGIN + fontSize;
|
|
320
|
+
if (anchor === "top-left")
|
|
321
|
+
return [margin * 2.4, margin];
|
|
322
|
+
if (anchor === "top-right")
|
|
323
|
+
return [viewport.width - margin * 2.4, margin];
|
|
324
|
+
if (anchor === "bottom-left")
|
|
325
|
+
return [margin * 2.4, viewport.height - margin];
|
|
326
|
+
return [viewport.width - margin * 2.4, viewport.height - margin];
|
|
327
|
+
}
|
|
328
|
+
function round(value) {
|
|
329
|
+
return Math.round(value * 100) / 100;
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=WorldLabelRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorldLabelRenderer.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/WorldLabelRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import { type Collider, type ColliderDescriptor, type CollisionEvent, type Constraint, type ConstraintDescriptor, type Contact, type DebugLine, type PhysicsBackendSelection, type PhysicsShape, type PhysicsSnapshot, type PhysicsWorldDescriptor, type RaycastHit, type RaycastOptions, type RigidBody, type RigidBodyDescriptor, type RigidBodyType, type ScenePhysicsNode, type SphereCastHit } from "@aura3d/physics";
|
|
2
|
+
import { type ProjectedLabel } from "./WorldLabelRenderer.js";
|
|
3
|
+
export * from "./SpatialAnchoring.js";
|
|
4
|
+
export * from "./FocusSelection.js";
|
|
5
|
+
export * from "./WorldLabelRenderer.js";
|
|
6
|
+
export * from "./VehicleChassis.js";
|
|
7
|
+
export * from "./VehicleDriverAi.js";
|
|
8
|
+
export * from "./PlatformerMotion.js";
|
|
9
|
+
export * from "./CombatFrameData.js";
|
|
10
|
+
export * from "./SceneQueries.js";
|
|
11
|
+
export * from "./ApplicationKits.js";
|
|
2
12
|
export * from "./FrameEncoder.js";
|
|
3
13
|
export * from "./BrowserFrameCaptureAdapter.js";
|
|
4
14
|
export * from "./MediaRecorderFrameEncoder.js";
|
|
@@ -33,6 +43,9 @@ export * from "./CloudRenderAdapter.js";
|
|
|
33
43
|
export * from "./BatchEpisodeRenderer.js";
|
|
34
44
|
export * from "./AnimationAssetManifest.js";
|
|
35
45
|
export * from "./SceneGroundingUtils.js";
|
|
46
|
+
export * from "./SubjectFramingUtils.js";
|
|
47
|
+
export * from "./LayeredSceneComposition.js";
|
|
48
|
+
export * from "./TouchControlBinding.js";
|
|
36
49
|
export * from "./AssetLibraryBrowser.js";
|
|
37
50
|
export * from "./DialogueAlignment.js";
|
|
38
51
|
export * from "./PerformancePoseEditor.js";
|
|
@@ -104,6 +117,9 @@ export * from "./AnimationPerformance.js";
|
|
|
104
117
|
export * from "./AnimationRenderQueue.js";
|
|
105
118
|
export * from "./AnimationAssetManifest.js";
|
|
106
119
|
export * from "./SceneGroundingUtils.js";
|
|
120
|
+
export * from "./SubjectFramingUtils.js";
|
|
121
|
+
export * from "./LayeredSceneComposition.js";
|
|
122
|
+
export * from "./TouchControlBinding.js";
|
|
107
123
|
export * from "./AssetLibraryBrowser.js";
|
|
108
124
|
export type AuraVec3 = readonly [number, number, number];
|
|
109
125
|
export type AuraColor = `#${string}` | string;
|
|
@@ -515,6 +531,17 @@ export interface AuraLabelNode extends AuraTransformSpec {
|
|
|
515
531
|
readonly name?: string;
|
|
516
532
|
readonly text: string;
|
|
517
533
|
readonly target?: string;
|
|
534
|
+
/**
|
|
535
|
+
* World point the label is attached to.
|
|
536
|
+
*
|
|
537
|
+
* `position` is where the label box sits; `anchorWorldPosition` is what a
|
|
538
|
+
* leader line points at. When omitted the label anchors to its own position.
|
|
539
|
+
* Both are projected every frame by the world-label layer, so a label tracks
|
|
540
|
+
* its subject as the camera moves.
|
|
541
|
+
*/
|
|
542
|
+
readonly anchorWorldPosition?: AuraVec3;
|
|
543
|
+
/** Behaviour when the anchor projects outside the viewport. Defaults to "clamp". */
|
|
544
|
+
readonly offscreenPolicy?: "hide" | "clamp" | "draw";
|
|
518
545
|
readonly color?: AuraColor;
|
|
519
546
|
readonly background?: AuraColor;
|
|
520
547
|
readonly size?: number;
|
|
@@ -607,7 +634,18 @@ export interface AuraRendererDiagnosticReport {
|
|
|
607
634
|
readonly antiBlowout: boolean;
|
|
608
635
|
};
|
|
609
636
|
readonly shadows: {
|
|
637
|
+
/** True only when a mounted runtime actually sampled a shadow map. */
|
|
610
638
|
readonly enabled: boolean;
|
|
639
|
+
/** The scene asked for shadows: a shadow-casting light was collected. */
|
|
640
|
+
readonly requested: boolean;
|
|
641
|
+
/** A shadow depth target was allocated and rendered by the device. */
|
|
642
|
+
readonly mapRendered: boolean;
|
|
643
|
+
/** A shader actually bound and sampled the shadow map. */
|
|
644
|
+
readonly mapSampled: boolean;
|
|
645
|
+
readonly mapSize?: number;
|
|
646
|
+
readonly label?: string;
|
|
647
|
+
readonly nativeShadowMapBindings: number;
|
|
648
|
+
readonly shadowRenderTargetsAllocated: number;
|
|
611
649
|
readonly contactShadows: number;
|
|
612
650
|
readonly mapType: "pcf-soft";
|
|
613
651
|
};
|
|
@@ -1618,6 +1656,7 @@ export interface AuraPlatformerPresentationSurfaceOptions {
|
|
|
1618
1656
|
readonly guideVisibility?: "public" | "evidence" | "full";
|
|
1619
1657
|
readonly platformColor?: AuraColor;
|
|
1620
1658
|
readonly platformTrimColor?: AuraColor;
|
|
1659
|
+
readonly checkpointColor?: AuraColor;
|
|
1621
1660
|
readonly hazardColor?: AuraColor;
|
|
1622
1661
|
readonly collectibleColor?: AuraColor;
|
|
1623
1662
|
readonly finishColor?: AuraColor;
|
|
@@ -2215,6 +2254,15 @@ export interface AuraDiagnostics {
|
|
|
2215
2254
|
readonly renderer?: AuraRendererDiagnosticReport;
|
|
2216
2255
|
readonly warnings: readonly string[];
|
|
2217
2256
|
readonly errors: readonly string[];
|
|
2257
|
+
/**
|
|
2258
|
+
* Labels the world-label layer actually placed on screen this frame, with their
|
|
2259
|
+
* projected pixel positions and visibility.
|
|
2260
|
+
*
|
|
2261
|
+
* This distinguishes "a label node exists in the scene" from "a label is drawn
|
|
2262
|
+
* where the user can read it". Every production callout was silently dropped
|
|
2263
|
+
* while evidence counted the nodes, so the counted-node signal is not enough.
|
|
2264
|
+
*/
|
|
2265
|
+
readonly labels?: readonly ProjectedLabel[];
|
|
2218
2266
|
}
|
|
2219
2267
|
export interface AuraAssetProvenance {
|
|
2220
2268
|
readonly source: "typed-aura-assets-manifest" | "unsafe-url" | "inline-definition";
|
|
@@ -2469,4 +2517,25 @@ export declare const performance: {
|
|
|
2469
2517
|
};
|
|
2470
2518
|
export declare function captureAuraScreenshot(target?: HTMLCanvasElement): AuraScreenshot;
|
|
2471
2519
|
export declare function createAuraAssetLoadError(asset: AuraAssetRef<"model">, reason: string): AuraRuntimeError;
|
|
2520
|
+
interface ProductionBoundsProbe {
|
|
2521
|
+
readonly assetId: string;
|
|
2522
|
+
readonly metadata: {
|
|
2523
|
+
readonly min: readonly number[];
|
|
2524
|
+
readonly max: readonly number[];
|
|
2525
|
+
};
|
|
2526
|
+
readonly loaded: {
|
|
2527
|
+
readonly min: readonly number[];
|
|
2528
|
+
readonly max: readonly number[];
|
|
2529
|
+
};
|
|
2530
|
+
}
|
|
2531
|
+
/**
|
|
2532
|
+
* Diagnostic: manifest `boundsMetadata` versus the bounds actually computed from the
|
|
2533
|
+
* loaded GLB, per typed asset routed through the production bridge.
|
|
2534
|
+
*
|
|
2535
|
+
* The bridge sizes models from loaded bounds because those are what the geometry
|
|
2536
|
+
* really occupies. This accessor exists so a disagreement with manifest metadata —
|
|
2537
|
+
* which `camera.frameAsset` must use, being synchronous — is observable instead of
|
|
2538
|
+
* silently producing mismatched framing.
|
|
2539
|
+
*/
|
|
2540
|
+
export declare function auraProductionBoundsProbes(): readonly ProductionBoundsProbe[];
|
|
2472
2541
|
//# sourceMappingURL=index.d.ts.map
|