@needle-tools/engine 4.12.5 → 4.13.0-next.1eca7a7
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 +5 -0
- package/README.md +38 -1
- package/components.needle.json +1 -1
- package/custom-elements.json +156 -5
- package/dist/{gltf-progressive-BqUnxvCx.umd.cjs → gltf-progressive-BURrJW0U.umd.cjs} +1 -1
- package/dist/{gltf-progressive-CSaX5HQb.min.js → gltf-progressive-DHLDFNvQ.min.js} +1 -1
- package/dist/{gltf-progressive-ChnIhDXx.js → gltf-progressive-eiJCrjLb.js} +3 -3
- package/dist/materialx-B9ddsHcF.min.js +90 -0
- package/dist/materialx-BF23AVE8.umd.cjs +90 -0
- package/dist/materialx-fkoFuRh3.js +4636 -0
- package/dist/{needle-engine.bundle-Cnemui9H.umd.cjs → needle-engine.bundle-BfrDWglE.umd.cjs} +124 -124
- package/dist/{needle-engine.bundle-B_IGIr6Z.min.js → needle-engine.bundle-Bx_Lq_3v.min.js} +131 -131
- package/dist/{needle-engine.bundle-Cj66livk.js → needle-engine.bundle-MQyZGnMF.js} +3754 -3374
- package/dist/needle-engine.d.ts +2791 -309
- package/dist/needle-engine.js +415 -414
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-12-UW7je.min.js → postprocessing-BVNrgYZK.min.js} +1 -1
- package/dist/{postprocessing-B3Hu0Ryi.umd.cjs → postprocessing-CI2TjWpu.umd.cjs} +1 -1
- package/dist/{postprocessing-R535krvT.js → postprocessing-DdM-tz1j.js} +2 -2
- package/dist/{three-BzxwLtUE.umd.cjs → three-BW2s1Yl-.umd.cjs} +25 -25
- package/dist/{three-DMvLgxja.min.js → three-I__hSXzr.min.js} +26 -26
- package/dist/{three-D9pcFbxc.js → three-VvRoMeIN.js} +22 -0
- package/dist/{three-examples-F0MJj0vr.js → three-examples-BhfOE7NG.js} +1 -1
- package/dist/{three-examples-CjSwCv_b.umd.cjs → three-examples-Bpfu6ke_.umd.cjs} +1 -1
- package/dist/{three-examples-CIv2roOA.min.js → three-examples-D8zAE_7t.min.js} +1 -1
- package/dist/{three-mesh-ui-BLnJQzMl.umd.cjs → three-mesh-ui-BU55xDxJ.umd.cjs} +1 -1
- package/dist/{three-mesh-ui-BllgajJz.min.js → three-mesh-ui-C3QbemOV.min.js} +1 -1
- package/dist/{three-mesh-ui-DYyiRn5Y.js → three-mesh-ui-CcMp-FQm.js} +1 -1
- package/dist/{vendor-BIFy-gRe.js → vendor-BiyIZ61v.js} +1 -1
- package/dist/{vendor-BFgQSG2m.umd.cjs → vendor-COVQl0b8.umd.cjs} +1 -1
- package/dist/{vendor-ChgmXMYr.min.js → vendor-DW7zqjuT.min.js} +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_loaders.js +7 -1
- package/lib/engine/engine_loaders.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_modules.d.ts +9 -0
- package/lib/engine/engine_modules.js +25 -0
- package/lib/engine/engine_modules.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 +35 -1
- package/lib/engine/engine_physics.js +35 -1
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine/engine_physics_rapier.d.ts +76 -0
- package/lib/engine/engine_physics_rapier.js +76 -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/engine_utils_format.d.ts +1 -1
- package/lib/engine/engine_utils_format.js +4 -1
- package/lib/engine/engine_utils_format.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_materialx.d.ts +29 -0
- package/lib/engine/extensions/NEEDLE_materialx.js +115 -0
- package/lib/engine/extensions/NEEDLE_materialx.js.map +1 -0
- package/lib/engine/extensions/extensions.js +2 -0
- package/lib/engine/extensions/extensions.js.map +1 -1
- package/lib/engine/extensions/index.d.ts +1 -0
- package/lib/engine/extensions/index.js +1 -0
- 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/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 +31 -1
- package/lib/engine-components/Camera.js +31 -1
- package/lib/engine-components/Camera.js.map +1 -1
- package/lib/engine-components/CharacterController.d.ts +67 -3
- package/lib/engine-components/CharacterController.js +67 -3
- 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 +26 -6
- package/lib/engine-components/ContactShadows.js +46 -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 +38 -10
- package/lib/engine-components/EventList.js.map +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 +27 -5
- package/lib/engine-components/Light.js +27 -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/ReflectionProbe.d.ts +17 -2
- package/lib/engine-components/ReflectionProbe.js +28 -10
- package/lib/engine-components/ReflectionProbe.js.map +1 -1
- package/lib/engine-components/Renderer.d.ts +34 -0
- package/lib/engine-components/Renderer.js +35 -2
- package/lib/engine-components/Renderer.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 +38 -6
- package/lib/engine-components/ScreenCapture.js +38 -6
- package/lib/engine-components/ScreenCapture.js.map +1 -1
- package/lib/engine-components/Skybox.js +1 -1
- 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 +6 -0
- package/lib/engine-components/SyncedRoom.js +6 -0
- 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/timeline/PlayableDirector.d.ts +99 -14
- package/lib/engine-components/timeline/PlayableDirector.js +91 -25
- package/lib/engine-components/timeline/PlayableDirector.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 +28 -3
- package/lib/engine-components/ui/Canvas.js +28 -3
- package/lib/engine-components/ui/Canvas.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/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/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/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/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 +3 -2
- package/plugins/vite/custom-element-data.js +128 -19
- package/plugins/vite/dependencies.js +9 -4
- package/plugins/vite/index.js +0 -2
- 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_loaders.ts +9 -2
- package/src/engine/engine_math.ts +81 -2
- package/src/engine/engine_modules.ts +24 -0
- package/src/engine/engine_networking.ts +187 -17
- package/src/engine/engine_networking_auto.ts +36 -9
- package/src/engine/engine_physics.ts +37 -1
- package/src/engine/engine_physics_rapier.ts +77 -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/engine_utils_format.ts +6 -2
- package/src/engine/extensions/NEEDLE_materialx.ts +143 -0
- package/src/engine/extensions/extensions.ts +2 -0
- package/src/engine/extensions/index.ts +1 -0
- 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/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 +73 -6
- package/src/engine-components/Collider.ts +78 -21
- package/src/engine-components/ContactShadows.ts +51 -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 +42 -29
- package/src/engine-components/Duplicatable.ts +37 -6
- package/src/engine-components/EventList.ts +41 -13
- 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 +30 -8
- 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/ReflectionProbe.ts +31 -13
- package/src/engine-components/Renderer.ts +34 -1
- package/src/engine-components/SceneSwitcher.ts +11 -0
- package/src/engine-components/ScreenCapture.ts +41 -9
- package/src/engine-components/Skybox.ts +1 -1
- package/src/engine-components/SmoothFollow.ts +69 -7
- package/src/engine-components/SpatialTrigger.ts +51 -4
- package/src/engine-components/SpectatorCamera.ts +23 -5
- package/src/engine-components/SyncedRoom.ts +6 -0
- 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/timeline/PlayableDirector.ts +104 -27
- package/src/engine-components/ui/Button.ts +29 -3
- package/src/engine-components/ui/Canvas.ts +28 -3
- package/src/engine-components/ui/Image.ts +22 -3
- package/src/engine-components/ui/Raycaster.ts +57 -8
- package/src/engine-components/ui/Text.ts +24 -2
- 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/XRFlag.ts +30 -3
- package/plugins/vite/materialx.js +0 -32
|
@@ -32,22 +32,56 @@ type BeforeLODExportArguments = {
|
|
|
32
32
|
overrideLevel?: number;
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
35
|
+
* USDZExporter creates USDZ files and opens them in Apple QuickLook on iOS/iPadOS/visionOS.
|
|
36
|
+
* Enables "View in AR" functionality for Apple devices directly from web experiences.
|
|
37
|
+
*
|
|
38
|
+
* **Key features:**
|
|
39
|
+
* - Auto-exports animations and audio sources
|
|
40
|
+
* - Interactive behaviors via Needle's "Everywhere Actions" system
|
|
41
|
+
* - RealityKit physics support (iOS 18+, visionOS 1+)
|
|
42
|
+
* - Custom QuickLook overlay with call-to-action buttons
|
|
43
|
+
* - Progressive texture/mesh LOD handling
|
|
44
|
+
*
|
|
45
|
+
* [](https://engine.needle.tools/samples/?overlay=samples&tag=usdz)
|
|
46
|
+
*
|
|
47
|
+
* **Automatic setup:**
|
|
48
|
+
* - Creates QuickLook button on compatible devices
|
|
49
|
+
* - Respects {@link XRFlag} for AR-specific visibility
|
|
50
|
+
* - Handles {@link WebARSessionRoot} scale
|
|
51
|
+
*
|
|
52
|
+
* **Custom extensions:**
|
|
53
|
+
* Add custom behaviors by implementing {@link IUSDExporterExtension} and adding to {@link extensions} array.
|
|
54
|
+
*
|
|
55
|
+
* **Debug:** Use `?debugusdz` URL parameter. Press 'T' to trigger export.
|
|
56
|
+
*
|
|
57
|
+
* @example Basic USDZ export
|
|
58
|
+
* ```ts
|
|
59
|
+
* const exporter = myObject.addComponent(USDZExporter);
|
|
60
|
+
* exporter.objectToExport = productModel;
|
|
61
|
+
* exporter.autoExportAnimations = true;
|
|
62
|
+
* exporter.interactive = true; // Enable QuickLook behaviors
|
|
63
|
+
*
|
|
64
|
+
* // Trigger export
|
|
65
|
+
* await exporter.exportAndOpen();
|
|
47
66
|
* ```
|
|
48
|
-
*
|
|
67
|
+
*
|
|
68
|
+
* @example Custom branding
|
|
69
|
+
* ```ts
|
|
70
|
+
* exporter.customBranding = {
|
|
71
|
+
* callToAction: "Buy Now",
|
|
72
|
+
* checkoutTitle: "Product Name",
|
|
73
|
+
* callToActionURL: "https://shop.example.com"
|
|
74
|
+
* };
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @summary Export 3D objects as USDZ files for Apple QuickLook AR
|
|
49
78
|
* @category XR
|
|
50
79
|
* @group Components
|
|
80
|
+
* @see {@link WebXR} for WebXR-based AR/VR
|
|
81
|
+
* @see {@link WebARSessionRoot} for AR placement and scaling
|
|
82
|
+
* @see {@link XRFlag} for AR-specific object visibility
|
|
83
|
+
* @see {@link CustomBranding} for QuickLook overlay customization
|
|
84
|
+
* @link https://engine.needle.tools/samples/?overlay=samples&tag=usdz
|
|
51
85
|
*/
|
|
52
86
|
export declare class USDZExporter extends Behaviour {
|
|
53
87
|
/** Called before the USDZ file is exported */
|
|
@@ -62,22 +62,56 @@ __decorate([
|
|
|
62
62
|
serializable()
|
|
63
63
|
], CustomBranding.prototype, "callToActionURL", void 0);
|
|
64
64
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
65
|
+
* USDZExporter creates USDZ files and opens them in Apple QuickLook on iOS/iPadOS/visionOS.
|
|
66
|
+
* Enables "View in AR" functionality for Apple devices directly from web experiences.
|
|
67
|
+
*
|
|
68
|
+
* **Key features:**
|
|
69
|
+
* - Auto-exports animations and audio sources
|
|
70
|
+
* - Interactive behaviors via Needle's "Everywhere Actions" system
|
|
71
|
+
* - RealityKit physics support (iOS 18+, visionOS 1+)
|
|
72
|
+
* - Custom QuickLook overlay with call-to-action buttons
|
|
73
|
+
* - Progressive texture/mesh LOD handling
|
|
74
|
+
*
|
|
75
|
+
* [](https://engine.needle.tools/samples/?overlay=samples&tag=usdz)
|
|
76
|
+
*
|
|
77
|
+
* **Automatic setup:**
|
|
78
|
+
* - Creates QuickLook button on compatible devices
|
|
79
|
+
* - Respects {@link XRFlag} for AR-specific visibility
|
|
80
|
+
* - Handles {@link WebARSessionRoot} scale
|
|
81
|
+
*
|
|
82
|
+
* **Custom extensions:**
|
|
83
|
+
* Add custom behaviors by implementing {@link IUSDExporterExtension} and adding to {@link extensions} array.
|
|
84
|
+
*
|
|
85
|
+
* **Debug:** Use `?debugusdz` URL parameter. Press 'T' to trigger export.
|
|
86
|
+
*
|
|
87
|
+
* @example Basic USDZ export
|
|
88
|
+
* ```ts
|
|
89
|
+
* const exporter = myObject.addComponent(USDZExporter);
|
|
90
|
+
* exporter.objectToExport = productModel;
|
|
91
|
+
* exporter.autoExportAnimations = true;
|
|
92
|
+
* exporter.interactive = true; // Enable QuickLook behaviors
|
|
93
|
+
*
|
|
94
|
+
* // Trigger export
|
|
95
|
+
* await exporter.exportAndOpen();
|
|
77
96
|
* ```
|
|
78
|
-
*
|
|
97
|
+
*
|
|
98
|
+
* @example Custom branding
|
|
99
|
+
* ```ts
|
|
100
|
+
* exporter.customBranding = {
|
|
101
|
+
* callToAction: "Buy Now",
|
|
102
|
+
* checkoutTitle: "Product Name",
|
|
103
|
+
* callToActionURL: "https://shop.example.com"
|
|
104
|
+
* };
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* @summary Export 3D objects as USDZ files for Apple QuickLook AR
|
|
79
108
|
* @category XR
|
|
80
109
|
* @group Components
|
|
110
|
+
* @see {@link WebXR} for WebXR-based AR/VR
|
|
111
|
+
* @see {@link WebARSessionRoot} for AR placement and scaling
|
|
112
|
+
* @see {@link XRFlag} for AR-specific object visibility
|
|
113
|
+
* @see {@link CustomBranding} for QuickLook overlay customization
|
|
114
|
+
* @link https://engine.needle.tools/samples/?overlay=samples&tag=usdz
|
|
81
115
|
*/
|
|
82
116
|
export class USDZExporter extends Behaviour {
|
|
83
117
|
/** Called before the USDZ file is exported */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"USDZExporter.js","sourceRoot":"","sources":["../../../../src/engine-components/export/usdz/USDZExporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"USDZExporter.js","sourceRoot":"","sources":["../../../../src/engine-components/export/usdz/USDZExporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,20 @@ import { Context } from "../../engine/engine_setup.js";
|
|
|
5
5
|
import { Behaviour, GameObject } from "../Component.js";
|
|
6
6
|
import { ColorBySpeedModule, ColorOverLifetimeModule, EmissionModule, InheritVelocityModule, type IParticleSystem, LimitVelocityOverLifetimeModule, MainModule, NoiseModule, ParticleSystemRenderMode, RotationBySpeedModule, RotationOverLifetimeModule, ShapeModule, SizeBySpeedModule, SizeOverLifetimeModule, TextureSheetAnimationModule, TrailModule, VelocityOverLifetimeModule } from "./ParticleSystemModules.js";
|
|
7
7
|
export type { Particle as QParticle, Behavior as QParticleBehaviour, TrailParticle as QTrailParticle } from "three.quarks";
|
|
8
|
+
/**
|
|
9
|
+
* Defines when a sub-emitter spawns particles relative to the parent particle's lifecycle.
|
|
10
|
+
* Used to create complex effects like explosions on impact or trails following particles.
|
|
11
|
+
*/
|
|
8
12
|
export declare enum SubEmitterType {
|
|
13
|
+
/** Sub-emitter triggers when the parent particle is born */
|
|
9
14
|
Birth = 0,
|
|
15
|
+
/** Sub-emitter triggers when the parent particle collides */
|
|
10
16
|
Collision = 1,
|
|
17
|
+
/** Sub-emitter triggers when the parent particle dies */
|
|
11
18
|
Death = 2,
|
|
19
|
+
/** Sub-emitter triggers when the parent particle enters a trigger zone */
|
|
12
20
|
Trigger = 3,
|
|
21
|
+
/** Sub-emitter is triggered manually via code */
|
|
13
22
|
Manual = 4
|
|
14
23
|
}
|
|
15
24
|
/** @internal */
|
|
@@ -28,29 +37,99 @@ export declare class ParticleSystemRenderer extends Behaviour {
|
|
|
28
37
|
getMaterial(trailEnabled?: boolean): MeshBasicMaterial | SpriteMaterial | undefined;
|
|
29
38
|
getMesh(_renderMode?: ParticleSystemRenderMode): Mesh<BufferGeometry<import("three").NormalBufferAttributes>, MeshBasicMaterial | SpriteMaterial, import("three").Object3DEventMap>;
|
|
30
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Base class for custom particle behaviors. Extend this to create custom particle logic.
|
|
42
|
+
*
|
|
43
|
+
* Override `initialize()` to set up per-particle state when particles spawn.
|
|
44
|
+
* Override `update()` to modify particles each frame (position, velocity, color, size, etc.).
|
|
45
|
+
* Override `frameUpdate()` for logic that runs once per frame (not per particle).
|
|
46
|
+
*
|
|
47
|
+
* @example Custom wind effect
|
|
48
|
+
* ```ts
|
|
49
|
+
* class WindBehaviour extends ParticleSystemBaseBehaviour {
|
|
50
|
+
* windStrength = 2;
|
|
51
|
+
* windDirection = new Vector3(1, 0, 0);
|
|
52
|
+
*
|
|
53
|
+
* update(particle: Particle, delta: number) {
|
|
54
|
+
* particle.velocity.addScaledVector(this.windDirection, this.windStrength * delta);
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @see {@link ParticleSystem.addBehaviour} to register your custom behavior
|
|
60
|
+
* @link https://github.com/Alchemist0823/three.quarks
|
|
61
|
+
*/
|
|
31
62
|
export declare abstract class ParticleSystemBaseBehaviour implements Behavior {
|
|
63
|
+
/** Reference to the particle system this behavior belongs to */
|
|
32
64
|
system: ParticleSystem;
|
|
65
|
+
/** Access to the engine context for timing, input, etc. */
|
|
33
66
|
get context(): Context;
|
|
34
67
|
constructor(ps?: ParticleSystem);
|
|
68
|
+
/** Behavior type identifier used by three.quarks */
|
|
35
69
|
type: string;
|
|
70
|
+
/** Called once when a particle is spawned. Use to initialize per-particle state. */
|
|
36
71
|
initialize(_particle: Particle): void;
|
|
72
|
+
/** Called every frame for each active particle. Use to update particle properties. */
|
|
37
73
|
update(_particle: Particle, _delta: number): void;
|
|
74
|
+
/** Called once per frame before particle updates. Use for shared calculations. */
|
|
38
75
|
frameUpdate(_delta: number): void;
|
|
39
76
|
toJSON(): void;
|
|
40
77
|
clone(): Behavior;
|
|
78
|
+
/** Called when the particle system is reset. */
|
|
41
79
|
reset(): void;
|
|
42
80
|
}
|
|
43
81
|
export declare const $particleLife: unique symbol;
|
|
44
82
|
/**
|
|
45
|
-
*
|
|
83
|
+
* ParticleSystem efficiently handles the motion and rendering of many individual particles.
|
|
84
|
+
* Use it for visual effects like fire, smoke, sparks, rain, magic spells, and more.
|
|
85
|
+
*
|
|
86
|
+
* 
|
|
87
|
+
* 
|
|
88
|
+
*
|
|
89
|
+
* **Modules:**
|
|
90
|
+
* Configure particle behavior through modules like {@link EmissionModule}, {@link ShapeModule},
|
|
91
|
+
* {@link ColorOverLifetimeModule}, {@link SizeOverLifetimeModule}, {@link VelocityOverLifetimeModule},
|
|
92
|
+
* {@link NoiseModule}, and {@link TrailModule}.
|
|
93
|
+
*
|
|
94
|
+
* **Custom behaviors:**
|
|
95
|
+
* Add custom particle behaviors by extending {@link ParticleSystemBaseBehaviour} and
|
|
96
|
+
* calling `addBehaviour()`. This gives you full control over particle initialization and updates.
|
|
97
|
+
*
|
|
98
|
+
* **Performance:**
|
|
99
|
+
* Particles are batched together for fast, performant rendering even on low-end devices.
|
|
100
|
+
* Needle Engine uses [three.quarks](https://github.com/Alchemist0823/three.quarks) internally.
|
|
101
|
+
*
|
|
102
|
+
* @example Basic playback control
|
|
103
|
+
* ```ts
|
|
104
|
+
* const ps = myObject.getComponent(ParticleSystem);
|
|
105
|
+
* ps.play();
|
|
106
|
+
* ps.emit(10); // Emit 10 particles immediately
|
|
107
|
+
* ps.pause();
|
|
108
|
+
* ps.stop(true, true); // Stop and clear all particles
|
|
109
|
+
* ```
|
|
46
110
|
*
|
|
47
|
-
*
|
|
111
|
+
* @example Custom particle behavior
|
|
112
|
+
* ```ts
|
|
113
|
+
* class GravityBehaviour extends ParticleSystemBaseBehaviour {
|
|
114
|
+
* update(particle: Particle, delta: number) {
|
|
115
|
+
* particle.velocity.y -= 9.8 * delta;
|
|
116
|
+
* }
|
|
117
|
+
* }
|
|
118
|
+
* particleSystem.addBehaviour(new GravityBehaviour());
|
|
119
|
+
* ```
|
|
48
120
|
*
|
|
49
|
-
*
|
|
121
|
+
* - Example: https://engine.needle.tools/samples/particles
|
|
122
|
+
* - Example: https://engine.needle.tools/samples/particle-bursts
|
|
123
|
+
* - Example: https://engine.needle.tools/samples/particles-on-collision
|
|
50
124
|
*
|
|
51
125
|
* @summary Handles the motion and rendering of many individual particles
|
|
52
126
|
* @category Rendering
|
|
53
127
|
* @group Components
|
|
128
|
+
* @see {@link ParticleSystemBaseBehaviour} for custom particle behaviors
|
|
129
|
+
* @see {@link EmissionModule} for emission configuration
|
|
130
|
+
* @see {@link ShapeModule} for emission shape control
|
|
131
|
+
* @see {@link TrailModule} for particle trails
|
|
132
|
+
* @link https://engine.needle.tools/docs/features/particles.html
|
|
54
133
|
*/
|
|
55
134
|
export declare class ParticleSystem extends Behaviour implements IParticleSystem {
|
|
56
135
|
play(includeChildren?: boolean): void;
|
|
@@ -23,12 +23,21 @@ import { ParticleSubEmitter } from "./ParticleSystemSubEmitter.js";
|
|
|
23
23
|
const debug = getParam("debugparticles");
|
|
24
24
|
const suppressProgressiveLoading = getParam("noprogressive");
|
|
25
25
|
const debugProgressiveLoading = getParam("debugprogressive");
|
|
26
|
+
/**
|
|
27
|
+
* Defines when a sub-emitter spawns particles relative to the parent particle's lifecycle.
|
|
28
|
+
* Used to create complex effects like explosions on impact or trails following particles.
|
|
29
|
+
*/
|
|
26
30
|
export var SubEmitterType;
|
|
27
31
|
(function (SubEmitterType) {
|
|
32
|
+
/** Sub-emitter triggers when the parent particle is born */
|
|
28
33
|
SubEmitterType[SubEmitterType["Birth"] = 0] = "Birth";
|
|
34
|
+
/** Sub-emitter triggers when the parent particle collides */
|
|
29
35
|
SubEmitterType[SubEmitterType["Collision"] = 1] = "Collision";
|
|
36
|
+
/** Sub-emitter triggers when the parent particle dies */
|
|
30
37
|
SubEmitterType[SubEmitterType["Death"] = 2] = "Death";
|
|
38
|
+
/** Sub-emitter triggers when the parent particle enters a trigger zone */
|
|
31
39
|
SubEmitterType[SubEmitterType["Trigger"] = 3] = "Trigger";
|
|
40
|
+
/** Sub-emitter is triggered manually via code */
|
|
32
41
|
SubEmitterType[SubEmitterType["Manual"] = 4] = "Manual";
|
|
33
42
|
})(SubEmitterType || (SubEmitterType = {}));
|
|
34
43
|
/** @internal */
|
|
@@ -251,20 +260,49 @@ class ParticleSystemEmissionOverDistance extends BaseValueGenerator {
|
|
|
251
260
|
// return emission;
|
|
252
261
|
}
|
|
253
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* Base class for custom particle behaviors. Extend this to create custom particle logic.
|
|
265
|
+
*
|
|
266
|
+
* Override `initialize()` to set up per-particle state when particles spawn.
|
|
267
|
+
* Override `update()` to modify particles each frame (position, velocity, color, size, etc.).
|
|
268
|
+
* Override `frameUpdate()` for logic that runs once per frame (not per particle).
|
|
269
|
+
*
|
|
270
|
+
* @example Custom wind effect
|
|
271
|
+
* ```ts
|
|
272
|
+
* class WindBehaviour extends ParticleSystemBaseBehaviour {
|
|
273
|
+
* windStrength = 2;
|
|
274
|
+
* windDirection = new Vector3(1, 0, 0);
|
|
275
|
+
*
|
|
276
|
+
* update(particle: Particle, delta: number) {
|
|
277
|
+
* particle.velocity.addScaledVector(this.windDirection, this.windStrength * delta);
|
|
278
|
+
* }
|
|
279
|
+
* }
|
|
280
|
+
* ```
|
|
281
|
+
*
|
|
282
|
+
* @see {@link ParticleSystem.addBehaviour} to register your custom behavior
|
|
283
|
+
* @link https://github.com/Alchemist0823/three.quarks
|
|
284
|
+
*/
|
|
254
285
|
export class ParticleSystemBaseBehaviour {
|
|
286
|
+
/** Reference to the particle system this behavior belongs to */
|
|
255
287
|
system;
|
|
288
|
+
/** Access to the engine context for timing, input, etc. */
|
|
256
289
|
get context() { return this.system.context; }
|
|
257
290
|
constructor(ps) {
|
|
258
291
|
this.type = Object.getPrototypeOf(this).constructor.name || "ParticleSystemBaseBehaviour";
|
|
259
292
|
if (ps)
|
|
260
293
|
this.system = ps;
|
|
261
294
|
}
|
|
295
|
+
/** Behavior type identifier used by three.quarks */
|
|
262
296
|
type;
|
|
297
|
+
/** Called once when a particle is spawned. Use to initialize per-particle state. */
|
|
263
298
|
initialize(_particle) { }
|
|
299
|
+
/** Called every frame for each active particle. Use to update particle properties. */
|
|
264
300
|
update(_particle, _delta) { }
|
|
301
|
+
/** Called once per frame before particle updates. Use for shared calculations. */
|
|
265
302
|
frameUpdate(_delta) { }
|
|
266
303
|
toJSON() { throw new Error("Method not implemented."); }
|
|
267
304
|
clone() { throw new Error("Method not implemented."); }
|
|
305
|
+
/** Called when the particle system is reset. */
|
|
268
306
|
reset() { }
|
|
269
307
|
}
|
|
270
308
|
const $startFrame = Symbol("startFrame");
|
|
@@ -606,15 +644,56 @@ class ParticlesEmissionState {
|
|
|
606
644
|
waitEmiting = 0;
|
|
607
645
|
}
|
|
608
646
|
/**
|
|
609
|
-
*
|
|
647
|
+
* ParticleSystem efficiently handles the motion and rendering of many individual particles.
|
|
648
|
+
* Use it for visual effects like fire, smoke, sparks, rain, magic spells, and more.
|
|
649
|
+
*
|
|
650
|
+
* 
|
|
651
|
+
* 
|
|
652
|
+
*
|
|
653
|
+
* **Modules:**
|
|
654
|
+
* Configure particle behavior through modules like {@link EmissionModule}, {@link ShapeModule},
|
|
655
|
+
* {@link ColorOverLifetimeModule}, {@link SizeOverLifetimeModule}, {@link VelocityOverLifetimeModule},
|
|
656
|
+
* {@link NoiseModule}, and {@link TrailModule}.
|
|
657
|
+
*
|
|
658
|
+
* **Custom behaviors:**
|
|
659
|
+
* Add custom particle behaviors by extending {@link ParticleSystemBaseBehaviour} and
|
|
660
|
+
* calling `addBehaviour()`. This gives you full control over particle initialization and updates.
|
|
661
|
+
*
|
|
662
|
+
* **Performance:**
|
|
663
|
+
* Particles are batched together for fast, performant rendering even on low-end devices.
|
|
664
|
+
* Needle Engine uses [three.quarks](https://github.com/Alchemist0823/three.quarks) internally.
|
|
665
|
+
*
|
|
666
|
+
* @example Basic playback control
|
|
667
|
+
* ```ts
|
|
668
|
+
* const ps = myObject.getComponent(ParticleSystem);
|
|
669
|
+
* ps.play();
|
|
670
|
+
* ps.emit(10); // Emit 10 particles immediately
|
|
671
|
+
* ps.pause();
|
|
672
|
+
* ps.stop(true, true); // Stop and clear all particles
|
|
673
|
+
* ```
|
|
610
674
|
*
|
|
611
|
-
*
|
|
675
|
+
* @example Custom particle behavior
|
|
676
|
+
* ```ts
|
|
677
|
+
* class GravityBehaviour extends ParticleSystemBaseBehaviour {
|
|
678
|
+
* update(particle: Particle, delta: number) {
|
|
679
|
+
* particle.velocity.y -= 9.8 * delta;
|
|
680
|
+
* }
|
|
681
|
+
* }
|
|
682
|
+
* particleSystem.addBehaviour(new GravityBehaviour());
|
|
683
|
+
* ```
|
|
612
684
|
*
|
|
613
|
-
*
|
|
685
|
+
* - Example: https://engine.needle.tools/samples/particles
|
|
686
|
+
* - Example: https://engine.needle.tools/samples/particle-bursts
|
|
687
|
+
* - Example: https://engine.needle.tools/samples/particles-on-collision
|
|
614
688
|
*
|
|
615
689
|
* @summary Handles the motion and rendering of many individual particles
|
|
616
690
|
* @category Rendering
|
|
617
691
|
* @group Components
|
|
692
|
+
* @see {@link ParticleSystemBaseBehaviour} for custom particle behaviors
|
|
693
|
+
* @see {@link EmissionModule} for emission configuration
|
|
694
|
+
* @see {@link ShapeModule} for emission shape control
|
|
695
|
+
* @see {@link TrailModule} for particle trails
|
|
696
|
+
* @link https://engine.needle.tools/docs/features/particles.html
|
|
618
697
|
*/
|
|
619
698
|
export class ParticleSystem extends Behaviour {
|
|
620
699
|
play(includeChildren = false) {
|