@aura3d/engine 1.5.2 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +163 -119
- package/dist/animation/FootIk.d.ts +10 -1
- package/dist/animation/FootIk.d.ts.map +1 -1
- package/dist/animation/FootIk.js.map +1 -1
- package/dist/animation/HumanoidRetargeting.js +1 -1
- package/dist/animation/RigQuality.d.ts +1 -1
- package/dist/animation/RigQuality.js +2 -2
- package/dist/animation/RigQuality.js.map +1 -1
- package/dist/animation/SpringBones.d.ts.map +1 -1
- package/dist/animation/SpringBones.js +1 -2
- package/dist/animation/SpringBones.js.map +1 -1
- package/dist/animation/browser-index.d.ts +0 -2
- package/dist/animation/browser-index.d.ts.map +1 -1
- package/dist/animation/browser-index.js +0 -2
- package/dist/animation/browser-index.js.map +1 -1
- package/dist/animation/index.d.ts +0 -2
- package/dist/animation/index.d.ts.map +1 -1
- package/dist/animation/index.js +0 -2
- package/dist/animation/index.js.map +1 -1
- package/dist/animation/threejs-compatibility/AnimationAction.d.ts +1 -1
- package/dist/animation/threejs-compatibility/AnimationDiagnostics.d.ts +3 -3
- package/dist/animation/threejs-compatibility/AnimationMixer.d.ts +2 -2
- package/dist/animation/threejs-compatibility/SkinnedMesh.d.ts +1 -1
- package/dist/animation/threejs-compatibility/index.d.ts +11 -11
- package/dist/apps/index.d.ts +3 -3
- package/dist/assets/AssetCache.d.ts +1 -1
- package/dist/assets/AssetCompatibility.d.ts +2 -2
- package/dist/assets/AssetInspection.d.ts +4 -4
- package/dist/assets/AssetLoader.d.ts +1 -1
- package/dist/assets/AssetManager.d.ts +5 -5
- package/dist/assets/AssetRegistry.d.ts +1 -1
- package/dist/assets/AssetRenderDefaults.d.ts +1 -1
- package/dist/assets/AudioLoader.d.ts +2 -2
- package/dist/assets/CarConceptMaterialStability.d.ts +2 -2
- package/dist/assets/GLTFAnimationRuntime.d.ts +7 -3
- package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.js +29 -6
- package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
- package/dist/assets/GLTFAutoFit.d.ts +1 -1
- package/dist/assets/GLTFCompressionDecoders.d.ts +1 -1
- package/dist/assets/GLTFLoader.d.ts +5 -5
- package/dist/assets/GLTFLoader.d.ts.map +1 -1
- package/dist/assets/GLTFLoader.js +13 -4
- package/dist/assets/GLTFLoader.js.map +1 -1
- package/dist/assets/GLTFRenderResources.d.ts +3 -3
- package/dist/assets/HDRLoader.d.ts +1 -1
- package/dist/assets/ImageLoader.d.ts +2 -2
- package/dist/assets/KTX2BasisTextureTranscoder.d.ts +1 -1
- package/dist/assets/LoadContext.d.ts +2 -2
- package/dist/assets/MaterialLoader.d.ts +3 -3
- package/dist/assets/MeshOptimization.d.ts +1 -1
- package/dist/assets/OBJLoader.d.ts +3 -3
- package/dist/assets/SceneLoader.d.ts +4 -4
- package/dist/assets/ShaderLoader.d.ts +2 -2
- package/dist/assets/TextureLoader.d.ts +3 -3
- package/dist/assets/TexturePipeline.d.ts +1 -1
- package/dist/assets/WorkerAssetJobs.d.ts +1 -1
- package/dist/assets/advanced-gallery/index.d.ts +2 -2
- package/dist/assets/asset-corpus/GLTFSceneLoader.d.ts +2 -2
- package/dist/assets/asset-corpus/ProductionAssetPipeline.d.ts +2 -2
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts +3 -3
- package/dist/assets/asset-corpus/index.d.ts +9 -9
- package/dist/assets/browser-index.d.ts +45 -49
- package/dist/assets/browser-index.d.ts.map +1 -1
- package/dist/assets/browser-index.js +0 -2
- package/dist/assets/browser-index.js.map +1 -1
- package/dist/assets/createRenderableScene.d.ts +4 -4
- package/dist/assets/gltf-runtime.d.ts +6 -0
- package/dist/assets/gltf-runtime.d.ts.map +1 -0
- package/dist/assets/gltf-runtime.js +4 -0
- package/dist/assets/gltf-runtime.js.map +1 -0
- package/dist/assets/index.d.ts +76 -80
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +0 -2
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/loadRenderableAsset.d.ts +3 -3
- package/dist/assets/loaders/CubeTextureLoader.d.ts +1 -1
- package/dist/assets/loaders/HDRLoader.d.ts +1 -1
- package/dist/assets/loaders/KTX2Loader.d.ts +1 -1
- package/dist/assets/loaders/MTLLoader.d.ts +1 -1
- package/dist/assets/loaders/OBJLoader.d.ts +1 -1
- package/dist/assets/loaders/TextureLoader.d.ts +1 -1
- package/dist/assets/loaders/ThreeCompatGLTFLoader.d.ts +1 -1
- package/dist/assets/loaders/index.d.ts +13 -13
- package/dist/assets/threejs-compatibility/ThreeCompatAssetRegistry.d.ts +1 -1
- package/dist/assets/threejs-example-parity/index.d.ts +1 -1
- package/dist/audio/AudioBus.d.ts +20 -2
- package/dist/audio/AudioBus.d.ts.map +1 -1
- package/dist/audio/AudioBus.js.map +1 -1
- package/dist/audio/AudioFileManager.d.ts +7 -2
- package/dist/audio/AudioFileManager.d.ts.map +1 -1
- package/dist/audio/AudioFileManager.js +13 -0
- package/dist/audio/AudioFileManager.js.map +1 -1
- package/dist/audio/AudioMixer.d.ts +2 -2
- package/dist/audio/AudioSource.d.ts +10 -2
- package/dist/audio/AudioSource.d.ts.map +1 -1
- package/dist/audio/AudioSource.js +56 -7
- package/dist/audio/AudioSource.js.map +1 -1
- package/dist/audio/AudioSystem.d.ts +2 -2
- package/dist/audio/AudioTimelineTrack.d.ts +2 -2
- package/dist/audio/AudioWaveform.d.ts +1 -1
- package/dist/audio/SceneAudioBridge.d.ts +3 -3
- package/dist/audio/SpatialAudio.d.ts +2 -2
- package/dist/audio/effects/Filter.d.ts +2 -2
- package/dist/audio/effects/Reverb.d.ts +2 -2
- package/dist/audio/index.d.ts +25 -31
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +0 -3
- package/dist/audio/index.js.map +1 -1
- package/dist/aura3d-cli/animation-asset-profiles.d.ts +1 -1
- package/dist/aura3d-cli/asset-core-types.d.ts +1 -1
- package/dist/aura3d-cli/asset-core-types.d.ts.map +1 -1
- package/dist/aura3d-cli/asset-manifest.d.ts.map +1 -1
- package/dist/aura3d-cli/asset-manifest.js +36 -2
- package/dist/aura3d-cli/asset-manifest.js.map +1 -1
- package/dist/aura3d-cli/asset-role-admission.js +1 -1
- package/dist/aura3d-cli/asset-role-admission.js.map +1 -1
- package/dist/aura3d-cli/cli-help.js +3 -3
- package/dist/aura3d-cli/cli-help.js.map +1 -1
- package/dist/aura3d-cli/cli-options.d.ts +1 -1
- package/dist/aura3d-cli/cli-options.d.ts.map +1 -1
- package/dist/aura3d-cli/cli-options.js +2 -2
- package/dist/aura3d-cli/cli-options.js.map +1 -1
- package/dist/aura3d-cli/cli.js +1 -1
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/game-asset-profiles.d.ts +1 -1
- package/dist/aura3d-cli/game-asset-validator.d.ts +2 -2
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +13 -5
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/adapters.d.ts +1 -1
- package/dist/aura3d-cli/pull-bridge/profiles.d.ts +1 -1
- package/dist/aura3d-cli/pull-bridge/provenance.d.ts +1 -1
- package/dist/aura3d-cli/pull-bridge/pullable.d.ts +1 -1
- package/dist/aura3d-cli/pull-bridge/scoring.d.ts +1 -1
- package/dist/aura3d-cli/pull-bridge/search.d.ts +1 -1
- package/dist/aura3d-cli/pull-bridge/types.d.ts +1 -1
- package/dist/aura3d-cli/pull-bridge.d.ts +1 -1
- package/dist/controls/ControlState.d.ts +1 -1
- package/dist/controls/DragControls.d.ts +2 -2
- package/dist/controls/FirstPersonControls.d.ts +2 -2
- package/dist/controls/FlyControls.d.ts +3 -3
- package/dist/controls/InteractionControls.d.ts +5 -5
- package/dist/controls/MapControls.d.ts +3 -3
- package/dist/controls/OrbitControls.d.ts +3 -3
- package/dist/controls/Picking.d.ts +1 -1
- package/dist/controls/PickingAnnotations.d.ts +2 -2
- package/dist/controls/PointerLockControls.d.ts +3 -3
- package/dist/controls/SelectionManager.d.ts +1 -1
- package/dist/controls/TrackballControls.d.ts +1 -1
- package/dist/controls/TransformControls.d.ts +1 -1
- package/dist/controls/index.d.ts +25 -25
- package/dist/create-aura3d/index.d.ts.map +1 -1
- package/dist/create-aura3d/index.js +10 -4
- package/dist/create-aura3d/index.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-evidence.js +5 -1
- package/dist/create-aura3d/showcase-spec-evidence.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts +8 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js +191 -31
- 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 +7 -0
- package/dist/create-aura3d/showcase-spec-game-template-evidence.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-parser.js +1 -1
- package/dist/create-aura3d/showcase-spec-parser.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-types.d.ts +50 -0
- package/dist/create-aura3d/showcase-spec-types.d.ts.map +1 -1
- package/dist/debug/AnimationInspector.d.ts +1 -1
- package/dist/debug/DrawCallTracker.d.ts +1 -1
- package/dist/debug/MaterialDiagnostics.d.ts +1 -1
- package/dist/debug/PhysicsDebugAdapter.d.ts +1 -1
- package/dist/debug/ShaderDiagnostics.d.ts +1 -1
- package/dist/ecs/components/TransformComponent.d.ts +1 -1
- package/dist/editor/index.d.ts +1 -1
- package/dist/editor-runtime/AnimationSceneEditor.d.ts +5 -5
- package/dist/editor-runtime/AssetDropZone.d.ts +2 -2
- package/dist/editor-runtime/CameraPathEditor.d.ts +3 -3
- package/dist/editor-runtime/CommandHistory.d.ts +1 -1
- package/dist/editor-runtime/CurveEditor.d.ts +3 -3
- package/dist/editor-runtime/EditorRuntime.d.ts +14 -14
- package/dist/editor-runtime/EditorStateModel.d.ts +1 -1
- package/dist/editor-runtime/EventTrackEditor.d.ts +1 -1
- package/dist/editor-runtime/Gizmo.d.ts +3 -3
- package/dist/editor-runtime/HierarchyModel.d.ts +1 -1
- package/dist/editor-runtime/InspectorModel.d.ts +1 -1
- package/dist/editor-runtime/InteractiveTransformGizmo.d.ts +2 -2
- package/dist/editor-runtime/KeyframeEditor.d.ts +2 -2
- package/dist/editor-runtime/NonlinearAnimationEditor.d.ts +3 -3
- package/dist/editor-runtime/PickingService.d.ts +2 -2
- package/dist/editor-runtime/ProjectSerializer.d.ts +2 -2
- package/dist/editor-runtime/PropertyPanel.d.ts +2 -2
- package/dist/editor-runtime/RotateGizmo.d.ts +1 -1
- package/dist/editor-runtime/ScaleGizmo.d.ts +1 -1
- package/dist/editor-runtime/SceneOutliner.d.ts +3 -3
- package/dist/editor-runtime/TimelineEditorController.d.ts +4 -4
- package/dist/editor-runtime/TimelineRuntimeBridge.d.ts +2 -2
- package/dist/editor-runtime/TimelineTrackTypes.d.ts +1 -1
- package/dist/editor-runtime/TimelineUI.d.ts +1 -1
- package/dist/editor-runtime/TranslateGizmo.d.ts +1 -1
- package/dist/editor-runtime/VisualReviewDashboard.d.ts +1 -1
- package/dist/editor-runtime/commands/CreateNodeCommand.d.ts +1 -1
- package/dist/editor-runtime/commands/DeleteNodeCommand.d.ts +2 -2
- package/dist/editor-runtime/commands/ReparentNodeCommand.d.ts +1 -1
- package/dist/editor-runtime/commands/SetPropertyCommand.d.ts +1 -1
- package/dist/editor-runtime/commands/TransformCommand.d.ts +1 -1
- package/dist/editor-runtime/index.d.ts +79 -81
- package/dist/editor-runtime/index.d.ts.map +1 -1
- package/dist/editor-runtime/index.js +0 -1
- package/dist/editor-runtime/index.js.map +1 -1
- package/dist/engine/A3DApp.d.ts +2 -2
- package/dist/engine/A3DQualityPresets.d.ts +2 -2
- package/dist/engine/advanced-runtime/A3DRenderer.d.ts +2 -2
- package/dist/engine/advanced-runtime/A3DScene.d.ts +2 -2
- package/dist/engine/advanced-runtime/index.d.ts +4 -4
- package/dist/engine/agent-api/AnimationController.d.ts +3 -3
- package/dist/engine/agent-api/AuraAppHandle.d.ts +2 -2
- package/dist/engine/agent-api/GameAppRuntime.d.ts +4 -4
- package/dist/engine/agent-api/GameAssetValidation.js +1 -1
- package/dist/engine/agent-api/GameAssetValidation.js.map +1 -1
- package/dist/engine/agent-api/GameEvidence.d.ts +1 -1
- package/dist/engine/agent-api/GameEvidence.js +1 -1
- package/dist/engine/agent-api/GameEvidence.js.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.d.ts +73 -0
- package/dist/engine/agent-api/GameGenreKits.d.ts.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.js +298 -56
- package/dist/engine/agent-api/GameGenreKits.js.map +1 -1
- package/dist/engine/agent-api/GameRuntime.d.ts +49 -1
- package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/GameRuntime.js +87 -1
- package/dist/engine/agent-api/GameRuntime.js.map +1 -1
- package/dist/engine/agent-api/GameSceneBridge.d.ts +1 -1
- package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts +25 -1
- package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts.map +1 -1
- package/dist/engine/agent-api/GameSceneGeometryBindings.js +52 -0
- package/dist/engine/agent-api/GameSceneGeometryBindings.js.map +1 -1
- package/dist/engine/agent-api/GameSceneGeometryMath.d.ts +1 -1
- package/dist/engine/agent-api/PhysicsRuntime.d.ts +332 -0
- package/dist/engine/agent-api/PhysicsRuntime.d.ts.map +1 -0
- package/dist/engine/agent-api/PhysicsRuntime.js +619 -0
- package/dist/engine/agent-api/PhysicsRuntime.js.map +1 -0
- package/dist/engine/agent-api/PlatformerMotion.d.ts +124 -0
- package/dist/engine/agent-api/PlatformerMotion.d.ts.map +1 -1
- package/dist/engine/agent-api/PlatformerMotion.js +101 -16
- package/dist/engine/agent-api/PlatformerMotion.js.map +1 -1
- package/dist/engine/agent-api/RootGeometry.d.ts +36 -0
- package/dist/engine/agent-api/RootGeometry.d.ts.map +1 -0
- package/dist/engine/agent-api/RootGeometry.js +152 -0
- package/dist/engine/agent-api/RootGeometry.js.map +1 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +1 -1
- package/dist/engine/agent-api/VehicleChassis.d.ts +52 -0
- package/dist/engine/agent-api/VehicleChassis.d.ts.map +1 -1
- package/dist/engine/agent-api/VehicleChassis.js +182 -8
- package/dist/engine/agent-api/VehicleChassis.js.map +1 -1
- package/dist/engine/agent-api/WorldLabelRenderer.d.ts +65 -1
- package/dist/engine/agent-api/WorldLabelRenderer.d.ts.map +1 -1
- package/dist/engine/agent-api/WorldLabelRenderer.js +48 -5
- package/dist/engine/agent-api/WorldLabelRenderer.js.map +1 -1
- package/dist/engine/agent-api/game-kits/fighting.d.ts +2 -2
- package/dist/engine/agent-api/game-kits/index.d.ts +10 -10
- package/dist/engine/agent-api/humanoid-walk-runtime.d.ts +1 -1
- package/dist/engine/agent-api/index.d.ts +288 -85
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +1404 -359
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/lean-game.d.ts +3 -0
- package/dist/engine/agent-api/lean-game.d.ts.map +1 -0
- package/dist/engine/agent-api/lean-game.js +3 -0
- package/dist/engine/agent-api/lean-game.js.map +1 -0
- package/dist/engine/agent-api/lean-product.d.ts +3 -0
- package/dist/engine/agent-api/lean-product.d.ts.map +1 -0
- package/dist/engine/agent-api/lean-product.js +3 -0
- package/dist/engine/agent-api/lean-product.js.map +1 -0
- package/dist/engine/agent-api/lean.d.ts +3 -0
- package/dist/engine/agent-api/lean.d.ts.map +1 -0
- package/dist/engine/agent-api/lean.js +3 -0
- package/dist/engine/agent-api/lean.js.map +1 -0
- package/dist/engine/agent-api/media-node.d.ts +42 -0
- package/dist/engine/agent-api/media-node.d.ts.map +1 -0
- package/dist/engine/agent-api/media-node.js +44 -0
- package/dist/engine/agent-api/media-node.js.map +1 -0
- package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
- package/dist/engine/animation-studio/animation-episode-validator.d.ts +1 -1
- package/dist/engine/animation-studio/director-heuristics.d.ts +1 -1
- package/dist/engine/animation-studio/episode-document.d.ts +1 -1
- package/dist/engine/animation-studio/index.d.ts +4 -4
- package/dist/engine/animation-studio/scene-tools.d.ts +2 -2
- package/dist/engine/ecs/ECSRenderSource.d.ts +2 -2
- package/dist/engine/game/GameAudio.d.ts +5 -0
- package/dist/engine/game/GameAudio.d.ts.map +1 -1
- package/dist/engine/game/GameAudio.js +65 -23
- package/dist/engine/game/GameAudio.js.map +1 -1
- package/dist/engine/index.d.ts +14 -14
- package/dist/engine/production-runtime/GameRenderPreset.d.ts +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +11 -3
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.js +25 -7
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
- package/dist/engine/production-runtime/index.d.ts +10 -10
- package/dist/engine/production-runtime/index.d.ts.map +1 -1
- package/dist/engine/threejs-example-parity/FlagshipFoundation.d.ts +3 -3
- package/dist/engine/threejs-example-parity/FlagshipFoundation.d.ts.map +1 -1
- package/dist/engine/threejs-example-parity/index.d.ts +1 -1
- package/dist/environments/EnvironmentPreview.d.ts +1 -1
- package/dist/environments/EnvironmentRegistry.d.ts +3 -3
- package/dist/environments/HDRIEnvironment.d.ts +1 -1
- package/dist/environments/index.d.ts +5 -10
- package/dist/environments/index.d.ts.map +1 -1
- package/dist/environments/index.js +0 -3
- package/dist/environments/index.js.map +1 -1
- package/dist/environments/node.d.ts +7 -0
- package/dist/environments/node.d.ts.map +1 -0
- package/dist/environments/node.js +5 -0
- package/dist/environments/node.js.map +1 -0
- package/dist/environments/production-runtime/index.d.ts +2 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/input/ActionMap.d.ts +1 -1
- package/dist/input/GamepadDevice.d.ts +1 -1
- package/dist/input/GamepadInput.d.ts +2 -2
- package/dist/input/GestureControls.d.ts +2 -2
- package/dist/input/GestureRecognizer.d.ts +1 -1
- package/dist/input/InputSystem.d.ts +5 -5
- package/dist/input/InputValueProcessors.d.ts +19 -0
- package/dist/input/InputValueProcessors.d.ts.map +1 -0
- package/dist/input/InputValueProcessors.js +24 -0
- package/dist/input/InputValueProcessors.js.map +1 -0
- package/dist/input/InteractionSystem.d.ts +3 -3
- package/dist/input/PickingRay.d.ts +2 -2
- package/dist/input/PointerDevice.d.ts +1 -1
- package/dist/input/controls/CameraRig.d.ts +1 -1
- package/dist/input/controls/EditorFlyControls.d.ts +2 -2
- package/dist/input/controls/FirstPersonControls.d.ts +2 -2
- package/dist/input/controls/OrbitControls.d.ts +2 -2
- package/dist/input/controls/PointerLockControls.d.ts +3 -3
- package/dist/input/controls/SceneCameraAdapter.d.ts +2 -2
- package/dist/input/controls/ThirdPersonFollowControls.d.ts +1 -1
- package/dist/input/index.d.ts +39 -43
- package/dist/input/index.d.ts.map +1 -1
- package/dist/input/index.js +1 -3
- package/dist/input/index.js.map +1 -1
- package/dist/lean/ArcadeRuntime.d.ts +111 -0
- package/dist/lean/ArcadeRuntime.d.ts.map +1 -0
- package/dist/lean/ArcadeRuntime.js +219 -0
- package/dist/lean/ArcadeRuntime.js.map +1 -0
- package/dist/lean/base.d.ts +228 -0
- package/dist/lean/base.d.ts.map +1 -0
- package/dist/lean/base.js +322 -0
- package/dist/lean/base.js.map +1 -0
- package/dist/lean/game.d.ts +19 -0
- package/dist/lean/game.d.ts.map +1 -0
- package/dist/lean/game.js +37 -0
- package/dist/lean/game.js.map +1 -0
- package/dist/lean/index.d.ts +4 -0
- package/dist/lean/index.d.ts.map +1 -0
- package/dist/lean/index.js +10 -0
- package/dist/lean/index.js.map +1 -0
- package/dist/lean/product.d.ts +4 -0
- package/dist/lean/product.d.ts.map +1 -0
- package/dist/lean/product.js +55 -0
- package/dist/lean/product.js.map +1 -0
- package/dist/materials/MaterialPresets.d.ts +2 -2
- package/dist/materials/MaterialPreviewScene.d.ts +1 -1
- package/dist/materials/PBRMaterialLibrary.d.ts +1 -1
- package/dist/materials/browser-index.d.ts +6 -6
- package/dist/materials/index.d.ts +1 -10
- package/dist/materials/index.d.ts.map +1 -1
- package/dist/materials/index.js +1 -6
- package/dist/materials/index.js.map +1 -1
- package/dist/materials/node.d.ts +4 -0
- package/dist/materials/node.d.ts.map +1 -0
- package/dist/materials/node.js +3 -0
- package/dist/materials/node.js.map +1 -0
- package/dist/physics/ArcadeCharacterController.d.ts +53 -0
- package/dist/physics/ArcadeCharacterController.d.ts.map +1 -0
- package/dist/physics/ArcadeCharacterController.js +98 -0
- package/dist/physics/ArcadeCharacterController.js.map +1 -0
- package/dist/physics/{VehicleDynamics.d.ts → ArcadeVehicleTelemetry.d.ts} +14 -4
- package/dist/physics/ArcadeVehicleTelemetry.d.ts.map +1 -0
- package/dist/physics/{VehicleDynamics.js → ArcadeVehicleTelemetry.js} +37 -9
- package/dist/physics/ArcadeVehicleTelemetry.js.map +1 -0
- package/dist/physics/Constraint.d.ts +20 -4
- package/dist/physics/Constraint.d.ts.map +1 -1
- package/dist/physics/Constraint.js +34 -60
- package/dist/physics/Constraint.js.map +1 -1
- package/dist/physics/FightingCharacterController.d.ts +32 -0
- package/dist/physics/FightingCharacterController.d.ts.map +1 -0
- package/dist/physics/FightingCharacterController.js +76 -0
- package/dist/physics/FightingCharacterController.js.map +1 -0
- package/dist/physics/MeshBVH.d.ts +72 -0
- package/dist/physics/MeshBVH.d.ts.map +1 -0
- package/dist/physics/MeshBVH.js +244 -0
- package/dist/physics/MeshBVH.js.map +1 -0
- package/dist/physics/PhysicsDebugDraw.d.ts +40 -1
- package/dist/physics/PhysicsDebugDraw.d.ts.map +1 -1
- package/dist/physics/PhysicsDebugDraw.js +87 -17
- package/dist/physics/PhysicsDebugDraw.js.map +1 -1
- package/dist/physics/PhysicsWorld.d.ts +37 -18
- package/dist/physics/PhysicsWorld.d.ts.map +1 -1
- package/dist/physics/PhysicsWorld.js +231 -630
- package/dist/physics/PhysicsWorld.js.map +1 -1
- package/dist/physics/Raycast.d.ts +11 -0
- package/dist/physics/Raycast.d.ts.map +1 -1
- package/dist/physics/Raycast.js +62 -8
- package/dist/physics/Raycast.js.map +1 -1
- package/dist/physics/RigidBody.d.ts +16 -9
- package/dist/physics/RigidBody.d.ts.map +1 -1
- package/dist/physics/RigidBody.js +23 -75
- package/dist/physics/RigidBody.js.map +1 -1
- package/dist/physics/SurfaceQuery.d.ts +72 -0
- package/dist/physics/SurfaceQuery.d.ts.map +1 -0
- package/dist/physics/SurfaceQuery.js +89 -0
- package/dist/physics/SurfaceQuery.js.map +1 -0
- package/dist/physics/index.d.ts +62 -17
- package/dist/physics/index.d.ts.map +1 -1
- package/dist/physics/index.js +70 -17
- package/dist/physics/index.js.map +1 -1
- package/dist/physics/solverless.d.ts +37 -0
- package/dist/physics/solverless.d.ts.map +1 -0
- package/dist/physics/solverless.js +36 -0
- package/dist/physics/solverless.js.map +1 -0
- package/dist/physics/world.d.ts +18 -0
- package/dist/physics/world.d.ts.map +1 -0
- package/dist/physics/world.js +17 -0
- package/dist/physics/world.js.map +1 -0
- package/dist/physics-rapier/index.d.ts +169 -0
- package/dist/physics-rapier/index.d.ts.map +1 -0
- package/dist/physics-rapier/index.js +311 -0
- package/dist/physics-rapier/index.js.map +1 -0
- package/dist/product-studio/ProductAsset.d.ts +1 -1
- package/dist/product-studio/ProductAssetLoader.d.ts +1 -1
- package/dist/product-studio/ProductCamera.d.ts +1 -1
- package/dist/product-studio/ProductDiagnostics.d.ts +2 -2
- package/dist/product-studio/ProductExport.d.ts +1 -1
- package/dist/product-studio/ProductFloor.d.ts +2 -2
- package/dist/product-studio/ProductLighting.d.ts +1 -1
- package/dist/product-studio/ProductLighting.d.ts.map +1 -1
- package/dist/product-studio/ProductLighting.js +34 -3
- package/dist/product-studio/ProductLighting.js.map +1 -1
- package/dist/product-studio/ProductMaterials.d.ts +2 -2
- package/dist/product-studio/ProductRenderScene.d.ts +1 -1
- package/dist/product-studio/ProductStudio.d.ts +1 -1
- package/dist/product-studio/ProductTypes.d.ts +2 -2
- package/dist/product-studio/index.d.ts +12 -12
- package/dist/react/index.d.ts +1 -1
- package/dist/rendering/ArchitecturalLighting.d.ts +35 -0
- package/dist/rendering/ArchitecturalLighting.d.ts.map +1 -0
- package/dist/rendering/{ArchitecturalLightingFixtures.js → ArchitecturalLighting.js} +3 -12
- package/dist/rendering/ArchitecturalLighting.js.map +1 -0
- package/dist/rendering/ArchitecturalMaterialCatalog.d.ts +3 -3
- package/dist/rendering/ArchitecturalMaterialCatalog.d.ts.map +1 -1
- package/dist/rendering/ArchitecturalMaterialCatalog.js +1 -1
- package/dist/rendering/ArchitecturalMaterialCatalog.js.map +1 -1
- package/dist/rendering/{ArchitecturalMeasurementFixtures.d.ts → ArchitecturalMeasurement.d.ts} +3 -6
- package/dist/rendering/ArchitecturalMeasurement.d.ts.map +1 -0
- package/dist/rendering/{ArchitecturalMeasurementFixtures.js → ArchitecturalMeasurement.js} +3 -6
- package/dist/rendering/ArchitecturalMeasurement.js.map +1 -0
- package/dist/rendering/CameraFraming.d.ts +1 -1
- package/dist/rendering/{CanonicalSceneFixtures.d.ts → CanonicalProductScene.d.ts} +2 -2
- package/dist/rendering/CanonicalProductScene.d.ts.map +1 -0
- package/dist/rendering/{CanonicalSceneFixtures.js → CanonicalProductScene.js} +2 -2
- package/dist/rendering/CanonicalProductScene.js.map +1 -0
- package/dist/rendering/CascadedShadowMaps.d.ts +8 -8
- package/dist/rendering/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/rendering/CascadedShadowMaps.js +1 -1
- package/dist/rendering/CascadedShadowMaps.js.map +1 -1
- package/dist/rendering/ClusteredForwardLighting.d.ts +2 -2
- package/dist/rendering/DecalGeometry.d.ts +2 -2
- package/dist/rendering/DepthPass.d.ts +4 -4
- package/dist/rendering/DepthPass.d.ts.map +1 -1
- package/dist/rendering/DepthPass.js +2 -2
- package/dist/rendering/DepthPass.js.map +1 -1
- package/dist/rendering/EnvironmentBackgroundPass.d.ts +4 -4
- package/dist/rendering/EnvironmentBackgroundPass.d.ts.map +1 -1
- package/dist/rendering/EnvironmentBackgroundPass.js +2 -2
- package/dist/rendering/EnvironmentBackgroundPass.js.map +1 -1
- package/dist/rendering/EnvironmentBackgroundResources.d.ts +2 -2
- package/dist/rendering/EnvironmentLighting.d.ts +1 -1
- package/dist/rendering/EnvironmentMapResources.d.ts +2 -2
- package/dist/rendering/EnvironmentPipeline.d.ts +2 -2
- package/dist/rendering/EnvironmentPlatform.d.ts +3 -3
- package/dist/rendering/EnvironmentPlatform.js +2 -2
- package/dist/rendering/EnvironmentPlatform.js.map +1 -1
- package/dist/rendering/EnvironmentPreset.d.ts +1 -1
- package/dist/rendering/Exposure.d.ts +1 -1
- package/dist/rendering/ExternalParityRenderPreset.d.ts +3 -3
- package/dist/rendering/ForwardPass.d.ts +9 -9
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +24 -10
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/Geometry.d.ts +5 -3
- package/dist/rendering/Geometry.d.ts.map +1 -1
- package/dist/rendering/Geometry.js +15 -0
- package/dist/rendering/Geometry.js.map +1 -1
- package/dist/rendering/GeometryPrimitives.d.ts +2 -2
- package/dist/rendering/HDRRenderPipeline.d.ts +4 -4
- package/dist/rendering/IBL.d.ts +4 -4
- package/dist/rendering/IndexBuffer.d.ts +1 -1
- package/dist/rendering/InstancedPBRMaterial.d.ts +2 -2
- package/dist/rendering/InstancedPBRMaterial.js +1 -1
- package/dist/rendering/InstancedPBRMaterial.js.map +1 -1
- package/dist/rendering/InstancedUnlitMaterial.d.ts +1 -1
- package/dist/rendering/InstancedUnlitMaterial.js +1 -1
- package/dist/rendering/InstancedUnlitMaterial.js.map +1 -1
- package/dist/rendering/Instancing.d.ts +1 -1
- package/dist/rendering/LightCollector.d.ts +1 -1
- package/dist/rendering/LightUniforms.d.ts +2 -2
- package/dist/rendering/LightingDebug.d.ts +2 -2
- package/dist/rendering/LightingDefaults.d.ts +2 -2
- package/dist/rendering/LightingRig.d.ts +1 -1
- package/dist/rendering/LineGeometry.d.ts +2 -2
- package/dist/rendering/Material.d.ts +1 -1
- package/dist/rendering/Material.js +2 -2
- package/dist/rendering/Material.js.map +1 -1
- package/dist/rendering/MaterialBinding.d.ts +3 -3
- package/dist/rendering/MaterialBinding.js +4 -4
- package/dist/rendering/MaterialBinding.js.map +1 -1
- package/dist/rendering/MaterialInstance.d.ts +2 -2
- package/dist/rendering/MaterialInstance.js +2 -2
- package/dist/rendering/MaterialInstance.js.map +1 -1
- package/dist/rendering/MaterialPresets.d.ts +2 -2
- package/dist/rendering/MeshConsolidation.d.ts +3 -3
- package/dist/rendering/MorphTarget.d.ts +1 -1
- package/dist/rendering/MorphTargetPlan.d.ts +1 -1
- package/dist/rendering/MorphUnlitMaterial.d.ts +1 -1
- package/dist/rendering/MorphUnlitMaterial.js +1 -1
- package/dist/rendering/MorphUnlitMaterial.js.map +1 -1
- package/dist/rendering/NormalMappedPBRMaterial.d.ts +4 -4
- package/dist/rendering/NormalMappedPBRMaterial.js +1 -1
- package/dist/rendering/NormalMappedPBRMaterial.js.map +1 -1
- package/dist/rendering/{OceanFixtures.d.ts → OceanSurface.d.ts} +1 -1
- package/dist/rendering/OceanSurface.d.ts.map +1 -0
- package/dist/rendering/{OceanFixtures.js → OceanSurface.js} +1 -1
- package/dist/rendering/OceanSurface.js.map +1 -0
- package/dist/rendering/PBRLightingDefaults.d.ts +1 -1
- package/dist/rendering/PBRMaterial.d.ts +2 -2
- package/dist/rendering/PBRMaterial.d.ts.map +1 -1
- package/dist/rendering/PBRMaterial.js +3 -3
- package/dist/rendering/PBRMaterial.js.map +1 -1
- package/dist/rendering/PMREM.d.ts +2 -2
- package/dist/rendering/PortableShaderMaterial.d.ts +60 -0
- package/dist/rendering/PortableShaderMaterial.d.ts.map +1 -0
- package/dist/rendering/PortableShaderMaterial.js +223 -0
- package/dist/rendering/PortableShaderMaterial.js.map +1 -0
- package/dist/rendering/PostProcessPass.d.ts +2 -2
- package/dist/rendering/PostProcessPass.d.ts.map +1 -1
- package/dist/rendering/PostProcessPass.js +30 -6
- package/dist/rendering/PostProcessPass.js.map +1 -1
- package/dist/rendering/{ProceduralTextureFixtures.d.ts → ProceduralTexture.d.ts} +2 -2
- package/dist/rendering/ProceduralTexture.d.ts.map +1 -0
- package/dist/rendering/{ProceduralTextureFixtures.js → ProceduralTexture.js} +1 -1
- package/dist/rendering/ProceduralTexture.js.map +1 -0
- package/dist/rendering/{ProductTurntableFixtures.d.ts → ProductTurntable.d.ts} +4 -4
- package/dist/rendering/ProductTurntable.d.ts.map +1 -0
- package/dist/rendering/{ProductTurntableFixtures.js → ProductTurntable.js} +2 -2
- package/dist/rendering/ProductTurntable.js.map +1 -0
- package/dist/rendering/Raycaster.d.ts +1 -1
- package/dist/rendering/ReflectionProbe.d.ts +4 -4
- package/dist/rendering/ReflectionSurfaces.d.ts +2 -2
- package/dist/rendering/RenderBackend.d.ts +3 -3
- package/dist/rendering/RenderDevice.d.ts +36 -6
- package/dist/rendering/RenderDevice.d.ts.map +1 -1
- package/dist/rendering/RenderDevice.js.map +1 -1
- package/dist/rendering/RenderGraph.d.ts +1 -1
- package/dist/rendering/RenderPass.d.ts +1 -1
- package/dist/rendering/RenderPipeline.d.ts +3 -3
- package/dist/rendering/RenderQueue.d.ts +2 -2
- package/dist/rendering/RenderState.d.ts +2 -2
- package/dist/rendering/Renderer.d.ts +17 -16
- package/dist/rendering/Renderer.d.ts.map +1 -1
- package/dist/rendering/Renderer.js +23 -9
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/RendererFeatureGates.d.ts +1 -1
- package/dist/rendering/RendererPostprocessPlan.d.ts +1 -1
- package/dist/rendering/RendererPostprocessPlan.js +4 -4
- package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.d.ts +4 -4
- package/dist/rendering/ResourceLifecycle.d.ts +1 -1
- package/dist/rendering/SceneOptimization.d.ts +3 -3
- package/dist/rendering/ScreenSpaceLineMaterial.d.ts +1 -1
- package/dist/rendering/ScreenSpaceLineMaterial.js +1 -1
- package/dist/rendering/ScreenSpaceLineMaterial.js.map +1 -1
- package/dist/rendering/ShaderChunks.d.ts.map +1 -1
- package/dist/rendering/ShaderChunks.js +92 -24
- package/dist/rendering/ShaderChunks.js.map +1 -1
- package/dist/rendering/ShaderLibrary.d.ts +2 -78
- package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
- package/dist/rendering/ShaderLibrary.js +103 -810
- package/dist/rendering/ShaderLibrary.js.map +1 -1
- package/dist/rendering/ShaderLibraryCore.d.ts +100 -0
- package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -0
- package/dist/rendering/ShaderLibraryCore.js +792 -0
- package/dist/rendering/ShaderLibraryCore.js.map +1 -0
- package/dist/rendering/ShaderModule.d.ts +3 -3
- package/dist/rendering/ShaderModule.d.ts.map +1 -1
- package/dist/rendering/ShaderModule.js +4 -2
- package/dist/rendering/ShaderModule.js.map +1 -1
- package/dist/rendering/ShaderReflection.d.ts +1 -1
- package/dist/rendering/ShadowMap.d.ts +1 -1
- package/dist/rendering/ShadowPass.d.ts +6 -6
- package/dist/rendering/ShadowPass.d.ts.map +1 -1
- package/dist/rendering/ShadowPass.js +6 -4
- package/dist/rendering/ShadowPass.js.map +1 -1
- package/dist/rendering/ShadowProjection.d.ts +1 -1
- package/dist/rendering/SkinnedLitMaterial.d.ts +3 -3
- package/dist/rendering/SkinnedLitMaterial.js +1 -1
- package/dist/rendering/SkinnedLitMaterial.js.map +1 -1
- package/dist/rendering/SkinnedUnlitMaterial.d.ts +1 -1
- package/dist/rendering/SkinnedUnlitMaterial.js +1 -1
- package/dist/rendering/SkinnedUnlitMaterial.js.map +1 -1
- package/dist/rendering/SkinningBounds.d.ts +2 -2
- package/dist/rendering/{SpaceEnvironmentFixtures.d.ts → SpaceEnvironment.d.ts} +4 -9
- package/dist/rendering/SpaceEnvironment.d.ts.map +1 -0
- package/dist/rendering/{SpaceEnvironmentFixtures.js → SpaceEnvironment.js} +6 -22
- package/dist/rendering/SpaceEnvironment.js.map +1 -0
- package/dist/rendering/SpecularPrefilter.d.ts +1 -1
- package/dist/rendering/SpriteGeometry.d.ts +1 -1
- package/dist/rendering/StereoCameraRig.d.ts +2 -2
- package/dist/rendering/StereoEffects.d.ts +1 -1
- package/dist/rendering/{TerrainFixtures.d.ts → TerrainHeightfield.d.ts} +2 -2
- package/dist/rendering/TerrainHeightfield.d.ts.map +1 -0
- package/dist/rendering/{TerrainFixtures.js → TerrainHeightfield.js} +1 -1
- package/dist/rendering/TerrainHeightfield.js.map +1 -0
- package/dist/rendering/TextureBinding.d.ts +16 -2
- package/dist/rendering/TextureBinding.d.ts.map +1 -1
- package/dist/rendering/TextureBinding.js +17 -0
- package/dist/rendering/TextureBinding.js.map +1 -1
- package/dist/rendering/TexturedPBRMaterial.d.ts +4 -4
- package/dist/rendering/TexturedPBRMaterial.js +1 -1
- package/dist/rendering/TexturedPBRMaterial.js.map +1 -1
- package/dist/rendering/TexturedUnlitMaterial.d.ts +3 -3
- package/dist/rendering/TexturedUnlitMaterial.js +1 -1
- package/dist/rendering/TexturedUnlitMaterial.js.map +1 -1
- package/dist/rendering/ToneMapping.d.ts +1 -1
- package/dist/rendering/UniformBinder.d.ts +1 -1
- package/dist/rendering/UnlitMaterial.d.ts +1 -1
- package/dist/rendering/UnlitMaterial.js +1 -1
- package/dist/rendering/UnlitMaterial.js.map +1 -1
- package/dist/rendering/{VegetationFixtures.d.ts → VegetationScatter.d.ts} +2 -2
- package/dist/rendering/VegetationScatter.d.ts.map +1 -0
- package/dist/rendering/{VegetationFixtures.js → VegetationScatter.js} +2 -2
- package/dist/rendering/VegetationScatter.js.map +1 -0
- package/dist/rendering/VertexBuffer.d.ts +2 -2
- package/dist/rendering/{VoxelWorldFixtures.d.ts → VoxelWorld.d.ts} +12 -15
- package/dist/rendering/VoxelWorld.d.ts.map +1 -0
- package/dist/rendering/{VoxelWorldFixtures.js → VoxelWorld.js} +6 -9
- package/dist/rendering/VoxelWorld.js.map +1 -0
- package/dist/rendering/{WeatherFixtures.d.ts → Weather.d.ts} +7 -9
- package/dist/rendering/Weather.d.ts.map +1 -0
- package/dist/rendering/{WeatherFixtures.js → Weather.js} +5 -7
- package/dist/rendering/Weather.js.map +1 -0
- package/dist/rendering/WebGL2Device.d.ts +23 -1
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +134 -23
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/WebGPUDevice.d.ts +20 -3
- package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
- package/dist/rendering/WebGPUDevice.js +188 -9
- package/dist/rendering/WebGPUDevice.js.map +1 -1
- package/dist/rendering/WebGPURenderToTextureProof.d.ts +1 -1
- package/dist/rendering/advanced-runtime/AdvancedRenderer.d.ts +4 -4
- package/dist/rendering/advanced-runtime/index.d.ts +9 -9
- package/dist/rendering/cinematic/BloomPass.d.ts +1 -1
- package/dist/rendering/cinematic/CinematicDepthComposition.d.ts +1 -1
- package/dist/rendering/cinematic/CinematicLightingRig.d.ts +2 -2
- package/dist/rendering/cinematic/CinematicMaterialPresets.d.ts +2 -2
- package/dist/rendering/cinematic/CinematicPostProcess.d.ts +6 -6
- package/dist/rendering/cinematic/DepthHazePass.d.ts +1 -1
- package/dist/rendering/cinematic/EmissivePracticalLightSystem.d.ts +2 -2
- package/dist/rendering/cinematic/FilmGrainPass.d.ts +1 -1
- package/dist/rendering/cinematic/FogVolumeSystem.d.ts +1 -1
- package/dist/rendering/cinematic/GlowCardSystem.d.ts +2 -2
- package/dist/rendering/cinematic/RainParticleSystem.d.ts +2 -2
- package/dist/rendering/cinematic/VignettePass.d.ts +1 -1
- package/dist/rendering/cinematic/WetReflectionApproximation.d.ts +1 -1
- package/dist/rendering/cinematic/index.d.ts +14 -14
- package/dist/rendering/index.d.ts +230 -237
- package/dist/rendering/index.d.ts.map +1 -1
- package/dist/rendering/index.js +35 -19
- package/dist/rendering/index.js.map +1 -1
- package/dist/rendering/lean/LeanProductRenderer.d.ts +29 -0
- package/dist/rendering/lean/LeanProductRenderer.d.ts.map +1 -0
- package/dist/rendering/lean/LeanProductRenderer.js +38 -0
- package/dist/rendering/lean/LeanProductRenderer.js.map +1 -0
- package/dist/rendering/lean/LeanProductionRenderer.d.ts +38 -0
- package/dist/rendering/lean/LeanProductionRenderer.d.ts.map +1 -0
- package/dist/rendering/lean/LeanProductionRenderer.js +88 -0
- package/dist/rendering/lean/LeanProductionRenderer.js.map +1 -0
- package/dist/rendering/lean-runtime.d.ts +18 -0
- package/dist/rendering/lean-runtime.d.ts.map +1 -0
- package/dist/rendering/lean-runtime.js +13 -0
- package/dist/rendering/lean-runtime.js.map +1 -0
- package/dist/rendering/materials/PhysicalMaterial.d.ts +1 -1
- package/dist/rendering/performance/BVH.d.ts +2 -2
- package/dist/rendering/performance/Batcher.d.ts +2 -2
- package/dist/rendering/performance/FrustumCuller.d.ts +1 -1
- package/dist/rendering/performance/Octree.d.ts +1 -1
- package/dist/rendering/postprocess/BloomPass.d.ts +1 -1
- package/dist/rendering/postprocess/CinematicDiagnostics.d.ts +1 -1
- package/dist/rendering/postprocess/ColorGradingPass.d.ts +1 -1
- package/dist/rendering/postprocess/DepthOfFieldPass.d.ts +1 -1
- package/dist/rendering/postprocess/EffectComposer.d.ts +3 -3
- package/dist/rendering/postprocess/EffectComposer.d.ts.map +1 -1
- package/dist/rendering/postprocess/EffectComposer.js +1 -3
- package/dist/rendering/postprocess/EffectComposer.js.map +1 -1
- package/dist/rendering/postprocess/SSAOPass.d.ts +1 -1
- package/dist/rendering/postprocess/index.d.ts +10 -10
- package/dist/rendering/production-runtime/AnimationControlsPipeline.d.ts +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts +4 -4
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.js +5 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionEffectsPipeline.d.ts +2 -2
- package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts +11 -2
- 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/ProductionRuntimeRenderer.d.ts +8 -3
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.js +53 -5
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts +14 -4
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js +21 -2
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts +4 -4
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +4 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.d.ts +3 -3
- package/dist/rendering/production-runtime/backends/RendererBackend.d.ts +1 -1
- package/dist/rendering/production-runtime/backends/WebGL2RendererBackend.d.ts +3 -3
- package/dist/rendering/production-runtime/backends/WebGPURendererBackend.d.ts +1 -1
- package/dist/rendering/production-runtime/backends/webgl2/WebGL2StateCache.d.ts +1 -1
- package/dist/rendering/production-runtime/diagnostics/FrameCapture.d.ts +1 -1
- package/dist/rendering/production-runtime/environment/HDRLoader.d.ts +2 -2
- package/dist/rendering/production-runtime/environment/PMREMGenerator.d.ts +1 -1
- package/dist/rendering/production-runtime/framegraph/FrameGraph.d.ts +1 -1
- package/dist/rendering/production-runtime/geometry/ProjectedDecalGeometry.d.ts +1 -1
- package/dist/rendering/production-runtime/index.d.ts +74 -74
- package/dist/rendering/production-runtime/lights/LightManager.d.ts +1 -1
- package/dist/rendering/production-runtime/lights/ShadowMapRenderer.d.ts +1 -1
- package/dist/rendering/production-runtime/materials/GLTFMaterialAdapter.d.ts +1 -1
- package/dist/rendering/production-runtime/materials/GLTFPBRMaterialAdapter.d.ts +2 -2
- package/dist/rendering/production-runtime/materials/MaterialCompiler.d.ts +2 -2
- package/dist/rendering/production-runtime/materials/MaterialTextureBindings.d.ts +1 -1
- package/dist/rendering/production-runtime/passes/ContactShadowPass.d.ts +1 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts +1 -1
- package/dist/rendering/production-runtime/passes/OpaquePass.d.ts +1 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.d.ts +1 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts +1 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts +1 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.d.ts +1 -1
- package/dist/rendering/production-runtime/postprocess/BloomPass.d.ts +2 -2
- package/dist/rendering/production-runtime/postprocess/ColorGradingPass.d.ts +2 -2
- package/dist/rendering/production-runtime/postprocess/DOFPass.d.ts +2 -2
- package/dist/rendering/production-runtime/postprocess/FXAAPass.d.ts +2 -2
- package/dist/rendering/production-runtime/postprocess/ProductionEffectComposer.d.ts +1 -1
- package/dist/rendering/production-runtime/postprocess/ProductionPostProcessTypes.d.ts +1 -1
- package/dist/rendering/production-runtime/postprocess/SSAOPass.d.ts +2 -2
- package/dist/rendering/production-runtime/resources/RenderTarget.d.ts +1 -1
- package/dist/rendering/production-runtime/scene/RenderableMesh.d.ts +1 -1
- package/dist/rendering/production-runtime/scene/RenderableScene.d.ts +3 -3
- package/dist/rendering/shadows/CascadedShadowPipeline.d.ts +1 -1
- package/dist/rendering/shadows/ShadowDebugViews.d.ts +2 -2
- package/dist/rendering/threejs-example-parity/index.d.ts +4 -4
- package/dist/rendering/webgpu/WebGPUBuffer.d.ts +1 -1
- package/dist/rendering/webgpu/WebGPUCompute.d.ts +2 -2
- package/dist/rendering/webgpu/WebGPUPostProcess.d.ts +2 -2
- package/dist/rendering/webgpu/WebGPUTexture.d.ts +2 -2
- package/dist/rendering/webgpu.d.ts +25 -0
- package/dist/rendering/webgpu.d.ts.map +1 -0
- package/dist/rendering/webgpu.js +24 -0
- package/dist/rendering/webgpu.js.map +1 -0
- package/dist/scene/Bounds.d.ts +1 -1
- package/dist/scene/Camera.d.ts +1 -1
- package/dist/scene/Light.d.ts +1 -1
- package/dist/scene/MathTypes.d.ts +2 -1
- package/dist/scene/MathTypes.d.ts.map +1 -1
- package/dist/scene/MathTypes.js +3 -0
- package/dist/scene/MathTypes.js.map +1 -1
- package/dist/scene/Renderable.d.ts +6 -0
- package/dist/scene/Renderable.d.ts.map +1 -1
- package/dist/scene/Renderable.js +8 -2
- package/dist/scene/Renderable.js.map +1 -1
- package/dist/scripting/AnimationVisualNodes.d.ts +1 -1
- package/dist/scripting/Behavior.d.ts +1 -1
- package/dist/scripting/BehaviorHost.d.ts +1 -1
- package/dist/scripting/BehaviorRegistry.d.ts +1 -1
- package/dist/scripting/BehaviorSystem.d.ts +2 -2
- package/dist/scripting/HTN.d.ts +1 -1
- package/dist/scripting/ScriptContext.d.ts +1 -1
- package/dist/scripting/StateMachine.d.ts +1 -1
- package/dist/scripting/UtilityAI.d.ts +1 -1
- package/dist/scripting/VisualGraph.d.ts +2 -2
- package/dist/scripting/VisualGraphExecutor.d.ts +2 -2
- package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
- package/dist/scripting/index.d.ts +37 -53
- package/dist/scripting/index.d.ts.map +1 -1
- package/dist/scripting/index.js +0 -8
- package/dist/scripting/index.js.map +1 -1
- package/dist/workflows/AnimationLabWorkflow.d.ts +1 -1
- package/dist/workflows/AssetViewerWorkflow.d.ts +1 -1
- package/dist/workflows/ComparisonWorkflow.d.ts +1 -1
- package/dist/workflows/InteractiveSceneWorkflow.d.ts +1 -1
- package/dist/workflows/MaterialStudioWorkflow.d.ts +1 -1
- package/dist/workflows/ProductConfiguratorWorkflow.d.ts +1 -1
- package/dist/workflows/SceneShowcaseWorkflow.d.ts +1 -1
- package/dist/workflows/WorkflowDiagnostics.d.ts +4 -4
- package/dist/workflows/WorkflowTypes.d.ts +4 -4
- package/dist/workflows/index.d.ts +12 -12
- package/dist/workflows/production-runtime/ProductionExampleRuntime.d.ts +2 -2
- package/dist/workflows/production-runtime/ProductionExampleRuntime.d.ts.map +1 -1
- package/dist/workflows/production-runtime/ProductionExampleRuntime.js +2 -2
- package/dist/workflows/production-runtime/ProductionExampleRuntime.js.map +1 -1
- package/dist/workflows/production-runtime/index.d.ts +10 -10
- package/dist/workflows/workflow-foundation/index.d.ts +16 -16
- package/package.json +157 -40
- 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/package.json +1 -1
- 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/mini-game/README.md +3 -2
- package/templates/mini-game/package.json +1 -1
- package/templates/mini-game/src/aura-assets.ts +1 -1
- package/templates/mini-game/src/main.ts +69 -141
- package/templates/product-viewer/README.md +7 -5
- package/templates/product-viewer/index.html +1 -1
- package/templates/product-viewer/node_modules/.vite/deps/_metadata.json +8 -0
- package/templates/product-viewer/node_modules/.vite/deps/package.json +3 -0
- package/templates/product-viewer/package.json +1 -1
- package/templates/product-viewer/src/aura-assets.ts +1 -1
- package/templates/product-viewer/src/main.ts +29 -23
- package/dist/animation/MotionMatchingFixtures.d.ts +0 -58
- package/dist/animation/MotionMatchingFixtures.d.ts.map +0 -1
- package/dist/animation/MotionMatchingFixtures.js +0 -175
- package/dist/animation/MotionMatchingFixtures.js.map +0 -1
- package/dist/animation/Retargeting.d.ts +0 -12
- package/dist/animation/Retargeting.d.ts.map +0 -1
- package/dist/animation/Retargeting.js +0 -19
- package/dist/animation/Retargeting.js.map +0 -1
- package/dist/animation/SecondaryAnimationFixtures.d.ts +0 -55
- package/dist/animation/SecondaryAnimationFixtures.d.ts.map +0 -1
- package/dist/animation/SecondaryAnimationFixtures.js +0 -145
- package/dist/animation/SecondaryAnimationFixtures.js.map +0 -1
- package/dist/assets/AssetBundleCacheFixtures.d.ts +0 -62
- package/dist/assets/AssetBundleCacheFixtures.d.ts.map +0 -1
- package/dist/assets/AssetBundleCacheFixtures.js +0 -222
- package/dist/assets/AssetBundleCacheFixtures.js.map +0 -1
- package/dist/assets/EXRLoader.d.ts +0 -2
- package/dist/assets/EXRLoader.d.ts.map +0 -1
- package/dist/assets/EXRLoader.js +0 -2
- package/dist/assets/EXRLoader.js.map +0 -1
- package/dist/assets/SceneAnalysisFixtures.d.ts +0 -100
- package/dist/assets/SceneAnalysisFixtures.d.ts.map +0 -1
- package/dist/assets/SceneAnalysisFixtures.js +0 -331
- package/dist/assets/SceneAnalysisFixtures.js.map +0 -1
- package/dist/assets/loaders/EXRLoader.d.ts +0 -4
- package/dist/assets/loaders/EXRLoader.d.ts.map +0 -1
- package/dist/assets/loaders/EXRLoader.js +0 -10
- package/dist/assets/loaders/EXRLoader.js.map +0 -1
- package/dist/audio/AdaptiveMusicFixtures.d.ts +0 -36
- package/dist/audio/AdaptiveMusicFixtures.d.ts.map +0 -1
- package/dist/audio/AdaptiveMusicFixtures.js +0 -90
- package/dist/audio/AdaptiveMusicFixtures.js.map +0 -1
- package/dist/audio/AudioEffectsAnalysisFixtures.d.ts +0 -99
- package/dist/audio/AudioEffectsAnalysisFixtures.d.ts.map +0 -1
- package/dist/audio/AudioEffectsAnalysisFixtures.js +0 -192
- package/dist/audio/AudioEffectsAnalysisFixtures.js.map +0 -1
- package/dist/audio/SpatialAudioFixtures.d.ts +0 -38
- package/dist/audio/SpatialAudioFixtures.d.ts.map +0 -1
- package/dist/audio/SpatialAudioFixtures.js +0 -94
- package/dist/audio/SpatialAudioFixtures.js.map +0 -1
- package/dist/aura3d-cli/cartoon-asset-profiles.d.ts +0 -15
- package/dist/aura3d-cli/cartoon-asset-profiles.d.ts.map +0 -1
- package/dist/aura3d-cli/cartoon-asset-profiles.js +0 -46
- package/dist/aura3d-cli/cartoon-asset-profiles.js.map +0 -1
- package/dist/editor-runtime/CartoonSceneEditor.d.ts +0 -111
- package/dist/editor-runtime/CartoonSceneEditor.d.ts.map +0 -1
- package/dist/editor-runtime/CartoonSceneEditor.js +0 -285
- package/dist/editor-runtime/CartoonSceneEditor.js.map +0 -1
- package/dist/editor-runtime/LocalizationAccessibilityFixtures.d.ts +0 -70
- package/dist/editor-runtime/LocalizationAccessibilityFixtures.d.ts.map +0 -1
- package/dist/editor-runtime/LocalizationAccessibilityFixtures.js +0 -275
- package/dist/editor-runtime/LocalizationAccessibilityFixtures.js.map +0 -1
- package/dist/engine/agent-api/CartoonAssetManifest.d.ts +0 -50
- package/dist/engine/agent-api/CartoonAssetManifest.d.ts.map +0 -1
- package/dist/engine/agent-api/CartoonAssetManifest.js +0 -65
- package/dist/engine/agent-api/CartoonAssetManifest.js.map +0 -1
- package/dist/engine/agent-api/CartoonDirector.d.ts +0 -120
- package/dist/engine/agent-api/CartoonDirector.d.ts.map +0 -1
- package/dist/engine/agent-api/CartoonDirector.js +0 -432
- package/dist/engine/agent-api/CartoonDirector.js.map +0 -1
- package/dist/engine/agent-api/CartoonEpisodePackage.d.ts +0 -51
- package/dist/engine/agent-api/CartoonEpisodePackage.d.ts.map +0 -1
- package/dist/engine/agent-api/CartoonEpisodePackage.js +0 -79
- package/dist/engine/agent-api/CartoonEpisodePackage.js.map +0 -1
- package/dist/engine/agent-api/CartoonMotionQuality.d.ts +0 -83
- package/dist/engine/agent-api/CartoonMotionQuality.d.ts.map +0 -1
- package/dist/engine/agent-api/CartoonMotionQuality.js +0 -128
- package/dist/engine/agent-api/CartoonMotionQuality.js.map +0 -1
- package/dist/engine/agent-api/CartoonPerformance.d.ts +0 -150
- package/dist/engine/agent-api/CartoonPerformance.d.ts.map +0 -1
- package/dist/engine/agent-api/CartoonPerformance.js +0 -345
- package/dist/engine/agent-api/CartoonPerformance.js.map +0 -1
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts +0 -143
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +0 -1
- package/dist/engine/agent-api/CartoonRenderQueue.js +0 -410
- package/dist/engine/agent-api/CartoonRenderQueue.js.map +0 -1
- package/dist/engine/agent-api/CartoonRouteProof.d.ts +0 -112
- package/dist/engine/agent-api/CartoonRouteProof.d.ts.map +0 -1
- package/dist/engine/agent-api/CartoonRouteProof.js +0 -127
- package/dist/engine/agent-api/CartoonRouteProof.js.map +0 -1
- package/dist/input/GestureHapticsFixtures.d.ts +0 -57
- package/dist/input/GestureHapticsFixtures.d.ts.map +0 -1
- package/dist/input/GestureHapticsFixtures.js +0 -115
- package/dist/input/GestureHapticsFixtures.js.map +0 -1
- package/dist/input/InputActionBindingFixtures.d.ts +0 -44
- package/dist/input/InputActionBindingFixtures.d.ts.map +0 -1
- package/dist/input/InputActionBindingFixtures.js +0 -86
- package/dist/input/InputActionBindingFixtures.js.map +0 -1
- package/dist/input/XRFixtures.d.ts +0 -65
- package/dist/input/XRFixtures.d.ts.map +0 -1
- package/dist/input/XRFixtures.js +0 -136
- package/dist/input/XRFixtures.js.map +0 -1
- package/dist/physics/CharacterController.d.ts +0 -83
- package/dist/physics/CharacterController.d.ts.map +0 -1
- package/dist/physics/CharacterController.js +0 -236
- package/dist/physics/CharacterController.js.map +0 -1
- package/dist/physics/ClothFixtures.d.ts +0 -87
- package/dist/physics/ClothFixtures.d.ts.map +0 -1
- package/dist/physics/ClothFixtures.js +0 -264
- package/dist/physics/ClothFixtures.js.map +0 -1
- package/dist/physics/Crowd.d.ts +0 -64
- package/dist/physics/Crowd.d.ts.map +0 -1
- package/dist/physics/Crowd.js +0 -209
- package/dist/physics/Crowd.js.map +0 -1
- package/dist/physics/FireSmokeFixtures.d.ts +0 -103
- package/dist/physics/FireSmokeFixtures.d.ts.map +0 -1
- package/dist/physics/FireSmokeFixtures.js +0 -271
- package/dist/physics/FireSmokeFixtures.js.map +0 -1
- package/dist/physics/FluidFixtures.d.ts +0 -75
- package/dist/physics/FluidFixtures.d.ts.map +0 -1
- package/dist/physics/FluidFixtures.js +0 -219
- package/dist/physics/FluidFixtures.js.map +0 -1
- package/dist/physics/FractureFixtures.d.ts +0 -68
- package/dist/physics/FractureFixtures.d.ts.map +0 -1
- package/dist/physics/FractureFixtures.js +0 -199
- package/dist/physics/FractureFixtures.js.map +0 -1
- package/dist/physics/NarrowPhase.d.ts +0 -11
- package/dist/physics/NarrowPhase.d.ts.map +0 -1
- package/dist/physics/NarrowPhase.js +0 -565
- package/dist/physics/NarrowPhase.js.map +0 -1
- package/dist/physics/Navigation.d.ts +0 -67
- package/dist/physics/Navigation.d.ts.map +0 -1
- package/dist/physics/Navigation.js +0 -261
- package/dist/physics/Navigation.js.map +0 -1
- package/dist/physics/PhysicsSandboxFixtures.d.ts +0 -53
- package/dist/physics/PhysicsSandboxFixtures.d.ts.map +0 -1
- package/dist/physics/PhysicsSandboxFixtures.js +0 -280
- package/dist/physics/PhysicsSandboxFixtures.js.map +0 -1
- package/dist/physics/PlatformerFixtures.d.ts +0 -70
- package/dist/physics/PlatformerFixtures.d.ts.map +0 -1
- package/dist/physics/PlatformerFixtures.js +0 -120
- package/dist/physics/PlatformerFixtures.js.map +0 -1
- package/dist/physics/SoftBodyFixtures.d.ts +0 -70
- package/dist/physics/SoftBodyFixtures.d.ts.map +0 -1
- package/dist/physics/SoftBodyFixtures.js +0 -272
- package/dist/physics/SoftBodyFixtures.js.map +0 -1
- package/dist/physics/Steering.d.ts +0 -161
- package/dist/physics/Steering.d.ts.map +0 -1
- package/dist/physics/Steering.js +0 -347
- package/dist/physics/Steering.js.map +0 -1
- package/dist/physics/VehicleDynamics.d.ts.map +0 -1
- package/dist/physics/VehicleDynamics.js.map +0 -1
- package/dist/rendering/ArchitecturalLightingFixtures.d.ts +0 -40
- package/dist/rendering/ArchitecturalLightingFixtures.d.ts.map +0 -1
- package/dist/rendering/ArchitecturalLightingFixtures.js.map +0 -1
- package/dist/rendering/ArchitecturalMeasurementFixtures.d.ts.map +0 -1
- package/dist/rendering/ArchitecturalMeasurementFixtures.js.map +0 -1
- package/dist/rendering/CanonicalSceneFixtures.d.ts.map +0 -1
- package/dist/rendering/CanonicalSceneFixtures.js.map +0 -1
- package/dist/rendering/CullingFixtures.d.ts +0 -70
- package/dist/rendering/CullingFixtures.d.ts.map +0 -1
- package/dist/rendering/CullingFixtures.js +0 -191
- package/dist/rendering/CullingFixtures.js.map +0 -1
- package/dist/rendering/OceanFixtures.d.ts.map +0 -1
- package/dist/rendering/OceanFixtures.js.map +0 -1
- package/dist/rendering/ProceduralTextureFixtures.d.ts.map +0 -1
- package/dist/rendering/ProceduralTextureFixtures.js.map +0 -1
- package/dist/rendering/ProductTurntableFixtures.d.ts.map +0 -1
- package/dist/rendering/ProductTurntableFixtures.js.map +0 -1
- package/dist/rendering/SpaceEnvironmentFixtures.d.ts.map +0 -1
- package/dist/rendering/SpaceEnvironmentFixtures.js.map +0 -1
- package/dist/rendering/TerrainFixtures.d.ts.map +0 -1
- package/dist/rendering/TerrainFixtures.js.map +0 -1
- package/dist/rendering/VegetationFixtures.d.ts.map +0 -1
- package/dist/rendering/VegetationFixtures.js.map +0 -1
- package/dist/rendering/VoxelWorldFixtures.d.ts.map +0 -1
- package/dist/rendering/VoxelWorldFixtures.js.map +0 -1
- package/dist/rendering/WeatherFixtures.d.ts.map +0 -1
- package/dist/rendering/WeatherFixtures.js.map +0 -1
- package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts +0 -19
- package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts.map +0 -1
- package/dist/rendering/cartoon/CartoonMaterialStyle.js +0 -13
- package/dist/rendering/cartoon/CartoonMaterialStyle.js.map +0 -1
- package/dist/rendering/cartoon/CartoonRenderPreset.d.ts +0 -36
- package/dist/rendering/cartoon/CartoonRenderPreset.d.ts.map +0 -1
- package/dist/rendering/cartoon/CartoonRenderPreset.js +0 -23
- package/dist/rendering/cartoon/CartoonRenderPreset.js.map +0 -1
- package/dist/rendering/cartoon/CartoonToonMaterial.d.ts +0 -130
- package/dist/rendering/cartoon/CartoonToonMaterial.d.ts.map +0 -1
- package/dist/rendering/cartoon/CartoonToonMaterial.js +0 -303
- package/dist/rendering/cartoon/CartoonToonMaterial.js.map +0 -1
- package/dist/rendering/cartoon/CartoonVisualQuality.d.ts +0 -28
- package/dist/rendering/cartoon/CartoonVisualQuality.d.ts.map +0 -1
- package/dist/rendering/cartoon/CartoonVisualQuality.js +0 -39
- package/dist/rendering/cartoon/CartoonVisualQuality.js.map +0 -1
- package/dist/rendering/cartoon/applyCartoonRenderPreset.d.ts +0 -79
- package/dist/rendering/cartoon/applyCartoonRenderPreset.d.ts.map +0 -1
- package/dist/rendering/cartoon/applyCartoonRenderPreset.js +0 -88
- package/dist/rendering/cartoon/applyCartoonRenderPreset.js.map +0 -1
- package/dist/rendering/cartoon/index.d.ts +0 -6
- package/dist/rendering/cartoon/index.d.ts.map +0 -1
- package/dist/rendering/cartoon/index.js +0 -6
- package/dist/rendering/cartoon/index.js.map +0 -1
- package/dist/rendering/threejs-compatibility/InstancingSystem.d.ts +0 -10
- package/dist/rendering/threejs-compatibility/InstancingSystem.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/InstancingSystem.js +0 -11
- package/dist/rendering/threejs-compatibility/InstancingSystem.js.map +0 -1
- package/dist/rendering/threejs-compatibility/LightingSystem.d.ts +0 -11
- package/dist/rendering/threejs-compatibility/LightingSystem.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/LightingSystem.js +0 -14
- package/dist/rendering/threejs-compatibility/LightingSystem.js.map +0 -1
- package/dist/rendering/threejs-compatibility/MaterialSystem.d.ts +0 -6
- package/dist/rendering/threejs-compatibility/MaterialSystem.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/MaterialSystem.js +0 -7
- package/dist/rendering/threejs-compatibility/MaterialSystem.js.map +0 -1
- package/dist/rendering/threejs-compatibility/RenderTargetSystem.d.ts +0 -16
- package/dist/rendering/threejs-compatibility/RenderTargetSystem.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/RenderTargetSystem.js +0 -23
- package/dist/rendering/threejs-compatibility/RenderTargetSystem.js.map +0 -1
- package/dist/rendering/threejs-compatibility/RendererDiagnostics.d.ts +0 -27
- package/dist/rendering/threejs-compatibility/RendererDiagnostics.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/RendererDiagnostics.js +0 -41
- package/dist/rendering/threejs-compatibility/RendererDiagnostics.js.map +0 -1
- package/dist/rendering/threejs-compatibility/SceneRenderer.d.ts +0 -19
- package/dist/rendering/threejs-compatibility/SceneRenderer.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/SceneRenderer.js +0 -18
- package/dist/rendering/threejs-compatibility/SceneRenderer.js.map +0 -1
- package/dist/rendering/threejs-compatibility/ShadowSystem.d.ts +0 -11
- package/dist/rendering/threejs-compatibility/ShadowSystem.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/ShadowSystem.js +0 -12
- package/dist/rendering/threejs-compatibility/ShadowSystem.js.map +0 -1
- package/dist/rendering/threejs-compatibility/TextureSystem.d.ts +0 -9
- package/dist/rendering/threejs-compatibility/TextureSystem.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/TextureSystem.js +0 -14
- package/dist/rendering/threejs-compatibility/TextureSystem.js.map +0 -1
- package/dist/rendering/threejs-compatibility/ThreeCompatRenderer.d.ts +0 -37
- package/dist/rendering/threejs-compatibility/ThreeCompatRenderer.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/ThreeCompatRenderer.js +0 -77
- package/dist/rendering/threejs-compatibility/ThreeCompatRenderer.js.map +0 -1
- package/dist/rendering/threejs-compatibility/TransparencySystem.d.ts +0 -11
- package/dist/rendering/threejs-compatibility/TransparencySystem.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/TransparencySystem.js +0 -12
- package/dist/rendering/threejs-compatibility/TransparencySystem.js.map +0 -1
- package/dist/rendering/threejs-compatibility/index.d.ts +0 -25
- package/dist/rendering/threejs-compatibility/index.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/index.js +0 -15
- package/dist/rendering/threejs-compatibility/index.js.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/BVH.d.ts +0 -11
- package/dist/rendering/threejs-compatibility/performance/BVH.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/BVH.js +0 -10
- package/dist/rendering/threejs-compatibility/performance/BVH.js.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/FrustumCulling.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/performance/FrustumCulling.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/FrustumCulling.js +0 -5
- package/dist/rendering/threejs-compatibility/performance/FrustumCulling.js.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/Instancing.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/performance/Instancing.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/Instancing.js +0 -10
- package/dist/rendering/threejs-compatibility/performance/Instancing.js.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/LODSystem.d.ts +0 -9
- package/dist/rendering/threejs-compatibility/performance/LODSystem.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/LODSystem.js +0 -11
- package/dist/rendering/threejs-compatibility/performance/LODSystem.js.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/OcclusionCulling.d.ts +0 -3
- package/dist/rendering/threejs-compatibility/performance/OcclusionCulling.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/OcclusionCulling.js +0 -5
- package/dist/rendering/threejs-compatibility/performance/OcclusionCulling.js.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/RaycastAcceleration.d.ts +0 -8
- package/dist/rendering/threejs-compatibility/performance/RaycastAcceleration.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/RaycastAcceleration.js +0 -11
- package/dist/rendering/threejs-compatibility/performance/RaycastAcceleration.js.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/RendererProfiler.d.ts +0 -11
- package/dist/rendering/threejs-compatibility/performance/RendererProfiler.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/RendererProfiler.js +0 -10
- package/dist/rendering/threejs-compatibility/performance/RendererProfiler.js.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/TextureStreaming.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/performance/TextureStreaming.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/TextureStreaming.js +0 -10
- package/dist/rendering/threejs-compatibility/performance/TextureStreaming.js.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/index.d.ts +0 -13
- package/dist/rendering/threejs-compatibility/performance/index.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/performance/index.js +0 -9
- package/dist/rendering/threejs-compatibility/performance/index.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/BloomPass.d.ts +0 -9
- package/dist/rendering/threejs-compatibility/postprocess/BloomPass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/BloomPass.js +0 -14
- package/dist/rendering/threejs-compatibility/postprocess/BloomPass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/ColorGradingPass.d.ts +0 -10
- package/dist/rendering/threejs-compatibility/postprocess/ColorGradingPass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/ColorGradingPass.js +0 -16
- package/dist/rendering/threejs-compatibility/postprocess/ColorGradingPass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/DepthOfFieldPass.d.ts +0 -9
- package/dist/rendering/threejs-compatibility/postprocess/DepthOfFieldPass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/DepthOfFieldPass.js +0 -19
- package/dist/rendering/threejs-compatibility/postprocess/DepthOfFieldPass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/EffectComposer.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/postprocess/EffectComposer.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/EffectComposer.js +0 -11
- package/dist/rendering/threejs-compatibility/postprocess/EffectComposer.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/FXAAPass.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/postprocess/FXAAPass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/FXAAPass.js +0 -10
- package/dist/rendering/threejs-compatibility/postprocess/FXAAPass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/MotionBlurPass.d.ts +0 -9
- package/dist/rendering/threejs-compatibility/postprocess/MotionBlurPass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/MotionBlurPass.js +0 -18
- package/dist/rendering/threejs-compatibility/postprocess/MotionBlurPass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/OutlinePass.d.ts +0 -9
- package/dist/rendering/threejs-compatibility/postprocess/OutlinePass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/OutlinePass.js +0 -19
- package/dist/rendering/threejs-compatibility/postprocess/OutlinePass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/PostProcessTypes.d.ts +0 -42
- package/dist/rendering/threejs-compatibility/postprocess/PostProcessTypes.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/PostProcessTypes.js +0 -123
- package/dist/rendering/threejs-compatibility/postprocess/PostProcessTypes.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/RenderPass.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/postprocess/RenderPass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/RenderPass.js +0 -8
- package/dist/rendering/threejs-compatibility/postprocess/RenderPass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/SMAAPass.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/postprocess/SMAAPass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/SMAAPass.js +0 -10
- package/dist/rendering/threejs-compatibility/postprocess/SMAAPass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/SSAOPass.d.ts +0 -9
- package/dist/rendering/threejs-compatibility/postprocess/SSAOPass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/SSAOPass.js +0 -19
- package/dist/rendering/threejs-compatibility/postprocess/SSAOPass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/ShaderPass.d.ts +0 -9
- package/dist/rendering/threejs-compatibility/postprocess/ShaderPass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/ShaderPass.js +0 -11
- package/dist/rendering/threejs-compatibility/postprocess/ShaderPass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/TAAPass.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/postprocess/TAAPass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/TAAPass.js +0 -10
- package/dist/rendering/threejs-compatibility/postprocess/TAAPass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/VignettePass.d.ts +0 -9
- package/dist/rendering/threejs-compatibility/postprocess/VignettePass.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/VignettePass.js +0 -14
- package/dist/rendering/threejs-compatibility/postprocess/VignettePass.js.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/index.d.ts +0 -16
- package/dist/rendering/threejs-compatibility/postprocess/index.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/postprocess/index.js +0 -15
- package/dist/rendering/threejs-compatibility/postprocess/index.js.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/NodeMaterial.d.ts +0 -14
- package/dist/rendering/threejs-compatibility/shaders/NodeMaterial.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/NodeMaterial.js +0 -15
- package/dist/rendering/threejs-compatibility/shaders/NodeMaterial.js.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/RawShaderMaterial.d.ts +0 -6
- package/dist/rendering/threejs-compatibility/shaders/RawShaderMaterial.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/RawShaderMaterial.js +0 -6
- package/dist/rendering/threejs-compatibility/shaders/RawShaderMaterial.js.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/ShaderDiagnostics.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/shaders/ShaderDiagnostics.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/ShaderDiagnostics.js +0 -12
- package/dist/rendering/threejs-compatibility/shaders/ShaderDiagnostics.js.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/ShaderMaterial.d.ts +0 -12
- package/dist/rendering/threejs-compatibility/shaders/ShaderMaterial.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/ShaderMaterial.js +0 -20
- package/dist/rendering/threejs-compatibility/shaders/ShaderMaterial.js.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/ThreeCompatShaderChunks.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/shaders/ThreeCompatShaderChunks.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/ThreeCompatShaderChunks.js +0 -7
- package/dist/rendering/threejs-compatibility/shaders/ThreeCompatShaderChunks.js.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/Uniforms.d.ts +0 -8
- package/dist/rendering/threejs-compatibility/shaders/Uniforms.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/Uniforms.js +0 -14
- package/dist/rendering/threejs-compatibility/shaders/Uniforms.js.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/index.d.ts +0 -10
- package/dist/rendering/threejs-compatibility/shaders/index.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/shaders/index.js +0 -7
- package/dist/rendering/threejs-compatibility/shaders/index.js.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/GPUPointCloud.d.ts +0 -7
- package/dist/rendering/threejs-compatibility/vfx/GPUPointCloud.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/GPUPointCloud.js +0 -12
- package/dist/rendering/threejs-compatibility/vfx/GPUPointCloud.js.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/LineRenderer.d.ts +0 -10
- package/dist/rendering/threejs-compatibility/vfx/LineRenderer.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/LineRenderer.js +0 -7
- package/dist/rendering/threejs-compatibility/vfx/LineRenderer.js.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/ParticleSystem.d.ts +0 -12
- package/dist/rendering/threejs-compatibility/vfx/ParticleSystem.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/ParticleSystem.js +0 -15
- package/dist/rendering/threejs-compatibility/vfx/ParticleSystem.js.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/SpriteSystem.d.ts +0 -11
- package/dist/rendering/threejs-compatibility/vfx/SpriteSystem.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/SpriteSystem.js +0 -7
- package/dist/rendering/threejs-compatibility/vfx/SpriteSystem.js.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/TrailRenderer.d.ts +0 -5
- package/dist/rendering/threejs-compatibility/vfx/TrailRenderer.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/TrailRenderer.js +0 -9
- package/dist/rendering/threejs-compatibility/vfx/TrailRenderer.js.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/VFXDiagnostics.d.ts +0 -21
- package/dist/rendering/threejs-compatibility/vfx/VFXDiagnostics.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/VFXDiagnostics.js +0 -12
- package/dist/rendering/threejs-compatibility/vfx/VFXDiagnostics.js.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/index.d.ts +0 -10
- package/dist/rendering/threejs-compatibility/vfx/index.d.ts.map +0 -1
- package/dist/rendering/threejs-compatibility/vfx/index.js +0 -7
- package/dist/rendering/threejs-compatibility/vfx/index.js.map +0 -1
- package/dist/scripting/AdaptiveDifficultyFixtures.d.ts +0 -58
- package/dist/scripting/AdaptiveDifficultyFixtures.d.ts.map +0 -1
- package/dist/scripting/AdaptiveDifficultyFixtures.js +0 -228
- package/dist/scripting/AdaptiveDifficultyFixtures.js.map +0 -1
- package/dist/scripting/AnalyticsPrivacyFixtures.d.ts +0 -63
- package/dist/scripting/AnalyticsPrivacyFixtures.d.ts.map +0 -1
- package/dist/scripting/AnalyticsPrivacyFixtures.js +0 -120
- package/dist/scripting/AnalyticsPrivacyFixtures.js.map +0 -1
- package/dist/scripting/CartoonNodeCategories.d.ts +0 -3
- package/dist/scripting/CartoonNodeCategories.d.ts.map +0 -1
- package/dist/scripting/CartoonNodeCategories.js +0 -9
- package/dist/scripting/CartoonNodeCategories.js.map +0 -1
- package/dist/scripting/CartoonVisualNodes.d.ts +0 -3
- package/dist/scripting/CartoonVisualNodes.d.ts.map +0 -1
- package/dist/scripting/CartoonVisualNodes.js +0 -41
- package/dist/scripting/CartoonVisualNodes.js.map +0 -1
- package/dist/scripting/CloudServiceFixtures.d.ts +0 -81
- package/dist/scripting/CloudServiceFixtures.d.ts.map +0 -1
- package/dist/scripting/CloudServiceFixtures.js +0 -144
- package/dist/scripting/CloudServiceFixtures.js.map +0 -1
- package/dist/scripting/CulturalBehaviorFixtures.d.ts +0 -75
- package/dist/scripting/CulturalBehaviorFixtures.d.ts.map +0 -1
- package/dist/scripting/CulturalBehaviorFixtures.js +0 -180
- package/dist/scripting/CulturalBehaviorFixtures.js.map +0 -1
- package/dist/scripting/LearningAgentFixtures.d.ts +0 -60
- package/dist/scripting/LearningAgentFixtures.d.ts.map +0 -1
- package/dist/scripting/LearningAgentFixtures.js +0 -122
- package/dist/scripting/LearningAgentFixtures.js.map +0 -1
- package/dist/scripting/NetworkReplicationFixtures.d.ts +0 -82
- package/dist/scripting/NetworkReplicationFixtures.d.ts.map +0 -1
- package/dist/scripting/NetworkReplicationFixtures.js +0 -330
- package/dist/scripting/NetworkReplicationFixtures.js.map +0 -1
- package/dist/scripting/PlayerBehaviorTelemetryFixtures.d.ts +0 -74
- package/dist/scripting/PlayerBehaviorTelemetryFixtures.d.ts.map +0 -1
- package/dist/scripting/PlayerBehaviorTelemetryFixtures.js +0 -189
- package/dist/scripting/PlayerBehaviorTelemetryFixtures.js.map +0 -1
- package/dist/scripting/ProceduralContentAdaptationFixtures.d.ts +0 -52
- package/dist/scripting/ProceduralContentAdaptationFixtures.d.ts.map +0 -1
- package/dist/scripting/ProceduralContentAdaptationFixtures.js +0 -149
- package/dist/scripting/ProceduralContentAdaptationFixtures.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { addVec3,
|
|
1
|
+
import { addVec3, normalizeVec3, rotateVec3ByQuat, subVec3, validateFiniteVec3 } from "./Shape.js";
|
|
2
2
|
export class Constraint {
|
|
3
3
|
type;
|
|
4
4
|
bodyA;
|
|
@@ -9,6 +9,11 @@ export class Constraint {
|
|
|
9
9
|
restLength;
|
|
10
10
|
stiffness;
|
|
11
11
|
axis;
|
|
12
|
+
damping;
|
|
13
|
+
maxMotorTorque;
|
|
14
|
+
limits;
|
|
15
|
+
motorSpeedValue;
|
|
16
|
+
enabled = true;
|
|
12
17
|
constructor(descriptor) {
|
|
13
18
|
if (descriptor.bodyA.id === descriptor.bodyB.id) {
|
|
14
19
|
throw new Error("Constraint requires two different bodies.");
|
|
@@ -26,6 +31,19 @@ export class Constraint {
|
|
|
26
31
|
this.restOffset = subVec3(anchorB, anchorA);
|
|
27
32
|
this.restLength = descriptor.restLength ?? Math.hypot(this.restOffset[0], this.restOffset[1], this.restOffset[2]);
|
|
28
33
|
this.stiffness = descriptor.stiffness ?? 1;
|
|
34
|
+
this.damping = descriptor.damping ?? 0;
|
|
35
|
+
this.motorSpeedValue = descriptor.motorSpeed ?? 0;
|
|
36
|
+
this.maxMotorTorque = descriptor.maxMotorTorque ?? Infinity;
|
|
37
|
+
this.limits = descriptor.limits;
|
|
38
|
+
if (this.limits && !(this.limits[0] <= this.limits[1])) {
|
|
39
|
+
throw new Error("Constraint limits must be ordered [lower, upper].");
|
|
40
|
+
}
|
|
41
|
+
if (descriptor.type === "motorised-hinge" && descriptor.motorSpeed === undefined) {
|
|
42
|
+
throw new Error("A motorised-hinge constraint requires motorSpeed.");
|
|
43
|
+
}
|
|
44
|
+
if (!Number.isFinite(this.damping) || this.damping < 0) {
|
|
45
|
+
throw new Error("Constraint damping must be finite and non-negative.");
|
|
46
|
+
}
|
|
29
47
|
if (!Number.isFinite(this.restLength) || this.restLength < 0) {
|
|
30
48
|
throw new Error("Constraint restLength must be finite and non-negative.");
|
|
31
49
|
}
|
|
@@ -33,39 +51,21 @@ export class Constraint {
|
|
|
33
51
|
throw new Error("Constraint stiffness must be in the [0, 1] range.");
|
|
34
52
|
}
|
|
35
53
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const projected = scaleVec3(this.axis, dotVec3(currentOffset, this.axis));
|
|
52
|
-
this.applyError(subVec3(currentOffset, projected));
|
|
53
|
-
const relativeVelocity = subVec3(this.bodyB.velocity, this.bodyA.velocity);
|
|
54
|
-
const projectedVelocity = scaleVec3(this.axis, dotVec3(relativeVelocity, this.axis));
|
|
55
|
-
this.applyVelocityError(subVec3(relativeVelocity, projectedVelocity));
|
|
56
|
-
}
|
|
57
|
-
else if (this.type === "spring") {
|
|
58
|
-
const currentOffset = subVec3(this.anchorBWorld(), this.anchorAWorld());
|
|
59
|
-
const currentLength = Math.hypot(currentOffset[0], currentOffset[1], currentOffset[2]);
|
|
60
|
-
if (currentLength <= 1e-9) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const lengthError = currentLength - this.restLength;
|
|
64
|
-
this.applyError(scaleVec3(currentOffset, lengthError / currentLength));
|
|
65
|
-
const relativeVelocity = subVec3(this.bodyB.velocity, this.bodyA.velocity);
|
|
66
|
-
const axis = scaleVec3(currentOffset, 1 / currentLength);
|
|
67
|
-
this.applyVelocityError(scaleVec3(axis, dotVec3(relativeVelocity, axis) * Math.min(1, this.stiffness)));
|
|
68
|
-
}
|
|
54
|
+
/** `motorised-hinge` only: change the driven speed at runtime. */
|
|
55
|
+
setMotorSpeed(speed) {
|
|
56
|
+
if (!Number.isFinite(speed))
|
|
57
|
+
throw new Error("Constraint motorSpeed must be finite.");
|
|
58
|
+
this.motorSpeedValue = speed;
|
|
59
|
+
}
|
|
60
|
+
motorSpeed() {
|
|
61
|
+
return this.motorSpeedValue;
|
|
62
|
+
}
|
|
63
|
+
/** Turn the constraint off without destroying it. */
|
|
64
|
+
setEnabled(enabled) {
|
|
65
|
+
this.enabled = enabled;
|
|
66
|
+
}
|
|
67
|
+
isEnabled() {
|
|
68
|
+
return this.enabled;
|
|
69
69
|
}
|
|
70
70
|
anchorAWorld() {
|
|
71
71
|
return addVec3(this.bodyA.position, rotateVec3ByQuat(this.localAnchorA, this.bodyA.rotation));
|
|
@@ -73,31 +73,5 @@ export class Constraint {
|
|
|
73
73
|
anchorBWorld() {
|
|
74
74
|
return addVec3(this.bodyB.position, rotateVec3ByQuat(this.localAnchorB, this.bodyB.rotation));
|
|
75
75
|
}
|
|
76
|
-
applyError(error) {
|
|
77
|
-
const inverseMassSum = this.bodyA.inverseMass + this.bodyB.inverseMass;
|
|
78
|
-
if (inverseMassSum <= 0) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
const weightedError = scaleVec3(error, this.stiffness);
|
|
82
|
-
if (this.bodyA.inverseMass > 0) {
|
|
83
|
-
this.bodyA.setPosition(addVec3(this.bodyA.position, scaleVec3(weightedError, this.bodyA.inverseMass / inverseMassSum)));
|
|
84
|
-
}
|
|
85
|
-
if (this.bodyB.inverseMass > 0) {
|
|
86
|
-
this.bodyB.setPosition(subVec3(this.bodyB.position, scaleVec3(weightedError, this.bodyB.inverseMass / inverseMassSum)));
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
applyVelocityError(errorVelocity) {
|
|
90
|
-
const inverseMassSum = this.bodyA.inverseMass + this.bodyB.inverseMass;
|
|
91
|
-
if (inverseMassSum <= 0) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
const correctionImpulse = scaleVec3(errorVelocity, -this.stiffness / inverseMassSum);
|
|
95
|
-
if (this.bodyA.inverseMass > 0) {
|
|
96
|
-
this.bodyA.applyImpulse(scaleVec3(correctionImpulse, -1));
|
|
97
|
-
}
|
|
98
|
-
if (this.bodyB.inverseMass > 0) {
|
|
99
|
-
this.bodyB.applyImpulse(correctionImpulse);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
76
|
}
|
|
103
77
|
//# sourceMappingURL=Constraint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constraint.js","sourceRoot":"","sources":["../../../../packages/physics/src/Constraint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Constraint.js","sourceRoot":"","sources":["../../../../packages/physics/src/Constraint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { KinematicBody, type KinematicBodyDescriptor, type KinematicBodyEvent, type KinematicBodySnapshot, type KinematicStepOptions } from "./KinematicBody.js";
|
|
2
|
+
export type FightingCharacterControllerState = "idle" | "walk" | "dash" | "jump" | "fast-fall" | "crouch" | "landing";
|
|
3
|
+
export type FightingCharacterControllerDescriptor = KinematicBodyDescriptor & {
|
|
4
|
+
readonly walkSpeed?: number;
|
|
5
|
+
readonly crouchSpeed?: number;
|
|
6
|
+
readonly fastFallSpeed?: number;
|
|
7
|
+
};
|
|
8
|
+
export type FightingCharacterControllerSnapshot = KinematicBodySnapshot & {
|
|
9
|
+
readonly state: FightingCharacterControllerState;
|
|
10
|
+
readonly walkSpeed: number;
|
|
11
|
+
readonly crouchSpeed: number;
|
|
12
|
+
readonly fastFallSpeed: number;
|
|
13
|
+
};
|
|
14
|
+
/** Authored-unit fighting movement; this is not a physical-simulation controller. */
|
|
15
|
+
export declare class FightingCharacterController {
|
|
16
|
+
#private;
|
|
17
|
+
readonly body: KinematicBody;
|
|
18
|
+
readonly walkSpeed: number;
|
|
19
|
+
readonly crouchSpeed: number;
|
|
20
|
+
readonly fastFallSpeed: number;
|
|
21
|
+
constructor(descriptor?: FightingCharacterControllerDescriptor);
|
|
22
|
+
walk(direction: number, speed?: number): void;
|
|
23
|
+
stop(): void;
|
|
24
|
+
jump(): void;
|
|
25
|
+
dash(direction?: number): void;
|
|
26
|
+
fastFall(speed?: number): void;
|
|
27
|
+
crouch(active?: boolean): void;
|
|
28
|
+
step(dt: number, options?: KinematicStepOptions): readonly KinematicBodyEvent[];
|
|
29
|
+
snapshot(): FightingCharacterControllerSnapshot;
|
|
30
|
+
}
|
|
31
|
+
export declare function createFightingCharacterController(descriptor?: FightingCharacterControllerDescriptor): FightingCharacterController;
|
|
32
|
+
//# sourceMappingURL=FightingCharacterController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FightingCharacterController.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/FightingCharacterController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEjK,MAAM,MAAM,gCAAgC,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEtH,MAAM,MAAM,qCAAqC,GAAG,uBAAuB,GAAG;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG,qBAAqB,GAAG;IACxE,QAAQ,CAAC,KAAK,EAAE,gCAAgC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,qFAAqF;AACrF,qBAAa,2BAA2B;;IACtC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAGnB,UAAU,GAAE,qCAA0C;IAwBlE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAS7C,IAAI,IAAI,IAAI;IACZ,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAC9B,QAAQ,CAAC,KAAK,SAAqB,GAAG,IAAI;IAC1C,MAAM,CAAC,MAAM,UAAO,GAAG,IAAI;IAE3B,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,SAAS,kBAAkB,EAAE;IAMnF,QAAQ,IAAI,mCAAmC;CAYhD;AAED,wBAAgB,iCAAiC,CAAC,UAAU,GAAE,qCAA0C,GAAG,2BAA2B,CAErI"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { KinematicBody } from "./KinematicBody.js";
|
|
2
|
+
/** Authored-unit fighting movement; this is not a physical-simulation controller. */
|
|
3
|
+
export class FightingCharacterController {
|
|
4
|
+
body;
|
|
5
|
+
walkSpeed;
|
|
6
|
+
crouchSpeed;
|
|
7
|
+
fastFallSpeed;
|
|
8
|
+
#state = "idle";
|
|
9
|
+
constructor(descriptor = {}) {
|
|
10
|
+
this.walkSpeed = positive(descriptor.walkSpeed ?? descriptor.maxSpeed ?? 4.5, "fighting controller walkSpeed");
|
|
11
|
+
this.crouchSpeed = positive(descriptor.crouchSpeed ?? this.walkSpeed * 0.45, "fighting controller crouchSpeed");
|
|
12
|
+
this.fastFallSpeed = positive(descriptor.fastFallSpeed ?? descriptor.maxFallSpeed ?? 20, "fighting controller fastFallSpeed");
|
|
13
|
+
this.body = new KinematicBody({
|
|
14
|
+
...descriptor,
|
|
15
|
+
id: descriptor.id ?? "fighter",
|
|
16
|
+
halfExtents: descriptor.halfExtents ?? [0.32, 0.9, 0.25],
|
|
17
|
+
maxSpeed: descriptor.maxSpeed ?? this.walkSpeed,
|
|
18
|
+
acceleration: descriptor.acceleration ?? 54,
|
|
19
|
+
airAcceleration: descriptor.airAcceleration ?? 24,
|
|
20
|
+
groundFriction: descriptor.groundFriction ?? 56,
|
|
21
|
+
airFriction: descriptor.airFriction ?? 4,
|
|
22
|
+
gravity: descriptor.gravity ?? 26,
|
|
23
|
+
jumpSpeed: descriptor.jumpSpeed ?? 9.4,
|
|
24
|
+
maxFallSpeed: descriptor.maxFallSpeed ?? Math.max(this.fastFallSpeed, 20),
|
|
25
|
+
dashSpeed: descriptor.dashSpeed ?? 8.6,
|
|
26
|
+
dashDuration: descriptor.dashDuration ?? 0.12,
|
|
27
|
+
dashCooldown: descriptor.dashCooldown ?? 0.18,
|
|
28
|
+
groundSnapDistance: descriptor.groundSnapDistance ?? 0.06,
|
|
29
|
+
lockDepth: descriptor.lockDepth ?? true
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
walk(direction, speed) {
|
|
33
|
+
const magnitude = Math.min(1, Math.abs(finiteOrZero(direction)));
|
|
34
|
+
const facing = direction < 0 ? -1 : 1;
|
|
35
|
+
const targetSpeed = speed ?? (this.body.snapshot().crouching ? this.crouchSpeed : this.walkSpeed);
|
|
36
|
+
const normalizedSpeed = this.body.maxSpeed > 0 ? Math.min(1, positive(targetSpeed, "fighting controller walk speed") / this.body.maxSpeed) : 0;
|
|
37
|
+
this.body.move(facing * magnitude * normalizedSpeed);
|
|
38
|
+
this.#state = magnitude > 0 ? "walk" : this.#derive([]);
|
|
39
|
+
}
|
|
40
|
+
stop() { this.body.move(0); this.#state = this.#derive([]); }
|
|
41
|
+
jump() { this.body.jump(); this.#state = "jump"; }
|
|
42
|
+
dash(direction) { this.body.dash(direction); this.#state = "dash"; }
|
|
43
|
+
fastFall(speed = this.fastFallSpeed) { this.body.fastFall(speed); if (!this.body.grounded)
|
|
44
|
+
this.#state = "fast-fall"; }
|
|
45
|
+
crouch(active = true) { this.body.crouch(active); this.#state = active ? "crouch" : this.#derive([]); }
|
|
46
|
+
step(dt, options = {}) {
|
|
47
|
+
const events = this.body.step(dt, options);
|
|
48
|
+
this.#state = this.#derive(events);
|
|
49
|
+
return events;
|
|
50
|
+
}
|
|
51
|
+
snapshot() {
|
|
52
|
+
return { ...this.body.snapshot(), state: this.#state, walkSpeed: this.walkSpeed, crouchSpeed: this.crouchSpeed, fastFallSpeed: this.fastFallSpeed };
|
|
53
|
+
}
|
|
54
|
+
#derive(events) {
|
|
55
|
+
if (events.some((event) => event.type === "land"))
|
|
56
|
+
return "landing";
|
|
57
|
+
const snapshot = this.body.snapshot();
|
|
58
|
+
if (snapshot.crouching)
|
|
59
|
+
return "crouch";
|
|
60
|
+
if (snapshot.dashFramesRemaining > 0)
|
|
61
|
+
return "dash";
|
|
62
|
+
if (!snapshot.grounded)
|
|
63
|
+
return snapshot.velocity[1] < -this.fastFallSpeed * 0.5 ? "fast-fall" : "jump";
|
|
64
|
+
return Math.abs(snapshot.velocity[0]) > 0.05 ? "walk" : "idle";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export function createFightingCharacterController(descriptor = {}) {
|
|
68
|
+
return new FightingCharacterController(descriptor);
|
|
69
|
+
}
|
|
70
|
+
function positive(value, label) {
|
|
71
|
+
if (!Number.isFinite(value) || value <= 0)
|
|
72
|
+
throw new RangeError(`${label} must be finite and positive.`);
|
|
73
|
+
return value;
|
|
74
|
+
}
|
|
75
|
+
function finiteOrZero(value) { return Number.isFinite(value) ? value : 0; }
|
|
76
|
+
//# sourceMappingURL=FightingCharacterController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FightingCharacterController.js","sourceRoot":"","sources":["../../../../packages/physics/src/FightingCharacterController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { Vec3 } from "./Shape.js";
|
|
2
|
+
/**
|
|
3
|
+
* Bounding volume hierarchy over an indexed triangle mesh.
|
|
4
|
+
*
|
|
5
|
+
* ## Why this exists
|
|
6
|
+
*
|
|
7
|
+
* Every grounding system in the library was solving against an *approximation of* a
|
|
8
|
+
* surface rather than the surface itself. Turbo Drift sampled
|
|
9
|
+
* `TRACK_SURFACE_Y - VERGE_DROP * shoulderFraction` — a flat plane plus an analytic
|
|
10
|
+
* ramp — so on a banked or crowned corner the returned height was wrong and the car's
|
|
11
|
+
* tyres passed through the visible road. The fix is to ask the real triangles, which
|
|
12
|
+
* needs a spatial index: a naive per-sample scan over a 40k-triangle circuit is far too
|
|
13
|
+
* slow to run four times per frame.
|
|
14
|
+
*
|
|
15
|
+
* ## Determinism
|
|
16
|
+
*
|
|
17
|
+
* Construction must not depend on iteration order or floating-point tie-breaking, or two
|
|
18
|
+
* runs over the same mesh produce different trees and the same query returns different
|
|
19
|
+
* hits. Splits use the median along the widest axis with a stable index-based tiebreak,
|
|
20
|
+
* so the tree is a pure function of the input arrays.
|
|
21
|
+
*/
|
|
22
|
+
export interface MeshBVHBuildOptions {
|
|
23
|
+
/** Stop splitting at this triangle count. Larger leaves trade traversal for tests. */
|
|
24
|
+
readonly maxLeafTriangles?: number | undefined;
|
|
25
|
+
/** Hard depth cap, a safety valve against degenerate geometry. */
|
|
26
|
+
readonly maxDepth?: number | undefined;
|
|
27
|
+
}
|
|
28
|
+
interface BVHNode {
|
|
29
|
+
readonly min: [number, number, number];
|
|
30
|
+
readonly max: [number, number, number];
|
|
31
|
+
/** Triangle indices, leaf nodes only. */
|
|
32
|
+
readonly triangles?: readonly number[] | undefined;
|
|
33
|
+
readonly left?: number | undefined;
|
|
34
|
+
readonly right?: number | undefined;
|
|
35
|
+
}
|
|
36
|
+
export interface MeshBVH {
|
|
37
|
+
readonly kind: "aura-mesh-bvh";
|
|
38
|
+
readonly nodes: readonly BVHNode[];
|
|
39
|
+
readonly positions: Float32Array;
|
|
40
|
+
readonly indices: Uint32Array;
|
|
41
|
+
readonly triangleCount: number;
|
|
42
|
+
readonly maxDepth: number;
|
|
43
|
+
}
|
|
44
|
+
export declare function buildMeshBVH(positions: Float32Array, indices: Uint32Array, options?: MeshBVHBuildOptions): MeshBVH;
|
|
45
|
+
export interface MeshRayHit {
|
|
46
|
+
readonly triangle: number;
|
|
47
|
+
readonly distance: number;
|
|
48
|
+
readonly point: Vec3;
|
|
49
|
+
/** Geometric normal, unit length, oriented against the ray. */
|
|
50
|
+
readonly normal: Vec3;
|
|
51
|
+
/** Barycentric coordinates, for interpolating vertex attributes. */
|
|
52
|
+
readonly barycentric: Vec3;
|
|
53
|
+
/** True when the ray struck the back face. */
|
|
54
|
+
readonly backFace: boolean;
|
|
55
|
+
}
|
|
56
|
+
export interface RaycastMeshOptions {
|
|
57
|
+
readonly maxDistance?: number | undefined;
|
|
58
|
+
/** Skip back faces. Off by default so a ray starting inside geometry still reports. */
|
|
59
|
+
readonly cullBackFaces?: boolean | undefined;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Nearest triangle hit along a ray, using the BVH.
|
|
63
|
+
*
|
|
64
|
+
* The direction is normalised internally so `distance` is always in world units; a
|
|
65
|
+
* caller passing an unnormalised direction otherwise gets a distance scaled by its
|
|
66
|
+
* length, which is a silent and very confusing error.
|
|
67
|
+
*/
|
|
68
|
+
export declare function raycastMesh(bvh: MeshBVH, origin: Vec3, direction: Vec3, options?: RaycastMeshOptions): MeshRayHit | undefined;
|
|
69
|
+
/** Reference implementation, for testing the BVH. Never use in a hot path. */
|
|
70
|
+
export declare function raycastMeshBruteForce(bvh: MeshBVH, origin: Vec3, direction: Vec3, options?: RaycastMeshOptions): MeshRayHit | undefined;
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=MeshBVH.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeshBVH.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/MeshBVH.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,sFAAsF;IACtF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,UAAU,OAAO;IACf,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,yCAAyC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AA0BD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CA0ET;AA2BD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAiED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,uFAAuF;IACvF,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,IAAI,EACf,OAAO,GAAE,kBAAuB,GAC/B,UAAU,GAAG,SAAS,CAkCxB;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,IAAI,EACf,OAAO,GAAE,kBAAuB,GAC/B,UAAU,GAAG,SAAS,CAaxB"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
function triangleBounds(positions, indices, triangle) {
|
|
2
|
+
const a = indices[triangle * 3] * 3;
|
|
3
|
+
const b = indices[triangle * 3 + 1] * 3;
|
|
4
|
+
const c = indices[triangle * 3 + 2] * 3;
|
|
5
|
+
const min = [Infinity, Infinity, Infinity];
|
|
6
|
+
const max = [-Infinity, -Infinity, -Infinity];
|
|
7
|
+
for (const base of [a, b, c]) {
|
|
8
|
+
for (let axis = 0; axis < 3; axis += 1) {
|
|
9
|
+
const value = positions[base + axis];
|
|
10
|
+
if (value < min[axis])
|
|
11
|
+
min[axis] = value;
|
|
12
|
+
if (value > max[axis])
|
|
13
|
+
max[axis] = value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
min,
|
|
18
|
+
max,
|
|
19
|
+
centroid: [(min[0] + max[0]) / 2, (min[1] + max[1]) / 2, (min[2] + max[2]) / 2]
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function buildMeshBVH(positions, indices, options = {}) {
|
|
23
|
+
if (indices.length % 3 !== 0) {
|
|
24
|
+
throw new Error("buildMeshBVH requires an index count divisible by 3.");
|
|
25
|
+
}
|
|
26
|
+
const triangleCount = indices.length / 3;
|
|
27
|
+
const maxLeafTriangles = Math.max(1, options.maxLeafTriangles ?? 8);
|
|
28
|
+
const maxDepth = Math.max(1, options.maxDepth ?? 32);
|
|
29
|
+
const bounds = Array.from({ length: triangleCount }, (_, index) => triangleBounds(positions, indices, index));
|
|
30
|
+
const nodes = [];
|
|
31
|
+
let observedDepth = 0;
|
|
32
|
+
function build(triangles, depth) {
|
|
33
|
+
observedDepth = Math.max(observedDepth, depth);
|
|
34
|
+
const min = [Infinity, Infinity, Infinity];
|
|
35
|
+
const max = [-Infinity, -Infinity, -Infinity];
|
|
36
|
+
for (const triangle of triangles) {
|
|
37
|
+
const b = bounds[triangle];
|
|
38
|
+
for (let axis = 0; axis < 3; axis += 1) {
|
|
39
|
+
if (b.min[axis] < min[axis])
|
|
40
|
+
min[axis] = b.min[axis];
|
|
41
|
+
if (b.max[axis] > max[axis])
|
|
42
|
+
max[axis] = b.max[axis];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const index = nodes.length;
|
|
46
|
+
if (triangles.length <= maxLeafTriangles || depth >= maxDepth) {
|
|
47
|
+
nodes.push({ min, max, triangles: [...triangles] });
|
|
48
|
+
return index;
|
|
49
|
+
}
|
|
50
|
+
// Split on the widest axis; median split keeps the tree balanced regardless of
|
|
51
|
+
// how the mesh was authored.
|
|
52
|
+
let axis = 0;
|
|
53
|
+
let widest = -Infinity;
|
|
54
|
+
for (let candidate = 0; candidate < 3; candidate += 1) {
|
|
55
|
+
const extent = max[candidate] - min[candidate];
|
|
56
|
+
if (extent > widest) {
|
|
57
|
+
widest = extent;
|
|
58
|
+
axis = candidate;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Stable sort: centroid, then triangle index. Without the index tiebreak, equal
|
|
62
|
+
// centroids order differently between runs and the tree stops being deterministic.
|
|
63
|
+
const sorted = [...triangles].sort((left, right) => {
|
|
64
|
+
const delta = bounds[left].centroid[axis] - bounds[right].centroid[axis];
|
|
65
|
+
return delta !== 0 ? delta : left - right;
|
|
66
|
+
});
|
|
67
|
+
const mid = Math.floor(sorted.length / 2);
|
|
68
|
+
const leftTriangles = sorted.slice(0, mid);
|
|
69
|
+
const rightTriangles = sorted.slice(mid);
|
|
70
|
+
if (leftTriangles.length === 0 || rightTriangles.length === 0) {
|
|
71
|
+
nodes.push({ min, max, triangles: [...triangles] });
|
|
72
|
+
return index;
|
|
73
|
+
}
|
|
74
|
+
// Reserve this slot before recursing so child indices are stable.
|
|
75
|
+
nodes.push({ min, max });
|
|
76
|
+
const left = build(leftTriangles, depth + 1);
|
|
77
|
+
const right = build(rightTriangles, depth + 1);
|
|
78
|
+
nodes[index] = { min, max, left, right };
|
|
79
|
+
return index;
|
|
80
|
+
}
|
|
81
|
+
if (triangleCount > 0) {
|
|
82
|
+
build(Array.from({ length: triangleCount }, (_, index) => index), 0);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
nodes.push({ min: [0, 0, 0], max: [0, 0, 0], triangles: [] });
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
kind: "aura-mesh-bvh",
|
|
89
|
+
nodes,
|
|
90
|
+
positions,
|
|
91
|
+
indices,
|
|
92
|
+
triangleCount,
|
|
93
|
+
maxDepth: observedDepth
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/** Slab test. `tMax` lets a caller reject nodes beyond an existing best hit. */
|
|
97
|
+
function rayHitsAabb(origin, inverseDirection, node, tMax) {
|
|
98
|
+
let tMin = 0;
|
|
99
|
+
let tFar = tMax;
|
|
100
|
+
for (let axis = 0; axis < 3; axis += 1) {
|
|
101
|
+
const inv = inverseDirection[axis];
|
|
102
|
+
let tNear = (node.min[axis] - origin[axis]) * inv;
|
|
103
|
+
let tFarAxis = (node.max[axis] - origin[axis]) * inv;
|
|
104
|
+
if (tNear > tFarAxis) {
|
|
105
|
+
const swap = tNear;
|
|
106
|
+
tNear = tFarAxis;
|
|
107
|
+
tFarAxis = swap;
|
|
108
|
+
}
|
|
109
|
+
if (tNear > tMin)
|
|
110
|
+
tMin = tNear;
|
|
111
|
+
if (tFarAxis < tFar)
|
|
112
|
+
tFar = tFarAxis;
|
|
113
|
+
if (tMin > tFar)
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
/** Möller–Trumbore. Returns undefined for a miss or a degenerate triangle. */
|
|
119
|
+
function intersectTriangle(positions, indices, triangle, origin, direction) {
|
|
120
|
+
const ia = indices[triangle * 3] * 3;
|
|
121
|
+
const ib = indices[triangle * 3 + 1] * 3;
|
|
122
|
+
const ic = indices[triangle * 3 + 2] * 3;
|
|
123
|
+
const ax = positions[ia], ay = positions[ia + 1], az = positions[ia + 2];
|
|
124
|
+
const bx = positions[ib], by = positions[ib + 1], bz = positions[ib + 2];
|
|
125
|
+
const cx = positions[ic], cy = positions[ic + 1], cz = positions[ic + 2];
|
|
126
|
+
const e1x = bx - ax, e1y = by - ay, e1z = bz - az;
|
|
127
|
+
const e2x = cx - ax, e2y = cy - ay, e2z = cz - az;
|
|
128
|
+
const px = direction[1] * e2z - direction[2] * e2y;
|
|
129
|
+
const py = direction[2] * e2x - direction[0] * e2z;
|
|
130
|
+
const pz = direction[0] * e2y - direction[1] * e2x;
|
|
131
|
+
const det = e1x * px + e1y * py + e1z * pz;
|
|
132
|
+
// A near-zero determinant means the ray is parallel to the plane, or the triangle is
|
|
133
|
+
// degenerate (zero area). Both are misses, and both would divide by ~0 below.
|
|
134
|
+
if (Math.abs(det) < 1e-12)
|
|
135
|
+
return undefined;
|
|
136
|
+
const invDet = 1 / det;
|
|
137
|
+
const tx = origin[0] - ax, ty = origin[1] - ay, tz = origin[2] - az;
|
|
138
|
+
const u = (tx * px + ty * py + tz * pz) * invDet;
|
|
139
|
+
if (u < -1e-9 || u > 1 + 1e-9)
|
|
140
|
+
return undefined;
|
|
141
|
+
const qx = ty * e1z - tz * e1y;
|
|
142
|
+
const qy = tz * e1x - tx * e1z;
|
|
143
|
+
const qz = tx * e1y - ty * e1x;
|
|
144
|
+
const v = (direction[0] * qx + direction[1] * qy + direction[2] * qz) * invDet;
|
|
145
|
+
if (v < -1e-9 || u + v > 1 + 1e-9)
|
|
146
|
+
return undefined;
|
|
147
|
+
const t = (e2x * qx + e2y * qy + e2z * qz) * invDet;
|
|
148
|
+
if (t < 0)
|
|
149
|
+
return undefined;
|
|
150
|
+
let nx = e1y * e2z - e1z * e2y;
|
|
151
|
+
let ny = e1z * e2x - e1x * e2z;
|
|
152
|
+
let nz = e1x * e2y - e1y * e2x;
|
|
153
|
+
const length = Math.hypot(nx, ny, nz);
|
|
154
|
+
if (length < 1e-12)
|
|
155
|
+
return undefined;
|
|
156
|
+
nx /= length;
|
|
157
|
+
ny /= length;
|
|
158
|
+
nz /= length;
|
|
159
|
+
// Orient the normal against the ray so callers always get an outward-facing surface.
|
|
160
|
+
const facing = nx * direction[0] + ny * direction[1] + nz * direction[2];
|
|
161
|
+
const backFace = facing > 0;
|
|
162
|
+
if (backFace) {
|
|
163
|
+
nx = -nx;
|
|
164
|
+
ny = -ny;
|
|
165
|
+
nz = -nz;
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
triangle,
|
|
169
|
+
distance: t,
|
|
170
|
+
point: [origin[0] + direction[0] * t, origin[1] + direction[1] * t, origin[2] + direction[2] * t],
|
|
171
|
+
normal: [nx, ny, nz],
|
|
172
|
+
barycentric: [1 - u - v, u, v],
|
|
173
|
+
backFace
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Nearest triangle hit along a ray, using the BVH.
|
|
178
|
+
*
|
|
179
|
+
* The direction is normalised internally so `distance` is always in world units; a
|
|
180
|
+
* caller passing an unnormalised direction otherwise gets a distance scaled by its
|
|
181
|
+
* length, which is a silent and very confusing error.
|
|
182
|
+
*/
|
|
183
|
+
export function raycastMesh(bvh, origin, direction, options = {}) {
|
|
184
|
+
const length = Math.hypot(direction[0], direction[1], direction[2]);
|
|
185
|
+
if (!Number.isFinite(length) || length < 1e-12)
|
|
186
|
+
return undefined;
|
|
187
|
+
const dir = [direction[0] / length, direction[1] / length, direction[2] / length];
|
|
188
|
+
const maxDistance = options.maxDistance ?? Infinity;
|
|
189
|
+
const inverse = [
|
|
190
|
+
1 / (dir[0] === 0 ? 1e-30 : dir[0]),
|
|
191
|
+
1 / (dir[1] === 0 ? 1e-30 : dir[1]),
|
|
192
|
+
1 / (dir[2] === 0 ? 1e-30 : dir[2])
|
|
193
|
+
];
|
|
194
|
+
let best;
|
|
195
|
+
let bestDistance = maxDistance;
|
|
196
|
+
const stack = bvh.nodes.length > 0 ? [0] : [];
|
|
197
|
+
while (stack.length > 0) {
|
|
198
|
+
const nodeIndex = stack.pop();
|
|
199
|
+
const node = bvh.nodes[nodeIndex];
|
|
200
|
+
if (!node)
|
|
201
|
+
continue;
|
|
202
|
+
if (!rayHitsAabb(origin, inverse, node, bestDistance))
|
|
203
|
+
continue;
|
|
204
|
+
if (node.triangles) {
|
|
205
|
+
for (const triangle of node.triangles) {
|
|
206
|
+
const hit = intersectTriangle(bvh.positions, bvh.indices, triangle, origin, dir);
|
|
207
|
+
if (!hit)
|
|
208
|
+
continue;
|
|
209
|
+
if (hit.distance > bestDistance)
|
|
210
|
+
continue;
|
|
211
|
+
if (options.cullBackFaces && hit.backFace)
|
|
212
|
+
continue;
|
|
213
|
+
best = hit;
|
|
214
|
+
bestDistance = hit.distance;
|
|
215
|
+
}
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
if (node.left !== undefined)
|
|
219
|
+
stack.push(node.left);
|
|
220
|
+
if (node.right !== undefined)
|
|
221
|
+
stack.push(node.right);
|
|
222
|
+
}
|
|
223
|
+
return best;
|
|
224
|
+
}
|
|
225
|
+
/** Reference implementation, for testing the BVH. Never use in a hot path. */
|
|
226
|
+
export function raycastMeshBruteForce(bvh, origin, direction, options = {}) {
|
|
227
|
+
const length = Math.hypot(direction[0], direction[1], direction[2]);
|
|
228
|
+
if (!Number.isFinite(length) || length < 1e-12)
|
|
229
|
+
return undefined;
|
|
230
|
+
const dir = [direction[0] / length, direction[1] / length, direction[2] / length];
|
|
231
|
+
const maxDistance = options.maxDistance ?? Infinity;
|
|
232
|
+
let best;
|
|
233
|
+
for (let triangle = 0; triangle < bvh.triangleCount; triangle += 1) {
|
|
234
|
+
const hit = intersectTriangle(bvh.positions, bvh.indices, triangle, origin, dir);
|
|
235
|
+
if (!hit || hit.distance > maxDistance)
|
|
236
|
+
continue;
|
|
237
|
+
if (options.cullBackFaces && hit.backFace)
|
|
238
|
+
continue;
|
|
239
|
+
if (!best || hit.distance < best.distance)
|
|
240
|
+
best = hit;
|
|
241
|
+
}
|
|
242
|
+
return best;
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=MeshBVH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeshBVH.js","sourceRoot":"","sources":["../../../../packages/physics/src/MeshBVH.ts"],"names":[],"mappings":"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"}
|