@aura3d/engine 2.0.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -10
- package/dist/animation/AnimationAction.d.ts.map +1 -1
- package/dist/animation/AnimationAction.js +20 -2
- package/dist/animation/AnimationAction.js.map +1 -1
- package/dist/animation/AnimationLayer.d.ts +1 -0
- package/dist/animation/AnimationLayer.d.ts.map +1 -1
- package/dist/animation/AnimationLayer.js +24 -3
- package/dist/animation/AnimationLayer.js.map +1 -1
- package/dist/animation/AnimationMixer.d.ts +3 -0
- package/dist/animation/AnimationMixer.d.ts.map +1 -1
- package/dist/animation/AnimationMixer.js +69 -5
- package/dist/animation/AnimationMixer.js.map +1 -1
- package/dist/animation/AnimationTrack.d.ts.map +1 -1
- package/dist/animation/AnimationTrack.js +13 -0
- package/dist/animation/AnimationTrack.js.map +1 -1
- package/dist/animation/FootIk.d.ts +10 -0
- package/dist/animation/FootIk.d.ts.map +1 -1
- package/dist/animation/FootIk.js +95 -3
- package/dist/animation/FootIk.js.map +1 -1
- package/dist/animation/HumanoidRetargeting.d.ts +29 -0
- package/dist/animation/HumanoidRetargeting.d.ts.map +1 -1
- package/dist/animation/HumanoidRetargeting.js +41 -1
- package/dist/animation/HumanoidRetargeting.js.map +1 -1
- package/dist/animation/LocomotionKit.d.ts +6 -0
- package/dist/animation/LocomotionKit.d.ts.map +1 -1
- package/dist/animation/LocomotionKit.js +6 -0
- package/dist/animation/LocomotionKit.js.map +1 -1
- package/dist/animation/RootMotion.d.ts +27 -0
- package/dist/animation/RootMotion.d.ts.map +1 -1
- package/dist/animation/RootMotion.js +38 -0
- package/dist/animation/RootMotion.js.map +1 -1
- package/dist/animation/SpringBones.d.ts +28 -0
- package/dist/animation/SpringBones.d.ts.map +1 -1
- package/dist/animation/SpringBones.js +24 -0
- package/dist/animation/SpringBones.js.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.d.ts +95 -2
- package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.js +328 -3
- package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
- package/dist/assets/GLTFExtensionSupport.js +2 -2
- package/dist/assets/GLTFExtensionSupport.js.map +1 -1
- package/dist/assets/GLTFLoader.d.ts +360 -1
- package/dist/assets/GLTFLoader.d.ts.map +1 -1
- package/dist/assets/GLTFLoader.js +197 -1
- package/dist/assets/GLTFLoader.js.map +1 -1
- package/dist/assets/KTX2BasisTextureTranscoder.d.ts +39 -0
- package/dist/assets/KTX2BasisTextureTranscoder.d.ts.map +1 -1
- package/dist/assets/KTX2BasisTextureTranscoder.js +70 -0
- package/dist/assets/KTX2BasisTextureTranscoder.js.map +1 -1
- package/dist/assets/TexturePipeline.d.ts +20 -0
- package/dist/assets/TexturePipeline.d.ts.map +1 -1
- package/dist/assets/TexturePipeline.js +20 -0
- package/dist/assets/TexturePipeline.js.map +1 -1
- package/dist/assets/TextureStreaming.d.ts +30 -0
- package/dist/assets/TextureStreaming.d.ts.map +1 -1
- package/dist/assets/TextureStreaming.js +53 -0
- package/dist/assets/TextureStreaming.js.map +1 -1
- package/dist/assets/browser-index.d.ts +7 -3
- package/dist/assets/browser-index.d.ts.map +1 -1
- package/dist/assets/browser-index.js +3 -1
- package/dist/assets/browser-index.js.map +1 -1
- package/dist/assets/gltf-runtime.d.ts +1 -1
- package/dist/assets/gltf-runtime.d.ts.map +1 -1
- package/dist/assets/gltf-runtime.js.map +1 -1
- package/dist/assets/index.d.ts +7 -7
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +3 -3
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/loaders/HDRLoader.d.ts +40 -0
- package/dist/assets/loaders/HDRLoader.d.ts.map +1 -1
- package/dist/assets/loaders/HDRLoader.js +158 -0
- package/dist/assets/loaders/HDRLoader.js.map +1 -1
- package/dist/audio/AudioSource.d.ts +2 -0
- package/dist/audio/AudioSource.d.ts.map +1 -1
- package/dist/audio/AudioSource.js +7 -0
- package/dist/audio/AudioSource.js.map +1 -1
- package/dist/audio/Footsteps.d.ts +47 -0
- package/dist/audio/Footsteps.d.ts.map +1 -0
- package/dist/audio/Footsteps.js +73 -0
- package/dist/audio/Footsteps.js.map +1 -0
- package/dist/audio/GameMixer.d.ts +69 -0
- package/dist/audio/GameMixer.d.ts.map +1 -0
- package/dist/audio/GameMixer.js +141 -0
- package/dist/audio/GameMixer.js.map +1 -0
- package/dist/audio/PositionalEmitter.d.ts +95 -0
- package/dist/audio/PositionalEmitter.d.ts.map +1 -0
- package/dist/audio/PositionalEmitter.js +199 -0
- package/dist/audio/PositionalEmitter.js.map +1 -0
- package/dist/audio/index.d.ts +6 -0
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +3 -0
- package/dist/audio/index.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/profiles.d.ts +12 -2
- package/dist/aura3d-cli/pull-bridge/profiles.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/profiles.js +35 -4
- package/dist/aura3d-cli/pull-bridge/profiles.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/provenance.d.ts +15 -1
- package/dist/aura3d-cli/pull-bridge/provenance.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/provenance.js +60 -1
- package/dist/aura3d-cli/pull-bridge/provenance.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/scoring.d.ts +10 -1
- package/dist/aura3d-cli/pull-bridge/scoring.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/scoring.js +9 -1
- package/dist/aura3d-cli/pull-bridge/scoring.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.js +2 -2
- package/dist/aura3d-cli/pull-bridge/search.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge.d.ts +15 -3
- package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge.js +68 -5
- package/dist/aura3d-cli/pull-bridge.js.map +1 -1
- package/dist/controls/ArcballControls.d.ts +92 -0
- package/dist/controls/ArcballControls.d.ts.map +1 -0
- package/dist/controls/ArcballControls.js +286 -0
- package/dist/controls/ArcballControls.js.map +1 -0
- package/dist/controls/DragControls.d.ts +13 -0
- package/dist/controls/DragControls.d.ts.map +1 -1
- package/dist/controls/DragControls.js +24 -1
- package/dist/controls/DragControls.js.map +1 -1
- package/dist/controls/FlyControls.d.ts +9 -0
- package/dist/controls/FlyControls.d.ts.map +1 -1
- package/dist/controls/FlyControls.js +20 -2
- package/dist/controls/FlyControls.js.map +1 -1
- package/dist/controls/FocusFrame.d.ts +34 -0
- package/dist/controls/FocusFrame.d.ts.map +1 -0
- package/dist/controls/FocusFrame.js +82 -0
- package/dist/controls/FocusFrame.js.map +1 -0
- package/dist/controls/HoverOutline.d.ts +46 -0
- package/dist/controls/HoverOutline.d.ts.map +1 -0
- package/dist/controls/HoverOutline.js +87 -0
- package/dist/controls/HoverOutline.js.map +1 -0
- package/dist/controls/InteractionControls.d.ts +7 -0
- package/dist/controls/InteractionControls.d.ts.map +1 -1
- package/dist/controls/InteractionControls.js +12 -1
- package/dist/controls/InteractionControls.js.map +1 -1
- package/dist/controls/NativeControlTypes.d.ts +17 -0
- package/dist/controls/NativeControlTypes.d.ts.map +1 -1
- package/dist/controls/NativeControlTypes.js.map +1 -1
- package/dist/controls/OrbitControls.d.ts +9 -0
- package/dist/controls/OrbitControls.d.ts.map +1 -1
- package/dist/controls/OrbitControls.js +26 -6
- package/dist/controls/OrbitControls.js.map +1 -1
- package/dist/controls/Picking.d.ts +15 -0
- package/dist/controls/Picking.d.ts.map +1 -1
- package/dist/controls/Picking.js +62 -23
- package/dist/controls/Picking.js.map +1 -1
- package/dist/controls/PointerLockControls.d.ts.map +1 -1
- package/dist/controls/PointerLockControls.js +4 -0
- package/dist/controls/PointerLockControls.js.map +1 -1
- package/dist/controls/SelectionManager.d.ts +8 -0
- package/dist/controls/SelectionManager.d.ts.map +1 -1
- package/dist/controls/SelectionManager.js +11 -0
- package/dist/controls/SelectionManager.js.map +1 -1
- package/dist/controls/TrackballControls.d.ts +7 -0
- package/dist/controls/TrackballControls.d.ts.map +1 -1
- package/dist/controls/TrackballControls.js +19 -5
- package/dist/controls/TrackballControls.js.map +1 -1
- package/dist/controls/TransformControls.d.ts +8 -0
- package/dist/controls/TransformControls.d.ts.map +1 -1
- package/dist/controls/TransformControls.js +15 -2
- package/dist/controls/TransformControls.js.map +1 -1
- package/dist/controls/index.d.ts +6 -0
- package/dist/controls/index.d.ts.map +1 -1
- package/dist/controls/index.js +3 -0
- package/dist/controls/index.js.map +1 -1
- package/dist/create-aura3d/index.js +1 -1
- package/dist/editor-runtime/RootEditorSurface.d.ts +65 -0
- package/dist/editor-runtime/RootEditorSurface.d.ts.map +1 -0
- package/dist/editor-runtime/RootEditorSurface.js +62 -0
- package/dist/editor-runtime/RootEditorSurface.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/AnimationController.d.ts +9 -1
- package/dist/engine/agent-api/AnimationController.d.ts.map +1 -1
- package/dist/engine/agent-api/AnimationController.js +5 -1
- package/dist/engine/agent-api/AnimationController.js.map +1 -1
- package/dist/engine/agent-api/AnimationDebugOverlay.d.ts +56 -0
- package/dist/engine/agent-api/AnimationDebugOverlay.d.ts.map +1 -0
- package/dist/engine/agent-api/AnimationDebugOverlay.js +148 -0
- package/dist/engine/agent-api/AnimationDebugOverlay.js.map +1 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.d.ts +41 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.d.ts.map +1 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.js +146 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.js.map +1 -0
- package/dist/engine/agent-api/AssetDecoders.d.ts +17 -0
- package/dist/engine/agent-api/AssetDecoders.d.ts.map +1 -0
- package/dist/engine/agent-api/AssetDecoders.js +18 -0
- package/dist/engine/agent-api/AssetDecoders.js.map +1 -0
- package/dist/engine/agent-api/Decals.d.ts +174 -0
- package/dist/engine/agent-api/Decals.d.ts.map +1 -0
- package/dist/engine/agent-api/Decals.js +350 -0
- package/dist/engine/agent-api/Decals.js.map +1 -0
- package/dist/engine/agent-api/FootPlanting.d.ts +75 -0
- package/dist/engine/agent-api/FootPlanting.d.ts.map +1 -0
- package/dist/engine/agent-api/FootPlanting.js +60 -0
- package/dist/engine/agent-api/FootPlanting.js.map +1 -0
- package/dist/engine/agent-api/GameAppRuntime.d.ts +19 -0
- package/dist/engine/agent-api/GameAppRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/GameAppRuntime.js +37 -1
- package/dist/engine/agent-api/GameAppRuntime.js.map +1 -1
- package/dist/engine/agent-api/GameCameraRigs.d.ts +185 -0
- package/dist/engine/agent-api/GameCameraRigs.d.ts.map +1 -0
- package/dist/engine/agent-api/GameCameraRigs.js +414 -0
- package/dist/engine/agent-api/GameCameraRigs.js.map +1 -0
- package/dist/engine/agent-api/GameFeel.d.ts +100 -0
- package/dist/engine/agent-api/GameFeel.d.ts.map +1 -0
- package/dist/engine/agent-api/GameFeel.js +226 -0
- package/dist/engine/agent-api/GameFeel.js.map +1 -0
- package/dist/engine/agent-api/LabelTelemetry.d.ts +108 -0
- package/dist/engine/agent-api/LabelTelemetry.d.ts.map +1 -0
- package/dist/engine/agent-api/LabelTelemetry.js +116 -0
- package/dist/engine/agent-api/LabelTelemetry.js.map +1 -0
- package/dist/engine/agent-api/NavigationCrowds.d.ts +146 -0
- package/dist/engine/agent-api/NavigationCrowds.d.ts.map +1 -0
- package/dist/engine/agent-api/NavigationCrowds.js +104 -0
- package/dist/engine/agent-api/NavigationCrowds.js.map +1 -0
- package/dist/engine/agent-api/PhysicsRuntime.d.ts +61 -5
- package/dist/engine/agent-api/PhysicsRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/PhysicsRuntime.js +53 -21
- package/dist/engine/agent-api/PhysicsRuntime.js.map +1 -1
- package/dist/engine/agent-api/RootGeometry.d.ts +16 -1
- package/dist/engine/agent-api/RootGeometry.d.ts.map +1 -1
- package/dist/engine/agent-api/RootGeometry.js.map +1 -1
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +6 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
- package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
- package/dist/engine/agent-api/Scatter.d.ts +18 -0
- package/dist/engine/agent-api/Scatter.d.ts.map +1 -0
- package/dist/engine/agent-api/Scatter.js +18 -0
- package/dist/engine/agent-api/Scatter.js.map +1 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts +32 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts.map +1 -1
- package/dist/engine/agent-api/TouchControlBinding.js +36 -0
- package/dist/engine/agent-api/TouchControlBinding.js.map +1 -1
- package/dist/engine/agent-api/VehicleChassis.d.ts.map +1 -1
- package/dist/engine/agent-api/VehicleChassis.js +76 -13
- package/dist/engine/agent-api/VehicleChassis.js.map +1 -1
- package/dist/engine/agent-api/index.d.ts +708 -6
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +1757 -134
- 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/game/GameAudio.d.ts +66 -0
- package/dist/engine/game/GameAudio.d.ts.map +1 -1
- package/dist/engine/game/GameAudio.js +179 -44
- package/dist/engine/game/GameAudio.js.map +1 -1
- package/dist/engine/instances-model/InstancedModel.d.ts +111 -0
- package/dist/engine/instances-model/InstancedModel.d.ts.map +1 -0
- package/dist/engine/instances-model/InstancedModel.js +108 -0
- package/dist/engine/instances-model/InstancedModel.js.map +1 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.d.ts +72 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.d.ts.map +1 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.js +95 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.js.map +1 -0
- package/dist/engine/production-runtime/GameAppRuntime.d.ts +1 -1
- package/dist/engine/production-runtime/GameAppRuntime.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.d.ts +76 -0
- package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.js +167 -0
- package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +22 -2
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.js +33 -1
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
- package/dist/engine/production-runtime/index.d.ts +4 -4
- package/dist/engine/production-runtime/index.d.ts.map +1 -1
- package/dist/engine/production-runtime/index.js +5 -3
- package/dist/engine/production-runtime/index.js.map +1 -1
- package/dist/input/ActionMap.d.ts +40 -0
- package/dist/input/ActionMap.d.ts.map +1 -1
- package/dist/input/ActionMap.js +179 -0
- package/dist/input/ActionMap.js.map +1 -1
- package/dist/input/ComboDetector.d.ts +49 -0
- package/dist/input/ComboDetector.d.ts.map +1 -0
- package/dist/input/ComboDetector.js +102 -0
- package/dist/input/ComboDetector.js.map +1 -0
- package/dist/input/Haptics.d.ts +46 -0
- package/dist/input/Haptics.d.ts.map +1 -0
- package/dist/input/Haptics.js +67 -0
- package/dist/input/Haptics.js.map +1 -0
- package/dist/input/TouchLayouts.d.ts +35 -0
- package/dist/input/TouchLayouts.d.ts.map +1 -0
- package/dist/input/TouchLayouts.js +88 -0
- package/dist/input/TouchLayouts.js.map +1 -0
- package/dist/input/WebXRSessionController.d.ts +53 -0
- package/dist/input/WebXRSessionController.d.ts.map +1 -1
- package/dist/input/WebXRSessionController.js +88 -2
- package/dist/input/WebXRSessionController.js.map +1 -1
- package/dist/input/index.d.ts +8 -2
- package/dist/input/index.d.ts.map +1 -1
- package/dist/input/index.js +3 -0
- package/dist/input/index.js.map +1 -1
- package/dist/lean/game.d.ts +98 -0
- package/dist/lean/game.d.ts.map +1 -1
- package/dist/lean/game.js +192 -0
- package/dist/lean/game.js.map +1 -1
- package/dist/materials/GameReadyMaterialLibrary.d.ts +39 -0
- package/dist/materials/GameReadyMaterialLibrary.d.ts.map +1 -0
- package/dist/materials/GameReadyMaterialLibrary.js +253 -0
- package/dist/materials/GameReadyMaterialLibrary.js.map +1 -0
- package/dist/materials/MaterialValidation.d.ts +21 -0
- package/dist/materials/MaterialValidation.d.ts.map +1 -1
- package/dist/materials/MaterialValidation.js +105 -0
- package/dist/materials/MaterialValidation.js.map +1 -1
- package/dist/materials/browser-index.d.ts +2 -0
- package/dist/materials/browser-index.d.ts.map +1 -1
- package/dist/materials/browser-index.js +1 -0
- package/dist/materials/browser-index.js.map +1 -1
- package/dist/materials/node.d.ts +2 -2
- package/dist/materials/node.d.ts.map +1 -1
- package/dist/materials/node.js +1 -1
- package/dist/materials/node.js.map +1 -1
- package/dist/physics/CollisionVolumes.d.ts +59 -0
- package/dist/physics/CollisionVolumes.d.ts.map +1 -1
- package/dist/physics/CollisionVolumes.js +87 -0
- package/dist/physics/CollisionVolumes.js.map +1 -1
- package/dist/physics/PhysicsDebugDraw.d.ts +37 -0
- package/dist/physics/PhysicsDebugDraw.d.ts.map +1 -1
- package/dist/physics/PhysicsDebugDraw.js +38 -1
- package/dist/physics/PhysicsDebugDraw.js.map +1 -1
- package/dist/physics/PhysicsWorld.d.ts +15 -0
- package/dist/physics/PhysicsWorld.d.ts.map +1 -1
- package/dist/physics/PhysicsWorld.js +8 -1
- package/dist/physics/PhysicsWorld.js.map +1 -1
- package/dist/physics/solverless.d.ts +1 -1
- package/dist/physics/solverless.d.ts.map +1 -1
- package/dist/physics/solverless.js.map +1 -1
- package/dist/physics-rapier/index.d.ts +7 -1
- package/dist/physics-rapier/index.d.ts.map +1 -1
- package/dist/physics-rapier/index.js +1 -1
- package/dist/physics-rapier/index.js.map +1 -1
- package/dist/react/index.d.ts +136 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +251 -10
- package/dist/react/index.js.map +1 -1
- package/dist/rendering/AtmosphereWetness.d.ts +61 -0
- package/dist/rendering/AtmosphereWetness.d.ts.map +1 -0
- package/dist/rendering/AtmosphereWetness.js +99 -0
- package/dist/rendering/AtmosphereWetness.js.map +1 -0
- package/dist/rendering/ClusteredForwardLighting.d.ts +25 -1
- package/dist/rendering/ClusteredForwardLighting.d.ts.map +1 -1
- package/dist/rendering/ClusteredForwardLighting.js +80 -3
- package/dist/rendering/ClusteredForwardLighting.js.map +1 -1
- package/dist/rendering/DayNightSky.d.ts +63 -0
- package/dist/rendering/DayNightSky.d.ts.map +1 -0
- package/dist/rendering/DayNightSky.js +156 -0
- package/dist/rendering/DayNightSky.js.map +1 -0
- package/dist/rendering/EnvironmentPresetPack.d.ts +30 -0
- package/dist/rendering/EnvironmentPresetPack.d.ts.map +1 -0
- package/dist/rendering/EnvironmentPresetPack.js +49 -0
- package/dist/rendering/EnvironmentPresetPack.js.map +1 -0
- package/dist/rendering/ForwardPass.d.ts +65 -0
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +196 -2
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/InstancedPBRMaterial.d.ts +1 -0
- package/dist/rendering/InstancedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/InstancedPBRMaterial.js +3 -0
- package/dist/rendering/InstancedPBRMaterial.js.map +1 -1
- package/dist/rendering/InstancingDiagnostics.d.ts +69 -0
- package/dist/rendering/InstancingDiagnostics.d.ts.map +1 -0
- package/dist/rendering/InstancingDiagnostics.js +98 -0
- package/dist/rendering/InstancingDiagnostics.js.map +1 -0
- package/dist/rendering/LightingRig.d.ts +19 -1
- package/dist/rendering/LightingRig.d.ts.map +1 -1
- package/dist/rendering/LightingRig.js +61 -1
- package/dist/rendering/LightingRig.js.map +1 -1
- package/dist/rendering/MeshConsolidation.d.ts +12 -0
- package/dist/rendering/MeshConsolidation.d.ts.map +1 -1
- package/dist/rendering/MeshConsolidation.js +28 -0
- package/dist/rendering/MeshConsolidation.js.map +1 -1
- package/dist/rendering/MorphTargetPlan.d.ts +29 -2
- package/dist/rendering/MorphTargetPlan.d.ts.map +1 -1
- package/dist/rendering/MorphTargetPlan.js +23 -4
- package/dist/rendering/MorphTargetPlan.js.map +1 -1
- package/dist/rendering/NormalMappedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/NormalMappedPBRMaterial.js +22 -2
- package/dist/rendering/NormalMappedPBRMaterial.js.map +1 -1
- package/dist/rendering/OceanSurface.d.ts +75 -0
- package/dist/rendering/OceanSurface.d.ts.map +1 -1
- package/dist/rendering/OceanSurface.js +211 -0
- package/dist/rendering/OceanSurface.js.map +1 -1
- package/dist/rendering/PBRMaterial.d.ts +1 -0
- package/dist/rendering/PBRMaterial.d.ts.map +1 -1
- package/dist/rendering/PBRMaterial.js +23 -2
- package/dist/rendering/PBRMaterial.js.map +1 -1
- package/dist/rendering/PbrReference.d.ts +48 -0
- package/dist/rendering/PbrReference.d.ts.map +1 -1
- package/dist/rendering/PbrReference.js +126 -0
- package/dist/rendering/PbrReference.js.map +1 -1
- package/dist/rendering/PlanarReflection.d.ts +221 -0
- package/dist/rendering/PlanarReflection.d.ts.map +1 -0
- package/dist/rendering/PlanarReflection.js +541 -0
- package/dist/rendering/PlanarReflection.js.map +1 -0
- package/dist/rendering/PostProcessPass.d.ts +13 -0
- package/dist/rendering/PostProcessPass.d.ts.map +1 -1
- package/dist/rendering/PostProcessPass.js +15 -4
- package/dist/rendering/PostProcessPass.js.map +1 -1
- package/dist/rendering/ReflectionSurfaces.d.ts +14 -0
- package/dist/rendering/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/rendering/ReflectionSurfaces.js +93 -0
- package/dist/rendering/ReflectionSurfaces.js.map +1 -1
- package/dist/rendering/RenderDevice.d.ts +87 -0
- package/dist/rendering/RenderDevice.d.ts.map +1 -1
- package/dist/rendering/RenderDevice.js +85 -0
- package/dist/rendering/RenderDevice.js.map +1 -1
- package/dist/rendering/Renderer.js +3 -1
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.d.ts +48 -0
- package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.js +101 -11
- package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.d.ts.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.js +3 -1
- package/dist/rendering/RendererVisualPipelineReport.js.map +1 -1
- package/dist/rendering/Sampler.d.ts +29 -0
- package/dist/rendering/Sampler.d.ts.map +1 -1
- package/dist/rendering/Sampler.js +47 -0
- package/dist/rendering/Sampler.js.map +1 -1
- package/dist/rendering/SdfText.d.ts +250 -0
- package/dist/rendering/SdfText.d.ts.map +1 -0
- package/dist/rendering/SdfText.js +551 -0
- package/dist/rendering/SdfText.js.map +1 -0
- package/dist/rendering/ShaderChunks.d.ts.map +1 -1
- package/dist/rendering/ShaderChunks.js +30 -12
- package/dist/rendering/ShaderChunks.js.map +1 -1
- package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
- package/dist/rendering/ShaderLibrary.js +478 -34
- package/dist/rendering/ShaderLibrary.js.map +1 -1
- package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
- package/dist/rendering/ShaderLibraryCore.js +70 -12
- package/dist/rendering/ShaderLibraryCore.js.map +1 -1
- package/dist/rendering/ShadowMap.d.ts +24 -0
- package/dist/rendering/ShadowMap.d.ts.map +1 -1
- package/dist/rendering/ShadowMap.js +43 -0
- package/dist/rendering/ShadowMap.js.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.d.ts.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.js +2 -0
- package/dist/rendering/SkinnedLitMaterial.js.map +1 -1
- package/dist/rendering/SkinningBounds.d.ts +10 -0
- package/dist/rendering/SkinningBounds.d.ts.map +1 -1
- package/dist/rendering/SkinningBounds.js +27 -0
- package/dist/rendering/SkinningBounds.js.map +1 -1
- package/dist/rendering/SpriteFlipbook.d.ts +60 -0
- package/dist/rendering/SpriteFlipbook.d.ts.map +1 -0
- package/dist/rendering/SpriteFlipbook.js +128 -0
- package/dist/rendering/SpriteFlipbook.js.map +1 -0
- package/dist/rendering/TerrainTiles.d.ts +120 -0
- package/dist/rendering/TerrainTiles.d.ts.map +1 -0
- package/dist/rendering/TerrainTiles.js +221 -0
- package/dist/rendering/TerrainTiles.js.map +1 -0
- package/dist/rendering/TexturedPBRMaterial.d.ts +1 -0
- package/dist/rendering/TexturedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/TexturedPBRMaterial.js +23 -2
- package/dist/rendering/TexturedPBRMaterial.js.map +1 -1
- package/dist/rendering/TexturedUnlitMaterial.d.ts.map +1 -1
- package/dist/rendering/TexturedUnlitMaterial.js +20 -2
- package/dist/rendering/TexturedUnlitMaterial.js.map +1 -1
- package/dist/rendering/UnlitMaterial.d.ts.map +1 -1
- package/dist/rendering/UnlitMaterial.js +20 -2
- package/dist/rendering/UnlitMaterial.js.map +1 -1
- package/dist/rendering/VertexFormat.d.ts +6 -0
- package/dist/rendering/VertexFormat.d.ts.map +1 -1
- package/dist/rendering/VertexFormat.js +12 -0
- package/dist/rendering/VertexFormat.js.map +1 -1
- package/dist/rendering/VolumetricFog.d.ts +55 -0
- package/dist/rendering/VolumetricFog.d.ts.map +1 -0
- package/dist/rendering/VolumetricFog.js +91 -0
- package/dist/rendering/VolumetricFog.js.map +1 -0
- package/dist/rendering/WaterSurface.d.ts +77 -0
- package/dist/rendering/WaterSurface.d.ts.map +1 -0
- package/dist/rendering/WaterSurface.js +133 -0
- package/dist/rendering/WaterSurface.js.map +1 -0
- package/dist/rendering/WebGL2Device.d.ts +58 -0
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +536 -17
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/WebGPUDevice.d.ts +50 -0
- package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
- package/dist/rendering/WebGPUDevice.js +504 -10
- package/dist/rendering/WebGPUDevice.js.map +1 -1
- package/dist/rendering/WebGPUSkinningLimits.d.ts +40 -0
- package/dist/rendering/WebGPUSkinningLimits.d.ts.map +1 -1
- package/dist/rendering/WebGPUSkinningLimits.js +32 -0
- package/dist/rendering/WebGPUSkinningLimits.js.map +1 -1
- package/dist/rendering/effects/CollisionModule.d.ts +9 -0
- package/dist/rendering/effects/CollisionModule.d.ts.map +1 -1
- package/dist/rendering/effects/CollisionModule.js +10 -0
- package/dist/rendering/effects/CollisionModule.js.map +1 -1
- package/dist/rendering/effects/ColorModule.d.ts +7 -0
- package/dist/rendering/effects/ColorModule.d.ts.map +1 -1
- package/dist/rendering/effects/ColorModule.js +23 -0
- package/dist/rendering/effects/ColorModule.js.map +1 -1
- package/dist/rendering/effects/ForceModule.d.ts +35 -0
- package/dist/rendering/effects/ForceModule.d.ts.map +1 -1
- package/dist/rendering/effects/ForceModule.js +49 -0
- package/dist/rendering/effects/ForceModule.js.map +1 -1
- package/dist/rendering/effects/GPUParticleBackend.d.ts +186 -0
- package/dist/rendering/effects/GPUParticleBackend.d.ts.map +1 -1
- package/dist/rendering/effects/GPUParticleBackend.js +692 -1
- package/dist/rendering/effects/GPUParticleBackend.js.map +1 -1
- package/dist/rendering/effects/HeightfieldModule.d.ts +58 -0
- package/dist/rendering/effects/HeightfieldModule.d.ts.map +1 -0
- package/dist/rendering/effects/HeightfieldModule.js +129 -0
- package/dist/rendering/effects/HeightfieldModule.js.map +1 -0
- package/dist/rendering/effects/LightingModule.d.ts +34 -0
- package/dist/rendering/effects/LightingModule.d.ts.map +1 -0
- package/dist/rendering/effects/LightingModule.js +54 -0
- package/dist/rendering/effects/LightingModule.js.map +1 -0
- package/dist/rendering/effects/ParticleDiagnostics.d.ts +8 -0
- package/dist/rendering/effects/ParticleDiagnostics.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleDiagnostics.js +3 -0
- package/dist/rendering/effects/ParticleDiagnostics.js.map +1 -1
- package/dist/rendering/effects/ParticleModule.d.ts +8 -0
- package/dist/rendering/effects/ParticleModule.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleModule.js.map +1 -1
- package/dist/rendering/effects/ParticleRenderer.d.ts +20 -0
- package/dist/rendering/effects/ParticleRenderer.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleRenderer.js +57 -7
- package/dist/rendering/effects/ParticleRenderer.js.map +1 -1
- package/dist/rendering/effects/ParticleSystem.d.ts +45 -1
- package/dist/rendering/effects/ParticleSystem.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleSystem.js +373 -4
- package/dist/rendering/effects/ParticleSystem.js.map +1 -1
- package/dist/rendering/effects/SizeModule.d.ts +4 -0
- package/dist/rendering/effects/SizeModule.d.ts.map +1 -1
- package/dist/rendering/effects/SizeModule.js +16 -0
- package/dist/rendering/effects/SizeModule.js.map +1 -1
- package/dist/rendering/effects/SubEmitterModule.d.ts +61 -0
- package/dist/rendering/effects/SubEmitterModule.d.ts.map +1 -0
- package/dist/rendering/effects/SubEmitterModule.js +119 -0
- package/dist/rendering/effects/SubEmitterModule.js.map +1 -0
- package/dist/rendering/effects/TrailModule.d.ts +38 -0
- package/dist/rendering/effects/TrailModule.d.ts.map +1 -1
- package/dist/rendering/effects/TrailModule.js +95 -2
- package/dist/rendering/effects/TrailModule.js.map +1 -1
- package/dist/rendering/effects/TurbulenceModule.d.ts +43 -0
- package/dist/rendering/effects/TurbulenceModule.d.ts.map +1 -0
- package/dist/rendering/effects/TurbulenceModule.js +130 -0
- package/dist/rendering/effects/TurbulenceModule.js.map +1 -0
- package/dist/rendering/effects/index.d.ts +4 -0
- package/dist/rendering/effects/index.d.ts.map +1 -1
- package/dist/rendering/effects/index.js +4 -0
- package/dist/rendering/effects/index.js.map +1 -1
- package/dist/rendering/index.d.ts +57 -19
- package/dist/rendering/index.d.ts.map +1 -1
- package/dist/rendering/index.js +31 -10
- package/dist/rendering/index.js.map +1 -1
- package/dist/rendering/materials/MaterialExtensions.js +3 -3
- package/dist/rendering/materials/MaterialExtensions.js.map +1 -1
- package/dist/rendering/postprocess/NativeBloomPyramid.d.ts +28 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.d.ts.map +1 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.js +54 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.js.map +1 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts +10 -1
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts.map +1 -1
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js +19 -2
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js.map +1 -1
- package/dist/rendering/postprocess/index.d.ts +2 -0
- package/dist/rendering/postprocess/index.d.ts.map +1 -1
- package/dist/rendering/postprocess/index.js +1 -0
- package/dist/rendering/postprocess/index.js.map +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts +22 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.js +125 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts +52 -0
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +101 -0
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/rendering/production-runtime/index.d.ts +5 -4
- package/dist/rendering/production-runtime/index.d.ts.map +1 -1
- package/dist/rendering/production-runtime/index.js +3 -2
- package/dist/rendering/production-runtime/index.js.map +1 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts +26 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.js +49 -2
- package/dist/rendering/production-runtime/passes/DepthPrepass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/FramegraphTopology.d.ts +13 -0
- package/dist/rendering/production-runtime/passes/FramegraphTopology.d.ts.map +1 -0
- package/dist/rendering/production-runtime/passes/FramegraphTopology.js +59 -0
- package/dist/rendering/production-runtime/passes/FramegraphTopology.js.map +1 -0
- package/dist/rendering/production-runtime/passes/OpaquePass.d.ts +24 -1
- package/dist/rendering/production-runtime/passes/OpaquePass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/OpaquePass.js +41 -2
- package/dist/rendering/production-runtime/passes/OpaquePass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.d.ts +24 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.js +43 -2
- package/dist/rendering/production-runtime/passes/ShadowPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts +21 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.js +39 -2
- package/dist/rendering/production-runtime/passes/SkyboxPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts +29 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.js +53 -2
- package/dist/rendering/production-runtime/passes/ToneMappingPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.d.ts +24 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.js +42 -2
- package/dist/rendering/production-runtime/passes/TransparentPass.js.map +1 -1
- package/dist/rendering/shadows/CascadeHysteresis.d.ts +67 -0
- package/dist/rendering/shadows/CascadeHysteresis.d.ts.map +1 -0
- package/dist/rendering/shadows/CascadeHysteresis.js +104 -0
- package/dist/rendering/shadows/CascadeHysteresis.js.map +1 -0
- package/dist/rendering/shadows/ContactShadows.d.ts +52 -0
- package/dist/rendering/shadows/ContactShadows.d.ts.map +1 -1
- package/dist/rendering/shadows/ContactShadows.js +122 -0
- package/dist/rendering/shadows/ContactShadows.js.map +1 -1
- package/dist/rendering/shadows/SpotShadowMaps.d.ts +77 -0
- package/dist/rendering/shadows/SpotShadowMaps.d.ts.map +1 -0
- package/dist/rendering/shadows/SpotShadowMaps.js +106 -0
- package/dist/rendering/shadows/SpotShadowMaps.js.map +1 -0
- package/dist/rendering/webgpu/WebGPUPostProcess.d.ts +2 -0
- package/dist/rendering/webgpu/WebGPUPostProcess.d.ts.map +1 -1
- package/dist/rendering/webgpu/WebGPUPostProcess.js +1 -0
- package/dist/rendering/webgpu/WebGPUPostProcess.js.map +1 -1
- package/dist/rendering/webgpu/WebGPUPostShaders.d.ts +78 -0
- package/dist/rendering/webgpu/WebGPUPostShaders.d.ts.map +1 -0
- package/dist/rendering/webgpu/WebGPUPostShaders.js +262 -0
- package/dist/rendering/webgpu/WebGPUPostShaders.js.map +1 -0
- package/dist/scene/Scene.d.ts +8 -1
- package/dist/scene/Scene.d.ts.map +1 -1
- package/dist/scene/Scene.js +12 -2
- package/dist/scene/Scene.js.map +1 -1
- package/dist/scripting/VisualGraphContext.d.ts +31 -0
- package/dist/scripting/VisualGraphContext.d.ts.map +1 -1
- package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
- package/dist/scripting/VisualGraphExecutor.js +110 -0
- package/dist/scripting/VisualGraphExecutor.js.map +1 -1
- package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
- package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
- package/dist/scripting/VisualNodeCatalog.js +20 -0
- package/dist/scripting/VisualNodeCatalog.js.map +1 -1
- package/dist/scripting/VisualScriptingRoot.d.ts +96 -0
- package/dist/scripting/VisualScriptingRoot.d.ts.map +1 -0
- package/dist/scripting/VisualScriptingRoot.js +150 -0
- package/dist/scripting/VisualScriptingRoot.js.map +1 -0
- package/dist/scripting/index.d.ts +3 -1
- package/dist/scripting/index.d.ts.map +1 -1
- package/dist/scripting/index.js +1 -0
- package/dist/scripting/index.js.map +1 -1
- package/package.json +24 -22
- package/templates/cinematic-scene/node_modules/.vite/deps/_metadata.json +8 -0
- package/templates/cinematic-scene/node_modules/.vite/deps/package.json +3 -0
- package/templates/cinematic-scene/test-results/.last-run.json +6 -0
- package/templates/cinematic-scene/test-results/route-health-Aura3D-cinematic-scene-reaches-ready-state/error-context.md +64 -0
- package/templates/product-viewer/node_modules/.vite/deps/_metadata.json +8 -0
- package/templates/product-viewer/node_modules/.vite/deps/package.json +3 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ControlObject3DLike } from "./NativeControlTypes.js";
|
|
2
|
+
export type HoverOutlineTone = "hover" | "selected" | "hover-selected";
|
|
3
|
+
export interface HoverOutlineStyle {
|
|
4
|
+
readonly color: readonly [number, number, number, number];
|
|
5
|
+
readonly width: number;
|
|
6
|
+
}
|
|
7
|
+
export interface HoverOutlineOptions {
|
|
8
|
+
readonly hover?: Partial<HoverOutlineStyle>;
|
|
9
|
+
readonly selected?: Partial<HoverOutlineStyle>;
|
|
10
|
+
readonly hoverSelected?: Partial<HoverOutlineStyle>;
|
|
11
|
+
}
|
|
12
|
+
export interface HoverOutlineEntry {
|
|
13
|
+
readonly object: ControlObject3DLike;
|
|
14
|
+
readonly tone: HoverOutlineTone;
|
|
15
|
+
readonly style: HoverOutlineStyle;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Hover/selection highlight state for the editor outline pass (A3).
|
|
19
|
+
*
|
|
20
|
+
* This class owns the *decision* — which objects request an outline and with
|
|
21
|
+
* which tone — while the renderer owns the pixels. A viewport feeds pointer
|
|
22
|
+
* picks (`setHovered`) and selection commits (`setSelected`) and reads
|
|
23
|
+
* `entries()` to submit outline geometry; the browser proof asserts the
|
|
24
|
+
* submitted outline changes rendered pixels.
|
|
25
|
+
*/
|
|
26
|
+
export declare class HoverOutline {
|
|
27
|
+
private readonly hoverStyle;
|
|
28
|
+
private readonly selectedStyle;
|
|
29
|
+
private readonly hoverSelectedStyle;
|
|
30
|
+
private hovered;
|
|
31
|
+
private readonly selectedObjects;
|
|
32
|
+
private disposed;
|
|
33
|
+
constructor(options?: HoverOutlineOptions);
|
|
34
|
+
/** True after `dispose()`; setters are no-ops past this point. */
|
|
35
|
+
get isDisposed(): boolean;
|
|
36
|
+
setHovered(object: ControlObject3DLike | null): void;
|
|
37
|
+
setSelected(objects: readonly ControlObject3DLike[]): void;
|
|
38
|
+
clear(): void;
|
|
39
|
+
entries(): readonly HoverOutlineEntry[];
|
|
40
|
+
/**
|
|
41
|
+
* F1-standard disposal: drops hover/selection references and owns zero DOM
|
|
42
|
+
* listeners, so nothing can leak. Idempotent.
|
|
43
|
+
*/
|
|
44
|
+
dispose(): void;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=HoverOutline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HoverOutline.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/HoverOutline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAiBD;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAClE,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,GAAE,mBAAwB;IAM7C,kEAAkE;IAClE,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI;IAKpD,WAAW,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,GAAG,IAAI;IAM1D,KAAK,IAAI,IAAI;IAMb,OAAO,IAAI,SAAS,iBAAiB,EAAE;IAmBvC;;;OAGG;IACH,OAAO,IAAI,IAAI;CAMhB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
const DEFAULT_HOVER_STYLE = {
|
|
2
|
+
color: [0.4, 0.75, 1, 1],
|
|
3
|
+
width: 2
|
|
4
|
+
};
|
|
5
|
+
const DEFAULT_SELECTED_STYLE = {
|
|
6
|
+
color: [1, 0.62, 0.16, 1],
|
|
7
|
+
width: 3
|
|
8
|
+
};
|
|
9
|
+
const DEFAULT_HOVER_SELECTED_STYLE = {
|
|
10
|
+
color: [1, 0.85, 0.4, 1],
|
|
11
|
+
width: 4
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Hover/selection highlight state for the editor outline pass (A3).
|
|
15
|
+
*
|
|
16
|
+
* This class owns the *decision* — which objects request an outline and with
|
|
17
|
+
* which tone — while the renderer owns the pixels. A viewport feeds pointer
|
|
18
|
+
* picks (`setHovered`) and selection commits (`setSelected`) and reads
|
|
19
|
+
* `entries()` to submit outline geometry; the browser proof asserts the
|
|
20
|
+
* submitted outline changes rendered pixels.
|
|
21
|
+
*/
|
|
22
|
+
export class HoverOutline {
|
|
23
|
+
hoverStyle;
|
|
24
|
+
selectedStyle;
|
|
25
|
+
hoverSelectedStyle;
|
|
26
|
+
hovered = null;
|
|
27
|
+
selectedObjects = new Set();
|
|
28
|
+
disposed = false;
|
|
29
|
+
constructor(options = {}) {
|
|
30
|
+
this.hoverStyle = { ...DEFAULT_HOVER_STYLE, ...options.hover };
|
|
31
|
+
this.selectedStyle = { ...DEFAULT_SELECTED_STYLE, ...options.selected };
|
|
32
|
+
this.hoverSelectedStyle = { ...DEFAULT_HOVER_SELECTED_STYLE, ...options.hoverSelected };
|
|
33
|
+
}
|
|
34
|
+
/** True after `dispose()`; setters are no-ops past this point. */
|
|
35
|
+
get isDisposed() {
|
|
36
|
+
return this.disposed;
|
|
37
|
+
}
|
|
38
|
+
setHovered(object) {
|
|
39
|
+
if (this.disposed)
|
|
40
|
+
return;
|
|
41
|
+
this.hovered = object;
|
|
42
|
+
}
|
|
43
|
+
setSelected(objects) {
|
|
44
|
+
if (this.disposed)
|
|
45
|
+
return;
|
|
46
|
+
this.selectedObjects.clear();
|
|
47
|
+
for (const object of objects)
|
|
48
|
+
this.selectedObjects.add(object);
|
|
49
|
+
}
|
|
50
|
+
clear() {
|
|
51
|
+
if (this.disposed)
|
|
52
|
+
return;
|
|
53
|
+
this.hovered = null;
|
|
54
|
+
this.selectedObjects.clear();
|
|
55
|
+
}
|
|
56
|
+
entries() {
|
|
57
|
+
const entries = [];
|
|
58
|
+
const seen = new Set();
|
|
59
|
+
if (this.hovered) {
|
|
60
|
+
const selected = this.selectedObjects.has(this.hovered);
|
|
61
|
+
entries.push({
|
|
62
|
+
object: this.hovered,
|
|
63
|
+
tone: selected ? "hover-selected" : "hover",
|
|
64
|
+
style: selected ? this.hoverSelectedStyle : this.hoverStyle
|
|
65
|
+
});
|
|
66
|
+
seen.add(this.hovered);
|
|
67
|
+
}
|
|
68
|
+
for (const object of this.selectedObjects) {
|
|
69
|
+
if (seen.has(object))
|
|
70
|
+
continue;
|
|
71
|
+
entries.push({ object, tone: "selected", style: this.selectedStyle });
|
|
72
|
+
}
|
|
73
|
+
return entries;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* F1-standard disposal: drops hover/selection references and owns zero DOM
|
|
77
|
+
* listeners, so nothing can leak. Idempotent.
|
|
78
|
+
*/
|
|
79
|
+
dispose() {
|
|
80
|
+
if (this.disposed)
|
|
81
|
+
return;
|
|
82
|
+
this.disposed = true;
|
|
83
|
+
this.hovered = null;
|
|
84
|
+
this.selectedObjects.clear();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=HoverOutline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HoverOutline.js","sourceRoot":"","sources":["../../../../packages/controls/src/HoverOutline.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,8 @@ export declare class InteractionControls {
|
|
|
63
63
|
private readonly flyMoveSpeed;
|
|
64
64
|
constructor(options?: InteractionControlsOptions);
|
|
65
65
|
get mode(): InteractionControlMode;
|
|
66
|
+
/** True after `dispose()`; `update`/`setMode` stay silent past this point. */
|
|
67
|
+
get isDisposed(): boolean;
|
|
66
68
|
setMode(mode: InteractionControlMode, snapshot?: InputSnapshot): void;
|
|
67
69
|
setRoot(root: ControlObject3DLike | InteractionRootProvider | undefined): void;
|
|
68
70
|
setRayProvider(provider: InteractionRayProvider | undefined): void;
|
|
@@ -71,6 +73,11 @@ export declare class InteractionControls {
|
|
|
71
73
|
onHotspot(id: string, handler: HotspotHandler): () => void;
|
|
72
74
|
update(snapshot: InputSnapshot): InteractionControlsUpdate;
|
|
73
75
|
pick(snapshot: InputSnapshot): PickingReport | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* F1-standard disposal: marks the instance disposed, drops every listener
|
|
78
|
+
* and hotspot handler, and clears hover state so `update()` stays silent.
|
|
79
|
+
* Idempotent. Owns zero DOM listeners, so nothing can leak.
|
|
80
|
+
*/
|
|
74
81
|
dispose(): void;
|
|
75
82
|
private updateOrbit;
|
|
76
83
|
private updateFly;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/InteractionControls.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"InteractionControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/InteractionControls.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,8 +40,12 @@ export class InteractionControls {
|
|
|
40
40
|
get mode() {
|
|
41
41
|
return this.controlMode;
|
|
42
42
|
}
|
|
43
|
+
/** True after `dispose()`; `update`/`setMode` stay silent past this point. */
|
|
44
|
+
get isDisposed() {
|
|
45
|
+
return this.disposed;
|
|
46
|
+
}
|
|
43
47
|
setMode(mode, snapshot = new InputSnapshot()) {
|
|
44
|
-
if (this.controlMode === mode)
|
|
48
|
+
if (this.disposed || this.controlMode === mode)
|
|
45
49
|
return;
|
|
46
50
|
this.controlMode = mode;
|
|
47
51
|
this.emit({ type: "mode-change", mode, snapshot });
|
|
@@ -90,7 +94,14 @@ export class InteractionControls {
|
|
|
90
94
|
const ray = this.resolveRay(snapshot);
|
|
91
95
|
return this.picking.report(root, ray.origin, ray.direction, this.pickOptions);
|
|
92
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* F1-standard disposal: marks the instance disposed, drops every listener
|
|
99
|
+
* and hotspot handler, and clears hover state so `update()` stays silent.
|
|
100
|
+
* Idempotent. Owns zero DOM listeners, so nothing can leak.
|
|
101
|
+
*/
|
|
93
102
|
dispose() {
|
|
103
|
+
if (this.disposed)
|
|
104
|
+
return;
|
|
94
105
|
this.disposed = true;
|
|
95
106
|
this.listeners.clear();
|
|
96
107
|
this.hotspotHandlers.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/InteractionControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAuE,MAAM,WAAW,CAAC;AACzG,OAAO,EAAE,cAAc,EAA8C,MAAM,sBAAsB,CAAC;AAkDlG,MAAM,OAAO,mBAAmB;IACrB,KAAK,CAAgB;IACrB,GAAG,CAAc;IACjB,OAAO,CAAU;IAE1B,OAAO,GAAG,IAAI,CAAC;IAEP,WAAW,CAAyB;IACpC,OAAO,CAAiD;IACxD,WAAW,CAA0B;IACrC,WAAW,CAAiB;IACnB,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IACnD,eAAe,GAAG,IAAI,GAAG,EAA+B,CAAC;IAClE,QAAQ,GAAiC,IAAI,CAAC;IAC9C,QAAQ,GAAG,KAAK,CAAC;IAER,YAAY,CAAS;IACrB,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,YAAY,CAAS;IAEtC,YAAY,UAAsC,EAAE;QAClD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,OAAO,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,IAA4B,EAAE,QAAQ,GAAG,IAAI,aAAa,EAAE;QAClE,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"InteractionControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/InteractionControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAuE,MAAM,WAAW,CAAC;AACzG,OAAO,EAAE,cAAc,EAA8C,MAAM,sBAAsB,CAAC;AAkDlG,MAAM,OAAO,mBAAmB;IACrB,KAAK,CAAgB;IACrB,GAAG,CAAc;IACjB,OAAO,CAAU;IAE1B,OAAO,GAAG,IAAI,CAAC;IAEP,WAAW,CAAyB;IACpC,OAAO,CAAiD;IACxD,WAAW,CAA0B;IACrC,WAAW,CAAiB;IACnB,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IACnD,eAAe,GAAG,IAAI,GAAG,EAA+B,CAAC;IAClE,QAAQ,GAAiC,IAAI,CAAC;IAC9C,QAAQ,GAAG,KAAK,CAAC;IAER,YAAY,CAAS;IACrB,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,YAAY,CAAS;IAEtC,YAAY,UAAsC,EAAE;QAClD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,OAAO,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,IAA4B,EAAE,QAAQ,GAAG,IAAI,aAAa,EAAE;QAClE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO;QACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,IAA+D;QACrE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,cAAc,CAAC,QAA4C;QACzD,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,OAAuB;QACpC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,QAAqC;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,OAAuB;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;QAC3E,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAuB;QAC5B,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9E,CAAC;IAED,IAAI,CAAC,QAAuB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAChF,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAEO,WAAW,CAAC,QAAuB;QACzC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,QAAuB;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QACnC,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC9F,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5F,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9F,CAAC;IAEO,aAAa,CAAC,QAAuB;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,UAAU,EAAE,GAAG,IAAI,IAAI,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,WAAW,EAAE,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,CAAC;YACxC,IAAI,WAAW;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;YAClG,IAAI,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;YAC1H,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACtB,CAAC;QAED,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,IAAI,SAAS,EAAE,CAAC;YACtH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,WAAW,CAAC,KAAyE;QAC3F,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3D,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,MAAM,YAAY,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,eAAwB,EAAE,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxB,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,KAA+B;QAC1C,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEO,WAAW;QACjB,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IAC5E,CAAC;IAEO,UAAU,CAAC,QAAuB;QACxC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI;YACrC,MAAM,EAAE,IAAI,cAAc,EAAE;YAC5B,SAAS,EAAE,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACxC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -16,6 +16,23 @@ export interface ControlPickMetadata {
|
|
|
16
16
|
readonly pickRadius?: number;
|
|
17
17
|
readonly priority?: number;
|
|
18
18
|
readonly payload?: unknown;
|
|
19
|
+
/**
|
|
20
|
+
* Instanced picking: world-space centers of the instances belonging to an
|
|
21
|
+
* `InstancedMesh` (or any multi-part object). Each entry is tested as its
|
|
22
|
+
* own pick sphere; a hit reports the nearest entry via `instanceId` on the
|
|
23
|
+
* result metadata. Entries accept either a `Vector3Like` or an
|
|
24
|
+
* `[x, y, z]` tuple.
|
|
25
|
+
*/
|
|
26
|
+
readonly instancePositions?: readonly (Vector3Like | readonly [number, number, number])[];
|
|
27
|
+
/**
|
|
28
|
+
* Skinned picking: number of influencing bones, when known. Informational
|
|
29
|
+
* only — the sphere test runs against the bind-pose position plus radius,
|
|
30
|
+
* so deformation beyond that radius is an explicit non-goal (see
|
|
31
|
+
* `Picking` docs).
|
|
32
|
+
*/
|
|
33
|
+
readonly skinnedBoneCount?: number;
|
|
34
|
+
/** Reported on a hit against one entry of `instancePositions`. */
|
|
35
|
+
readonly instanceId?: number;
|
|
19
36
|
}
|
|
20
37
|
export declare class ControlVector3 implements Vector3Like {
|
|
21
38
|
x: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeControlTypes.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/NativeControlTypes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeControlTypes.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/NativeControlTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeControlTypes.js","sourceRoot":"","sources":["../../../../packages/controls/src/NativeControlTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NativeControlTypes.js","sourceRoot":"","sources":["../../../../packages/controls/src/NativeControlTypes.ts"],"names":[],"mappings":"AAsCA,MAAM,OAAO,cAAc;IACN;IAAc;IAAc;IAA/C,YAAmB,IAAI,CAAC,EAAS,IAAI,CAAC,EAAS,IAAI,CAAC;QAAjC,MAAC,GAAD,CAAC,CAAI;QAAS,MAAC,GAAD,CAAC,CAAI;QAAS,MAAC,GAAD,CAAC,CAAI;IAAG,CAAC;IAExD,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACjC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,KAAkB;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK;QACH,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,GAAG,CAAC,KAAkB;QACpB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAkB;QACpB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,CAAC;CACF;AAiBD,MAAM,UAAU,UAAU,CAAC,MAA+B,EAAE,KAAkB;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IACpB,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IACpB,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAyB,EAAE,QAA+C;IAC9G,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;QAAE,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -28,9 +28,12 @@ export declare class OrbitControls {
|
|
|
28
28
|
enableRotate: boolean;
|
|
29
29
|
private readonly engine;
|
|
30
30
|
private attachedCamera;
|
|
31
|
+
private disposed;
|
|
31
32
|
constructor(camera?: OrbitCameraLike, options?: OrbitControlsOptions);
|
|
32
33
|
/** True when a camera is attached and motion is delegated to the real engine. */
|
|
33
34
|
get isCameraAttached(): boolean;
|
|
35
|
+
/** True after `dispose()`; every mutator is a no-op past this point. */
|
|
36
|
+
get isDisposed(): boolean;
|
|
34
37
|
/**
|
|
35
38
|
* Drive the controls from an input snapshot. Camera-attached only; a detached
|
|
36
39
|
* instance has no camera to move and ignores the snapshot.
|
|
@@ -52,6 +55,12 @@ export declare class OrbitControls {
|
|
|
52
55
|
saveState(): void;
|
|
53
56
|
/** Camera-attached only; no-op when detached. */
|
|
54
57
|
reset(): void;
|
|
58
|
+
/**
|
|
59
|
+
* F1-standard disposal: disables the instance, detaches the camera so no
|
|
60
|
+
* further mutation is possible, and delegates to the input engine (which
|
|
61
|
+
* owns zero DOM listeners — input arrives via snapshots — so nothing can
|
|
62
|
+
* leak). Idempotent.
|
|
63
|
+
*/
|
|
55
64
|
dispose(): void;
|
|
56
65
|
/**
|
|
57
66
|
* Move the orbit target on the XZ ground plane. Camera-attached instances
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrbitControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/OrbitControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/G,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CACpC;AAYD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAA+B;IACtE,SAAS,UAAQ;IACjB,UAAU,UAAQ;IAClB,YAAY,UAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,cAAc,CAA8B;
|
|
1
|
+
{"version":3,"file":"OrbitControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/OrbitControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/G,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CACpC;AAYD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAA+B;IACtE,SAAS,UAAQ;IACjB,UAAU,UAAQ;IAClB,YAAY,UAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,CAAC,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB;IASxE,iFAAiF;IACjF,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,wEAAwE;IACxE,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;;OAMG;IACH,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAQzC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAY5C,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYzC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW1B,qDAAqD;IACrD,iBAAiB,IAAI,MAAM;IAI3B,qDAAqD;IACrD,aAAa,IAAI,MAAM;IAIvB,qDAAqD;IACrD,WAAW,IAAI,MAAM;IAIrB,iDAAiD;IACjD,SAAS,IAAI,IAAI;IAKjB,iDAAiD;IACjD,KAAK,IAAI,IAAI;IAMb;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAQf;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAc3D,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;CAWlB"}
|
|
@@ -31,6 +31,7 @@ export class OrbitControls {
|
|
|
31
31
|
enableRotate = true;
|
|
32
32
|
engine;
|
|
33
33
|
attachedCamera;
|
|
34
|
+
disposed = false;
|
|
34
35
|
constructor(camera, options = {}) {
|
|
35
36
|
if (!camera)
|
|
36
37
|
return;
|
|
@@ -42,7 +43,11 @@ export class OrbitControls {
|
|
|
42
43
|
}
|
|
43
44
|
/** True when a camera is attached and motion is delegated to the real engine. */
|
|
44
45
|
get isCameraAttached() {
|
|
45
|
-
return this.engine !== undefined;
|
|
46
|
+
return this.engine !== undefined && !this.disposed;
|
|
47
|
+
}
|
|
48
|
+
/** True after `dispose()`; every mutator is a no-op past this point. */
|
|
49
|
+
get isDisposed() {
|
|
50
|
+
return this.disposed;
|
|
46
51
|
}
|
|
47
52
|
/**
|
|
48
53
|
* Drive the controls from an input snapshot. Camera-attached only; a detached
|
|
@@ -53,14 +58,14 @@ export class OrbitControls {
|
|
|
53
58
|
*/
|
|
54
59
|
applyInput(snapshot) {
|
|
55
60
|
const engine = this.engine;
|
|
56
|
-
if (!engine)
|
|
61
|
+
if (!engine || this.disposed || !this.state.enabled)
|
|
57
62
|
return;
|
|
58
63
|
this.pushFlags(engine);
|
|
59
64
|
engine.update(snapshot);
|
|
60
65
|
this.syncState();
|
|
61
66
|
}
|
|
62
67
|
rotate(deltaX, deltaY) {
|
|
63
|
-
if (!this.enableRotate)
|
|
68
|
+
if (this.disposed || !this.enableRotate)
|
|
64
69
|
return;
|
|
65
70
|
if (this.engine) {
|
|
66
71
|
this.pushFlags(this.engine);
|
|
@@ -72,7 +77,7 @@ export class OrbitControls {
|
|
|
72
77
|
this.state.rotation.y += deltaX;
|
|
73
78
|
}
|
|
74
79
|
pan(deltaX, deltaY) {
|
|
75
|
-
if (!this.enablePan)
|
|
80
|
+
if (this.disposed || !this.enablePan)
|
|
76
81
|
return;
|
|
77
82
|
if (this.engine) {
|
|
78
83
|
this.pushFlags(this.engine);
|
|
@@ -84,7 +89,7 @@ export class OrbitControls {
|
|
|
84
89
|
this.state.target.y += deltaY;
|
|
85
90
|
}
|
|
86
91
|
dolly(scale) {
|
|
87
|
-
if (!this.enableZoom)
|
|
92
|
+
if (this.disposed || !this.enableZoom)
|
|
88
93
|
return;
|
|
89
94
|
if (this.engine) {
|
|
90
95
|
this.pushFlags(this.engine);
|
|
@@ -108,16 +113,29 @@ export class OrbitControls {
|
|
|
108
113
|
}
|
|
109
114
|
/** Camera-attached only; no-op when detached. */
|
|
110
115
|
saveState() {
|
|
116
|
+
if (this.disposed)
|
|
117
|
+
return;
|
|
111
118
|
this.engine?.saveState();
|
|
112
119
|
}
|
|
113
120
|
/** Camera-attached only; no-op when detached. */
|
|
114
121
|
reset() {
|
|
115
|
-
if (!this.engine)
|
|
122
|
+
if (!this.engine || this.disposed)
|
|
116
123
|
return;
|
|
117
124
|
this.engine.reset();
|
|
118
125
|
this.syncState();
|
|
119
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* F1-standard disposal: disables the instance, detaches the camera so no
|
|
129
|
+
* further mutation is possible, and delegates to the input engine (which
|
|
130
|
+
* owns zero DOM listeners — input arrives via snapshots — so nothing can
|
|
131
|
+
* leak). Idempotent.
|
|
132
|
+
*/
|
|
120
133
|
dispose() {
|
|
134
|
+
if (this.disposed)
|
|
135
|
+
return;
|
|
136
|
+
this.disposed = true;
|
|
137
|
+
this.state.enabled = false;
|
|
138
|
+
this.attachedCamera = undefined;
|
|
121
139
|
this.engine?.dispose();
|
|
122
140
|
}
|
|
123
141
|
/**
|
|
@@ -126,6 +144,8 @@ export class OrbitControls {
|
|
|
126
144
|
* update `state.target` bookkeeping.
|
|
127
145
|
*/
|
|
128
146
|
truckTarget(deltaX, deltaZ) {
|
|
147
|
+
if (this.disposed)
|
|
148
|
+
return;
|
|
129
149
|
const engine = this.engine;
|
|
130
150
|
if (!engine) {
|
|
131
151
|
this.state.target.x += deltaX;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrbitControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/OrbitControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,IAAI,mBAAmB,EAA6B,MAAM,eAAe,CAAC;AAC/G,OAAO,EAAE,yBAAyB,EAAgC,MAAM,gBAAgB,CAAC;AAUzF,SAAS,WAAW,CAAC,MAAc,EAAE,MAAc,EAAE,MAAc;IACjE,OAAO,IAAI,aAAa,CAAC;QACvB,OAAO,EAAE;YACP,MAAM;YACN,MAAM;YACN,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SAC7E;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,aAAa;IACf,KAAK,GAA4B,yBAAyB,EAAE,CAAC;IACtE,SAAS,GAAG,IAAI,CAAC;IACjB,UAAU,GAAG,IAAI,CAAC;IAClB,YAAY,GAAG,IAAI,CAAC;IAEH,MAAM,CAAkC;IACjD,cAAc,CAA8B;
|
|
1
|
+
{"version":3,"file":"OrbitControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/OrbitControls.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,21 @@ export interface PickingReport {
|
|
|
33
33
|
readonly hits: readonly ThreeCompatPickResult[];
|
|
34
34
|
readonly diagnostics: PickingDiagnostics;
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Sphere-based picking over `ControlObject3DLike` scene graphs.
|
|
38
|
+
*
|
|
39
|
+
* Scope notes (F4):
|
|
40
|
+
*
|
|
41
|
+
* - `SkinnedMesh` objects are pickable via the same bind-pose sphere test as
|
|
42
|
+
* static meshes (position plus `pickRadius`). Bone-deformed triangles beyond
|
|
43
|
+
* that radius are an explicit non-goal: this layer answers "which authored
|
|
44
|
+
* object did the pointer hit", not triangle-exact skinning queries.
|
|
45
|
+
* - `InstancedMesh` objects are pickable per instance: metadata
|
|
46
|
+
* `instancePositions` lists world-space instance centers, each tested as
|
|
47
|
+
* its own sphere, and a hit reports the nearest entry as
|
|
48
|
+
* `metadata.instanceId`. Without `instancePositions` the single object
|
|
49
|
+
* sphere is tested, exactly like a static mesh.
|
|
50
|
+
*/
|
|
36
51
|
export declare class Picking {
|
|
37
52
|
pick(root: ControlObject3DLike, origin?: Vector3Like, direction?: Vector3Like, options?: PickingOptions): ThreeCompatPickResult | null;
|
|
38
53
|
pickAll(root: ControlObject3DLike, origin?: Vector3Like, direction?: Vector3Like, options?: PickingOptions): readonly ThreeCompatPickResult[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Picking.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/Picking.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,SAAS,CAAC;CACtF;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;CAC1C;AAED,qBAAa,OAAO;IAClB,IAAI,CACF,IAAI,EAAE,mBAAmB,EACzB,MAAM,GAAE,WAAkC,EAC1C,SAAS,GAAE,WAA0C,EACrD,OAAO,GAAE,cAAmB,GAC3B,qBAAqB,GAAG,IAAI;IAI/B,OAAO,CACL,IAAI,EAAE,mBAAmB,EACzB,MAAM,GAAE,WAAkC,EAC1C,SAAS,GAAE,WAA0C,EACrD,OAAO,GAAE,cAAmB,GAC3B,SAAS,qBAAqB,EAAE;IAInC,MAAM,CACJ,IAAI,EAAE,mBAAmB,EACzB,MAAM,GAAE,WAAkC,EAC1C,SAAS,GAAE,WAA0C,EACrD,OAAO,GAAE,cAAmB,GAC3B,aAAa;
|
|
1
|
+
{"version":3,"file":"Picking.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/Picking.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,SAAS,CAAC;CACtF;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,OAAO;IAClB,IAAI,CACF,IAAI,EAAE,mBAAmB,EACzB,MAAM,GAAE,WAAkC,EAC1C,SAAS,GAAE,WAA0C,EACrD,OAAO,GAAE,cAAmB,GAC3B,qBAAqB,GAAG,IAAI;IAI/B,OAAO,CACL,IAAI,EAAE,mBAAmB,EACzB,MAAM,GAAE,WAAkC,EAC1C,SAAS,GAAE,WAA0C,EACrD,OAAO,GAAE,cAAmB,GAC3B,SAAS,qBAAqB,EAAE;IAInC,MAAM,CACJ,IAAI,EAAE,mBAAmB,EACzB,MAAM,GAAE,WAAkC,EAC1C,SAAS,GAAE,WAA0C,EACrD,OAAO,GAAE,cAAmB,GAC3B,aAAa;CAoFjB"}
|
package/dist/controls/Picking.js
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
import { ControlVector3, traverseControlObject } from "./NativeControlTypes.js";
|
|
2
|
+
/**
|
|
3
|
+
* Sphere-based picking over `ControlObject3DLike` scene graphs.
|
|
4
|
+
*
|
|
5
|
+
* Scope notes (F4):
|
|
6
|
+
*
|
|
7
|
+
* - `SkinnedMesh` objects are pickable via the same bind-pose sphere test as
|
|
8
|
+
* static meshes (position plus `pickRadius`). Bone-deformed triangles beyond
|
|
9
|
+
* that radius are an explicit non-goal: this layer answers "which authored
|
|
10
|
+
* object did the pointer hit", not triangle-exact skinning queries.
|
|
11
|
+
* - `InstancedMesh` objects are pickable per instance: metadata
|
|
12
|
+
* `instancePositions` lists world-space instance centers, each tested as
|
|
13
|
+
* its own sphere, and a hit reports the nearest entry as
|
|
14
|
+
* `metadata.instanceId`. Without `instancePositions` the single object
|
|
15
|
+
* sphere is tested, exactly like a static mesh.
|
|
16
|
+
*/
|
|
2
17
|
export class Picking {
|
|
3
18
|
pick(root, origin = new ControlVector3(), direction = new ControlVector3(0, 0, -1), options = {}) {
|
|
4
19
|
return this.report(root, origin, direction, options).hit;
|
|
@@ -38,30 +53,34 @@ export class Picking {
|
|
|
38
53
|
return;
|
|
39
54
|
}
|
|
40
55
|
counters.candidateObjects += 1;
|
|
41
|
-
const toObject = new ControlVector3(object.position.x - origin.x, object.position.y - origin.y, object.position.z - origin.z);
|
|
42
|
-
const distanceAlongRay = dot(toObject, normalizedDirection);
|
|
43
|
-
if (distanceAlongRay < near || distanceAlongRay > far) {
|
|
44
|
-
counters.skippedOutOfRange += 1;
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
const closestPoint = pointOnRay(origin, normalizedDirection, distanceAlongRay);
|
|
48
|
-
const perpendicularDistance = new ControlVector3(object.position.x - closestPoint.x, object.position.y - closestPoint.y, object.position.z - closestPoint.z).length();
|
|
49
56
|
const radius = resolvePickRadius(object, metadata) + tolerance;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
const instances = resolveInstanceCenters(object, metadata);
|
|
58
|
+
for (let instanceId = 0; instanceId < instances.length; instanceId += 1) {
|
|
59
|
+
const center = instances[instanceId];
|
|
60
|
+
const toCenter = new ControlVector3(center.x - origin.x, center.y - origin.y, center.z - origin.z);
|
|
61
|
+
const distanceAlongRay = dot(toCenter, normalizedDirection);
|
|
62
|
+
if (distanceAlongRay < near || distanceAlongRay > far) {
|
|
63
|
+
counters.skippedOutOfRange += 1;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const closestPoint = pointOnRay(origin, normalizedDirection, distanceAlongRay);
|
|
67
|
+
const perpendicularDistance = new ControlVector3(center.x - closestPoint.x, center.y - closestPoint.y, center.z - closestPoint.z).length();
|
|
68
|
+
if (perpendicularDistance > radius) {
|
|
69
|
+
counters.skippedMissedRadius += 1;
|
|
70
|
+
nearestMissPerpendicularDistance = Math.min(nearestMissPerpendicularDistance, perpendicularDistance);
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const rayEntryDistance = Math.max(near, distanceAlongRay - Math.sqrt(Math.max(0, radius * radius - perpendicularDistance * perpendicularDistance)));
|
|
74
|
+
hits.push({
|
|
75
|
+
object,
|
|
76
|
+
distance: rayEntryDistance,
|
|
77
|
+
distanceAlongRay,
|
|
78
|
+
perpendicularDistance,
|
|
79
|
+
point: pointOnRay(origin, normalizedDirection, rayEntryDistance),
|
|
80
|
+
radius,
|
|
81
|
+
metadata: instances.length > 1 ? { ...metadata, instanceId } : metadata
|
|
82
|
+
});
|
|
54
83
|
}
|
|
55
|
-
const rayEntryDistance = Math.max(near, distanceAlongRay - Math.sqrt(Math.max(0, radius * radius - perpendicularDistance * perpendicularDistance)));
|
|
56
|
-
hits.push({
|
|
57
|
-
object,
|
|
58
|
-
distance: rayEntryDistance,
|
|
59
|
-
distanceAlongRay,
|
|
60
|
-
perpendicularDistance,
|
|
61
|
-
point: pointOnRay(origin, normalizedDirection, rayEntryDistance),
|
|
62
|
-
radius,
|
|
63
|
-
metadata
|
|
64
|
-
});
|
|
65
84
|
});
|
|
66
85
|
hits.sort(compareHits);
|
|
67
86
|
const hit = hits[0] ?? null;
|
|
@@ -107,7 +126,27 @@ function readUserDataMetadata(userData) {
|
|
|
107
126
|
function isPickableObject(object, metadata, options) {
|
|
108
127
|
if (metadata && options.includeNonRenderableMetadata !== false)
|
|
109
128
|
return true;
|
|
110
|
-
return object.type === "Mesh" ||
|
|
129
|
+
return object.type === "Mesh" ||
|
|
130
|
+
object.type === "SkinnedMesh" ||
|
|
131
|
+
object.type === "InstancedMesh" ||
|
|
132
|
+
object.type === "Sprite" ||
|
|
133
|
+
object.type === "Points" ||
|
|
134
|
+
object.type === "LineSegments";
|
|
135
|
+
}
|
|
136
|
+
function resolveInstanceCenters(object, metadata) {
|
|
137
|
+
const positions = metadata?.instancePositions;
|
|
138
|
+
if (!positions || positions.length === 0)
|
|
139
|
+
return [object.position];
|
|
140
|
+
return positions.map((entry) => {
|
|
141
|
+
if (Array.isArray(entry)) {
|
|
142
|
+
return {
|
|
143
|
+
x: Number(entry[0] ?? 0),
|
|
144
|
+
y: Number(entry[1] ?? 0),
|
|
145
|
+
z: Number(entry[2] ?? 0)
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
return entry;
|
|
149
|
+
});
|
|
111
150
|
}
|
|
112
151
|
function resolvePickRadius(object, metadata) {
|
|
113
152
|
const explicit = metadata?.pickRadius ?? object.pickRadius ?? readUserDataRadius(object.userData);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Picking.js","sourceRoot":"","sources":["../../../../packages/controls/src/Picking.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,qBAAqB,EAItB,MAAM,sBAAsB,CAAC;AAwC9B,MAAM,OAAO,OAAO;IAClB,IAAI,CACF,IAAyB,EACzB,SAAsB,IAAI,cAAc,EAAE,EAC1C,YAAyB,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EACrD,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC;IAC3D,CAAC;IAED,OAAO,CACL,IAAyB,EACzB,SAAsB,IAAI,cAAc,EAAE,EAC1C,YAAyB,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EACrD,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;IAC5D,CAAC;IAED,MAAM,CACJ,IAAyB,EACzB,SAAsB,IAAI,cAAc,EAAE,EAC1C,YAAyB,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EACrD,UAA0B,EAAE;QAE5B,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG;YACf,aAAa,EAAE,CAAC;YAChB,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;YACnB,kBAAkB,EAAE,CAAC;YACrB,eAAe,EAAE,CAAC;YAClB,iBAAiB,EAAE,CAAC;YACpB,mBAAmB,EAAE,CAAC;SACvB,CAAC;QACF,IAAI,gCAAgC,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEhE,qBAAqB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;YACrC,QAAQ,CAAC,aAAa,IAAI,CAAC,CAAC;YAC5B,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBAClE,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,QAAQ,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;gBACnC,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC;gBAC9B,OAAO;YACT,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;gBACjD,QAAQ,CAAC,kBAAkB,IAAI,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YACD,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"Picking.js","sourceRoot":"","sources":["../../../../packages/controls/src/Picking.ts"],"names":[],"mappings":"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"}
|