@needle-tools/engine 4.13.0 → 4.13.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/CHANGELOG.md +8 -1
- package/README.md +37 -0
- package/components.needle.json +1 -1
- package/custom-elements.json +138 -4
- package/dist/{needle-engine.bundle-CxaKFQVS.min.js → needle-engine.bundle-BNIUpreS.min.js} +107 -107
- package/dist/{needle-engine.bundle-Dl3TFYyv.js → needle-engine.bundle-DauZUYl7.js} +2347 -1845
- package/dist/{needle-engine.bundle-J4k4znv8.umd.cjs → needle-engine.bundle-tjI5Fq2c.umd.cjs} +108 -108
- package/dist/needle-engine.d.ts +4022 -419
- package/dist/needle-engine.js +2 -2
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/lib/engine/engine_context.d.ts +16 -0
- package/lib/engine/engine_context.js +16 -0
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_gameobject.d.ts +72 -0
- package/lib/engine/engine_gameobject.js +38 -0
- package/lib/engine/engine_gameobject.js.map +1 -1
- package/lib/engine/engine_input.d.ts +80 -4
- package/lib/engine/engine_input.js +78 -2
- package/lib/engine/engine_input.js.map +1 -1
- package/lib/engine/engine_math.d.ts +81 -2
- package/lib/engine/engine_math.js +68 -2
- package/lib/engine/engine_math.js.map +1 -1
- package/lib/engine/engine_networking.d.ts +181 -14
- package/lib/engine/engine_networking.js +181 -14
- package/lib/engine/engine_networking.js.map +1 -1
- package/lib/engine/engine_networking_auto.d.ts +35 -8
- package/lib/engine/engine_networking_auto.js +35 -8
- package/lib/engine/engine_networking_auto.js.map +1 -1
- package/lib/engine/engine_physics.d.ts +37 -1
- package/lib/engine/engine_physics.js +37 -1
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine/engine_physics_rapier.d.ts +78 -0
- package/lib/engine/engine_physics_rapier.js +78 -0
- package/lib/engine/engine_physics_rapier.js.map +1 -1
- package/lib/engine/engine_serialization_decorator.d.ts +28 -2
- package/lib/engine/engine_serialization_decorator.js +28 -2
- package/lib/engine/engine_serialization_decorator.js.map +1 -1
- package/lib/engine/engine_time.d.ts +23 -3
- package/lib/engine/engine_time.js +23 -3
- package/lib/engine/engine_time.js.map +1 -1
- package/lib/engine/engine_util_decorator.d.ts +31 -1
- package/lib/engine/engine_util_decorator.js +31 -1
- package/lib/engine/engine_util_decorator.js.map +1 -1
- package/lib/engine/engine_utils.d.ts +21 -5
- package/lib/engine/engine_utils.js +21 -5
- package/lib/engine/engine_utils.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_materialx.d.ts +2 -2
- package/lib/engine/extensions/NEEDLE_materialx.js +2 -2
- package/lib/engine/extensions/NEEDLE_materialx.js.map +1 -1
- package/lib/engine/extensions/index.d.ts +1 -1
- package/lib/engine/extensions/index.js +1 -1
- package/lib/engine/extensions/index.js.map +1 -1
- package/lib/engine-components/AlignmentConstraint.d.ts +23 -3
- package/lib/engine-components/AlignmentConstraint.js +23 -3
- package/lib/engine-components/AlignmentConstraint.js.map +1 -1
- package/lib/engine-components/Animation.d.ts +42 -0
- package/lib/engine-components/Animation.js +36 -0
- package/lib/engine-components/Animation.js.map +1 -1
- package/lib/engine-components/Animator.d.ts +37 -4
- package/lib/engine-components/Animator.js +37 -4
- package/lib/engine-components/Animator.js.map +1 -1
- package/lib/engine-components/AudioListener.d.ts +1 -1
- package/lib/engine-components/AudioListener.js +1 -1
- package/lib/engine-components/AudioSource.d.ts +32 -10
- package/lib/engine-components/AudioSource.js +32 -10
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/AxesHelper.d.ts +22 -3
- package/lib/engine-components/AxesHelper.js +22 -3
- package/lib/engine-components/AxesHelper.js.map +1 -1
- package/lib/engine-components/BasicIKConstraint.d.ts +27 -4
- package/lib/engine-components/BasicIKConstraint.js +27 -4
- package/lib/engine-components/BasicIKConstraint.js.map +1 -1
- package/lib/engine-components/Camera.d.ts +32 -2
- package/lib/engine-components/Camera.js +32 -2
- package/lib/engine-components/Camera.js.map +1 -1
- package/lib/engine-components/CharacterController.d.ts +68 -4
- package/lib/engine-components/CharacterController.js +68 -4
- package/lib/engine-components/CharacterController.js.map +1 -1
- package/lib/engine-components/Collider.d.ts +69 -12
- package/lib/engine-components/Collider.js +69 -12
- package/lib/engine-components/Collider.js.map +1 -1
- package/lib/engine-components/ContactShadows.d.ts +28 -6
- package/lib/engine-components/ContactShadows.js +33 -8
- package/lib/engine-components/ContactShadows.js.map +1 -1
- package/lib/engine-components/DeleteBox.d.ts +43 -2
- package/lib/engine-components/DeleteBox.js +43 -2
- package/lib/engine-components/DeleteBox.js.map +1 -1
- package/lib/engine-components/DeviceFlag.d.ts +21 -2
- package/lib/engine-components/DeviceFlag.js +21 -2
- package/lib/engine-components/DeviceFlag.js.map +1 -1
- package/lib/engine-components/DragControls.d.ts +32 -2
- package/lib/engine-components/DragControls.js +32 -2
- package/lib/engine-components/DragControls.js.map +1 -1
- package/lib/engine-components/DropListener.d.ts +33 -21
- package/lib/engine-components/DropListener.js +33 -21
- package/lib/engine-components/DropListener.js.map +1 -1
- package/lib/engine-components/Duplicatable.d.ts +36 -5
- package/lib/engine-components/Duplicatable.js +36 -5
- package/lib/engine-components/Duplicatable.js.map +1 -1
- package/lib/engine-components/EventList.d.ts +38 -10
- package/lib/engine-components/EventList.js +40 -12
- package/lib/engine-components/EventList.js.map +1 -1
- package/lib/engine-components/EventTrigger.d.ts +1 -1
- package/lib/engine-components/EventTrigger.js +1 -1
- package/lib/engine-components/Fog.d.ts +23 -1
- package/lib/engine-components/Fog.js +23 -1
- package/lib/engine-components/Fog.js.map +1 -1
- package/lib/engine-components/GridHelper.d.ts +18 -2
- package/lib/engine-components/GridHelper.js +18 -2
- package/lib/engine-components/GridHelper.js.map +1 -1
- package/lib/engine-components/GroundProjection.d.ts +24 -2
- package/lib/engine-components/GroundProjection.js +24 -2
- package/lib/engine-components/GroundProjection.js.map +1 -1
- package/lib/engine-components/Interactable.d.ts +17 -2
- package/lib/engine-components/Interactable.js +17 -2
- package/lib/engine-components/Interactable.js.map +1 -1
- package/lib/engine-components/Joints.d.ts +50 -7
- package/lib/engine-components/Joints.js +50 -7
- package/lib/engine-components/Joints.js.map +1 -1
- package/lib/engine-components/LODGroup.d.ts +36 -14
- package/lib/engine-components/LODGroup.js +43 -11
- package/lib/engine-components/LODGroup.js.map +1 -1
- package/lib/engine-components/Light.d.ts +30 -5
- package/lib/engine-components/Light.js +30 -5
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/LookAtConstraint.d.ts +22 -7
- package/lib/engine-components/LookAtConstraint.js +22 -7
- package/lib/engine-components/LookAtConstraint.js.map +1 -1
- package/lib/engine-components/NeedleMenu.d.ts +27 -5
- package/lib/engine-components/NeedleMenu.js +27 -5
- package/lib/engine-components/NeedleMenu.js.map +1 -1
- package/lib/engine-components/NestedGltf.d.ts +39 -4
- package/lib/engine-components/NestedGltf.js +42 -4
- package/lib/engine-components/NestedGltf.js.map +1 -1
- package/lib/engine-components/OffsetConstraint.d.ts +27 -3
- package/lib/engine-components/OffsetConstraint.js +27 -3
- package/lib/engine-components/OffsetConstraint.js.map +1 -1
- package/lib/engine-components/OrbitControls.d.ts +41 -3
- package/lib/engine-components/OrbitControls.js +41 -3
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/PlayerColor.d.ts +1 -1
- package/lib/engine-components/PlayerColor.js +1 -1
- package/lib/engine-components/ReflectionProbe.d.ts +17 -2
- package/lib/engine-components/ReflectionProbe.js +17 -3
- package/lib/engine-components/ReflectionProbe.js.map +1 -1
- package/lib/engine-components/Renderer.d.ts +35 -0
- package/lib/engine-components/Renderer.js +36 -2
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/RigidBody.d.ts +57 -5
- package/lib/engine-components/RigidBody.js +57 -5
- package/lib/engine-components/RigidBody.js.map +1 -1
- package/lib/engine-components/SceneSwitcher.d.ts +11 -0
- package/lib/engine-components/SceneSwitcher.js +11 -0
- package/lib/engine-components/SceneSwitcher.js.map +1 -1
- package/lib/engine-components/ScreenCapture.d.ts +39 -6
- package/lib/engine-components/ScreenCapture.js +39 -6
- package/lib/engine-components/ScreenCapture.js.map +1 -1
- package/lib/engine-components/SeeThrough.d.ts +70 -5
- package/lib/engine-components/SeeThrough.js +70 -5
- package/lib/engine-components/SeeThrough.js.map +1 -1
- package/lib/engine-components/ShadowCatcher.d.ts +56 -4
- package/lib/engine-components/ShadowCatcher.js +56 -4
- package/lib/engine-components/ShadowCatcher.js.map +1 -1
- package/lib/engine-components/Skybox.d.ts +43 -7
- package/lib/engine-components/Skybox.js +43 -7
- package/lib/engine-components/Skybox.js.map +1 -1
- package/lib/engine-components/SmoothFollow.d.ts +66 -7
- package/lib/engine-components/SmoothFollow.js +66 -7
- package/lib/engine-components/SmoothFollow.js.map +1 -1
- package/lib/engine-components/SpatialTrigger.d.ts +48 -1
- package/lib/engine-components/SpatialTrigger.js +48 -1
- package/lib/engine-components/SpatialTrigger.js.map +1 -1
- package/lib/engine-components/SpectatorCamera.d.ts +21 -3
- package/lib/engine-components/SpectatorCamera.js +21 -3
- package/lib/engine-components/SpectatorCamera.js.map +1 -1
- package/lib/engine-components/SyncedRoom.d.ts +7 -1
- package/lib/engine-components/SyncedRoom.js +7 -1
- package/lib/engine-components/SyncedRoom.js.map +1 -1
- package/lib/engine-components/SyncedTransform.d.ts +55 -6
- package/lib/engine-components/SyncedTransform.js +55 -6
- package/lib/engine-components/SyncedTransform.js.map +1 -1
- package/lib/engine-components/TransformGizmo.d.ts +30 -3
- package/lib/engine-components/TransformGizmo.js +30 -3
- package/lib/engine-components/TransformGizmo.js.map +1 -1
- package/lib/engine-components/VideoPlayer.d.ts +33 -6
- package/lib/engine-components/VideoPlayer.js +45 -6
- package/lib/engine-components/VideoPlayer.js.map +1 -1
- package/lib/engine-components/Voip.d.ts +33 -2
- package/lib/engine-components/Voip.js +33 -2
- package/lib/engine-components/Voip.js.map +1 -1
- package/lib/engine-components/export/usdz/USDZExporter.d.ts +47 -13
- package/lib/engine-components/export/usdz/USDZExporter.js +47 -13
- package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
- package/lib/engine-components/particlesystem/ParticleSystem.d.ts +82 -3
- package/lib/engine-components/particlesystem/ParticleSystem.js +82 -3
- package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/Antialiasing.d.ts +1 -0
- package/lib/engine-components/postprocessing/Effects/Antialiasing.js +1 -0
- package/lib/engine-components/postprocessing/Effects/Antialiasing.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/BloomEffect.js +1 -1
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +1 -1
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +1 -1
- package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/DepthOfField.js +1 -1
- package/lib/engine-components/postprocessing/Effects/EffectWrapper.d.ts +1 -0
- package/lib/engine-components/postprocessing/Effects/EffectWrapper.js +1 -0
- package/lib/engine-components/postprocessing/Effects/EffectWrapper.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/Pixelation.js +1 -1
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js +1 -1
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +1 -1
- package/lib/engine-components/postprocessing/Effects/Sharpening.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/Sharpening.js +1 -1
- package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +1 -1
- package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js +1 -1
- package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/Vignette.js +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.js +1 -1
- package/lib/engine-components/postprocessing/Volume.d.ts +1 -1
- package/lib/engine-components/postprocessing/Volume.js +1 -1
- package/lib/engine-components/splines/Spline.d.ts +409 -12
- package/lib/engine-components/splines/Spline.js +409 -12
- package/lib/engine-components/splines/Spline.js.map +1 -1
- package/lib/engine-components/splines/SplineUtils.d.ts +1 -0
- package/lib/engine-components/splines/SplineUtils.js +1 -0
- package/lib/engine-components/splines/SplineUtils.js.map +1 -1
- package/lib/engine-components/splines/SplineWalker.d.ts +3 -1
- package/lib/engine-components/splines/SplineWalker.js +3 -1
- package/lib/engine-components/splines/SplineWalker.js.map +1 -1
- package/lib/engine-components/timeline/PlayableDirector.d.ts +103 -14
- package/lib/engine-components/timeline/PlayableDirector.js +95 -25
- package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
- package/lib/engine-components/timeline/TimelineModels.d.ts +14 -0
- package/lib/engine-components/timeline/TimelineModels.js +4 -0
- package/lib/engine-components/timeline/TimelineModels.js.map +1 -1
- package/lib/engine-components/ui/Button.d.ts +29 -3
- package/lib/engine-components/ui/Button.js +29 -3
- package/lib/engine-components/ui/Button.js.map +1 -1
- package/lib/engine-components/ui/Canvas.d.ts +29 -4
- package/lib/engine-components/ui/Canvas.js +29 -4
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/engine-components/ui/CanvasGroup.d.ts +1 -1
- package/lib/engine-components/ui/CanvasGroup.js +1 -1
- package/lib/engine-components/ui/EventSystem.d.ts +1 -1
- package/lib/engine-components/ui/EventSystem.js +1 -1
- package/lib/engine-components/ui/Graphic.d.ts +1 -0
- package/lib/engine-components/ui/Graphic.js +1 -0
- package/lib/engine-components/ui/Graphic.js.map +1 -1
- package/lib/engine-components/ui/Image.d.ts +22 -3
- package/lib/engine-components/ui/Image.js +22 -3
- package/lib/engine-components/ui/Image.js.map +1 -1
- package/lib/engine-components/ui/InputField.d.ts +1 -1
- package/lib/engine-components/ui/InputField.js +1 -1
- package/lib/engine-components/ui/Layout.d.ts +3 -0
- package/lib/engine-components/ui/Layout.js +3 -0
- package/lib/engine-components/ui/Layout.js.map +1 -1
- package/lib/engine-components/ui/Outline.d.ts +1 -1
- package/lib/engine-components/ui/Outline.js +1 -1
- package/lib/engine-components/ui/PointerEvents.d.ts +1 -1
- package/lib/engine-components/ui/PointerEvents.js +1 -1
- package/lib/engine-components/ui/Raycaster.d.ts +55 -6
- package/lib/engine-components/ui/Raycaster.js +55 -6
- package/lib/engine-components/ui/Raycaster.js.map +1 -1
- package/lib/engine-components/ui/RectTransform.d.ts +1 -1
- package/lib/engine-components/ui/RectTransform.js +1 -1
- package/lib/engine-components/ui/SpatialHtml.d.ts +1 -1
- package/lib/engine-components/ui/SpatialHtml.js +1 -1
- package/lib/engine-components/ui/Text.d.ts +23 -1
- package/lib/engine-components/ui/Text.js +23 -1
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/lib/engine-components/utils/LookAt.d.ts +1 -1
- package/lib/engine-components/utils/LookAt.js +1 -1
- package/lib/engine-components/utils/OpenURL.d.ts +1 -1
- package/lib/engine-components/utils/OpenURL.js +1 -1
- package/lib/engine-components/web/Clickthrough.d.ts +116 -7
- package/lib/engine-components/web/Clickthrough.js +116 -7
- package/lib/engine-components/web/Clickthrough.js.map +1 -1
- package/lib/engine-components/web/CursorFollow.d.ts +171 -7
- package/lib/engine-components/web/CursorFollow.js +171 -7
- package/lib/engine-components/web/CursorFollow.js.map +1 -1
- package/lib/engine-components/web/HoverAnimation.d.ts +140 -11
- package/lib/engine-components/web/HoverAnimation.js +140 -11
- package/lib/engine-components/web/HoverAnimation.js.map +1 -1
- package/lib/engine-components/web/ScrollFollow.d.ts +4 -1
- package/lib/engine-components/web/ScrollFollow.js +4 -1
- package/lib/engine-components/web/ScrollFollow.js.map +1 -1
- package/lib/engine-components/web/ViewBox.d.ts +116 -16
- package/lib/engine-components/web/ViewBox.js +110 -16
- package/lib/engine-components/web/ViewBox.js.map +1 -1
- package/lib/engine-components/webxr/TeleportTarget.d.ts +21 -2
- package/lib/engine-components/webxr/TeleportTarget.js +21 -2
- package/lib/engine-components/webxr/TeleportTarget.js.map +1 -1
- package/lib/engine-components/webxr/WebXR.d.ts +10 -2
- package/lib/engine-components/webxr/WebXR.js +10 -2
- package/lib/engine-components/webxr/WebXR.js.map +1 -1
- package/lib/engine-components/webxr/WebXRAvatar.d.ts +39 -2
- package/lib/engine-components/webxr/WebXRAvatar.js +35 -3
- package/lib/engine-components/webxr/WebXRAvatar.js.map +1 -1
- package/lib/engine-components/webxr/WebXRImageTracking.d.ts +266 -30
- package/lib/engine-components/webxr/WebXRImageTracking.js +266 -30
- package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
- package/lib/engine-components/webxr/WebXRPlaneTracking.d.ts +1 -1
- package/lib/engine-components/webxr/WebXRPlaneTracking.js +1 -1
- package/lib/engine-components/webxr/XRFlag.d.ts +29 -2
- package/lib/engine-components/webxr/XRFlag.js +29 -2
- package/lib/engine-components/webxr/XRFlag.js.map +1 -1
- package/package.json +1 -1
- package/plugins/vite/custom-element-data.js +128 -19
- package/src/engine/engine_context.ts +16 -0
- package/src/engine/engine_gameobject.ts +73 -0
- package/src/engine/engine_input.ts +83 -7
- package/src/engine/engine_math.ts +81 -2
- package/src/engine/engine_networking.ts +186 -17
- package/src/engine/engine_networking_auto.ts +36 -9
- package/src/engine/engine_physics.ts +41 -1
- package/src/engine/engine_physics_rapier.ts +81 -0
- package/src/engine/engine_serialization_decorator.ts +28 -2
- package/src/engine/engine_time.ts +23 -3
- package/src/engine/engine_util_decorator.ts +31 -1
- package/src/engine/engine_utils.ts +21 -5
- package/src/engine/extensions/NEEDLE_materialx.ts +5 -4
- package/src/engine/extensions/index.ts +2 -2
- package/src/engine-components/AlignmentConstraint.ts +24 -4
- package/src/engine-components/Animation.ts +44 -2
- package/src/engine-components/Animator.ts +40 -7
- package/src/engine-components/AudioListener.ts +1 -1
- package/src/engine-components/AudioSource.ts +37 -15
- package/src/engine-components/AxesHelper.ts +23 -4
- package/src/engine-components/BasicIKConstraint.ts +28 -5
- package/src/engine-components/Camera.ts +33 -3
- package/src/engine-components/CharacterController.ts +74 -7
- package/src/engine-components/Collider.ts +78 -21
- package/src/engine-components/ContactShadows.ts +41 -11
- package/src/engine-components/DeleteBox.ts +43 -2
- package/src/engine-components/DeviceFlag.ts +22 -3
- package/src/engine-components/DragControls.ts +32 -2
- package/src/engine-components/DropListener.ts +41 -29
- package/src/engine-components/Duplicatable.ts +37 -6
- package/src/engine-components/EventList.ts +43 -15
- package/src/engine-components/EventTrigger.ts +1 -1
- package/src/engine-components/Fog.ts +23 -1
- package/src/engine-components/GridHelper.ts +18 -2
- package/src/engine-components/GroundProjection.ts +25 -3
- package/src/engine-components/Interactable.ts +17 -2
- package/src/engine-components/Joints.ts +51 -8
- package/src/engine-components/LODGroup.ts +45 -11
- package/src/engine-components/Light.ts +35 -13
- package/src/engine-components/LookAtConstraint.ts +26 -8
- package/src/engine-components/NeedleMenu.ts +29 -7
- package/src/engine-components/NestedGltf.ts +40 -4
- package/src/engine-components/OffsetConstraint.ts +27 -3
- package/src/engine-components/OrbitControls.ts +41 -3
- package/src/engine-components/PlayerColor.ts +1 -1
- package/src/engine-components/ReflectionProbe.ts +19 -5
- package/src/engine-components/Renderer.ts +35 -1
- package/src/engine-components/RigidBody.ts +64 -8
- package/src/engine-components/SceneSwitcher.ts +11 -0
- package/src/engine-components/ScreenCapture.ts +42 -9
- package/src/engine-components/SeeThrough.ts +76 -9
- package/src/engine-components/ShadowCatcher.ts +61 -6
- package/src/engine-components/Skybox.ts +48 -12
- package/src/engine-components/SmoothFollow.ts +68 -7
- package/src/engine-components/SpatialTrigger.ts +51 -4
- package/src/engine-components/SpectatorCamera.ts +23 -5
- package/src/engine-components/SyncedRoom.ts +8 -2
- package/src/engine-components/SyncedTransform.ts +59 -10
- package/src/engine-components/TransformGizmo.ts +31 -4
- package/src/engine-components/VideoPlayer.ts +48 -6
- package/src/engine-components/Voip.ts +33 -2
- package/src/engine-components/export/usdz/USDZExporter.ts +47 -13
- package/src/engine-components/particlesystem/ParticleSystem.ts +84 -5
- package/src/engine-components/postprocessing/Effects/Antialiasing.ts +1 -0
- package/src/engine-components/postprocessing/Effects/BloomEffect.ts +1 -1
- package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +1 -1
- package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +1 -1
- package/src/engine-components/postprocessing/Effects/DepthOfField.ts +1 -1
- package/src/engine-components/postprocessing/Effects/EffectWrapper.ts +1 -0
- package/src/engine-components/postprocessing/Effects/Pixelation.ts +1 -1
- package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.ts +1 -1
- package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +1 -1
- package/src/engine-components/postprocessing/Effects/Sharpening.ts +1 -1
- package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +1 -1
- package/src/engine-components/postprocessing/Effects/Tonemapping.ts +1 -1
- package/src/engine-components/postprocessing/Effects/Vignette.ts +1 -1
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +1 -1
- package/src/engine-components/postprocessing/Volume.ts +1 -1
- package/src/engine-components/splines/Spline.ts +412 -14
- package/src/engine-components/splines/SplineUtils.ts +1 -0
- package/src/engine-components/splines/SplineWalker.ts +4 -2
- package/src/engine-components/timeline/PlayableDirector.ts +108 -27
- package/src/engine-components/timeline/SignalAsset.ts +1 -1
- package/src/engine-components/timeline/TimelineModels.ts +18 -2
- package/src/engine-components/ui/Button.ts +29 -3
- package/src/engine-components/ui/Canvas.ts +29 -4
- package/src/engine-components/ui/CanvasGroup.ts +2 -2
- package/src/engine-components/ui/EventSystem.ts +1 -1
- package/src/engine-components/ui/Graphic.ts +1 -0
- package/src/engine-components/ui/Image.ts +22 -3
- package/src/engine-components/ui/InputField.ts +2 -2
- package/src/engine-components/ui/Layout.ts +3 -0
- package/src/engine-components/ui/Outline.ts +1 -1
- package/src/engine-components/ui/PointerEvents.ts +1 -1
- package/src/engine-components/ui/Raycaster.ts +57 -8
- package/src/engine-components/ui/RectTransform.ts +2 -2
- package/src/engine-components/ui/SpatialHtml.ts +1 -1
- package/src/engine-components/ui/Text.ts +24 -2
- package/src/engine-components/utils/LookAt.ts +1 -1
- package/src/engine-components/utils/OpenURL.ts +1 -1
- package/src/engine-components/web/Clickthrough.ts +119 -10
- package/src/engine-components/web/CursorFollow.ts +174 -9
- package/src/engine-components/web/HoverAnimation.ts +142 -13
- package/src/engine-components/web/ScrollFollow.ts +4 -1
- package/src/engine-components/web/ViewBox.ts +118 -18
- package/src/engine-components/webxr/TeleportTarget.ts +23 -4
- package/src/engine-components/webxr/WebXR.ts +11 -3
- package/src/engine-components/webxr/WebXRAvatar.ts +41 -4
- package/src/engine-components/webxr/WebXRImageTracking.ts +282 -38
- package/src/engine-components/webxr/WebXRPlaneTracking.ts +1 -1
- package/src/engine-components/webxr/XRFlag.ts +30 -3
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { InstantiateContext } from "../engine/engine_gameobject.js";
|
|
2
2
|
import type { IEventList } from "../engine/engine_types.js";
|
|
3
|
+
/**
|
|
4
|
+
* CallInfo represents a single callback method that can be invoked by the {@link EventList}.
|
|
5
|
+
*/
|
|
3
6
|
export declare class CallInfo {
|
|
4
7
|
/**
|
|
5
8
|
* When the CallInfo is enabled it will be invoked when the EventList is invoked
|
|
@@ -23,24 +26,49 @@ export declare class EventListEvent<TArgs extends any> extends Event {
|
|
|
23
26
|
args?: TArgs;
|
|
24
27
|
}
|
|
25
28
|
/**
|
|
26
|
-
*
|
|
29
|
+
* EventList manages a list of callbacks that can be invoked together.
|
|
30
|
+
* Used for Unity-style events that can be configured in the editor (Unity or Blender).
|
|
31
|
+
*
|
|
32
|
+
* **Serialization:**
|
|
33
|
+
* EventLists are serializable - callbacks configured in Unity/Blender will work at runtime.
|
|
34
|
+
* Mark fields with `@serializable(EventList)` for editor support.
|
|
35
|
+
*
|
|
36
|
+
* **Usage patterns:**
|
|
37
|
+
* - Button click handlers
|
|
38
|
+
* - Animation events
|
|
39
|
+
* - Custom component callbacks
|
|
40
|
+
* - Scene loading events
|
|
41
|
+
*
|
|
42
|
+
* 
|
|
43
|
+
* *Screenshot of a Unity component with an EventList field*
|
|
27
44
|
*
|
|
28
|
-
*
|
|
45
|
+
* 
|
|
46
|
+
* *Screenshot of a Blender component with an EventList field*
|
|
47
|
+
*
|
|
48
|
+
* @example Create and use an EventList
|
|
29
49
|
* ```ts
|
|
30
|
-
* //
|
|
31
|
-
*
|
|
50
|
+
* // Define in your component
|
|
51
|
+
* @serializable(EventList)
|
|
52
|
+
* onClick: EventList = new EventList();
|
|
53
|
+
*
|
|
54
|
+
* // Add listeners
|
|
55
|
+
* this.onClick.addEventListener(() => console.log("Clicked!"));
|
|
32
56
|
*
|
|
33
|
-
* //
|
|
34
|
-
* onClick.
|
|
35
|
-
*
|
|
36
|
-
* });
|
|
57
|
+
* // Invoke all listeners
|
|
58
|
+
* this.onClick.invoke();
|
|
59
|
+
* ```
|
|
37
60
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
61
|
+
* @example Listen with arguments
|
|
62
|
+
* ```ts
|
|
63
|
+
* const onScore = new EventList<{ points: number }>();
|
|
64
|
+
* onScore.addEventListener(data => console.log("Scored:", data.points));
|
|
65
|
+
* onScore.invoke({ points: 100 });
|
|
40
66
|
* ```
|
|
41
67
|
*
|
|
42
68
|
* @category Events
|
|
43
69
|
* @group Utilities
|
|
70
|
+
* @see {@link CallInfo} for individual callback configuration
|
|
71
|
+
* @see {@link Button} for UI button events
|
|
44
72
|
*/
|
|
45
73
|
export declare class EventList<TArgs extends any = any> implements IEventList {
|
|
46
74
|
/** checked during instantiate to create a new instance */
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { isDevEnvironment } from "../engine/debug/index.js";
|
|
2
2
|
const argumentsBuffer = new Array();
|
|
3
|
+
/**
|
|
4
|
+
* CallInfo represents a single callback method that can be invoked by the {@link EventList}.
|
|
5
|
+
*/
|
|
3
6
|
export class CallInfo {
|
|
4
7
|
/**
|
|
5
8
|
* When the CallInfo is enabled it will be invoked when the EventList is invoked
|
|
@@ -83,24 +86,49 @@ export class EventListEvent extends Event {
|
|
|
83
86
|
args;
|
|
84
87
|
}
|
|
85
88
|
/**
|
|
86
|
-
*
|
|
89
|
+
* EventList manages a list of callbacks that can be invoked together.
|
|
90
|
+
* Used for Unity-style events that can be configured in the editor (Unity or Blender).
|
|
91
|
+
*
|
|
92
|
+
* **Serialization:**
|
|
93
|
+
* EventLists are serializable - callbacks configured in Unity/Blender will work at runtime.
|
|
94
|
+
* Mark fields with `@serializable(EventList)` for editor support.
|
|
95
|
+
*
|
|
96
|
+
* **Usage patterns:**
|
|
97
|
+
* - Button click handlers
|
|
98
|
+
* - Animation events
|
|
99
|
+
* - Custom component callbacks
|
|
100
|
+
* - Scene loading events
|
|
101
|
+
*
|
|
102
|
+
* 
|
|
103
|
+
* *Screenshot of a Unity component with an EventList field*
|
|
87
104
|
*
|
|
88
|
-
*
|
|
105
|
+
* 
|
|
106
|
+
* *Screenshot of a Blender component with an EventList field*
|
|
107
|
+
*
|
|
108
|
+
* @example Create and use an EventList
|
|
89
109
|
* ```ts
|
|
90
|
-
* //
|
|
91
|
-
*
|
|
110
|
+
* // Define in your component
|
|
111
|
+
* @serializable(EventList)
|
|
112
|
+
* onClick: EventList = new EventList();
|
|
113
|
+
*
|
|
114
|
+
* // Add listeners
|
|
115
|
+
* this.onClick.addEventListener(() => console.log("Clicked!"));
|
|
92
116
|
*
|
|
93
|
-
* //
|
|
94
|
-
* onClick.
|
|
95
|
-
*
|
|
96
|
-
* });
|
|
117
|
+
* // Invoke all listeners
|
|
118
|
+
* this.onClick.invoke();
|
|
119
|
+
* ```
|
|
97
120
|
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
121
|
+
* @example Listen with arguments
|
|
122
|
+
* ```ts
|
|
123
|
+
* const onScore = new EventList<{ points: number }>();
|
|
124
|
+
* onScore.addEventListener(data => console.log("Scored:", data.points));
|
|
125
|
+
* onScore.invoke({ points: 100 });
|
|
100
126
|
* ```
|
|
101
127
|
*
|
|
102
128
|
* @category Events
|
|
103
129
|
* @group Utilities
|
|
130
|
+
* @see {@link CallInfo} for individual callback configuration
|
|
131
|
+
* @see {@link Button} for UI button events
|
|
104
132
|
*/
|
|
105
133
|
export class EventList {
|
|
106
134
|
/** checked during instantiate to create a new instance */
|
|
@@ -127,10 +155,10 @@ export class EventList {
|
|
|
127
155
|
// remap the arguments to the new instance (e.g. if an object is passed as an argument to the event list and this object has been cloned we want to remap it to the clone)
|
|
128
156
|
const newArguments = method.arguments?.map(arg => {
|
|
129
157
|
if (arg instanceof Object && arg.uuid) {
|
|
130
|
-
return ctx[arg.uuid];
|
|
158
|
+
return ctx[arg.uuid].clone;
|
|
131
159
|
}
|
|
132
160
|
else if (arg?.isComponent) {
|
|
133
|
-
return ctx[arg.guid];
|
|
161
|
+
return ctx[arg.guid].clone;
|
|
134
162
|
}
|
|
135
163
|
return arg;
|
|
136
164
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventList.js","sourceRoot":"","sources":["../../src/engine-components/EventList.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EventList.js","sourceRoot":"","sources":["../../src/engine-components/EventList.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ declare class TriggerEvent {
|
|
|
7
7
|
callback: EventList<any>;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
* The EventTrigger component is used to trigger events when certain pointer events occur on the GameObject.
|
|
10
|
+
* The [EventTrigger](https://engine.needle.tools/docs/api/EventTrigger) component is used to trigger events when certain pointer events occur on the GameObject.
|
|
11
11
|
* It implements the {@link IPointerEventHandler} interface and can be used to expose events to the user in the editor without writing code.
|
|
12
12
|
*
|
|
13
13
|
* @summary Triggers events on pointer interactions
|
|
@@ -19,7 +19,7 @@ __decorate([
|
|
|
19
19
|
serializable(EventList)
|
|
20
20
|
], TriggerEvent.prototype, "callback", void 0);
|
|
21
21
|
/**
|
|
22
|
-
* The EventTrigger component is used to trigger events when certain pointer events occur on the GameObject.
|
|
22
|
+
* The [EventTrigger](https://engine.needle.tools/docs/api/EventTrigger) component is used to trigger events when certain pointer events occur on the GameObject.
|
|
23
23
|
* It implements the {@link IPointerEventHandler} interface and can be used to expose events to the user in the editor without writing code.
|
|
24
24
|
*
|
|
25
25
|
* @summary Triggers events on pointer interactions
|
|
@@ -1,12 +1,34 @@
|
|
|
1
1
|
import { Color, Fog as Fog3 } from "three";
|
|
2
2
|
import { Behaviour } from "./Component.js";
|
|
3
|
+
/**
|
|
4
|
+
* Fog rendering mode
|
|
5
|
+
*/
|
|
3
6
|
declare enum FogMode {
|
|
7
|
+
/** Linear fog increases uniformly with distance */
|
|
4
8
|
Linear = 1,
|
|
9
|
+
/** Exponential fog increases exponentially with distance */
|
|
5
10
|
Exponential = 2,
|
|
11
|
+
/** Exponential squared fog for denser falloff */
|
|
6
12
|
ExponentialSquared = 3
|
|
7
13
|
}
|
|
8
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Adds distance-based fog effect to the scene.
|
|
16
|
+
* When enabled, objects will fade into the fog color based on their distance from the camera.
|
|
17
|
+
*
|
|
18
|
+
* This component is automatically added to the scene when fog is enabled in the editor.
|
|
19
|
+
* For setting fog from code you can simply use `scene.fog = new Fog3(color, near, far)` without adding this component.
|
|
20
|
+
*
|
|
21
|
+
* @summary Adds fog effect to the scene
|
|
22
|
+
* @category Rendering
|
|
23
|
+
* @group Components
|
|
24
|
+
* @link https://threejs.org/docs/#Fog
|
|
25
|
+
*/
|
|
9
26
|
export declare class Fog extends Behaviour {
|
|
27
|
+
/**
|
|
28
|
+
* The underlying Three.js Fog object. You can modify its properties directly for more advanced control.
|
|
29
|
+
* @remarks The Fog component provides convenient access to common fog properties like `near`, `far`, and `color`. Modifying those will update the underlying `fog` object accordingly. However, you can also access and modify the `fog` object directly for more advanced use cases, such as changing the fog mode or using a custom shader.
|
|
30
|
+
* @link https://threejs.org/docs/#Fog for available properties and methods on the Fog object.
|
|
31
|
+
*/
|
|
10
32
|
get fog(): Fog3;
|
|
11
33
|
get mode(): FogMode;
|
|
12
34
|
set near(value: number);
|
|
@@ -7,14 +7,36 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { Color, Fog as Fog3 } from "three";
|
|
8
8
|
import { serializable } from "../engine/engine_serialization.js";
|
|
9
9
|
import { Behaviour } from "./Component.js";
|
|
10
|
+
/**
|
|
11
|
+
* Fog rendering mode
|
|
12
|
+
*/
|
|
10
13
|
var FogMode;
|
|
11
14
|
(function (FogMode) {
|
|
15
|
+
/** Linear fog increases uniformly with distance */
|
|
12
16
|
FogMode[FogMode["Linear"] = 1] = "Linear";
|
|
17
|
+
/** Exponential fog increases exponentially with distance */
|
|
13
18
|
FogMode[FogMode["Exponential"] = 2] = "Exponential";
|
|
19
|
+
/** Exponential squared fog for denser falloff */
|
|
14
20
|
FogMode[FogMode["ExponentialSquared"] = 3] = "ExponentialSquared";
|
|
15
21
|
})(FogMode || (FogMode = {}));
|
|
16
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Adds distance-based fog effect to the scene.
|
|
24
|
+
* When enabled, objects will fade into the fog color based on their distance from the camera.
|
|
25
|
+
*
|
|
26
|
+
* This component is automatically added to the scene when fog is enabled in the editor.
|
|
27
|
+
* For setting fog from code you can simply use `scene.fog = new Fog3(color, near, far)` without adding this component.
|
|
28
|
+
*
|
|
29
|
+
* @summary Adds fog effect to the scene
|
|
30
|
+
* @category Rendering
|
|
31
|
+
* @group Components
|
|
32
|
+
* @link https://threejs.org/docs/#Fog
|
|
33
|
+
*/
|
|
17
34
|
export class Fog extends Behaviour {
|
|
35
|
+
/**
|
|
36
|
+
* The underlying Three.js Fog object. You can modify its properties directly for more advanced control.
|
|
37
|
+
* @remarks The Fog component provides convenient access to common fog properties like `near`, `far`, and `color`. Modifying those will update the underlying `fog` object accordingly. However, you can also access and modify the `fog` object directly for more advanced use cases, such as changing the fog mode or using a custom shader.
|
|
38
|
+
* @link https://threejs.org/docs/#Fog for available properties and methods on the Fog object.
|
|
39
|
+
*/
|
|
18
40
|
get fog() {
|
|
19
41
|
if (!this._fog)
|
|
20
42
|
this._fog = new Fog3(0x000000, 0, 50);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fog.js","sourceRoot":"","sources":["../../src/engine-components/Fog.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,IAAK,
|
|
1
|
+
{"version":3,"file":"Fog.js","sourceRoot":"","sources":["../../src/engine-components/Fog.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C;;GAEG;AACH,IAAK,OAOJ;AAPD,WAAK,OAAO;IACR,mDAAmD;IACnD,yCAAU,CAAA;IACV,4DAA4D;IAC5D,mDAAe,CAAA;IACf,iDAAiD;IACjD,iEAAsB,CAAA;AAC1B,CAAC,EAPI,OAAO,KAAP,OAAO,QAOX;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,GAAI,SAAQ,SAAS;IAE9B;;;;OAIG;IACH,IAAI,GAAG;QACH,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAGD,IAAI,IAAI,CAAC,KAAa;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACzB,CAAC;IAGD,IAAI,GAAG,CAAC,KAAa;QACjB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACxB,CAAC;IAGD,IAAI,KAAK,CAAC,KAAY;QAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEO,IAAI,CAAQ;IAEpB,QAAQ;QACJ,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9B,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;IAC9B,CAAC;CAGJ;AAnCG;IADC,YAAY,EAAE;+BAGd;AAMD;IADC,YAAY,EAAE;8BAGd;AAMD;IADC,YAAY,CAAC,KAAK,CAAC;gCAGnB"}
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
import { Color, ColorRepresentation } from "three";
|
|
2
2
|
import { Behaviour } from "./Component.js";
|
|
3
3
|
/**
|
|
4
|
-
* GridHelper
|
|
4
|
+
* The [GridHelper](https://engine.needle.tools/docs/api/GridHelper) displays a flat grid in the scene for visual reference.
|
|
5
|
+
* Useful for debugging, level design, or providing spatial context.
|
|
6
|
+
*
|
|
7
|
+
* 
|
|
8
|
+
*
|
|
9
|
+
* **Properties:**
|
|
10
|
+
* - `color0` / `color1` - Alternating grid line colors
|
|
11
|
+
* - `isGizmo` - When true, only shows when gizmos are enabled
|
|
12
|
+
*
|
|
13
|
+
* @example Add a grid to the scene
|
|
14
|
+
* ```ts
|
|
15
|
+
* const grid = myObject.addComponent(GridHelper);
|
|
16
|
+
* grid.color0 = new Color(0.3, 0.3, 0.3);
|
|
17
|
+
* grid.color1 = new Color(0.5, 0.5, 0.5);
|
|
18
|
+
* ```
|
|
5
19
|
*
|
|
6
|
-
* @example Display a grid in the scene
|
|
7
20
|
* @category Helpers
|
|
8
21
|
* @group Components
|
|
22
|
+
* @see {@link Gizmos} for debug visualization
|
|
23
|
+
*
|
|
24
|
+
* 
|
|
9
25
|
*/
|
|
10
26
|
export declare class GridHelper extends Behaviour {
|
|
11
27
|
isGizmo: boolean;
|
|
@@ -9,11 +9,27 @@ import * as params from "../engine/engine_default_parameters.js";
|
|
|
9
9
|
import { serializable } from "../engine/engine_serialization_decorator.js";
|
|
10
10
|
import { Behaviour } from "./Component.js";
|
|
11
11
|
/**
|
|
12
|
-
* GridHelper
|
|
12
|
+
* The [GridHelper](https://engine.needle.tools/docs/api/GridHelper) displays a flat grid in the scene for visual reference.
|
|
13
|
+
* Useful for debugging, level design, or providing spatial context.
|
|
14
|
+
*
|
|
15
|
+
* 
|
|
16
|
+
*
|
|
17
|
+
* **Properties:**
|
|
18
|
+
* - `color0` / `color1` - Alternating grid line colors
|
|
19
|
+
* - `isGizmo` - When true, only shows when gizmos are enabled
|
|
20
|
+
*
|
|
21
|
+
* @example Add a grid to the scene
|
|
22
|
+
* ```ts
|
|
23
|
+
* const grid = myObject.addComponent(GridHelper);
|
|
24
|
+
* grid.color0 = new Color(0.3, 0.3, 0.3);
|
|
25
|
+
* grid.color1 = new Color(0.5, 0.5, 0.5);
|
|
26
|
+
* ```
|
|
13
27
|
*
|
|
14
|
-
* @example Display a grid in the scene
|
|
15
28
|
* @category Helpers
|
|
16
29
|
* @group Components
|
|
30
|
+
* @see {@link Gizmos} for debug visualization
|
|
31
|
+
*
|
|
32
|
+
* 
|
|
17
33
|
*/
|
|
18
34
|
export class GridHelper extends Behaviour {
|
|
19
35
|
isGizmo = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridHelper.js","sourceRoot":"","sources":["../../src/engine-components/GridHelper.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAuB,UAAU,IAAI,WAAW,EAAE,MAAM,OAAO,CAAC;AAE9E,OAAO,KAAK,MAAM,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"GridHelper.js","sourceRoot":"","sources":["../../src/engine-components/GridHelper.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAuB,UAAU,IAAI,WAAW,EAAE,MAAM,OAAO,CAAC;AAE9E,OAAO,KAAK,MAAM,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAG9B,OAAO,GAAY,KAAK,CAAC;IAEhC,MAAM,CAA+B;IAErC,MAAM,CAA+B;IAE7B,UAAU,CAAsB;IAChC,IAAI,CAAU;IACd,SAAS,CAAU;IACnB,MAAM,CAAU;IAExB,gBAAgB;IAChB,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;QAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/H,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBACzB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB;IAChB,SAAS;QACL,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;IACL,CAAC;CACJ;AAjCG;IADC,YAAY,EAAE;2CACiB;AAEhC;IADC,YAAY,CAAC,KAAK,CAAC;0CACiB;AAErC;IADC,YAAY,CAAC,KAAK,CAAC;0CACiB"}
|
|
@@ -1,12 +1,34 @@
|
|
|
1
1
|
import { Behaviour } from "./Component.js";
|
|
2
2
|
/**
|
|
3
|
-
* GroundProjectedEnv
|
|
3
|
+
* The [GroundProjectedEnv](https://engine.needle.tools/docs/api/GroundProjectedEnv) projects the environment map onto a virtual ground plane.
|
|
4
|
+
* Creates a realistic floor from 360° panoramas/HDRIs by deforming the skybox
|
|
5
|
+
* into a hemisphere with a beveled floor.
|
|
4
6
|
*
|
|
5
|
-
*
|
|
7
|
+
*
|
|
8
|
+
* [](https://engine.needle.tools/samples/ground-projection)
|
|
9
|
+
*
|
|
10
|
+
* **Key properties:**
|
|
11
|
+
* - `radius` - Size of the projection sphere (keep camera inside)
|
|
12
|
+
* - `height` - How high the original photo was taken (affects floor magnification)
|
|
13
|
+
* - `autoFit` - Automatically center and position at ground level
|
|
14
|
+
* - `arBlending` - Blend with real-world in AR (0=hidden, 1=visible)
|
|
15
|
+
*
|
|
16
|
+
* **Debug:** Use `?debuggroundprojection` URL parameter.
|
|
17
|
+
*
|
|
18
|
+
* @example Apply ground projection
|
|
19
|
+
* ```ts
|
|
20
|
+
* const ground = myObject.getComponent(GroundProjectedEnv);
|
|
21
|
+
* ground.radius = 100;
|
|
22
|
+
* ground.height = 2;
|
|
23
|
+
* ground.apply();
|
|
24
|
+
* ```
|
|
6
25
|
*
|
|
7
26
|
* @summary Projects the environment map onto the ground
|
|
8
27
|
* @category Rendering
|
|
9
28
|
* @group Components
|
|
29
|
+
* @see {@link Camera} for environment/skybox settings
|
|
30
|
+
* @see {@link ContactShadows} for ground shadows
|
|
31
|
+
* @link https://engine.needle.tools/samples/ground-projection for a demo of ground projection
|
|
10
32
|
*/
|
|
11
33
|
export declare class GroundProjectedEnv extends Behaviour {
|
|
12
34
|
/**
|
|
@@ -13,13 +13,35 @@ import { delayForFrames, getParam, Watch as Watch } from "../engine/engine_utils
|
|
|
13
13
|
import { Behaviour } from "./Component.js";
|
|
14
14
|
const debug = getParam("debuggroundprojection");
|
|
15
15
|
/**
|
|
16
|
-
* GroundProjectedEnv
|
|
16
|
+
* The [GroundProjectedEnv](https://engine.needle.tools/docs/api/GroundProjectedEnv) projects the environment map onto a virtual ground plane.
|
|
17
|
+
* Creates a realistic floor from 360° panoramas/HDRIs by deforming the skybox
|
|
18
|
+
* into a hemisphere with a beveled floor.
|
|
17
19
|
*
|
|
18
|
-
*
|
|
20
|
+
*
|
|
21
|
+
* [](https://engine.needle.tools/samples/ground-projection)
|
|
22
|
+
*
|
|
23
|
+
* **Key properties:**
|
|
24
|
+
* - `radius` - Size of the projection sphere (keep camera inside)
|
|
25
|
+
* - `height` - How high the original photo was taken (affects floor magnification)
|
|
26
|
+
* - `autoFit` - Automatically center and position at ground level
|
|
27
|
+
* - `arBlending` - Blend with real-world in AR (0=hidden, 1=visible)
|
|
28
|
+
*
|
|
29
|
+
* **Debug:** Use `?debuggroundprojection` URL parameter.
|
|
30
|
+
*
|
|
31
|
+
* @example Apply ground projection
|
|
32
|
+
* ```ts
|
|
33
|
+
* const ground = myObject.getComponent(GroundProjectedEnv);
|
|
34
|
+
* ground.radius = 100;
|
|
35
|
+
* ground.height = 2;
|
|
36
|
+
* ground.apply();
|
|
37
|
+
* ```
|
|
19
38
|
*
|
|
20
39
|
* @summary Projects the environment map onto the ground
|
|
21
40
|
* @category Rendering
|
|
22
41
|
* @group Components
|
|
42
|
+
* @see {@link Camera} for environment/skybox settings
|
|
43
|
+
* @see {@link ContactShadows} for ground shadows
|
|
44
|
+
* @link https://engine.needle.tools/samples/ground-projection for a demo of ground projection
|
|
23
45
|
*/
|
|
24
46
|
export class GroundProjectedEnv extends Behaviour {
|
|
25
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroundProjection.js","sourceRoot":"","sources":["../../src/engine-components/GroundProjection.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAElG,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,iCAAiC,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC9J,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,KAAK,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAEhD
|
|
1
|
+
{"version":3,"file":"GroundProjection.js","sourceRoot":"","sources":["../../src/engine-components/GroundProjection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
import { Behaviour } from "./Component.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* UsageMarker indicates an object is currently being interacted with.
|
|
4
|
+
* Components like {@link DragControls} add this to prevent accidental deletion
|
|
5
|
+
* by {@link DeleteBox} while the user is dragging.
|
|
6
|
+
*
|
|
7
|
+
* @example Check if object is in use
|
|
8
|
+
* ```ts
|
|
9
|
+
* const marker = object.getComponent(UsageMarker);
|
|
10
|
+
* if (marker?.isUsed) {
|
|
11
|
+
* console.log("Object is being used by:", marker.usedBy);
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @summary Marks object as currently being interacted with
|
|
16
|
+
* @category Interactivity
|
|
17
|
+
* @group Components
|
|
18
|
+
* @see {@link DeleteBox} respects this marker
|
|
19
|
+
* @see {@link DragControls} adds this during drag
|
|
5
20
|
*/
|
|
6
21
|
export declare class UsageMarker extends Behaviour {
|
|
7
22
|
isUsed: boolean;
|
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
import { Behaviour } from "./Component.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* UsageMarker indicates an object is currently being interacted with.
|
|
4
|
+
* Components like {@link DragControls} add this to prevent accidental deletion
|
|
5
|
+
* by {@link DeleteBox} while the user is dragging.
|
|
6
|
+
*
|
|
7
|
+
* @example Check if object is in use
|
|
8
|
+
* ```ts
|
|
9
|
+
* const marker = object.getComponent(UsageMarker);
|
|
10
|
+
* if (marker?.isUsed) {
|
|
11
|
+
* console.log("Object is being used by:", marker.usedBy);
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @summary Marks object as currently being interacted with
|
|
16
|
+
* @category Interactivity
|
|
17
|
+
* @group Components
|
|
18
|
+
* @see {@link DeleteBox} respects this marker
|
|
19
|
+
* @see {@link DragControls} adds this during drag
|
|
5
20
|
*/
|
|
6
21
|
export class UsageMarker extends Behaviour {
|
|
7
22
|
isUsed = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Interactable.js","sourceRoot":"","sources":["../../src/engine-components/Interactable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"Interactable.js","sourceRoot":"","sources":["../../src/engine-components/Interactable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAE/B,MAAM,GAAY,IAAI,CAAC;IACvB,MAAM,GAAQ,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,kBAAkB;AAClB,MAAM,OAAO,YAAa,SAAQ,SAAS;CAAG"}
|
|
@@ -2,12 +2,22 @@ import { Vector3 } from "three";
|
|
|
2
2
|
import { Behaviour } from "./Component.js";
|
|
3
3
|
import { Rigidbody } from "./RigidBody.js";
|
|
4
4
|
/**
|
|
5
|
-
* Base class for physics joints
|
|
6
|
-
*
|
|
5
|
+
* Base class for physics joints that connect two {@link Rigidbody} components.
|
|
6
|
+
* Joints constrain how two bodies can move relative to each other.
|
|
7
|
+
*
|
|
8
|
+
* The joint is created between:
|
|
9
|
+
* - The {@link Rigidbody} on this GameObject (automatically found)
|
|
10
|
+
* - The {@link connectedBody} Rigidbody you specify
|
|
11
|
+
*
|
|
12
|
+
* @summary Connect two Rigidbodies with physics constraints
|
|
7
13
|
* @category Physics
|
|
8
14
|
* @group Components
|
|
15
|
+
* @see {@link FixedJoint} for rigid connections
|
|
16
|
+
* @see {@link HingeJoint} for rotating connections
|
|
17
|
+
* @see {@link Rigidbody} for physics bodies
|
|
9
18
|
*/
|
|
10
19
|
export declare abstract class Joint extends Behaviour {
|
|
20
|
+
/** The other Rigidbody to connect to */
|
|
11
21
|
connectedBody?: Rigidbody;
|
|
12
22
|
get rigidBody(): Rigidbody | null;
|
|
13
23
|
private _rigidBody;
|
|
@@ -16,24 +26,57 @@ export declare abstract class Joint extends Behaviour {
|
|
|
16
26
|
protected abstract createJoint(self: Rigidbody, other: Rigidbody): any;
|
|
17
27
|
}
|
|
18
28
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
29
|
+
* FixedJoint locks two {@link Rigidbody} components together, making them move as one rigid unit.
|
|
30
|
+
* The bodies maintain their relative position and rotation at the time the joint is created.
|
|
31
|
+
*
|
|
32
|
+
* Use this for:
|
|
33
|
+
* - Attaching objects together permanently
|
|
34
|
+
* - Creating compound rigid bodies
|
|
35
|
+
* - Welding broken pieces back together
|
|
36
|
+
*
|
|
37
|
+
* @example Attach a weapon to a character
|
|
38
|
+
* ```ts
|
|
39
|
+
* const joint = weapon.addComponent(FixedJoint);
|
|
40
|
+
* joint.connectedBody = characterRigidbody;
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @summary Lock two Rigidbodies together rigidly
|
|
21
44
|
* @category Physics
|
|
22
45
|
* @group Components
|
|
46
|
+
* @see {@link Joint} base class
|
|
47
|
+
* @see {@link HingeJoint} for rotating connections
|
|
23
48
|
*/
|
|
24
49
|
export declare class FixedJoint extends Joint {
|
|
25
50
|
protected createJoint(self: Rigidbody, other: Rigidbody): void;
|
|
26
51
|
}
|
|
27
52
|
/**
|
|
28
|
-
*
|
|
53
|
+
* HingeJoint connects two {@link Rigidbody} components with a rotating constraint,
|
|
54
|
+
* like a door hinge or wheel axle. Bodies can only rotate around the specified axis.
|
|
55
|
+
*
|
|
56
|
+
* Use this for:
|
|
57
|
+
* - Doors and gates
|
|
58
|
+
* - Wheels and axles
|
|
59
|
+
* - Pendulums
|
|
60
|
+
* - Any rotating mechanical connection
|
|
61
|
+
*
|
|
62
|
+
* @example Create a door hinge
|
|
63
|
+
* ```ts
|
|
64
|
+
* const hinge = door.addComponent(HingeJoint);
|
|
65
|
+
* hinge.connectedBody = doorFrameRigidbody;
|
|
66
|
+
* hinge.anchor = new Vector3(0, 0, 0); // Hinge position
|
|
67
|
+
* hinge.axis = new Vector3(0, 1, 0); // Rotate around Y axis
|
|
68
|
+
* ```
|
|
29
69
|
*
|
|
30
|
-
*
|
|
31
|
-
* @summary Connect two Rigidbodies with a hinge
|
|
70
|
+
* @summary Connect two Rigidbodies with a rotating hinge
|
|
32
71
|
* @category Physics
|
|
33
72
|
* @group Components
|
|
73
|
+
* @see {@link Joint} base class
|
|
74
|
+
* @see {@link FixedJoint} for rigid connections
|
|
34
75
|
*/
|
|
35
76
|
export declare class HingeJoint extends Joint {
|
|
77
|
+
/** Local position of the hinge pivot point */
|
|
36
78
|
anchor?: Vector3;
|
|
79
|
+
/** Axis of rotation for the hinge (e.g., Vector3(0,1,0) for vertical axis) */
|
|
37
80
|
axis?: Vector3;
|
|
38
81
|
protected createJoint(self: Rigidbody, other: Rigidbody): void;
|
|
39
82
|
}
|