@aura3d/engine 1.4.4 → 1.5.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 +65 -30
- 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/index.js +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 +781 -46
- 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 +24 -4
- package/dist/create-aura3d/showcase-spec-game-template-evidence.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-platformer-artifacts.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-platformer-artifacts.js +28 -17
- package/dist/create-aura3d/showcase-spec-platformer-artifacts.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-racing-artifacts.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-racing-artifacts.js +10 -5
- package/dist/create-aura3d/showcase-spec-racing-artifacts.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/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/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 +13 -0
- package/dist/engine/agent-api/GameGenreKits.d.ts.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.js +57 -11
- 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 +12 -0
- package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts.map +1 -1
- package/dist/engine/agent-api/GameSceneGeometryBindings.js +2 -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/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/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/index.d.ts +39 -0
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +546 -74
- 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 +124 -113
- package/templates/cinematic-scene/package.json +1 -1
- package/templates/mini-game/package.json +1 -1
- package/templates/product-viewer/package.json +1 -1
- 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
|
@@ -1,9 +1,47 @@
|
|
|
1
|
+
import { InputSnapshot } from "../input/index.js";
|
|
1
2
|
import { OrbitControls } from "./OrbitControls.js";
|
|
3
|
+
import { ControlVector3 } from "./NativeControlTypes.js";
|
|
2
4
|
export class MapControls extends OrbitControls {
|
|
3
5
|
screenSpacePanning = false;
|
|
6
|
+
hasExternalCamera;
|
|
7
|
+
constructor(camera, options = {}) {
|
|
8
|
+
// Unlike OrbitControls' deliberately retained detached compatibility mode,
|
|
9
|
+
// MapControls always delegates. A no-camera caller receives a state-backed
|
|
10
|
+
// camera so truck/orbit/dolly all use the same spherical engine.
|
|
11
|
+
super(camera ?? { position: new ControlVector3(0, 0, 5) }, options);
|
|
12
|
+
this.hasExternalCamera = camera !== undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Apply MapControls mouse semantics through the delegated orbit engine:
|
|
16
|
+
* left pans, right rotates, middle dollies, and the wheel dollies.
|
|
17
|
+
*/
|
|
18
|
+
applyInput(snapshot) {
|
|
19
|
+
const left = snapshot.button(0).down;
|
|
20
|
+
const middle = snapshot.button(1).down;
|
|
21
|
+
const right = snapshot.button(2).down;
|
|
22
|
+
const buttons = new Map();
|
|
23
|
+
if (left)
|
|
24
|
+
buttons.set(2, snapshot.button(0));
|
|
25
|
+
if (right)
|
|
26
|
+
buttons.set(0, snapshot.button(2));
|
|
27
|
+
super.applyInput(new InputSnapshot({
|
|
28
|
+
keys: snapshot.keys,
|
|
29
|
+
pointer: {
|
|
30
|
+
...snapshot.pointer,
|
|
31
|
+
buttons,
|
|
32
|
+
wheelY: snapshot.pointer.wheelY + (middle ? snapshot.pointer.deltaY : 0)
|
|
33
|
+
},
|
|
34
|
+
gamepads: snapshot.gamepads
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Ground-plane truck. This moves the real delegated orbit target on the XZ
|
|
39
|
+
* plane, including for the state-backed no-camera form.
|
|
40
|
+
*/
|
|
4
41
|
truck(deltaX, deltaZ) {
|
|
5
|
-
this.
|
|
6
|
-
|
|
42
|
+
if (!this.enablePan)
|
|
43
|
+
return;
|
|
44
|
+
this.truckTarget(deltaX, deltaZ);
|
|
7
45
|
}
|
|
8
46
|
}
|
|
9
47
|
//# sourceMappingURL=MapControls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/MapControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,OAAO,WAAY,SAAQ,aAAa;IACnC,kBAAkB,GAAG,KAAK,CAAC;IAEpC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"MapControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/MapControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,WAAY,SAAQ,aAAa;IACnC,kBAAkB,GAAG,KAAK,CAAC;IAC3B,iBAAiB,CAAU;IAEpC,YAAY,MAAwB,EAAE,UAAgC,EAAE;QACtE,2EAA2E;QAC3E,2EAA2E;QAC3E,iEAAiE;QACjE,KAAK,CAAC,MAAM,IAAI,EAAE,QAAQ,EAAE,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,iBAAiB,GAAG,MAAM,KAAK,SAAS,CAAC;IAChD,CAAC;IAED;;;OAGG;IACM,UAAU,CAAC,QAAuB;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6F,CAAC;QACrH,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9C,KAAK,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC;YACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE;gBACP,GAAG,QAAQ,CAAC,OAAO;gBACnB,OAAO;gBACP,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aACzE;YACD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAc,EAAE,MAAc;QAClC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -1,11 +1,65 @@
|
|
|
1
|
+
import { InputSnapshot, type OrbitControlsOptions } from "@aura3d/input";
|
|
1
2
|
import { type ThreeCompatControlState } from "./ControlState";
|
|
3
|
+
import type { Vector3Like } from "./NativeControlTypes";
|
|
4
|
+
export type { OrbitControlsOptions };
|
|
5
|
+
export interface OrbitCameraLike {
|
|
6
|
+
position: Vector3Like;
|
|
7
|
+
lookAt?(target: Vector3Like): void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Three.js-compatible orbit controls.
|
|
11
|
+
*
|
|
12
|
+
* Two modes:
|
|
13
|
+
*
|
|
14
|
+
* - Camera-attached (`new OrbitControls(camera, options)`): all motion is
|
|
15
|
+
* delegated to the `@aura3d/input` orbit implementation, which owns the real
|
|
16
|
+
* spherical camera math, distance/polar clamping, and `saveState`/`reset`.
|
|
17
|
+
* `state` mirrors the camera the engine produced. This is the supported path.
|
|
18
|
+
* - Detached (`new OrbitControls()`): there is no camera to drive, so
|
|
19
|
+
* `rotate`/`pan`/`dolly` only accumulate bookkeeping numbers on `state`.
|
|
20
|
+
* Those numbers are not a camera pose and carry no parity claim. This mode
|
|
21
|
+
* exists so `TrackballControls` and existing detached callers keep working;
|
|
22
|
+
* new code should attach a camera.
|
|
23
|
+
*/
|
|
2
24
|
export declare class OrbitControls {
|
|
3
25
|
readonly state: ThreeCompatControlState;
|
|
4
26
|
enablePan: boolean;
|
|
5
27
|
enableZoom: boolean;
|
|
6
28
|
enableRotate: boolean;
|
|
29
|
+
private readonly engine;
|
|
30
|
+
private attachedCamera;
|
|
31
|
+
constructor(camera?: OrbitCameraLike, options?: OrbitControlsOptions);
|
|
32
|
+
/** True when a camera is attached and motion is delegated to the real engine. */
|
|
33
|
+
get isCameraAttached(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Drive the controls from an input snapshot. Camera-attached only; a detached
|
|
36
|
+
* instance has no camera to move and ignores the snapshot.
|
|
37
|
+
*
|
|
38
|
+
* Named `applyInput` rather than `update` because `TrackballControls`
|
|
39
|
+
* overrides `update(deltaSeconds)` with damping-tick semantics.
|
|
40
|
+
*/
|
|
41
|
+
applyInput(snapshot: InputSnapshot): void;
|
|
7
42
|
rotate(deltaX: number, deltaY: number): void;
|
|
8
43
|
pan(deltaX: number, deltaY: number): void;
|
|
9
44
|
dolly(scale: number): void;
|
|
45
|
+
/** Camera-attached only; returns 0 when detached. */
|
|
46
|
+
getAzimuthalAngle(): number;
|
|
47
|
+
/** Camera-attached only; returns 0 when detached. */
|
|
48
|
+
getPolarAngle(): number;
|
|
49
|
+
/** Camera-attached only; returns 0 when detached. */
|
|
50
|
+
getDistance(): number;
|
|
51
|
+
/** Camera-attached only; no-op when detached. */
|
|
52
|
+
saveState(): void;
|
|
53
|
+
/** Camera-attached only; no-op when detached. */
|
|
54
|
+
reset(): void;
|
|
55
|
+
dispose(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Move the orbit target on the XZ ground plane. Camera-attached instances
|
|
58
|
+
* move the engine target (and therefore the camera); detached instances only
|
|
59
|
+
* update `state.target` bookkeeping.
|
|
60
|
+
*/
|
|
61
|
+
protected truckTarget(deltaX: number, deltaZ: number): void;
|
|
62
|
+
private pushFlags;
|
|
63
|
+
private syncState;
|
|
10
64
|
}
|
|
11
65
|
//# sourceMappingURL=OrbitControls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrbitControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/OrbitControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;
|
|
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;gBAExC,MAAM,CAAC,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB;IASxE,iFAAiF;IACjF,IAAI,gBAAgB,IAAI,OAAO,CAE9B;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;IAIjB,iDAAiD;IACjD,KAAK,IAAI,IAAI;IAMb,OAAO,IAAI,IAAI;IAIf;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAa3D,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;CAWlB"}
|
|
@@ -1,25 +1,158 @@
|
|
|
1
|
+
import { InputSnapshot, OrbitControls as OrbitControlsEngine } from "../input/index.js";
|
|
1
2
|
import { createDefaultControlState } from "./ControlState.js";
|
|
3
|
+
function pointerDrag(button, deltaX, deltaY) {
|
|
4
|
+
return new InputSnapshot({
|
|
5
|
+
pointer: {
|
|
6
|
+
deltaX,
|
|
7
|
+
deltaY,
|
|
8
|
+
buttons: new Map([[button, { down: true, pressed: true, released: false }]])
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Three.js-compatible orbit controls.
|
|
14
|
+
*
|
|
15
|
+
* Two modes:
|
|
16
|
+
*
|
|
17
|
+
* - Camera-attached (`new OrbitControls(camera, options)`): all motion is
|
|
18
|
+
* delegated to the `@aura3d/input` orbit implementation, which owns the real
|
|
19
|
+
* spherical camera math, distance/polar clamping, and `saveState`/`reset`.
|
|
20
|
+
* `state` mirrors the camera the engine produced. This is the supported path.
|
|
21
|
+
* - Detached (`new OrbitControls()`): there is no camera to drive, so
|
|
22
|
+
* `rotate`/`pan`/`dolly` only accumulate bookkeeping numbers on `state`.
|
|
23
|
+
* Those numbers are not a camera pose and carry no parity claim. This mode
|
|
24
|
+
* exists so `TrackballControls` and existing detached callers keep working;
|
|
25
|
+
* new code should attach a camera.
|
|
26
|
+
*/
|
|
2
27
|
export class OrbitControls {
|
|
3
28
|
state = createDefaultControlState();
|
|
4
29
|
enablePan = true;
|
|
5
30
|
enableZoom = true;
|
|
6
31
|
enableRotate = true;
|
|
32
|
+
engine;
|
|
33
|
+
attachedCamera;
|
|
34
|
+
constructor(camera, options = {}) {
|
|
35
|
+
if (!camera)
|
|
36
|
+
return;
|
|
37
|
+
this.engine = new OrbitControlsEngine(camera, options);
|
|
38
|
+
this.enablePan = this.engine.enablePan;
|
|
39
|
+
this.enableZoom = this.engine.enableZoom;
|
|
40
|
+
this.enableRotate = this.engine.enableRotate;
|
|
41
|
+
this.syncState(camera);
|
|
42
|
+
}
|
|
43
|
+
/** True when a camera is attached and motion is delegated to the real engine. */
|
|
44
|
+
get isCameraAttached() {
|
|
45
|
+
return this.engine !== undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Drive the controls from an input snapshot. Camera-attached only; a detached
|
|
49
|
+
* instance has no camera to move and ignores the snapshot.
|
|
50
|
+
*
|
|
51
|
+
* Named `applyInput` rather than `update` because `TrackballControls`
|
|
52
|
+
* overrides `update(deltaSeconds)` with damping-tick semantics.
|
|
53
|
+
*/
|
|
54
|
+
applyInput(snapshot) {
|
|
55
|
+
const engine = this.engine;
|
|
56
|
+
if (!engine)
|
|
57
|
+
return;
|
|
58
|
+
this.pushFlags(engine);
|
|
59
|
+
engine.update(snapshot);
|
|
60
|
+
this.syncState();
|
|
61
|
+
}
|
|
7
62
|
rotate(deltaX, deltaY) {
|
|
8
63
|
if (!this.enableRotate)
|
|
9
64
|
return;
|
|
65
|
+
if (this.engine) {
|
|
66
|
+
this.pushFlags(this.engine);
|
|
67
|
+
this.engine.update(pointerDrag(0, deltaX, deltaY));
|
|
68
|
+
this.syncState();
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
10
71
|
this.state.rotation.x += deltaY;
|
|
11
72
|
this.state.rotation.y += deltaX;
|
|
12
73
|
}
|
|
13
74
|
pan(deltaX, deltaY) {
|
|
14
75
|
if (!this.enablePan)
|
|
15
76
|
return;
|
|
77
|
+
if (this.engine) {
|
|
78
|
+
this.pushFlags(this.engine);
|
|
79
|
+
this.engine.update(pointerDrag(2, deltaX, deltaY));
|
|
80
|
+
this.syncState();
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
16
83
|
this.state.target.x += deltaX;
|
|
17
84
|
this.state.target.y += deltaY;
|
|
18
85
|
}
|
|
19
86
|
dolly(scale) {
|
|
20
87
|
if (!this.enableZoom)
|
|
21
88
|
return;
|
|
89
|
+
if (this.engine) {
|
|
90
|
+
this.pushFlags(this.engine);
|
|
91
|
+
this.engine.update(new InputSnapshot({ pointer: { wheelY: scale < 1 ? -100 : 100 } }));
|
|
92
|
+
this.syncState();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
22
95
|
this.state.position.z *= scale;
|
|
23
96
|
}
|
|
97
|
+
/** Camera-attached only; returns 0 when detached. */
|
|
98
|
+
getAzimuthalAngle() {
|
|
99
|
+
return this.engine?.getAzimuthalAngle() ?? 0;
|
|
100
|
+
}
|
|
101
|
+
/** Camera-attached only; returns 0 when detached. */
|
|
102
|
+
getPolarAngle() {
|
|
103
|
+
return this.engine?.getPolarAngle() ?? 0;
|
|
104
|
+
}
|
|
105
|
+
/** Camera-attached only; returns 0 when detached. */
|
|
106
|
+
getDistance() {
|
|
107
|
+
return this.engine?.getDistance() ?? 0;
|
|
108
|
+
}
|
|
109
|
+
/** Camera-attached only; no-op when detached. */
|
|
110
|
+
saveState() {
|
|
111
|
+
this.engine?.saveState();
|
|
112
|
+
}
|
|
113
|
+
/** Camera-attached only; no-op when detached. */
|
|
114
|
+
reset() {
|
|
115
|
+
if (!this.engine)
|
|
116
|
+
return;
|
|
117
|
+
this.engine.reset();
|
|
118
|
+
this.syncState();
|
|
119
|
+
}
|
|
120
|
+
dispose() {
|
|
121
|
+
this.engine?.dispose();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Move the orbit target on the XZ ground plane. Camera-attached instances
|
|
125
|
+
* move the engine target (and therefore the camera); detached instances only
|
|
126
|
+
* update `state.target` bookkeeping.
|
|
127
|
+
*/
|
|
128
|
+
truckTarget(deltaX, deltaZ) {
|
|
129
|
+
const engine = this.engine;
|
|
130
|
+
if (!engine) {
|
|
131
|
+
this.state.target.x += deltaX;
|
|
132
|
+
this.state.target.z += deltaZ;
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
engine.target.x += deltaX;
|
|
136
|
+
engine.target.z += deltaZ;
|
|
137
|
+
engine.update(new InputSnapshot());
|
|
138
|
+
this.syncState();
|
|
139
|
+
}
|
|
140
|
+
pushFlags(engine) {
|
|
141
|
+
engine.enablePan = this.enablePan;
|
|
142
|
+
engine.enableZoom = this.enableZoom;
|
|
143
|
+
engine.enableRotate = this.enableRotate;
|
|
144
|
+
}
|
|
145
|
+
syncState(camera) {
|
|
146
|
+
const engine = this.engine;
|
|
147
|
+
if (!engine)
|
|
148
|
+
return;
|
|
149
|
+
const source = camera ?? this.attachedCamera;
|
|
150
|
+
if (source) {
|
|
151
|
+
this.state.position.set(source.position.x, source.position.y, source.position.z);
|
|
152
|
+
}
|
|
153
|
+
this.state.target.set(engine.target.x, engine.target.y, engine.target.z);
|
|
154
|
+
this.state.rotation.set(engine.getPolarAngle(), engine.getAzimuthalAngle(), this.state.rotation.z);
|
|
155
|
+
this.attachedCamera = source;
|
|
156
|
+
}
|
|
24
157
|
}
|
|
25
158
|
//# sourceMappingURL=OrbitControls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrbitControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/OrbitControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAgC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"OrbitControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/OrbitControls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { type FirstPersonControlsOptions } from "@aura3d/input";
|
|
2
|
+
import { FirstPersonControls } from "./FirstPersonControls";
|
|
3
|
+
import type { FlyCameraLike } from "./FlyControls";
|
|
4
|
+
/**
|
|
5
|
+
* Pointer-lock navigation delegated to `@aura3d/input`. `lock()` and
|
|
6
|
+
* `unlock()` gate both snapshot updates and compatibility `look()` deltas.
|
|
7
|
+
*/
|
|
8
|
+
export declare class PointerLockControls extends FirstPersonControls {
|
|
9
|
+
private readonly pointerLockDelegate;
|
|
10
|
+
constructor(camera?: FlyCameraLike, options?: FirstPersonControlsOptions);
|
|
11
|
+
get locked(): boolean;
|
|
12
|
+
set locked(value: boolean);
|
|
5
13
|
lock(): void;
|
|
6
14
|
unlock(): void;
|
|
7
|
-
look(deltaX: number, deltaY: number): void;
|
|
8
15
|
}
|
|
9
16
|
//# sourceMappingURL=PointerLockControls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointerLockControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/PointerLockControls.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"PointerLockControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/PointerLockControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;gBAEnD,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,GAAE,0BAA+B;IAS5E,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAGxB;IAED,IAAI,IAAI,IAAI;IAIZ,MAAM,IAAI,IAAI;CAGf"}
|
|
@@ -1,14 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
this.
|
|
1
|
+
import { PointerLockControls as InputPointerLockControls } from "../input/index.js";
|
|
2
|
+
import { FirstPersonControls } from "./FirstPersonControls.js";
|
|
3
|
+
/**
|
|
4
|
+
* Pointer-lock navigation delegated to `@aura3d/input`. `lock()` and
|
|
5
|
+
* `unlock()` gate both snapshot updates and compatibility `look()` deltas.
|
|
6
|
+
*/
|
|
7
|
+
export class PointerLockControls extends FirstPersonControls {
|
|
8
|
+
pointerLockDelegate;
|
|
9
|
+
constructor(camera, options = {}) {
|
|
10
|
+
super(camera, options);
|
|
11
|
+
this.pointerLockDelegate = new InputPointerLockControls(this.controlledCamera, {
|
|
12
|
+
...options,
|
|
13
|
+
moveSpeed: 1
|
|
14
|
+
});
|
|
15
|
+
this.replaceDelegate(this.pointerLockDelegate, options.lookSpeed ?? 0.002);
|
|
16
|
+
}
|
|
17
|
+
get locked() {
|
|
18
|
+
return this.pointerLockDelegate.locked;
|
|
19
|
+
}
|
|
20
|
+
set locked(value) {
|
|
21
|
+
if (value)
|
|
22
|
+
this.lock();
|
|
23
|
+
else
|
|
24
|
+
this.unlock();
|
|
25
|
+
}
|
|
26
|
+
lock() {
|
|
27
|
+
this.pointerLockDelegate.lock();
|
|
28
|
+
}
|
|
29
|
+
unlock() {
|
|
30
|
+
this.pointerLockDelegate.unlock();
|
|
12
31
|
}
|
|
13
32
|
}
|
|
14
33
|
//# sourceMappingURL=PointerLockControls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointerLockControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/PointerLockControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PointerLockControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/PointerLockControls.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,IAAI,wBAAwB,EAEhD,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IACzC,mBAAmB,CAA2B;IAE/D,YAAY,MAAsB,EAAE,UAAsC,EAAE;QAC1E,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC7E,GAAG,OAAO;YACV,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,KAAc;QACvB,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC;;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;IACrB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -1,8 +1,29 @@
|
|
|
1
1
|
import type { ControlObject3DLike } from "./NativeControlTypes";
|
|
2
|
+
export interface SelectionManagerChange {
|
|
3
|
+
readonly previous: readonly ControlObject3DLike[];
|
|
4
|
+
readonly current: readonly ControlObject3DLike[];
|
|
5
|
+
readonly added: readonly ControlObject3DLike[];
|
|
6
|
+
readonly removed: readonly ControlObject3DLike[];
|
|
7
|
+
}
|
|
8
|
+
export type SelectionManagerListener = (change: SelectionManagerChange) => void;
|
|
9
|
+
/**
|
|
10
|
+
* Observable object-identity selection owner. This is intentionally separate
|
|
11
|
+
* from editor-runtime's id selection: controls callers select object
|
|
12
|
+
* references, while editor documents select stable string/number ids.
|
|
13
|
+
*/
|
|
2
14
|
export declare class SelectionManager {
|
|
3
|
-
readonly
|
|
15
|
+
private readonly selectedObjects;
|
|
16
|
+
private readonly listeners;
|
|
17
|
+
get selected(): ReadonlySet<ControlObject3DLike>;
|
|
18
|
+
current(): readonly ControlObject3DLike[];
|
|
4
19
|
select(object: ControlObject3DLike, additive?: boolean): void;
|
|
5
20
|
deselect(object: ControlObject3DLike): void;
|
|
6
21
|
clear(): void;
|
|
22
|
+
has(object: ControlObject3DLike): boolean;
|
|
23
|
+
toggle(object: ControlObject3DLike, additive?: boolean): void;
|
|
24
|
+
prune(alive: (object: ControlObject3DLike) => boolean): void;
|
|
25
|
+
subscribe(listener: SelectionManagerListener): () => void;
|
|
26
|
+
dispose(): void;
|
|
27
|
+
private replace;
|
|
7
28
|
}
|
|
8
29
|
//# sourceMappingURL=SelectionManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionManager.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/SelectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"SelectionManager.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/SelectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAClD;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAEhF;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IAEjE,IAAI,QAAQ,IAAI,WAAW,CAAC,mBAAmB,CAAC,CAE/C;IAED,OAAO,IAAI,SAAS,mBAAmB,EAAE;IAIzC,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,UAAQ,GAAG,IAAI;IAO3D,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAM3C,KAAK,IAAI,IAAI;IAIb,GAAG,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAIzC,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,UAAO,GAAG,IAAI;IAQ1D,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,GAAG,IAAI;IAI5D,SAAS,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAKzD,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,OAAO;CAgBhB"}
|
|
@@ -1,15 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observable object-identity selection owner. This is intentionally separate
|
|
3
|
+
* from editor-runtime's id selection: controls callers select object
|
|
4
|
+
* references, while editor documents select stable string/number ids.
|
|
5
|
+
*/
|
|
1
6
|
export class SelectionManager {
|
|
2
|
-
|
|
7
|
+
selectedObjects = new Set();
|
|
8
|
+
listeners = new Set();
|
|
9
|
+
get selected() {
|
|
10
|
+
return this.selectedObjects;
|
|
11
|
+
}
|
|
12
|
+
current() {
|
|
13
|
+
return Object.freeze([...this.selectedObjects]);
|
|
14
|
+
}
|
|
3
15
|
select(object, additive = false) {
|
|
4
|
-
|
|
5
|
-
this.
|
|
6
|
-
|
|
16
|
+
const next = additive
|
|
17
|
+
? new Set([...this.selectedObjects, object])
|
|
18
|
+
: new Set([object]);
|
|
19
|
+
this.replace(next);
|
|
7
20
|
}
|
|
8
21
|
deselect(object) {
|
|
9
|
-
this.
|
|
22
|
+
const next = new Set(this.selectedObjects);
|
|
23
|
+
next.delete(object);
|
|
24
|
+
this.replace(next);
|
|
10
25
|
}
|
|
11
26
|
clear() {
|
|
12
|
-
this.
|
|
27
|
+
this.replace(new Set());
|
|
28
|
+
}
|
|
29
|
+
has(object) {
|
|
30
|
+
return this.selectedObjects.has(object);
|
|
31
|
+
}
|
|
32
|
+
toggle(object, additive = true) {
|
|
33
|
+
if (this.selectedObjects.has(object)) {
|
|
34
|
+
this.deselect(object);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this.select(object, additive);
|
|
38
|
+
}
|
|
39
|
+
prune(alive) {
|
|
40
|
+
this.replace(new Set([...this.selectedObjects].filter(alive)));
|
|
13
41
|
}
|
|
42
|
+
subscribe(listener) {
|
|
43
|
+
this.listeners.add(listener);
|
|
44
|
+
return () => this.listeners.delete(listener);
|
|
45
|
+
}
|
|
46
|
+
dispose() {
|
|
47
|
+
this.listeners.clear();
|
|
48
|
+
this.selectedObjects.clear();
|
|
49
|
+
}
|
|
50
|
+
replace(next) {
|
|
51
|
+
const previous = [...this.selectedObjects];
|
|
52
|
+
const current = [...next];
|
|
53
|
+
if (sameIdentityOrder(previous, current))
|
|
54
|
+
return;
|
|
55
|
+
const added = current.filter((object) => !this.selectedObjects.has(object));
|
|
56
|
+
const removed = previous.filter((object) => !next.has(object));
|
|
57
|
+
this.selectedObjects.clear();
|
|
58
|
+
for (const object of current)
|
|
59
|
+
this.selectedObjects.add(object);
|
|
60
|
+
const event = Object.freeze({
|
|
61
|
+
previous: Object.freeze(previous),
|
|
62
|
+
current: Object.freeze(current),
|
|
63
|
+
added: Object.freeze(added),
|
|
64
|
+
removed: Object.freeze(removed)
|
|
65
|
+
});
|
|
66
|
+
for (const listener of [...this.listeners])
|
|
67
|
+
listener(event);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function sameIdentityOrder(left, right) {
|
|
71
|
+
return left.length === right.length && left.every((object, index) => object === right[index]);
|
|
14
72
|
}
|
|
15
73
|
//# sourceMappingURL=SelectionManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionManager.js","sourceRoot":"","sources":["../../../../packages/controls/src/SelectionManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SelectionManager.js","sourceRoot":"","sources":["../../../../packages/controls/src/SelectionManager.ts"],"names":[],"mappings":"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"}
|