@needle-tools/engine 4.7.0 → 4.7.2-alpha
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 +3782 -3778
- package/LICENSE.md +10 -10
- package/README.md +64 -64
- package/components.needle.json +1 -1
- package/dist/generateMeshBVH.worker-Cdfpaq5W.js +25 -0
- package/dist/gltf-progressive-YjtQYFa9.js +1052 -0
- package/dist/gltf-progressive-yOP1mp5W.min.js +8 -0
- package/dist/gltf-progressive-zdhlW609.umd.cjs +8 -0
- package/dist/{needle-engine.bundle-BFsiOavn.min.js → needle-engine.bundle-BhDF-YSv.min.js} +107 -107
- package/dist/{needle-engine.bundle-BxOXkBoQ.umd.cjs → needle-engine.bundle-D2myV4E4.umd.cjs} +114 -114
- package/dist/{needle-engine.bundle-BodidWhS.js → needle-engine.bundle-gp00DTS4.js} +2932 -2920
- package/dist/needle-engine.d.ts +129 -130
- package/dist/needle-engine.js +4 -4
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-CjW23fio.umd.cjs → postprocessing-8AQTeZsr.umd.cjs} +2 -2
- package/dist/{postprocessing-xYQWCHFu.min.js → postprocessing-BDScN9yu.min.js} +2 -2
- package/dist/{postprocessing-DYLNOL3W.js → postprocessing-BkxN_08g.js} +3 -3
- package/dist/{three-DuDKwKB8.min.js → three-Boa-jOq-.min.js} +33 -33
- package/dist/{three-DrqIzZTH.js → three-Bz6X1mrw.js} +4198 -4198
- package/dist/{three-B_hneGZr.umd.cjs → three-DMrv-4ar.umd.cjs} +4 -4
- package/dist/{three-examples-X3OadjXB.umd.cjs → three-examples-C7ryg8vN.umd.cjs} +3 -3
- package/dist/{three-examples-DaDLBuy6.min.js → three-examples-DuVhxqft.min.js} +14 -14
- package/dist/{three-examples-B50TT3Iu.js → three-examples-GggCDHv0.js} +5 -5
- package/dist/{three-mesh-ui-CxuWt7m-.js → three-mesh-ui-CLNOfsWn.js} +1 -1
- package/dist/{three-mesh-ui-B3p3gyUz.min.js → three-mesh-ui-CY6Izc7C.min.js} +1 -1
- package/dist/{three-mesh-ui-CQiIQIlA.umd.cjs → three-mesh-ui-CwlN0FUC.umd.cjs} +1 -1
- package/dist/{vendor-BmYIgaS1.js → vendor-BSD1RQIh.js} +3 -3
- package/dist/{vendor-Cavtu3CP.umd.cjs → vendor-DHr4aqIZ.umd.cjs} +3 -3
- package/dist/{vendor-BlSxe9JJ.min.js → vendor-zxXa3Dmr.min.js} +3 -3
- package/lib/asap/needle-asap.d.ts +1 -1
- package/lib/asap/needle-asap.js +95 -95
- package/lib/asap/sessiongranted.d.ts +3 -3
- package/lib/asap/sessiongranted.js +65 -65
- package/lib/asap/utils.d.ts +1 -1
- package/lib/asap/utils.js +3 -3
- package/lib/engine/analytics/index.d.ts +6 -6
- package/lib/engine/analytics/index.js +12 -12
- package/lib/engine/analytics/lcp.d.ts +3 -3
- package/lib/engine/analytics/lcp.js +34 -34
- package/lib/engine/api.d.ts +82 -82
- package/lib/engine/api.js +81 -81
- package/lib/engine/assets/index.d.ts +11 -11
- package/lib/engine/assets/index.js +47 -47
- package/lib/engine/assets/static.d.ts +1 -1
- package/lib/engine/assets/static.js +4 -4
- package/lib/engine/codegen/register_types.d.ts +1 -1
- package/lib/engine/codegen/register_types.js +300 -300
- package/lib/engine/debug/debug.d.ts +15 -15
- package/lib/engine/debug/debug.js +44 -44
- package/lib/engine/debug/debug_console.d.ts +2 -2
- package/lib/engine/debug/debug_console.js +307 -307
- package/lib/engine/debug/debug_overlay.d.ts +22 -22
- package/lib/engine/debug/debug_overlay.js +316 -316
- package/lib/engine/debug/debug_spatial_console.d.ts +2 -2
- package/lib/engine/debug/debug_spatial_console.js +390 -390
- package/lib/engine/debug/index.d.ts +2 -2
- package/lib/engine/debug/index.js +2 -2
- package/lib/engine/engine_addressables.d.ts +164 -166
- package/lib/engine/engine_addressables.js +601 -608
- package/lib/engine/engine_addressables.js.map +1 -1
- package/lib/engine/engine_animation.d.ts +43 -43
- package/lib/engine/engine_animation.js +133 -133
- package/lib/engine/engine_application.d.ts +45 -45
- package/lib/engine/engine_application.js +104 -104
- package/lib/engine/engine_assetdatabase.d.ts +25 -25
- package/lib/engine/engine_assetdatabase.js +346 -346
- package/lib/engine/engine_audio.d.ts +4 -4
- package/lib/engine/engine_audio.js +23 -23
- package/lib/engine/engine_camera.d.ts +13 -13
- package/lib/engine/engine_camera.js +30 -30
- package/lib/engine/engine_components.d.ts +110 -110
- package/lib/engine/engine_components.js +374 -374
- package/lib/engine/engine_components_internal.d.ts +9 -9
- package/lib/engine/engine_components_internal.js +36 -36
- package/lib/engine/engine_constants.d.ts +10 -10
- package/lib/engine/engine_constants.js +41 -41
- package/lib/engine/engine_context.d.ts +475 -475
- package/lib/engine/engine_context.js +1673 -1673
- package/lib/engine/engine_context_registry.d.ts +71 -71
- package/lib/engine/engine_context_registry.js +117 -117
- package/lib/engine/engine_coroutine.d.ts +35 -35
- package/lib/engine/engine_coroutine.js +52 -52
- package/lib/engine/engine_create_objects.d.ts +119 -119
- package/lib/engine/engine_create_objects.js +320 -320
- package/lib/engine/engine_default_parameters.d.ts +2 -2
- package/lib/engine/engine_default_parameters.js +3 -3
- package/lib/engine/engine_editor-sync.d.ts +21 -21
- package/lib/engine/engine_editor-sync.js +4 -4
- package/lib/engine/engine_fileloader.d.ts +2 -2
- package/lib/engine/engine_fileloader.js +8 -8
- package/lib/engine/engine_gameobject.d.ts +68 -68
- package/lib/engine/engine_gameobject.js +619 -619
- package/lib/engine/engine_generic_utils.d.ts +1 -1
- package/lib/engine/engine_generic_utils.js +13 -13
- package/lib/engine/engine_gizmos.d.ts +149 -149
- package/lib/engine/engine_gizmos.js +530 -530
- package/lib/engine/engine_gltf.d.ts +12 -12
- package/lib/engine/engine_gltf.js +15 -15
- package/lib/engine/engine_gltf_builtin_components.d.ts +11 -11
- package/lib/engine/engine_gltf_builtin_components.js +341 -341
- package/lib/engine/engine_hot_reload.d.ts +8 -8
- package/lib/engine/engine_hot_reload.js +197 -197
- package/lib/engine/engine_input.d.ts +362 -362
- package/lib/engine/engine_input.js +1294 -1294
- package/lib/engine/engine_input_utils.d.ts +2 -2
- package/lib/engine/engine_input_utils.js +22 -22
- package/lib/engine/engine_instancing.d.ts +19 -19
- package/lib/engine/engine_instancing.js +39 -39
- package/lib/engine/engine_license.d.ts +11 -11
- package/lib/engine/engine_license.js +369 -369
- package/lib/engine/engine_lifecycle_api.d.ts +83 -83
- package/lib/engine/engine_lifecycle_api.js +106 -106
- package/lib/engine/engine_lifecycle_functions_internal.d.ts +32 -32
- package/lib/engine/engine_lifecycle_functions_internal.js +146 -146
- package/lib/engine/engine_lightdata.d.ts +23 -23
- package/lib/engine/engine_lightdata.js +101 -91
- package/lib/engine/engine_lightdata.js.map +1 -1
- package/lib/engine/engine_loaders.callbacks.d.ts +97 -97
- package/lib/engine/engine_loaders.callbacks.js +86 -86
- package/lib/engine/engine_loaders.d.ts +48 -48
- package/lib/engine/engine_loaders.gltf.d.ts +13 -13
- package/lib/engine/engine_loaders.gltf.js +62 -62
- package/lib/engine/engine_loaders.js +337 -337
- package/lib/engine/engine_lods.d.ts +35 -31
- package/lib/engine/engine_lods.js +160 -146
- package/lib/engine/engine_lods.js.map +1 -1
- package/lib/engine/engine_mainloop_utils.d.ts +32 -32
- package/lib/engine/engine_mainloop_utils.js +466 -466
- package/lib/engine/engine_math.d.ts +114 -114
- package/lib/engine/engine_math.js +247 -247
- package/lib/engine/engine_modules.d.ts +36 -36
- package/lib/engine/engine_modules.js +85 -85
- package/lib/engine/engine_networking.d.ts +260 -260
- package/lib/engine/engine_networking.js +764 -764
- package/lib/engine/engine_networking_auto.d.ts +24 -24
- package/lib/engine/engine_networking_auto.js +310 -310
- package/lib/engine/engine_networking_blob.d.ts +48 -48
- package/lib/engine/engine_networking_blob.js +228 -228
- package/lib/engine/engine_networking_files.d.ts +35 -35
- package/lib/engine/engine_networking_files.js +172 -172
- package/lib/engine/engine_networking_files_default_components.d.ts +6 -6
- package/lib/engine/engine_networking_files_default_components.js +42 -42
- package/lib/engine/engine_networking_instantiate.d.ts +100 -100
- package/lib/engine/engine_networking_instantiate.js +345 -345
- package/lib/engine/engine_networking_peer.d.ts +15 -15
- package/lib/engine/engine_networking_peer.js +132 -132
- package/lib/engine/engine_networking_streams.d.ts +123 -123
- package/lib/engine/engine_networking_streams.js +645 -645
- package/lib/engine/engine_networking_types.d.ts +22 -22
- package/lib/engine/engine_networking_types.js +7 -7
- package/lib/engine/engine_networking_utils.d.ts +2 -2
- package/lib/engine/engine_networking_utils.js +20 -20
- package/lib/engine/engine_networking_websocket.d.ts +1 -1
- package/lib/engine/engine_networking_websocket.js +2 -2
- package/lib/engine/engine_patcher.d.ts +10 -10
- package/lib/engine/engine_patcher.js +142 -142
- package/lib/engine/engine_physics.d.ts +152 -152
- package/lib/engine/engine_physics.js +645 -645
- package/lib/engine/engine_physics.types.d.ts +40 -40
- package/lib/engine/engine_physics.types.js +33 -33
- package/lib/engine/engine_physics_rapier.d.ts +147 -147
- package/lib/engine/engine_physics_rapier.js +1433 -1433
- package/lib/engine/engine_playerview.d.ts +26 -26
- package/lib/engine/engine_playerview.js +64 -64
- package/lib/engine/engine_scenelighting.d.ts +71 -71
- package/lib/engine/engine_scenelighting.js +226 -226
- package/lib/engine/engine_serialization.d.ts +3 -3
- package/lib/engine/engine_serialization.js +3 -3
- package/lib/engine/engine_serialization_builtin_serializer.d.ts +72 -72
- package/lib/engine/engine_serialization_builtin_serializer.js +403 -403
- package/lib/engine/engine_serialization_core.d.ts +94 -94
- package/lib/engine/engine_serialization_core.js +607 -607
- package/lib/engine/engine_serialization_decorator.d.ts +23 -23
- package/lib/engine/engine_serialization_decorator.js +66 -66
- package/lib/engine/engine_setup.d.ts +1 -1
- package/lib/engine/engine_setup.js +2 -2
- package/lib/engine/engine_shaders.d.ts +53 -53
- package/lib/engine/engine_shaders.js +252 -252
- package/lib/engine/engine_shims.d.ts +4 -4
- package/lib/engine/engine_shims.js +24 -24
- package/lib/engine/engine_test_utils.d.ts +39 -39
- package/lib/engine/engine_test_utils.js +83 -83
- package/lib/engine/engine_texture.d.ts +28 -28
- package/lib/engine/engine_texture.js +64 -64
- package/lib/engine/engine_three_utils.d.ts +204 -204
- package/lib/engine/engine_three_utils.js +788 -788
- package/lib/engine/engine_time.d.ts +51 -51
- package/lib/engine/engine_time.js +82 -82
- package/lib/engine/engine_time_utils.d.ts +88 -88
- package/lib/engine/engine_time_utils.js +215 -215
- package/lib/engine/engine_tonemapping.d.ts +6 -6
- package/lib/engine/engine_tonemapping.js +197 -197
- package/lib/engine/engine_types.d.ts +578 -578
- package/lib/engine/engine_types.js +95 -95
- package/lib/engine/engine_typestore.d.ts +28 -28
- package/lib/engine/engine_typestore.js +55 -55
- package/lib/engine/engine_util_decorator.d.ts +13 -13
- package/lib/engine/engine_util_decorator.js +116 -116
- package/lib/engine/engine_utils.d.ts +248 -248
- package/lib/engine/engine_utils.js +1012 -1012
- package/lib/engine/engine_utils_format.d.ts +24 -24
- package/lib/engine/engine_utils_format.js +239 -239
- package/lib/engine/engine_utils_screenshot.d.ts +159 -159
- package/lib/engine/engine_utils_screenshot.js +522 -522
- package/lib/engine/engine_utils_screenshot.xr.d.ts +5 -5
- package/lib/engine/engine_utils_screenshot.xr.js +90 -90
- package/lib/engine/engine_xr.d.ts +1 -1
- package/lib/engine/engine_xr.js +1 -1
- package/lib/engine/export/gltf/Writers.d.ts +19 -19
- package/lib/engine/export/gltf/Writers.js +24 -24
- package/lib/engine/export/gltf/index.d.ts +11 -11
- package/lib/engine/export/gltf/index.js +123 -123
- package/lib/engine/export/index.d.ts +2 -2
- package/lib/engine/export/index.js +2 -2
- package/lib/engine/export/state.d.ts +7 -7
- package/lib/engine/export/state.js +17 -17
- package/lib/engine/export/utils.d.ts +2 -2
- package/lib/engine/export/utils.js +7 -7
- package/lib/engine/extensions/EXT_texture_exr.d.ts +8 -8
- package/lib/engine/extensions/EXT_texture_exr.js +32 -32
- package/lib/engine/extensions/NEEDLE_animator_controller_model.d.ts +122 -122
- package/lib/engine/extensions/NEEDLE_animator_controller_model.js +95 -95
- package/lib/engine/extensions/NEEDLE_components.d.ts +35 -35
- package/lib/engine/extensions/NEEDLE_components.js +220 -220
- package/lib/engine/extensions/NEEDLE_gameobject_data.d.ts +10 -10
- package/lib/engine/extensions/NEEDLE_gameobject_data.js +57 -57
- package/lib/engine/extensions/NEEDLE_lighting_settings.d.ts +37 -37
- package/lib/engine/extensions/NEEDLE_lighting_settings.js +157 -157
- package/lib/engine/extensions/NEEDLE_lightmaps.d.ts +18 -18
- package/lib/engine/extensions/NEEDLE_lightmaps.js +99 -99
- package/lib/engine/extensions/NEEDLE_persistent_assets.d.ts +11 -11
- package/lib/engine/extensions/NEEDLE_persistent_assets.js +63 -63
- package/lib/engine/extensions/NEEDLE_progressive.d.ts +1 -1
- package/lib/engine/extensions/NEEDLE_progressive.js +1 -1
- package/lib/engine/extensions/NEEDLE_render_objects.d.ts +13 -13
- package/lib/engine/extensions/NEEDLE_render_objects.js +159 -159
- package/lib/engine/extensions/NEEDLE_techniques_webgl.d.ts +38 -38
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js +564 -564
- package/lib/engine/extensions/extension_resolver.d.ts +4 -4
- package/lib/engine/extensions/extension_resolver.js +1 -1
- package/lib/engine/extensions/extension_utils.d.ts +12 -12
- package/lib/engine/extensions/extension_utils.js +152 -152
- package/lib/engine/extensions/extensions.d.ts +32 -32
- package/lib/engine/extensions/extensions.js +107 -107
- package/lib/engine/extensions/index.d.ts +6 -6
- package/lib/engine/extensions/index.js +6 -6
- package/lib/engine/extensions/usage_tracker.d.ts +13 -13
- package/lib/engine/extensions/usage_tracker.js +65 -65
- package/lib/engine/js-extensions/Camera.d.ts +1 -1
- package/lib/engine/js-extensions/Camera.js +39 -39
- package/lib/engine/js-extensions/ExtensionUtils.d.ts +9 -9
- package/lib/engine/js-extensions/ExtensionUtils.js +67 -67
- package/lib/engine/js-extensions/Layers.d.ts +6 -6
- package/lib/engine/js-extensions/Layers.js +22 -22
- package/lib/engine/js-extensions/Object3D.d.ts +120 -120
- package/lib/engine/js-extensions/Object3D.js +136 -136
- package/lib/engine/js-extensions/RGBAColor.d.ts +23 -23
- package/lib/engine/js-extensions/RGBAColor.js +111 -111
- package/lib/engine/js-extensions/Vector.d.ts +3 -3
- package/lib/engine/js-extensions/Vector.js +13 -13
- package/lib/engine/js-extensions/index.d.ts +5 -5
- package/lib/engine/js-extensions/index.js +5 -5
- package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.d.ts +4 -4
- package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +79 -79
- package/lib/engine/shaders/shaderData.d.ts +55 -55
- package/lib/engine/shaders/shaderData.js +58 -58
- package/lib/engine/tests/test_utils.d.ts +2 -2
- package/lib/engine/tests/test_utils.js +53 -53
- package/lib/engine/webcomponents/WebXRButtons.d.ts +56 -56
- package/lib/engine/webcomponents/WebXRButtons.js +230 -230
- package/lib/engine/webcomponents/api.d.ts +5 -5
- package/lib/engine/webcomponents/api.js +4 -4
- package/lib/engine/webcomponents/buttons.d.ts +51 -51
- package/lib/engine/webcomponents/buttons.js +264 -264
- package/lib/engine/webcomponents/fonts.d.ts +9 -9
- package/lib/engine/webcomponents/fonts.js +32 -32
- package/lib/engine/webcomponents/icons.d.ts +9 -9
- package/lib/engine/webcomponents/icons.js +52 -52
- package/lib/engine/webcomponents/index.d.ts +1 -1
- package/lib/engine/webcomponents/index.js +1 -1
- package/lib/engine/webcomponents/logo-element.d.ts +10 -10
- package/lib/engine/webcomponents/logo-element.js +67 -67
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.d.ts +37 -37
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +513 -513
- package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +155 -155
- package/lib/engine/webcomponents/needle menu/needle-menu.js +1029 -1029
- package/lib/engine/webcomponents/needle-button.d.ts +34 -34
- package/lib/engine/webcomponents/needle-button.js +161 -161
- package/lib/engine/webcomponents/needle-engine.ar-overlay.d.ts +21 -21
- package/lib/engine/webcomponents/needle-engine.ar-overlay.js +166 -166
- package/lib/engine/webcomponents/needle-engine.attributes.d.ts +69 -69
- package/lib/engine/webcomponents/needle-engine.attributes.js +1 -1
- package/lib/engine/webcomponents/needle-engine.d.ts +116 -116
- package/lib/engine/webcomponents/needle-engine.extras.d.ts +6 -6
- package/lib/engine/webcomponents/needle-engine.extras.js +13 -13
- package/lib/engine/webcomponents/needle-engine.js +821 -821
- package/lib/engine/webcomponents/needle-engine.loading.d.ts +44 -44
- package/lib/engine/webcomponents/needle-engine.loading.js +341 -341
- package/lib/engine/xr/NeedleXRController.d.ts +313 -313
- package/lib/engine/xr/NeedleXRController.js +1007 -1007
- package/lib/engine/xr/NeedleXRSession.d.ts +340 -340
- package/lib/engine/xr/NeedleXRSession.js +1463 -1463
- package/lib/engine/xr/NeedleXRSync.d.ts +22 -22
- package/lib/engine/xr/NeedleXRSync.js +188 -188
- package/lib/engine/xr/SceneTransition.d.ts +18 -18
- package/lib/engine/xr/SceneTransition.js +69 -69
- package/lib/engine/xr/TempXRContext.d.ts +34 -34
- package/lib/engine/xr/TempXRContext.js +187 -187
- package/lib/engine/xr/XRRig.d.ts +7 -7
- package/lib/engine/xr/XRRig.js +1 -1
- package/lib/engine/xr/api.d.ts +6 -6
- package/lib/engine/xr/api.js +6 -6
- package/lib/engine/xr/events.d.ts +66 -66
- package/lib/engine/xr/events.js +93 -93
- package/lib/engine/xr/internal.d.ts +12 -12
- package/lib/engine/xr/internal.js +25 -25
- package/lib/engine/xr/usdz.d.ts +12 -12
- package/lib/engine/xr/usdz.js +29 -29
- package/lib/engine/xr/utils.d.ts +11 -11
- package/lib/engine/xr/utils.js +34 -34
- package/lib/engine-components/AlignmentConstraint.d.ts +10 -10
- package/lib/engine-components/AlignmentConstraint.js +39 -39
- package/lib/engine-components/Animation.d.ts +156 -156
- package/lib/engine-components/Animation.js +508 -508
- package/lib/engine-components/AnimationCurve.d.ts +40 -40
- package/lib/engine-components/AnimationCurve.js +159 -159
- package/lib/engine-components/AnimationUtils.d.ts +8 -8
- package/lib/engine-components/AnimationUtils.js +27 -27
- package/lib/engine-components/AnimationUtilsAutoplay.d.ts +1 -1
- package/lib/engine-components/AnimationUtilsAutoplay.js +39 -39
- package/lib/engine-components/Animator.d.ts +217 -217
- package/lib/engine-components/Animator.js +354 -354
- package/lib/engine-components/AnimatorController.d.ts +227 -227
- package/lib/engine-components/AnimatorController.js +1152 -1152
- package/lib/engine-components/AudioListener.d.ts +33 -33
- package/lib/engine-components/AudioListener.js +86 -86
- package/lib/engine-components/AudioSource.d.ts +217 -217
- package/lib/engine-components/AudioSource.js +635 -635
- package/lib/engine-components/AvatarLoader.d.ts +80 -80
- package/lib/engine-components/AvatarLoader.js +231 -231
- package/lib/engine-components/AxesHelper.d.ts +32 -32
- package/lib/engine-components/AxesHelper.js +67 -67
- package/lib/engine-components/BasicIKConstraint.d.ts +9 -9
- package/lib/engine-components/BasicIKConstraint.js +43 -43
- package/lib/engine-components/BoxCollider.d.ts +2 -2
- package/lib/engine-components/BoxCollider.js +2 -2
- package/lib/engine-components/BoxHelperComponent.d.ts +47 -47
- package/lib/engine-components/BoxHelperComponent.js +102 -102
- package/lib/engine-components/Camera.d.ts +231 -231
- package/lib/engine-components/Camera.js +700 -700
- package/lib/engine-components/CameraUtils.d.ts +1 -1
- package/lib/engine-components/CameraUtils.js +123 -123
- package/lib/engine-components/CharacterController.d.ts +55 -55
- package/lib/engine-components/CharacterController.js +236 -236
- package/lib/engine-components/Collider.d.ts +188 -188
- package/lib/engine-components/Collider.js +369 -369
- package/lib/engine-components/Component.d.ts +792 -792
- package/lib/engine-components/Component.js +920 -920
- package/lib/engine-components/ContactShadows.d.ts +94 -94
- package/lib/engine-components/ContactShadows.js +453 -453
- package/lib/engine-components/DeleteBox.d.ts +19 -19
- package/lib/engine-components/DeleteBox.js +58 -58
- package/lib/engine-components/DeviceFlag.d.ts +16 -16
- package/lib/engine-components/DeviceFlag.js +47 -47
- package/lib/engine-components/DragControls.d.ts +170 -170
- package/lib/engine-components/DragControls.js +1421 -1421
- package/lib/engine-components/DropListener.d.ts +215 -215
- package/lib/engine-components/DropListener.js +642 -642
- package/lib/engine-components/Duplicatable.d.ts +35 -35
- package/lib/engine-components/Duplicatable.js +202 -202
- package/lib/engine-components/EventList.d.ts +54 -54
- package/lib/engine-components/EventList.js +232 -232
- package/lib/engine-components/EventTrigger.d.ts +33 -33
- package/lib/engine-components/EventTrigger.js +75 -75
- package/lib/engine-components/EventType.d.ts +22 -22
- package/lib/engine-components/EventType.js +23 -23
- package/lib/engine-components/Fog.d.ts +22 -22
- package/lib/engine-components/Fog.js +61 -61
- package/lib/engine-components/Gizmos.d.ts +17 -17
- package/lib/engine-components/Gizmos.js +64 -64
- package/lib/engine-components/GridHelper.d.ts +20 -20
- package/lib/engine-components/GridHelper.js +54 -54
- package/lib/engine-components/GroundProjection.d.ts +67 -67
- package/lib/engine-components/GroundProjection.js +343 -343
- package/lib/engine-components/Interactable.d.ts +12 -12
- package/lib/engine-components/Interactable.js +12 -12
- package/lib/engine-components/Joints.d.ts +19 -19
- package/lib/engine-components/Joints.js +51 -51
- package/lib/engine-components/LODGroup.d.ts +35 -35
- package/lib/engine-components/LODGroup.js +152 -152
- package/lib/engine-components/Light.d.ts +180 -180
- package/lib/engine-components/Light.js +535 -535
- package/lib/engine-components/LookAtConstraint.d.ts +19 -19
- package/lib/engine-components/LookAtConstraint.js +35 -35
- package/lib/engine-components/NeedleMenu.d.ts +50 -50
- package/lib/engine-components/NeedleMenu.js +92 -92
- package/lib/engine-components/NestedGltf.d.ts +25 -25
- package/lib/engine-components/NestedGltf.js +88 -88
- package/lib/engine-components/Networking.d.ts +54 -54
- package/lib/engine-components/Networking.js +112 -112
- package/lib/engine-components/OffsetConstraint.d.ts +14 -14
- package/lib/engine-components/OffsetConstraint.js +65 -65
- package/lib/engine-components/OrbitControls.d.ts +268 -268
- package/lib/engine-components/OrbitControls.js +1015 -1015
- package/lib/engine-components/PlayerColor.d.ts +19 -19
- package/lib/engine-components/PlayerColor.js +94 -94
- package/lib/engine-components/ReflectionProbe.d.ts +28 -28
- package/lib/engine-components/ReflectionProbe.js +204 -204
- package/lib/engine-components/Renderer.d.ts +153 -153
- package/lib/engine-components/Renderer.js +834 -834
- package/lib/engine-components/RendererInstancing.d.ts +140 -140
- package/lib/engine-components/RendererInstancing.js +744 -744
- package/lib/engine-components/RendererInstancing.js.map +1 -1
- package/lib/engine-components/RendererLightmap.d.ts +24 -24
- package/lib/engine-components/RendererLightmap.js +182 -182
- package/lib/engine-components/RigidBody.d.ts +155 -155
- package/lib/engine-components/RigidBody.js +517 -517
- package/lib/engine-components/SceneSwitcher.d.ts +263 -263
- package/lib/engine-components/SceneSwitcher.js +971 -971
- package/lib/engine-components/ScreenCapture.d.ts +144 -144
- package/lib/engine-components/ScreenCapture.js +547 -547
- package/lib/engine-components/ShadowCatcher.d.ts +33 -33
- package/lib/engine-components/ShadowCatcher.js +166 -166
- package/lib/engine-components/Skybox.d.ts +88 -88
- package/lib/engine-components/Skybox.js +469 -469
- package/lib/engine-components/SmoothFollow.d.ts +34 -34
- package/lib/engine-components/SmoothFollow.js +82 -82
- package/lib/engine-components/SpatialTrigger.d.ts +102 -102
- package/lib/engine-components/SpatialTrigger.js +225 -225
- package/lib/engine-components/SpectatorCamera.d.ts +111 -111
- package/lib/engine-components/SpectatorCamera.js +715 -715
- package/lib/engine-components/SphereCollider.d.ts +2 -2
- package/lib/engine-components/SphereCollider.js +2 -2
- package/lib/engine-components/SpriteRenderer.d.ts +132 -132
- package/lib/engine-components/SpriteRenderer.js +472 -472
- package/lib/engine-components/SyncedCamera.d.ts +41 -41
- package/lib/engine-components/SyncedCamera.js +199 -199
- package/lib/engine-components/SyncedRoom.d.ts +106 -106
- package/lib/engine-components/SyncedRoom.js +371 -371
- package/lib/engine-components/SyncedTransform.d.ts +94 -94
- package/lib/engine-components/SyncedTransform.js +331 -331
- package/lib/engine-components/TestRunner.d.ts +16 -16
- package/lib/engine-components/TestRunner.js +102 -102
- package/lib/engine-components/TransformGizmo.d.ts +75 -75
- package/lib/engine-components/TransformGizmo.js +209 -209
- package/lib/engine-components/VideoPlayer.d.ts +184 -184
- package/lib/engine-components/VideoPlayer.js +978 -978
- package/lib/engine-components/Voip.d.ts +67 -67
- package/lib/engine-components/Voip.js +360 -360
- package/lib/engine-components/api.d.ts +51 -51
- package/lib/engine-components/api.js +50 -50
- package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +11 -11
- package/lib/engine-components/avatar/AvatarBlink_Simple.js +76 -76
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +14 -14
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +68 -68
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +29 -29
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +121 -121
- package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +15 -15
- package/lib/engine-components/avatar/Avatar_MouthShapes.js +79 -79
- package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +9 -9
- package/lib/engine-components/avatar/Avatar_MustacheShake.js +29 -29
- package/lib/engine-components/codegen/components.d.ts +216 -216
- package/lib/engine-components/codegen/components.js +218 -218
- package/lib/engine-components/debug/LogStats.d.ts +5 -5
- package/lib/engine-components/debug/LogStats.js +18 -18
- package/lib/engine-components/export/gltf/GltfExport.d.ts +30 -30
- package/lib/engine-components/export/gltf/GltfExport.js +246 -246
- package/lib/engine-components/export/gltf/index.d.ts +1 -1
- package/lib/engine-components/export/gltf/index.js +1 -1
- package/lib/engine-components/export/index.d.ts +1 -1
- package/lib/engine-components/export/index.js +1 -1
- package/lib/engine-components/export/usdz/Extension.d.ts +22 -22
- package/lib/engine-components/export/usdz/Extension.js +1 -1
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.d.ts +162 -162
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +1789 -1789
- package/lib/engine-components/export/usdz/USDZExporter.d.ts +130 -130
- package/lib/engine-components/export/usdz/USDZExporter.js +663 -663
- package/lib/engine-components/export/usdz/extensions/Animation.d.ts +106 -106
- package/lib/engine-components/export/usdz/extensions/Animation.js +1071 -1071
- package/lib/engine-components/export/usdz/extensions/DocumentExtension.d.ts +5 -5
- package/lib/engine-components/export/usdz/extensions/DocumentExtension.js +6 -6
- package/lib/engine-components/export/usdz/extensions/NodeMaterialConverter.d.ts +10 -10
- package/lib/engine-components/export/usdz/extensions/NodeMaterialConverter.js +451 -451
- package/lib/engine-components/export/usdz/extensions/USDZText.d.ts +54 -54
- package/lib/engine-components/export/usdz/extensions/USDZText.js +203 -203
- package/lib/engine-components/export/usdz/extensions/USDZUI.d.ts +8 -8
- package/lib/engine-components/export/usdz/extensions/USDZUI.js +158 -158
- package/lib/engine-components/export/usdz/extensions/behavior/Actions.d.ts +30 -30
- package/lib/engine-components/export/usdz/extensions/behavior/Actions.js +88 -88
- package/lib/engine-components/export/usdz/extensions/behavior/AudioExtension.d.ts +10 -10
- package/lib/engine-components/export/usdz/extensions/behavior/AudioExtension.js +86 -86
- package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.d.ts +28 -28
- package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js +290 -290
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +190 -190
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +1060 -1060
- package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.d.ts +135 -135
- package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js +548 -548
- package/lib/engine-components/export/usdz/extensions/behavior/PhysicsExtension.d.ts +7 -7
- package/lib/engine-components/export/usdz/extensions/behavior/PhysicsExtension.js +115 -115
- package/lib/engine-components/export/usdz/index.d.ts +3 -3
- package/lib/engine-components/export/usdz/index.js +2 -2
- package/lib/engine-components/export/usdz/utils/animationutils.d.ts +7 -7
- package/lib/engine-components/export/usdz/utils/animationutils.js +163 -163
- package/lib/engine-components/export/usdz/utils/quicklook.d.ts +2 -2
- package/lib/engine-components/export/usdz/utils/quicklook.js +43 -43
- package/lib/engine-components/particlesystem/ParticleSystem.d.ts +177 -177
- package/lib/engine-components/particlesystem/ParticleSystem.js +1176 -1176
- package/lib/engine-components/particlesystem/ParticleSystemModules.d.ts +526 -526
- package/lib/engine-components/particlesystem/ParticleSystemModules.js +1930 -1930
- package/lib/engine-components/particlesystem/ParticleSystemSubEmitter.d.ts +25 -25
- package/lib/engine-components/particlesystem/ParticleSystemSubEmitter.js +87 -87
- package/lib/engine-components/particlesystem/api.d.ts +2 -2
- package/lib/engine-components/particlesystem/api.js +2 -2
- package/lib/engine-components/postprocessing/Effects/Antialiasing.d.ts +17 -17
- package/lib/engine-components/postprocessing/Effects/Antialiasing.js +59 -59
- package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +46 -46
- package/lib/engine-components/postprocessing/Effects/BloomEffect.js +113 -113
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +11 -11
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +39 -39
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +23 -23
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +111 -111
- package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +25 -25
- package/lib/engine-components/postprocessing/Effects/DepthOfField.js +104 -104
- package/lib/engine-components/postprocessing/Effects/EffectWrapper.d.ts +12 -12
- package/lib/engine-components/postprocessing/Effects/EffectWrapper.js +18 -18
- package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +11 -11
- package/lib/engine-components/postprocessing/Effects/Pixelation.js +32 -32
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.d.ts +18 -18
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js +91 -91
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +70 -70
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +176 -176
- package/lib/engine-components/postprocessing/Effects/Sharpening.d.ts +18 -18
- package/lib/engine-components/postprocessing/Effects/Sharpening.js +127 -127
- package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +17 -17
- package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +70 -70
- package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +19 -19
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js +94 -94
- package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +13 -13
- package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.js +51 -51
- package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +15 -15
- package/lib/engine-components/postprocessing/Effects/Vignette.js +60 -60
- package/lib/engine-components/postprocessing/PostProcessingEffect.d.ts +90 -90
- package/lib/engine-components/postprocessing/PostProcessingEffect.js +168 -168
- package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +42 -42
- package/lib/engine-components/postprocessing/PostProcessingHandler.js +494 -494
- package/lib/engine-components/postprocessing/Volume.d.ts +90 -90
- package/lib/engine-components/postprocessing/Volume.js +385 -385
- package/lib/engine-components/postprocessing/VolumeParameter.d.ts +26 -26
- package/lib/engine-components/postprocessing/VolumeParameter.js +136 -136
- package/lib/engine-components/postprocessing/VolumeProfile.d.ts +15 -15
- package/lib/engine-components/postprocessing/VolumeProfile.js +60 -60
- package/lib/engine-components/postprocessing/index.d.ts +6 -6
- package/lib/engine-components/postprocessing/index.js +6 -6
- package/lib/engine-components/postprocessing/utils.d.ts +55 -55
- package/lib/engine-components/postprocessing/utils.js +119 -119
- package/lib/engine-components/timeline/PlayableDirector.d.ts +163 -163
- package/lib/engine-components/timeline/PlayableDirector.js +686 -686
- package/lib/engine-components/timeline/SignalAsset.d.ts +24 -24
- package/lib/engine-components/timeline/SignalAsset.js +130 -130
- package/lib/engine-components/timeline/TimelineModels.d.ts +89 -89
- package/lib/engine-components/timeline/TimelineModels.js +22 -22
- package/lib/engine-components/timeline/TimelineTracks.d.ts +110 -110
- package/lib/engine-components/timeline/TimelineTracks.js +879 -879
- package/lib/engine-components/timeline/index.d.ts +4 -4
- package/lib/engine-components/timeline/index.js +3 -3
- package/lib/engine-components/ui/BaseUIComponent.d.ts +48 -48
- package/lib/engine-components/ui/BaseUIComponent.js +170 -170
- package/lib/engine-components/ui/Button.d.ts +64 -64
- package/lib/engine-components/ui/Button.js +315 -315
- package/lib/engine-components/ui/Canvas.d.ts +74 -74
- package/lib/engine-components/ui/Canvas.js +407 -407
- package/lib/engine-components/ui/CanvasGroup.d.ts +19 -19
- package/lib/engine-components/ui/CanvasGroup.js +58 -58
- package/lib/engine-components/ui/EventSystem.d.ts +125 -125
- package/lib/engine-components/ui/EventSystem.js +765 -765
- package/lib/engine-components/ui/Graphic.d.ts +55 -55
- package/lib/engine-components/ui/Graphic.js +255 -255
- package/lib/engine-components/ui/Image.d.ts +35 -35
- package/lib/engine-components/ui/Image.js +116 -116
- package/lib/engine-components/ui/InputField.d.ts +42 -42
- package/lib/engine-components/ui/InputField.js +268 -268
- package/lib/engine-components/ui/Interfaces.d.ts +38 -38
- package/lib/engine-components/ui/Interfaces.js +12 -12
- package/lib/engine-components/ui/Layout.d.ts +84 -84
- package/lib/engine-components/ui/Layout.js +330 -330
- package/lib/engine-components/ui/Outline.d.ts +7 -7
- package/lib/engine-components/ui/Outline.js +20 -20
- package/lib/engine-components/ui/PointerEvents.d.ts +115 -115
- package/lib/engine-components/ui/PointerEvents.js +145 -145
- package/lib/engine-components/ui/RaycastUtils.d.ts +11 -11
- package/lib/engine-components/ui/RaycastUtils.js +67 -67
- package/lib/engine-components/ui/Raycaster.d.ts +30 -30
- package/lib/engine-components/ui/Raycaster.js +95 -95
- package/lib/engine-components/ui/RectTransform.d.ts +61 -61
- package/lib/engine-components/ui/RectTransform.js +356 -356
- package/lib/engine-components/ui/SpatialHtml.d.ts +8 -8
- package/lib/engine-components/ui/SpatialHtml.js +79 -79
- package/lib/engine-components/ui/Symbols.d.ts +1 -1
- package/lib/engine-components/ui/Symbols.js +1 -1
- package/lib/engine-components/ui/Text.d.ts +78 -78
- package/lib/engine-components/ui/Text.js +539 -539
- package/lib/engine-components/ui/Utils.d.ts +24 -24
- package/lib/engine-components/ui/Utils.js +90 -90
- package/lib/engine-components/ui/index.d.ts +1 -1
- package/lib/engine-components/ui/index.js +1 -1
- package/lib/engine-components/utils/EnvironmentScene.d.ts +5 -5
- package/lib/engine-components/utils/EnvironmentScene.js +205 -205
- package/lib/engine-components/utils/LookAt.d.ts +31 -31
- package/lib/engine-components/utils/LookAt.js +82 -82
- package/lib/engine-components/utils/OpenURL.d.ts +42 -42
- package/lib/engine-components/utils/OpenURL.js +119 -119
- package/lib/engine-components/webxr/Avatar.d.ts +25 -25
- package/lib/engine-components/webxr/Avatar.js +255 -255
- package/lib/engine-components/webxr/TeleportTarget.d.ts +7 -7
- package/lib/engine-components/webxr/TeleportTarget.js +7 -7
- package/lib/engine-components/webxr/WebARCameraBackground.d.ts +30 -30
- package/lib/engine-components/webxr/WebARCameraBackground.js +155 -155
- package/lib/engine-components/webxr/WebARSessionRoot.d.ts +98 -98
- package/lib/engine-components/webxr/WebARSessionRoot.js +770 -770
- package/lib/engine-components/webxr/WebXR.d.ts +232 -232
- package/lib/engine-components/webxr/WebXR.js +561 -561
- package/lib/engine-components/webxr/WebXRAvatar.d.ts +27 -27
- package/lib/engine-components/webxr/WebXRAvatar.js +44 -44
- package/lib/engine-components/webxr/WebXRImageTracking.d.ts +86 -86
- package/lib/engine-components/webxr/WebXRImageTracking.js +471 -471
- package/lib/engine-components/webxr/WebXRPlaneTracking.d.ts +92 -92
- package/lib/engine-components/webxr/WebXRPlaneTracking.js +500 -500
- package/lib/engine-components/webxr/WebXRRig.d.ts +32 -32
- package/lib/engine-components/webxr/WebXRRig.js +72 -72
- package/lib/engine-components/webxr/XRFlag.d.ts +38 -38
- package/lib/engine-components/webxr/XRFlag.js +139 -139
- package/lib/engine-components/webxr/controllers/XRControllerFollow.d.ts +47 -47
- package/lib/engine-components/webxr/controllers/XRControllerFollow.js +120 -120
- package/lib/engine-components/webxr/controllers/XRControllerModel.d.ts +43 -43
- package/lib/engine-components/webxr/controllers/XRControllerModel.js +352 -352
- package/lib/engine-components/webxr/controllers/XRControllerMovement.d.ts +78 -78
- package/lib/engine-components/webxr/controllers/XRControllerMovement.js +506 -506
- package/lib/engine-components/webxr/index.d.ts +3 -3
- package/lib/engine-components/webxr/index.js +3 -3
- package/lib/engine-components/webxr/types.d.ts +3 -3
- package/lib/engine-components/webxr/types.js +1 -1
- package/lib/engine-components-experimental/Presentation.d.ts +6 -6
- package/lib/engine-components-experimental/Presentation.js +9 -9
- package/lib/engine-components-experimental/api.d.ts +4 -4
- package/lib/engine-components-experimental/api.js +4 -4
- package/lib/engine-components-experimental/networking/PlayerSync.d.ts +156 -156
- package/lib/engine-components-experimental/networking/PlayerSync.js +377 -377
- package/lib/engine-schemes/api.d.ts +12 -12
- package/lib/engine-schemes/api.js +12 -12
- package/lib/engine-schemes/schemes.d.ts +7 -7
- package/lib/engine-schemes/schemes.js +19 -19
- package/lib/engine-schemes/synced-camera-model.d.ts +25 -25
- package/lib/engine-schemes/synced-camera-model.js +67 -67
- package/lib/engine-schemes/synced-transform-model.d.ts +31 -31
- package/lib/engine-schemes/synced-transform-model.js +66 -66
- package/lib/engine-schemes/transform.d.ts +12 -12
- package/lib/engine-schemes/transform.js +39 -39
- package/lib/engine-schemes/vec2.d.ts +10 -10
- package/lib/engine-schemes/vec2.js +25 -25
- package/lib/engine-schemes/vec3.d.ts +11 -11
- package/lib/engine-schemes/vec3.js +29 -29
- package/lib/engine-schemes/vec4.d.ts +12 -12
- package/lib/engine-schemes/vec4.js +33 -33
- package/lib/engine-schemes/vr-user-state-buffer.d.ts +37 -37
- package/lib/engine-schemes/vr-user-state-buffer.js +110 -110
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -6
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +45 -45
- package/lib/needle-engine.d.ts +7 -7
- package/lib/needle-engine.js +64 -64
- package/package.json +2 -2
- package/plugins/common/buildinfo.js +64 -64
- package/plugins/common/cloud.js +1 -1
- package/plugins/common/config.cjs +31 -31
- package/plugins/common/config.js +35 -35
- package/plugins/common/files.js +31 -31
- package/plugins/common/generator.js +10 -10
- package/plugins/common/license.js +452 -452
- package/plugins/common/logger.js +327 -320
- package/plugins/common/npm.js +15 -15
- package/plugins/common/timers.js +7 -7
- package/plugins/common/version.js +37 -37
- package/plugins/gltf-packer.mjs +1 -1
- package/plugins/next/alias.cjs +39 -39
- package/plugins/next/license.cjs +24 -24
- package/plugins/next/meshbvhworker.cjs +18 -18
- package/plugins/next/next.js +141 -141
- package/plugins/types/index.d.ts +2 -2
- package/plugins/types/license.d.ts +24 -24
- package/plugins/types/needleConfig.d.ts +27 -27
- package/plugins/types/next.d.ts +2 -2
- package/plugins/types/userconfig.d.ts +124 -124
- package/plugins/types/vite.d.ts +13 -13
- package/plugins/types/webmanifest.d.ts +32 -32
- package/plugins/vite/alias.js +189 -189
- package/plugins/vite/asap.js +251 -251
- package/plugins/vite/build-pipeline.js +371 -371
- package/plugins/vite/build.js +19 -19
- package/plugins/vite/buildinfo.js +41 -41
- package/plugins/vite/config.js +106 -106
- package/plugins/vite/copyfiles.js +138 -138
- package/plugins/vite/defines.js +70 -70
- package/plugins/vite/dependencies.js +232 -232
- package/plugins/vite/dependency-watcher.js +237 -237
- package/plugins/vite/drop-client.js +76 -76
- package/plugins/vite/drop.js +87 -87
- package/plugins/vite/editor-connection.js +124 -124
- package/plugins/vite/facebook-instant-games.js +102 -102
- package/plugins/vite/gzip.js +5 -5
- package/plugins/vite/imports-logger.js +143 -143
- package/plugins/vite/index.js +147 -147
- package/plugins/vite/license.js +56 -56
- package/plugins/vite/local-files.js +440 -440
- package/plugins/vite/logger.client.js +272 -262
- package/plugins/vite/logger.js +100 -100
- package/plugins/vite/materialx.js +31 -31
- package/plugins/vite/meta.js +163 -163
- package/plugins/vite/npm.js +7 -7
- package/plugins/vite/peer.js +29 -29
- package/plugins/vite/poster-client.js +73 -73
- package/plugins/vite/poster.js +79 -79
- package/plugins/vite/pwa.js +604 -604
- package/plugins/vite/reload-client.js +15 -15
- package/plugins/vite/reload.js +351 -351
- package/plugins/vite/server.js +66 -66
- package/plugins/vite/transform-codegen.js +55 -55
- package/plugins/vite/transform.js +32 -32
- package/plugins/vite/vite-4.4-hack.js +31 -31
- package/src/asap/needle-asap.ts +111 -111
- package/src/asap/sessiongranted.ts +75 -75
- package/src/asap/utils.ts +4 -4
- package/src/engine/analytics/index.ts +10 -10
- package/src/engine/analytics/lcp.ts +35 -35
- package/src/engine/api.ts +82 -82
- package/src/engine/assets/index.ts +59 -59
- package/src/engine/assets/static.js +5 -5
- package/src/engine/codegen/register_types.ts +300 -300
- package/src/engine/debug/debug.ts +51 -51
- package/src/engine/debug/debug_console.ts +333 -333
- package/src/engine/debug/debug_overlay.ts +332 -332
- package/src/engine/debug/debug_spatial_console.ts +429 -429
- package/src/engine/debug/index.ts +1 -1
- package/src/engine/engine_addressables.ts +671 -680
- package/src/engine/engine_animation.ts +145 -145
- package/src/engine/engine_application.ts +113 -113
- package/src/engine/engine_assetdatabase.ts +389 -389
- package/src/engine/engine_audio.ts +24 -24
- package/src/engine/engine_camera.ts +39 -39
- package/src/engine/engine_components.ts +366 -366
- package/src/engine/engine_components_internal.ts +40 -40
- package/src/engine/engine_constants.ts +52 -52
- package/src/engine/engine_context.ts +1824 -1824
- package/src/engine/engine_context_registry.ts +129 -129
- package/src/engine/engine_coroutine.ts +54 -54
- package/src/engine/engine_create_objects.ts +411 -411
- package/src/engine/engine_default_parameters.ts +3 -3
- package/src/engine/engine_editor-sync.ts +28 -28
- package/src/engine/engine_fileloader.js +9 -9
- package/src/engine/engine_gameobject.ts +712 -712
- package/src/engine/engine_generic_utils.js +13 -13
- package/src/engine/engine_gizmos.ts +577 -577
- package/src/engine/engine_gltf.ts +29 -29
- package/src/engine/engine_gltf_builtin_components.ts +403 -403
- package/src/engine/engine_hot_reload.ts +210 -210
- package/src/engine/engine_input.ts +1500 -1500
- package/src/engine/engine_input_utils.ts +23 -23
- package/src/engine/engine_instancing.ts +45 -45
- package/src/engine/engine_license.ts +386 -386
- package/src/engine/engine_lifecycle_api.ts +113 -113
- package/src/engine/engine_lifecycle_functions_internal.ts +193 -193
- package/src/engine/engine_lightdata.ts +125 -117
- package/src/engine/engine_loaders.callbacks.ts +136 -136
- package/src/engine/engine_loaders.gltf.ts +82 -82
- package/src/engine/engine_loaders.ts +378 -378
- package/src/engine/engine_lods.ts +186 -168
- package/src/engine/engine_mainloop_utils.ts +472 -472
- package/src/engine/engine_math.ts +282 -282
- package/src/engine/engine_modules.ts +83 -83
- package/src/engine/engine_networking.ts +862 -862
- package/src/engine/engine_networking_auto.ts +352 -352
- package/src/engine/engine_networking_blob.ts +275 -275
- package/src/engine/engine_networking_files.ts +217 -217
- package/src/engine/engine_networking_files_default_components.ts +58 -58
- package/src/engine/engine_networking_instantiate.ts +419 -419
- package/src/engine/engine_networking_peer.ts +159 -159
- package/src/engine/engine_networking_streams.ts +713 -713
- package/src/engine/engine_networking_types.ts +24 -24
- package/src/engine/engine_networking_utils.ts +23 -23
- package/src/engine/engine_networking_websocket.ts +2 -2
- package/src/engine/engine_patcher.ts +199 -199
- package/src/engine/engine_physics.ts +783 -783
- package/src/engine/engine_physics.types.ts +46 -46
- package/src/engine/engine_physics_rapier.ts +1577 -1577
- package/src/engine/engine_playerview.ts +80 -80
- package/src/engine/engine_scenelighting.ts +294 -294
- package/src/engine/engine_serialization.ts +2 -2
- package/src/engine/engine_serialization_builtin_serializer.ts +473 -473
- package/src/engine/engine_serialization_core.ts +720 -720
- package/src/engine/engine_serialization_decorator.ts +80 -80
- package/src/engine/engine_setup.ts +1 -1
- package/src/engine/engine_shaders.ts +267 -267
- package/src/engine/engine_shims.ts +32 -32
- package/src/engine/engine_test_utils.ts +109 -109
- package/src/engine/engine_texture.ts +82 -82
- package/src/engine/engine_three_utils.ts +928 -928
- package/src/engine/engine_time.ts +94 -94
- package/src/engine/engine_time_utils.ts +237 -237
- package/src/engine/engine_tonemapping.ts +208 -208
- package/src/engine/engine_types.ts +730 -730
- package/src/engine/engine_typestore.ts +63 -63
- package/src/engine/engine_util_decorator.ts +136 -136
- package/src/engine/engine_utils.ts +1115 -1115
- package/src/engine/engine_utils_format.ts +273 -273
- package/src/engine/engine_utils_screenshot.ts +708 -708
- package/src/engine/engine_utils_screenshot.xr.ts +103 -103
- package/src/engine/export/gltf/Writers.ts +34 -34
- package/src/engine/export/gltf/index.ts +158 -158
- package/src/engine/export/index.ts +2 -2
- package/src/engine/export/state.ts +19 -19
- package/src/engine/export/utils.ts +9 -9
- package/src/engine/extensions/EXT_texture_exr.ts +50 -50
- package/src/engine/extensions/NEEDLE_animator_controller_model.ts +195 -195
- package/src/engine/extensions/NEEDLE_components.ts +268 -268
- package/src/engine/extensions/NEEDLE_gameobject_data.ts +81 -81
- package/src/engine/extensions/NEEDLE_lighting_settings.ts +185 -185
- package/src/engine/extensions/NEEDLE_lightmaps.ts +119 -119
- package/src/engine/extensions/NEEDLE_persistent_assets.ts +76 -76
- package/src/engine/extensions/NEEDLE_render_objects.ts +209 -209
- package/src/engine/extensions/NEEDLE_techniques_webgl.ts +640 -640
- package/src/engine/extensions/extension_resolver.ts +4 -4
- package/src/engine/extensions/extension_utils.ts +166 -166
- package/src/engine/extensions/extensions.ts +140 -140
- package/src/engine/extensions/index.ts +5 -5
- package/src/engine/extensions/usage_tracker.ts +100 -100
- package/src/engine/js-extensions/Camera.ts +37 -37
- package/src/engine/js-extensions/ExtensionUtils.ts +85 -85
- package/src/engine/js-extensions/Layers.ts +23 -23
- package/src/engine/js-extensions/Object3D.ts +296 -296
- package/src/engine/js-extensions/RGBAColor.ts +126 -126
- package/src/engine/js-extensions/Vector.ts +18 -18
- package/src/engine/js-extensions/index.ts +4 -4
- package/src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +125 -125
- package/src/engine/shaders/shaderData.ts +67 -67
- package/src/engine/tests/test_utils.ts +63 -63
- package/src/engine/webcomponents/WebXRButtons.ts +260 -260
- package/src/engine/webcomponents/api.ts +6 -6
- package/src/engine/webcomponents/buttons.ts +292 -292
- package/src/engine/webcomponents/fonts.ts +41 -41
- package/src/engine/webcomponents/icons.ts +57 -57
- package/src/engine/webcomponents/index.ts +1 -1
- package/src/engine/webcomponents/logo-element.ts +78 -78
- package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +573 -573
- package/src/engine/webcomponents/needle menu/needle-menu.ts +1118 -1118
- package/src/engine/webcomponents/needle-button.ts +181 -181
- package/src/engine/webcomponents/needle-engine.ar-overlay.ts +186 -186
- package/src/engine/webcomponents/needle-engine.attributes.ts +82 -82
- package/src/engine/webcomponents/needle-engine.extras.ts +16 -16
- package/src/engine/webcomponents/needle-engine.loading.ts +373 -373
- package/src/engine/webcomponents/needle-engine.ts +860 -860
- package/src/engine/xr/NeedleXRController.ts +1125 -1125
- package/src/engine/xr/NeedleXRSession.ts +1624 -1624
- package/src/engine/xr/NeedleXRSync.ts +220 -220
- package/src/engine/xr/SceneTransition.ts +78 -78
- package/src/engine/xr/TempXRContext.ts +216 -216
- package/src/engine/xr/XRRig.ts +9 -9
- package/src/engine/xr/api.ts +5 -5
- package/src/engine/xr/events.ts +102 -102
- package/src/engine/xr/internal.ts +34 -34
- package/src/engine/xr/usdz.ts +30 -30
- package/src/engine/xr/utils.ts +39 -39
- package/src/engine-components/AlignmentConstraint.ts +36 -36
- package/src/engine-components/Animation.ts +557 -557
- package/src/engine-components/AnimationCurve.ts +150 -150
- package/src/engine-components/AnimationUtils.ts +28 -28
- package/src/engine-components/AnimationUtilsAutoplay.ts +43 -43
- package/src/engine-components/Animator.ts +397 -397
- package/src/engine-components/AnimatorController.ts +1293 -1293
- package/src/engine-components/AudioListener.ts +92 -92
- package/src/engine-components/AudioSource.ts +644 -644
- package/src/engine-components/AvatarLoader.ts +263 -263
- package/src/engine-components/AxesHelper.ts +59 -59
- package/src/engine-components/BasicIKConstraint.ts +54 -54
- package/src/engine-components/BoxCollider.ts +1 -1
- package/src/engine-components/BoxHelperComponent.ts +114 -114
- package/src/engine-components/Camera.ts +719 -719
- package/src/engine-components/CameraUtils.ts +138 -138
- package/src/engine-components/CharacterController.ts +253 -253
- package/src/engine-components/Collider.ts +374 -374
- package/src/engine-components/Component.ts +1297 -1297
- package/src/engine-components/ContactShadows.ts +506 -506
- package/src/engine-components/DeleteBox.ts +62 -62
- package/src/engine-components/DeviceFlag.ts +46 -46
- package/src/engine-components/DragControls.ts +1623 -1623
- package/src/engine-components/DropListener.ts +713 -713
- package/src/engine-components/Duplicatable.ts +198 -198
- package/src/engine-components/EventList.ts +266 -266
- package/src/engine-components/EventTrigger.ts +74 -74
- package/src/engine-components/EventType.ts +22 -22
- package/src/engine-components/Fog.ts +60 -60
- package/src/engine-components/Gizmos.ts +56 -56
- package/src/engine-components/GridHelper.ts +48 -48
- package/src/engine-components/GroundProjection.ts +356 -356
- package/src/engine-components/Interactable.ts +14 -14
- package/src/engine-components/Joints.ts +52 -52
- package/src/engine-components/LODGroup.ts +153 -153
- package/src/engine-components/Light.ts +558 -558
- package/src/engine-components/LookAtConstraint.ts +25 -25
- package/src/engine-components/NeedleMenu.ts +84 -84
- package/src/engine-components/NestedGltf.ts +86 -86
- package/src/engine-components/Networking.ts +114 -114
- package/src/engine-components/OffsetConstraint.ts +60 -60
- package/src/engine-components/OrbitControls.ts +1074 -1074
- package/src/engine-components/PlayerColor.ts +103 -103
- package/src/engine-components/ReflectionProbe.ts +220 -220
- package/src/engine-components/Renderer.ts +903 -903
- package/src/engine-components/RendererInstancing.ts +855 -855
- package/src/engine-components/RendererLightmap.ts +198 -198
- package/src/engine-components/RigidBody.ts +526 -526
- package/src/engine-components/SceneSwitcher.ts +1030 -1030
- package/src/engine-components/ScreenCapture.ts +592 -592
- package/src/engine-components/ShadowCatcher.ts +172 -172
- package/src/engine-components/Skybox.ts +475 -475
- package/src/engine-components/SmoothFollow.ts +76 -76
- package/src/engine-components/SpatialTrigger.ts +229 -229
- package/src/engine-components/SpectatorCamera.ts +787 -787
- package/src/engine-components/SphereCollider.ts +1 -1
- package/src/engine-components/SpriteRenderer.ts +468 -468
- package/src/engine-components/SyncedCamera.ts +220 -220
- package/src/engine-components/SyncedRoom.ts +380 -380
- package/src/engine-components/SyncedTransform.ts +383 -383
- package/src/engine-components/TestRunner.ts +118 -118
- package/src/engine-components/TransformGizmo.ts +219 -219
- package/src/engine-components/VideoPlayer.ts +1025 -1025
- package/src/engine-components/Voip.ts +363 -363
- package/src/engine-components/api.ts +60 -60
- package/src/engine-components/avatar/AvatarBlink_Simple.ts +69 -69
- package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +63 -63
- package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +139 -139
- package/src/engine-components/avatar/Avatar_MouthShapes.ts +83 -83
- package/src/engine-components/avatar/Avatar_MustacheShake.ts +31 -31
- package/src/engine-components/codegen/components.ts +217 -217
- package/src/engine-components/debug/LogStats.ts +21 -21
- package/src/engine-components/export/gltf/GltfExport.ts +265 -265
- package/src/engine-components/export/usdz/Extension.ts +24 -24
- package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +2426 -2426
- package/src/engine-components/export/usdz/USDZExporter.ts +705 -705
- package/src/engine-components/export/usdz/extensions/Animation.ts +1204 -1204
- package/src/engine-components/export/usdz/extensions/DocumentExtension.ts +9 -9
- package/src/engine-components/export/usdz/extensions/NodeMaterialConverter.ts +532 -532
- package/src/engine-components/export/usdz/extensions/USDZText.ts +240 -240
- package/src/engine-components/export/usdz/extensions/USDZUI.ts +189 -189
- package/src/engine-components/export/usdz/extensions/behavior/Actions.ts +99 -99
- package/src/engine-components/export/usdz/extensions/behavior/AudioExtension.ts +102 -102
- package/src/engine-components/export/usdz/extensions/behavior/Behaviour.ts +320 -320
- package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +1225 -1225
- package/src/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.ts +646 -646
- package/src/engine-components/export/usdz/extensions/behavior/PhysicsExtension.ts +132 -132
- package/src/engine-components/export/usdz/index.ts +2 -2
- package/src/engine-components/export/usdz/utils/animationutils.ts +191 -191
- package/src/engine-components/export/usdz/utils/quicklook.ts +50 -50
- package/src/engine-components/particlesystem/ParticleSystem.ts +1287 -1287
- package/src/engine-components/particlesystem/ParticleSystemModules.ts +1765 -1765
- package/src/engine-components/particlesystem/ParticleSystemSubEmitter.ts +111 -111
- package/src/engine-components/particlesystem/api.ts +1 -1
- package/src/engine-components/postprocessing/Effects/Antialiasing.ts +64 -64
- package/src/engine-components/postprocessing/Effects/BloomEffect.ts +116 -116
- package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +37 -37
- package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +106 -106
- package/src/engine-components/postprocessing/Effects/DepthOfField.ts +103 -103
- package/src/engine-components/postprocessing/Effects/EffectWrapper.ts +25 -25
- package/src/engine-components/postprocessing/Effects/Pixelation.ts +32 -32
- package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.ts +90 -90
- package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +192 -192
- package/src/engine-components/postprocessing/Effects/Sharpening.ts +143 -143
- package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +61 -61
- package/src/engine-components/postprocessing/Effects/Tonemapping.ts +103 -103
- package/src/engine-components/postprocessing/Effects/Tonemapping.utils.ts +60 -60
- package/src/engine-components/postprocessing/Effects/Vignette.ts +59 -59
- package/src/engine-components/postprocessing/PostProcessingEffect.ts +192 -192
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +572 -572
- package/src/engine-components/postprocessing/Volume.ts +426 -426
- package/src/engine-components/postprocessing/VolumeParameter.ts +158 -158
- package/src/engine-components/postprocessing/VolumeProfile.ts +61 -61
- package/src/engine-components/postprocessing/index.ts +5 -5
- package/src/engine-components/postprocessing/utils.ts +154 -154
- package/src/engine-components/timeline/PlayableDirector.ts +722 -722
- package/src/engine-components/timeline/SignalAsset.ts +144 -144
- package/src/engine-components/timeline/TimelineModels.ts +92 -92
- package/src/engine-components/timeline/TimelineTracks.ts +967 -967
- package/src/engine-components/timeline/index.ts +3 -3
- package/src/engine-components/ui/BaseUIComponent.ts +203 -203
- package/src/engine-components/ui/Button.ts +307 -307
- package/src/engine-components/ui/Canvas.ts +419 -419
- package/src/engine-components/ui/CanvasGroup.ts +54 -54
- package/src/engine-components/ui/EventSystem.ts +854 -854
- package/src/engine-components/ui/Graphic.ts +275 -275
- package/src/engine-components/ui/Image.ts +112 -112
- package/src/engine-components/ui/InputField.ts +321 -321
- package/src/engine-components/ui/Interfaces.ts +57 -57
- package/src/engine-components/ui/Layout.ts +334 -334
- package/src/engine-components/ui/Outline.ts +13 -13
- package/src/engine-components/ui/PointerEvents.ts +206 -206
- package/src/engine-components/ui/RaycastUtils.ts +69 -69
- package/src/engine-components/ui/Raycaster.ts +102 -102
- package/src/engine-components/ui/RectTransform.ts +375 -375
- package/src/engine-components/ui/SpatialHtml.ts +79 -79
- package/src/engine-components/ui/Symbols.ts +1 -1
- package/src/engine-components/ui/Text.ts +578 -578
- package/src/engine-components/ui/Utils.ts +113 -113
- package/src/engine-components/utils/EnvironmentScene.ts +245 -245
- package/src/engine-components/utils/LookAt.ts +88 -88
- package/src/engine-components/utils/OpenURL.ts +114 -114
- package/src/engine-components/webxr/Avatar.ts +265 -265
- package/src/engine-components/webxr/TeleportTarget.ts +9 -9
- package/src/engine-components/webxr/WebARCameraBackground.ts +175 -175
- package/src/engine-components/webxr/WebARSessionRoot.ts +880 -880
- package/src/engine-components/webxr/WebXR.ts +585 -585
- package/src/engine-components/webxr/WebXRAvatar.ts +66 -66
- package/src/engine-components/webxr/WebXRImageTracking.ts +519 -519
- package/src/engine-components/webxr/WebXRPlaneTracking.ts +570 -570
- package/src/engine-components/webxr/WebXRRig.ts +77 -77
- package/src/engine-components/webxr/XRFlag.ts +147 -147
- package/src/engine-components/webxr/controllers/XRControllerFollow.ts +118 -118
- package/src/engine-components/webxr/controllers/XRControllerModel.ts +373 -373
- package/src/engine-components/webxr/controllers/XRControllerMovement.ts +550 -550
- package/src/engine-components/webxr/index.ts +2 -2
- package/src/engine-components/webxr/types.ts +3 -3
- package/src/engine-components-experimental/Presentation.ts +12 -12
- package/src/engine-components-experimental/api.ts +4 -4
- package/src/engine-components-experimental/networking/PlayerSync.ts +401 -401
- package/src/engine-schemes/COMPILE_SCHEMES.bat +3 -3
- package/src/engine-schemes/COMPILE_TS.bat +11 -11
- package/src/engine-schemes/README.md +1 -1
- package/src/engine-schemes/api.ts +12 -12
- package/src/engine-schemes/dist/api.js +17 -0
- package/src/engine-schemes/dist/api.js.meta +7 -0
- package/src/engine-schemes/dist/schemes.js +25 -0
- package/src/engine-schemes/dist/schemes.js.meta +7 -0
- package/src/engine-schemes/dist/synced-camera-model.js +74 -0
- package/src/engine-schemes/dist/synced-camera-model.js.meta +7 -0
- package/src/engine-schemes/dist/synced-transform-model.js +73 -0
- package/src/engine-schemes/dist/synced-transform-model.js.meta +7 -0
- package/src/engine-schemes/dist/transform.js +46 -0
- package/src/engine-schemes/dist/transform.js.meta +7 -0
- package/src/engine-schemes/dist/vec2.js +32 -0
- package/src/engine-schemes/dist/vec2.js.meta +7 -0
- package/src/engine-schemes/dist/vec3.js +36 -0
- package/src/engine-schemes/dist/vec3.js.meta +7 -0
- package/src/engine-schemes/dist/vec4.js +40 -0
- package/src/engine-schemes/dist/vec4.js.meta +7 -0
- package/src/engine-schemes/dist/vr-user-state-buffer.js +110 -0
- package/src/engine-schemes/dist/vr-user-state-buffer.js.meta +7 -0
- package/src/engine-schemes/schemes.ts +28 -28
- package/src/engine-schemes/synced-camera-model.ts +92 -92
- package/src/engine-schemes/synced-transform-model.ts +90 -90
- package/src/engine-schemes/syncedCamera.fbs +10 -10
- package/src/engine-schemes/transform.ts +50 -50
- package/src/engine-schemes/transforms.fbs +25 -25
- package/src/engine-schemes/vec.fbs +19 -19
- package/src/engine-schemes/vec2.ts +33 -33
- package/src/engine-schemes/vec3.ts +38 -38
- package/src/engine-schemes/vec4.ts +43 -43
- package/src/engine-schemes/vr-user-state-buffer.ts +145 -145
- package/src/engine-schemes/vrUserStateBuffer.fbs +17 -17
- package/src/include/draco/draco_decoder.js +34 -34
- package/src/include/ktx2/basis_transcoder.js +21 -21
- package/src/include/needle/arial-msdf.json +1471 -1471
- package/src/include/three/DragControls.js +231 -231
- package/src/include/three/EXT_mesh_gpu_instancing_exporter.js +66 -66
- package/src/needle-engine.ts +70 -70
- package/dist/generateMeshBVH.worker-BaNp_Xtp.js +0 -25
- package/dist/gltf-progressive-Bl4okF1b.min.js +0 -8
- package/dist/gltf-progressive-DSpdn0QT.js +0 -1054
- package/dist/gltf-progressive-P8b8a0qY.umd.cjs +0 -8
|
@@ -1,404 +1,404 @@
|
|
|
1
|
-
import { Color, CompressedTexture, Euler, LinearSRGBColorSpace, Object3D, RGBAFormat, Texture, WebGLRenderTarget } from "three";
|
|
2
|
-
import { isDevEnvironment, showBalloonWarning } from "../engine/debug/index.js";
|
|
3
|
-
import { Behaviour, Component, GameObject } from "../engine-components/Component.js";
|
|
4
|
-
import { CallInfo, EventList } from "../engine-components/EventList.js";
|
|
5
|
-
import { AssetReference } from "./engine_addressables.js";
|
|
6
|
-
import { debugExtension } from "./engine_default_parameters.js";
|
|
7
|
-
import { TypeSerializer } from "./engine_serialization_core.js";
|
|
8
|
-
import { RenderTexture } from "./engine_texture.js";
|
|
9
|
-
import { resolveUrl } from "./engine_utils.js";
|
|
10
|
-
import { RGBAColor } from "./js-extensions/index.js";
|
|
11
|
-
// export class SourcePath {
|
|
12
|
-
// src?:string
|
|
13
|
-
// };
|
|
14
|
-
// class SourcePathSerializer extends TypeSerializer{
|
|
15
|
-
// constructor(){
|
|
16
|
-
// super(SourcePath);
|
|
17
|
-
// }
|
|
18
|
-
// onDeserialize(data: any, _context: SerializationContext) {
|
|
19
|
-
// if(data.src && typeof data.src === "string"){
|
|
20
|
-
// return data.src;
|
|
21
|
-
// }
|
|
22
|
-
// }
|
|
23
|
-
// onSerialize(_data: any, _context: SerializationContext) {
|
|
24
|
-
// }
|
|
25
|
-
// }
|
|
26
|
-
// new SourcePathSerializer();
|
|
27
|
-
class ColorSerializer extends TypeSerializer {
|
|
28
|
-
constructor() {
|
|
29
|
-
super([Color, RGBAColor], "ColorSerializer");
|
|
30
|
-
}
|
|
31
|
-
onDeserialize(data) {
|
|
32
|
-
if (data === undefined || data === null)
|
|
33
|
-
return;
|
|
34
|
-
if (data.a !== undefined) {
|
|
35
|
-
return new RGBAColor(data.r, data.g, data.b, data.a);
|
|
36
|
-
}
|
|
37
|
-
else if (data.alpha !== undefined) {
|
|
38
|
-
return new RGBAColor(data.r, data.g, data.b, data.alpha);
|
|
39
|
-
}
|
|
40
|
-
return new Color(data.r, data.g, data.b);
|
|
41
|
-
}
|
|
42
|
-
onSerialize(data) {
|
|
43
|
-
if (data === undefined || data === null)
|
|
44
|
-
return;
|
|
45
|
-
if (data.a !== undefined)
|
|
46
|
-
return { r: data.r, g: data.g, b: data.b, a: data.a };
|
|
47
|
-
else
|
|
48
|
-
return { r: data.r, g: data.g, b: data.b };
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
export const colorSerializer = new ColorSerializer();
|
|
52
|
-
class EulerSerializer extends TypeSerializer {
|
|
53
|
-
constructor() {
|
|
54
|
-
super([Euler], "EulerSerializer");
|
|
55
|
-
}
|
|
56
|
-
onDeserialize(data, _context) {
|
|
57
|
-
if (data === undefined || data === null)
|
|
58
|
-
return undefined;
|
|
59
|
-
if (data.order) {
|
|
60
|
-
return new Euler(data.x, data.y, data.z, data.order);
|
|
61
|
-
}
|
|
62
|
-
else if (data.x != undefined) {
|
|
63
|
-
return new Euler(data.x, data.y, data.z);
|
|
64
|
-
}
|
|
65
|
-
return undefined;
|
|
66
|
-
}
|
|
67
|
-
onSerialize(data, _context) {
|
|
68
|
-
return { x: data.x, y: data.y, z: data.z, order: data.order };
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
export const euler = new EulerSerializer();
|
|
72
|
-
class ObjectSerializer extends TypeSerializer {
|
|
73
|
-
constructor() {
|
|
74
|
-
super(Object3D, "ObjectSerializer");
|
|
75
|
-
}
|
|
76
|
-
onSerialize(data, context) {
|
|
77
|
-
if (context.objectToNode !== undefined && data.uuid) {
|
|
78
|
-
const node = context.objectToNode[data.uuid];
|
|
79
|
-
if (debugExtension)
|
|
80
|
-
console.log(node, data.name, data.uuid);
|
|
81
|
-
return { node: node };
|
|
82
|
-
}
|
|
83
|
-
return undefined;
|
|
84
|
-
}
|
|
85
|
-
onDeserialize(data, context) {
|
|
86
|
-
if (typeof data === "string") {
|
|
87
|
-
if (data.endsWith(".glb") || data.endsWith(".gltf")) {
|
|
88
|
-
// If the @serializable([Object3D, AssetReference]) looks like this we don't need to warn here. This is the case e.g. with SyncedCamera referencing a scene
|
|
89
|
-
if (context.serializable instanceof Array) {
|
|
90
|
-
if (context.serializable.includes(AssetReference))
|
|
91
|
-
return undefined;
|
|
92
|
-
}
|
|
93
|
-
if (isDevEnvironment())
|
|
94
|
-
showBalloonWarning("Detected wrong usage of @serializable with Object3D or GameObject. Instead you should use AssetReference here! Please see the console for details.");
|
|
95
|
-
const scriptname = context.target?.constructor?.name;
|
|
96
|
-
console.warn(`Wrong usage of @serializable detected in your script \"${scriptname}\"\n\nIt looks like you used @serializable(Object3D) or @serializable(GameObject) for a prefab or scene reference which is exported to a separate glTF file.\n\nTo fix this please change your code to:\n\n@serializable(AssetReference)\n${context.path}! : AssetReference;\n\0`);
|
|
97
|
-
}
|
|
98
|
-
// ACTUALLY: this is already handled by the extension_utils where we resolve json pointers recursively
|
|
99
|
-
// if(data.startsWith("/nodes/")){
|
|
100
|
-
// const node = parseInt(data.substring("/nodes/".length));
|
|
101
|
-
// if (context.nodeToObject) {
|
|
102
|
-
// const res = context.nodeToObject[node];
|
|
103
|
-
// if (debugExtension)
|
|
104
|
-
// console.log("Deserialized object reference?", data, res, context?.nodeToObject);
|
|
105
|
-
// if (!res) console.warn("Did not find node: " + data, context.nodeToObject, context.object);
|
|
106
|
-
// return res;
|
|
107
|
-
// }
|
|
108
|
-
// }
|
|
109
|
-
return undefined;
|
|
110
|
-
}
|
|
111
|
-
if (data) {
|
|
112
|
-
if (data.node !== undefined && context.nodeToObject) {
|
|
113
|
-
const res = context.nodeToObject[data.node];
|
|
114
|
-
if (debugExtension)
|
|
115
|
-
console.log("Deserialized object reference?", data, res, context?.nodeToObject);
|
|
116
|
-
if (!res)
|
|
117
|
-
console.warn("Did not find node: " + data.node, context.nodeToObject, context.object);
|
|
118
|
-
return res;
|
|
119
|
-
}
|
|
120
|
-
else if (data.guid) {
|
|
121
|
-
if (!context.context) {
|
|
122
|
-
console.error("Missing context");
|
|
123
|
-
return undefined;
|
|
124
|
-
}
|
|
125
|
-
// it is possible that the object is not yet loaded
|
|
126
|
-
// e.g. if we have a scene with multiple gltf files and the first gltf references something in the second gltf
|
|
127
|
-
// we need a way to wait for all components to be created before we can resolve those references
|
|
128
|
-
// independent of order of loading
|
|
129
|
-
let res = undefined;
|
|
130
|
-
// first try to search in the current gltf scene (if any)
|
|
131
|
-
const gltfScene = context.gltf?.scene;
|
|
132
|
-
if (gltfScene) {
|
|
133
|
-
res = GameObject.findByGuid(data.guid, gltfScene);
|
|
134
|
-
}
|
|
135
|
-
// if not found, search in the whole scene
|
|
136
|
-
if (!res) {
|
|
137
|
-
res = GameObject.findByGuid(data.guid, context.context.scene);
|
|
138
|
-
}
|
|
139
|
-
if (!res) {
|
|
140
|
-
if (isDevEnvironment() || debugExtension)
|
|
141
|
-
console.warn("Could not resolve object reference", context.path, data, context.target, context.context.scene);
|
|
142
|
-
data["could_not_resolve"] = true;
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
if (res && res.isComponent === true) {
|
|
146
|
-
if (debugExtension)
|
|
147
|
-
console.warn("Deserialized object reference is a component");
|
|
148
|
-
res = res.gameObject;
|
|
149
|
-
}
|
|
150
|
-
if (debugExtension)
|
|
151
|
-
console.log("Deserialized object reference?", data, res, context?.nodeToObject);
|
|
152
|
-
}
|
|
153
|
-
return res;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
return undefined;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
export const objectSerializer = new ObjectSerializer();
|
|
160
|
-
class ComponentSerializer extends TypeSerializer {
|
|
161
|
-
constructor() {
|
|
162
|
-
super([Component, Behaviour], "ComponentSerializer");
|
|
163
|
-
}
|
|
164
|
-
onSerialize(data, _context) {
|
|
165
|
-
if (data?.guid) {
|
|
166
|
-
return { guid: data.guid };
|
|
167
|
-
}
|
|
168
|
-
return undefined;
|
|
169
|
-
}
|
|
170
|
-
onDeserialize(data, context) {
|
|
171
|
-
if (data?.guid) {
|
|
172
|
-
// it's a workaround for VolumeParameter having a guid as well. Generally we will probably never have to resolve a component in the scene when it's coming from the persistent asset extension (like in the case for postprocessing volume parameters)
|
|
173
|
-
if (data.___persistentAsset) {
|
|
174
|
-
if (debugExtension)
|
|
175
|
-
console.log("Skipping component deserialization because it's a persistent asset", data);
|
|
176
|
-
return undefined;
|
|
177
|
-
}
|
|
178
|
-
const currentPath = context.path;
|
|
179
|
-
// TODO: need to serialize some identifier for referenced components as well, maybe just guid?
|
|
180
|
-
// because here the components are created but dont have their former guid assigned
|
|
181
|
-
// and will later in the stack just get a newly generated guid
|
|
182
|
-
if (debugExtension)
|
|
183
|
-
console.log(data.guid, context.root, context.object, context.target);
|
|
184
|
-
// first search within the gltf (e.g. necessary when using AssetReference and loading a gltf without adding it to the scene)
|
|
185
|
-
// if we would search JUST the scene those references would NEVER be resolved
|
|
186
|
-
let res = this.findObjectForGuid(data.guid, context.root);
|
|
187
|
-
if (res) {
|
|
188
|
-
return res;
|
|
189
|
-
}
|
|
190
|
-
if (context.context) {
|
|
191
|
-
// if not found within the gltf use the provided context scene
|
|
192
|
-
// to find references outside
|
|
193
|
-
res = this.findObjectForGuid(data.guid, context.context?.scene);
|
|
194
|
-
if (res)
|
|
195
|
-
return res;
|
|
196
|
-
}
|
|
197
|
-
if (isDevEnvironment() || debugExtension) {
|
|
198
|
-
console.warn("Could not resolve component reference: \"" + currentPath + "\" using guid " + data.guid, context.target);
|
|
199
|
-
}
|
|
200
|
-
data["could_not_resolve"] = true;
|
|
201
|
-
return undefined;
|
|
202
|
-
}
|
|
203
|
-
// if (data?.node !== undefined && context.nodeToObject) {
|
|
204
|
-
// return context.nodeToObject[data.node];
|
|
205
|
-
// }
|
|
206
|
-
return undefined;
|
|
207
|
-
}
|
|
208
|
-
findObjectForGuid(guid, root) {
|
|
209
|
-
// recursively search root
|
|
210
|
-
// need to check the root object too
|
|
211
|
-
if (root["guid"] === guid)
|
|
212
|
-
return root;
|
|
213
|
-
const res = GameObject.foreachComponent(root, (c) => {
|
|
214
|
-
if (c.guid === guid)
|
|
215
|
-
return c;
|
|
216
|
-
return undefined;
|
|
217
|
-
}, false);
|
|
218
|
-
if (res !== undefined)
|
|
219
|
-
return res;
|
|
220
|
-
// if not found, search in children
|
|
221
|
-
for (let i = 0; i < root.children.length; i++) {
|
|
222
|
-
const child = root.children[i];
|
|
223
|
-
const res = this.findObjectForGuid(guid, child);
|
|
224
|
-
if (res)
|
|
225
|
-
return res;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
export const componentSerializer = new ComponentSerializer();
|
|
230
|
-
const $eventListDebugInfo = Symbol("eventListDebugInfo");
|
|
231
|
-
class EventListSerializer extends TypeSerializer {
|
|
232
|
-
constructor() {
|
|
233
|
-
super([EventList]);
|
|
234
|
-
}
|
|
235
|
-
onSerialize(_data, _context) {
|
|
236
|
-
console.log("TODO: SERIALIZE EVENT");
|
|
237
|
-
return undefined;
|
|
238
|
-
}
|
|
239
|
-
onDeserialize(data, context) {
|
|
240
|
-
// TODO: check that we dont accidentally deserialize methods to EventList objects. This is here to make is easy for react-three-fiber to just add props as { () => { } }
|
|
241
|
-
if (typeof data === "function") {
|
|
242
|
-
const evtList = new EventList([new CallInfo(data, null, [], true)]);
|
|
243
|
-
return evtList;
|
|
244
|
-
}
|
|
245
|
-
else if (data && data.type === "EventList") {
|
|
246
|
-
if (debugExtension)
|
|
247
|
-
console.log("DESERIALIZE EVENT", data);
|
|
248
|
-
const fns = new Array();
|
|
249
|
-
if (data.calls && Array.isArray(data.calls)) {
|
|
250
|
-
for (const call of data.calls) {
|
|
251
|
-
if (debugExtension)
|
|
252
|
-
console.log(call);
|
|
253
|
-
let target = componentSerializer.findObjectForGuid(call.target, context.root);
|
|
254
|
-
// if the object is not found in the current glb try find it in the whole scene
|
|
255
|
-
if (!target && context.context?.scene) {
|
|
256
|
-
target = componentSerializer.findObjectForGuid(call.target, context.context?.scene);
|
|
257
|
-
}
|
|
258
|
-
const hasMethod = call.method?.length > 0;
|
|
259
|
-
if (target && hasMethod) {
|
|
260
|
-
const printWarningMethodNotFound = () => {
|
|
261
|
-
const uppercaseMethodName = call.method[0].toUpperCase() + call.method.slice(1);
|
|
262
|
-
if (typeof target[uppercaseMethodName] === "function") {
|
|
263
|
-
console.warn(`EventList method:\nCould not find method ${call.method} on object ${target.name}. Please rename ${call.method} to ${uppercaseMethodName}?\n`, target[uppercaseMethodName], "\n in script: ", target);
|
|
264
|
-
showBalloonWarning("EventList methods must start with lowercase letter, see console for details");
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
else {
|
|
268
|
-
console.warn(`EventList method:\nCould not find method ${call.method} on object ${target.name}`, target, typeof target[call.method]);
|
|
269
|
-
}
|
|
270
|
-
};
|
|
271
|
-
const method = target[call.method];
|
|
272
|
-
if (typeof method !== "function") {
|
|
273
|
-
let foundMethod = false;
|
|
274
|
-
let currentPrototype = target;
|
|
275
|
-
// test if the target method is actually a property setter
|
|
276
|
-
while (currentPrototype) {
|
|
277
|
-
const desc = Object.getOwnPropertyDescriptor(currentPrototype, call.method);
|
|
278
|
-
if (desc && (desc.writable === true || desc.set)) {
|
|
279
|
-
foundMethod = true;
|
|
280
|
-
break;
|
|
281
|
-
}
|
|
282
|
-
currentPrototype = Object.getPrototypeOf(currentPrototype);
|
|
283
|
-
}
|
|
284
|
-
if (!foundMethod && (isDevEnvironment() || debugExtension))
|
|
285
|
-
printWarningMethodNotFound();
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
function deserializeArgument(arg) {
|
|
289
|
-
if (typeof arg === "object") {
|
|
290
|
-
// Try to deserialize the call argument to either a object or a component reference
|
|
291
|
-
let argRes = objectSerializer.onDeserialize(arg, context);
|
|
292
|
-
if (!argRes)
|
|
293
|
-
argRes = componentSerializer.onDeserialize(arg, context);
|
|
294
|
-
if (argRes)
|
|
295
|
-
return argRes;
|
|
296
|
-
}
|
|
297
|
-
return arg;
|
|
298
|
-
}
|
|
299
|
-
if (target) {
|
|
300
|
-
let args = call.argument;
|
|
301
|
-
if (args !== undefined) {
|
|
302
|
-
args = deserializeArgument(args);
|
|
303
|
-
}
|
|
304
|
-
else if (call.arguments !== undefined) {
|
|
305
|
-
args = call.arguments.map(deserializeArgument);
|
|
306
|
-
}
|
|
307
|
-
const method = target[call.method];
|
|
308
|
-
if (!method) {
|
|
309
|
-
console.warn(`EventList method not found: \"${call.method}\" on ${target?.name}`);
|
|
310
|
-
}
|
|
311
|
-
else {
|
|
312
|
-
if (args !== undefined && !Array.isArray(args)) {
|
|
313
|
-
args = [args];
|
|
314
|
-
}
|
|
315
|
-
// This is the final method we pass to the call info (or undefined if the method couldnt be resolved)
|
|
316
|
-
// const eventMethod = hasMethod ? this.createEventMethod(target, call.method, args) : undefined;
|
|
317
|
-
const fn = new CallInfo(target, call.method, args, call.enabled);
|
|
318
|
-
fns.push(fn);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
else if (isDevEnvironment()) {
|
|
322
|
-
console.warn("[Debug] EventList: Could not find event listener in scene", call, context.object, data);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
const evt = new EventList(fns);
|
|
327
|
-
if (debugExtension)
|
|
328
|
-
console.log(evt);
|
|
329
|
-
const eventListOwner = context.target;
|
|
330
|
-
if (eventListOwner !== undefined && context.path !== undefined) {
|
|
331
|
-
evt.setEventTarget(context.path, eventListOwner);
|
|
332
|
-
}
|
|
333
|
-
return evt;
|
|
334
|
-
}
|
|
335
|
-
return undefined;
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
export const eventListSerializer = new EventListSerializer();
|
|
339
|
-
/** Map<Clone, Original> texture. This is used for compressed textures (or when the GLTFLoader is cloning RenderTextures)
|
|
340
|
-
* It's a weak map so we don't have to worry about memory leaks
|
|
341
|
-
*/
|
|
342
|
-
const cloneOriginalMap = new WeakMap();
|
|
343
|
-
const textureClone = Texture.prototype.clone;
|
|
344
|
-
Texture.prototype.clone = function () {
|
|
345
|
-
const clone = textureClone.call(this);
|
|
346
|
-
if (!cloneOriginalMap.has(clone)) {
|
|
347
|
-
cloneOriginalMap.set(clone, this);
|
|
348
|
-
}
|
|
349
|
-
return clone;
|
|
350
|
-
};
|
|
351
|
-
export class RenderTextureSerializer extends TypeSerializer {
|
|
352
|
-
constructor() {
|
|
353
|
-
super([RenderTexture, WebGLRenderTarget]);
|
|
354
|
-
}
|
|
355
|
-
onSerialize(_data, _context) {
|
|
356
|
-
}
|
|
357
|
-
onDeserialize(data, context) {
|
|
358
|
-
if (data instanceof Texture && context.type === RenderTexture) {
|
|
359
|
-
let tex = data;
|
|
360
|
-
// If this is a cloned render texture we want to map it back to the original texture
|
|
361
|
-
// See https://linear.app/needle/issue/NE-5530
|
|
362
|
-
if (cloneOriginalMap.has(tex)) {
|
|
363
|
-
const original = cloneOriginalMap.get(tex);
|
|
364
|
-
tex = original;
|
|
365
|
-
}
|
|
366
|
-
tex.isRenderTargetTexture = true;
|
|
367
|
-
tex.flipY = true;
|
|
368
|
-
tex.offset.y = 1;
|
|
369
|
-
tex.repeat.y = -1;
|
|
370
|
-
tex.needsUpdate = true;
|
|
371
|
-
// when we have a compressed texture using mipmaps causes error in threejs because the bindframebuffer call will then try to set an array of framebuffers https://linear.app/needle/issue/NE-4294
|
|
372
|
-
tex.mipmaps = [];
|
|
373
|
-
if (tex instanceof CompressedTexture) {
|
|
374
|
-
//@ts-ignore
|
|
375
|
-
tex["isCompressedTexture"] = false;
|
|
376
|
-
//@ts-ignore
|
|
377
|
-
tex.format = RGBAFormat;
|
|
378
|
-
}
|
|
379
|
-
const rt = new RenderTexture(tex.image.width, tex.image.height, {
|
|
380
|
-
colorSpace: LinearSRGBColorSpace,
|
|
381
|
-
});
|
|
382
|
-
rt.texture = tex;
|
|
383
|
-
return rt;
|
|
384
|
-
}
|
|
385
|
-
return undefined;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
new RenderTextureSerializer();
|
|
389
|
-
export class UriSerializer extends TypeSerializer {
|
|
390
|
-
constructor() {
|
|
391
|
-
super([URL]);
|
|
392
|
-
}
|
|
393
|
-
onSerialize(_data, _context) {
|
|
394
|
-
return null;
|
|
395
|
-
}
|
|
396
|
-
onDeserialize(data, _context) {
|
|
397
|
-
if (typeof data === "string" && data.length > 0) {
|
|
398
|
-
return resolveUrl(_context.gltfId, data);
|
|
399
|
-
}
|
|
400
|
-
return undefined;
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
new UriSerializer();
|
|
1
|
+
import { Color, CompressedTexture, Euler, LinearSRGBColorSpace, Object3D, RGBAFormat, Texture, WebGLRenderTarget } from "three";
|
|
2
|
+
import { isDevEnvironment, showBalloonWarning } from "../engine/debug/index.js";
|
|
3
|
+
import { Behaviour, Component, GameObject } from "../engine-components/Component.js";
|
|
4
|
+
import { CallInfo, EventList } from "../engine-components/EventList.js";
|
|
5
|
+
import { AssetReference } from "./engine_addressables.js";
|
|
6
|
+
import { debugExtension } from "./engine_default_parameters.js";
|
|
7
|
+
import { TypeSerializer } from "./engine_serialization_core.js";
|
|
8
|
+
import { RenderTexture } from "./engine_texture.js";
|
|
9
|
+
import { resolveUrl } from "./engine_utils.js";
|
|
10
|
+
import { RGBAColor } from "./js-extensions/index.js";
|
|
11
|
+
// export class SourcePath {
|
|
12
|
+
// src?:string
|
|
13
|
+
// };
|
|
14
|
+
// class SourcePathSerializer extends TypeSerializer{
|
|
15
|
+
// constructor(){
|
|
16
|
+
// super(SourcePath);
|
|
17
|
+
// }
|
|
18
|
+
// onDeserialize(data: any, _context: SerializationContext) {
|
|
19
|
+
// if(data.src && typeof data.src === "string"){
|
|
20
|
+
// return data.src;
|
|
21
|
+
// }
|
|
22
|
+
// }
|
|
23
|
+
// onSerialize(_data: any, _context: SerializationContext) {
|
|
24
|
+
// }
|
|
25
|
+
// }
|
|
26
|
+
// new SourcePathSerializer();
|
|
27
|
+
class ColorSerializer extends TypeSerializer {
|
|
28
|
+
constructor() {
|
|
29
|
+
super([Color, RGBAColor], "ColorSerializer");
|
|
30
|
+
}
|
|
31
|
+
onDeserialize(data) {
|
|
32
|
+
if (data === undefined || data === null)
|
|
33
|
+
return;
|
|
34
|
+
if (data.a !== undefined) {
|
|
35
|
+
return new RGBAColor(data.r, data.g, data.b, data.a);
|
|
36
|
+
}
|
|
37
|
+
else if (data.alpha !== undefined) {
|
|
38
|
+
return new RGBAColor(data.r, data.g, data.b, data.alpha);
|
|
39
|
+
}
|
|
40
|
+
return new Color(data.r, data.g, data.b);
|
|
41
|
+
}
|
|
42
|
+
onSerialize(data) {
|
|
43
|
+
if (data === undefined || data === null)
|
|
44
|
+
return;
|
|
45
|
+
if (data.a !== undefined)
|
|
46
|
+
return { r: data.r, g: data.g, b: data.b, a: data.a };
|
|
47
|
+
else
|
|
48
|
+
return { r: data.r, g: data.g, b: data.b };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export const colorSerializer = new ColorSerializer();
|
|
52
|
+
class EulerSerializer extends TypeSerializer {
|
|
53
|
+
constructor() {
|
|
54
|
+
super([Euler], "EulerSerializer");
|
|
55
|
+
}
|
|
56
|
+
onDeserialize(data, _context) {
|
|
57
|
+
if (data === undefined || data === null)
|
|
58
|
+
return undefined;
|
|
59
|
+
if (data.order) {
|
|
60
|
+
return new Euler(data.x, data.y, data.z, data.order);
|
|
61
|
+
}
|
|
62
|
+
else if (data.x != undefined) {
|
|
63
|
+
return new Euler(data.x, data.y, data.z);
|
|
64
|
+
}
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
onSerialize(data, _context) {
|
|
68
|
+
return { x: data.x, y: data.y, z: data.z, order: data.order };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export const euler = new EulerSerializer();
|
|
72
|
+
class ObjectSerializer extends TypeSerializer {
|
|
73
|
+
constructor() {
|
|
74
|
+
super(Object3D, "ObjectSerializer");
|
|
75
|
+
}
|
|
76
|
+
onSerialize(data, context) {
|
|
77
|
+
if (context.objectToNode !== undefined && data.uuid) {
|
|
78
|
+
const node = context.objectToNode[data.uuid];
|
|
79
|
+
if (debugExtension)
|
|
80
|
+
console.log(node, data.name, data.uuid);
|
|
81
|
+
return { node: node };
|
|
82
|
+
}
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
onDeserialize(data, context) {
|
|
86
|
+
if (typeof data === "string") {
|
|
87
|
+
if (data.endsWith(".glb") || data.endsWith(".gltf")) {
|
|
88
|
+
// If the @serializable([Object3D, AssetReference]) looks like this we don't need to warn here. This is the case e.g. with SyncedCamera referencing a scene
|
|
89
|
+
if (context.serializable instanceof Array) {
|
|
90
|
+
if (context.serializable.includes(AssetReference))
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
if (isDevEnvironment())
|
|
94
|
+
showBalloonWarning("Detected wrong usage of @serializable with Object3D or GameObject. Instead you should use AssetReference here! Please see the console for details.");
|
|
95
|
+
const scriptname = context.target?.constructor?.name;
|
|
96
|
+
console.warn(`Wrong usage of @serializable detected in your script \"${scriptname}\"\n\nIt looks like you used @serializable(Object3D) or @serializable(GameObject) for a prefab or scene reference which is exported to a separate glTF file.\n\nTo fix this please change your code to:\n\n@serializable(AssetReference)\n${context.path}! : AssetReference;\n\0`);
|
|
97
|
+
}
|
|
98
|
+
// ACTUALLY: this is already handled by the extension_utils where we resolve json pointers recursively
|
|
99
|
+
// if(data.startsWith("/nodes/")){
|
|
100
|
+
// const node = parseInt(data.substring("/nodes/".length));
|
|
101
|
+
// if (context.nodeToObject) {
|
|
102
|
+
// const res = context.nodeToObject[node];
|
|
103
|
+
// if (debugExtension)
|
|
104
|
+
// console.log("Deserialized object reference?", data, res, context?.nodeToObject);
|
|
105
|
+
// if (!res) console.warn("Did not find node: " + data, context.nodeToObject, context.object);
|
|
106
|
+
// return res;
|
|
107
|
+
// }
|
|
108
|
+
// }
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
if (data) {
|
|
112
|
+
if (data.node !== undefined && context.nodeToObject) {
|
|
113
|
+
const res = context.nodeToObject[data.node];
|
|
114
|
+
if (debugExtension)
|
|
115
|
+
console.log("Deserialized object reference?", data, res, context?.nodeToObject);
|
|
116
|
+
if (!res)
|
|
117
|
+
console.warn("Did not find node: " + data.node, context.nodeToObject, context.object);
|
|
118
|
+
return res;
|
|
119
|
+
}
|
|
120
|
+
else if (data.guid) {
|
|
121
|
+
if (!context.context) {
|
|
122
|
+
console.error("Missing context");
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
// it is possible that the object is not yet loaded
|
|
126
|
+
// e.g. if we have a scene with multiple gltf files and the first gltf references something in the second gltf
|
|
127
|
+
// we need a way to wait for all components to be created before we can resolve those references
|
|
128
|
+
// independent of order of loading
|
|
129
|
+
let res = undefined;
|
|
130
|
+
// first try to search in the current gltf scene (if any)
|
|
131
|
+
const gltfScene = context.gltf?.scene;
|
|
132
|
+
if (gltfScene) {
|
|
133
|
+
res = GameObject.findByGuid(data.guid, gltfScene);
|
|
134
|
+
}
|
|
135
|
+
// if not found, search in the whole scene
|
|
136
|
+
if (!res) {
|
|
137
|
+
res = GameObject.findByGuid(data.guid, context.context.scene);
|
|
138
|
+
}
|
|
139
|
+
if (!res) {
|
|
140
|
+
if (isDevEnvironment() || debugExtension)
|
|
141
|
+
console.warn("Could not resolve object reference", context.path, data, context.target, context.context.scene);
|
|
142
|
+
data["could_not_resolve"] = true;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
if (res && res.isComponent === true) {
|
|
146
|
+
if (debugExtension)
|
|
147
|
+
console.warn("Deserialized object reference is a component");
|
|
148
|
+
res = res.gameObject;
|
|
149
|
+
}
|
|
150
|
+
if (debugExtension)
|
|
151
|
+
console.log("Deserialized object reference?", data, res, context?.nodeToObject);
|
|
152
|
+
}
|
|
153
|
+
return res;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
export const objectSerializer = new ObjectSerializer();
|
|
160
|
+
class ComponentSerializer extends TypeSerializer {
|
|
161
|
+
constructor() {
|
|
162
|
+
super([Component, Behaviour], "ComponentSerializer");
|
|
163
|
+
}
|
|
164
|
+
onSerialize(data, _context) {
|
|
165
|
+
if (data?.guid) {
|
|
166
|
+
return { guid: data.guid };
|
|
167
|
+
}
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
onDeserialize(data, context) {
|
|
171
|
+
if (data?.guid) {
|
|
172
|
+
// it's a workaround for VolumeParameter having a guid as well. Generally we will probably never have to resolve a component in the scene when it's coming from the persistent asset extension (like in the case for postprocessing volume parameters)
|
|
173
|
+
if (data.___persistentAsset) {
|
|
174
|
+
if (debugExtension)
|
|
175
|
+
console.log("Skipping component deserialization because it's a persistent asset", data);
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
const currentPath = context.path;
|
|
179
|
+
// TODO: need to serialize some identifier for referenced components as well, maybe just guid?
|
|
180
|
+
// because here the components are created but dont have their former guid assigned
|
|
181
|
+
// and will later in the stack just get a newly generated guid
|
|
182
|
+
if (debugExtension)
|
|
183
|
+
console.log(data.guid, context.root, context.object, context.target);
|
|
184
|
+
// first search within the gltf (e.g. necessary when using AssetReference and loading a gltf without adding it to the scene)
|
|
185
|
+
// if we would search JUST the scene those references would NEVER be resolved
|
|
186
|
+
let res = this.findObjectForGuid(data.guid, context.root);
|
|
187
|
+
if (res) {
|
|
188
|
+
return res;
|
|
189
|
+
}
|
|
190
|
+
if (context.context) {
|
|
191
|
+
// if not found within the gltf use the provided context scene
|
|
192
|
+
// to find references outside
|
|
193
|
+
res = this.findObjectForGuid(data.guid, context.context?.scene);
|
|
194
|
+
if (res)
|
|
195
|
+
return res;
|
|
196
|
+
}
|
|
197
|
+
if (isDevEnvironment() || debugExtension) {
|
|
198
|
+
console.warn("Could not resolve component reference: \"" + currentPath + "\" using guid " + data.guid, context.target);
|
|
199
|
+
}
|
|
200
|
+
data["could_not_resolve"] = true;
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
// if (data?.node !== undefined && context.nodeToObject) {
|
|
204
|
+
// return context.nodeToObject[data.node];
|
|
205
|
+
// }
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
findObjectForGuid(guid, root) {
|
|
209
|
+
// recursively search root
|
|
210
|
+
// need to check the root object too
|
|
211
|
+
if (root["guid"] === guid)
|
|
212
|
+
return root;
|
|
213
|
+
const res = GameObject.foreachComponent(root, (c) => {
|
|
214
|
+
if (c.guid === guid)
|
|
215
|
+
return c;
|
|
216
|
+
return undefined;
|
|
217
|
+
}, false);
|
|
218
|
+
if (res !== undefined)
|
|
219
|
+
return res;
|
|
220
|
+
// if not found, search in children
|
|
221
|
+
for (let i = 0; i < root.children.length; i++) {
|
|
222
|
+
const child = root.children[i];
|
|
223
|
+
const res = this.findObjectForGuid(guid, child);
|
|
224
|
+
if (res)
|
|
225
|
+
return res;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
export const componentSerializer = new ComponentSerializer();
|
|
230
|
+
const $eventListDebugInfo = Symbol("eventListDebugInfo");
|
|
231
|
+
class EventListSerializer extends TypeSerializer {
|
|
232
|
+
constructor() {
|
|
233
|
+
super([EventList]);
|
|
234
|
+
}
|
|
235
|
+
onSerialize(_data, _context) {
|
|
236
|
+
console.log("TODO: SERIALIZE EVENT");
|
|
237
|
+
return undefined;
|
|
238
|
+
}
|
|
239
|
+
onDeserialize(data, context) {
|
|
240
|
+
// TODO: check that we dont accidentally deserialize methods to EventList objects. This is here to make is easy for react-three-fiber to just add props as { () => { } }
|
|
241
|
+
if (typeof data === "function") {
|
|
242
|
+
const evtList = new EventList([new CallInfo(data, null, [], true)]);
|
|
243
|
+
return evtList;
|
|
244
|
+
}
|
|
245
|
+
else if (data && data.type === "EventList") {
|
|
246
|
+
if (debugExtension)
|
|
247
|
+
console.log("DESERIALIZE EVENT", data);
|
|
248
|
+
const fns = new Array();
|
|
249
|
+
if (data.calls && Array.isArray(data.calls)) {
|
|
250
|
+
for (const call of data.calls) {
|
|
251
|
+
if (debugExtension)
|
|
252
|
+
console.log(call);
|
|
253
|
+
let target = componentSerializer.findObjectForGuid(call.target, context.root);
|
|
254
|
+
// if the object is not found in the current glb try find it in the whole scene
|
|
255
|
+
if (!target && context.context?.scene) {
|
|
256
|
+
target = componentSerializer.findObjectForGuid(call.target, context.context?.scene);
|
|
257
|
+
}
|
|
258
|
+
const hasMethod = call.method?.length > 0;
|
|
259
|
+
if (target && hasMethod) {
|
|
260
|
+
const printWarningMethodNotFound = () => {
|
|
261
|
+
const uppercaseMethodName = call.method[0].toUpperCase() + call.method.slice(1);
|
|
262
|
+
if (typeof target[uppercaseMethodName] === "function") {
|
|
263
|
+
console.warn(`EventList method:\nCould not find method ${call.method} on object ${target.name}. Please rename ${call.method} to ${uppercaseMethodName}?\n`, target[uppercaseMethodName], "\n in script: ", target);
|
|
264
|
+
showBalloonWarning("EventList methods must start with lowercase letter, see console for details");
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
console.warn(`EventList method:\nCould not find method ${call.method} on object ${target.name}`, target, typeof target[call.method]);
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
const method = target[call.method];
|
|
272
|
+
if (typeof method !== "function") {
|
|
273
|
+
let foundMethod = false;
|
|
274
|
+
let currentPrototype = target;
|
|
275
|
+
// test if the target method is actually a property setter
|
|
276
|
+
while (currentPrototype) {
|
|
277
|
+
const desc = Object.getOwnPropertyDescriptor(currentPrototype, call.method);
|
|
278
|
+
if (desc && (desc.writable === true || desc.set)) {
|
|
279
|
+
foundMethod = true;
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
currentPrototype = Object.getPrototypeOf(currentPrototype);
|
|
283
|
+
}
|
|
284
|
+
if (!foundMethod && (isDevEnvironment() || debugExtension))
|
|
285
|
+
printWarningMethodNotFound();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
function deserializeArgument(arg) {
|
|
289
|
+
if (typeof arg === "object") {
|
|
290
|
+
// Try to deserialize the call argument to either a object or a component reference
|
|
291
|
+
let argRes = objectSerializer.onDeserialize(arg, context);
|
|
292
|
+
if (!argRes)
|
|
293
|
+
argRes = componentSerializer.onDeserialize(arg, context);
|
|
294
|
+
if (argRes)
|
|
295
|
+
return argRes;
|
|
296
|
+
}
|
|
297
|
+
return arg;
|
|
298
|
+
}
|
|
299
|
+
if (target) {
|
|
300
|
+
let args = call.argument;
|
|
301
|
+
if (args !== undefined) {
|
|
302
|
+
args = deserializeArgument(args);
|
|
303
|
+
}
|
|
304
|
+
else if (call.arguments !== undefined) {
|
|
305
|
+
args = call.arguments.map(deserializeArgument);
|
|
306
|
+
}
|
|
307
|
+
const method = target[call.method];
|
|
308
|
+
if (!method) {
|
|
309
|
+
console.warn(`EventList method not found: \"${call.method}\" on ${target?.name}`);
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
if (args !== undefined && !Array.isArray(args)) {
|
|
313
|
+
args = [args];
|
|
314
|
+
}
|
|
315
|
+
// This is the final method we pass to the call info (or undefined if the method couldnt be resolved)
|
|
316
|
+
// const eventMethod = hasMethod ? this.createEventMethod(target, call.method, args) : undefined;
|
|
317
|
+
const fn = new CallInfo(target, call.method, args, call.enabled);
|
|
318
|
+
fns.push(fn);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
else if (isDevEnvironment()) {
|
|
322
|
+
console.warn("[Debug] EventList: Could not find event listener in scene", call, context.object, data);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
const evt = new EventList(fns);
|
|
327
|
+
if (debugExtension)
|
|
328
|
+
console.log(evt);
|
|
329
|
+
const eventListOwner = context.target;
|
|
330
|
+
if (eventListOwner !== undefined && context.path !== undefined) {
|
|
331
|
+
evt.setEventTarget(context.path, eventListOwner);
|
|
332
|
+
}
|
|
333
|
+
return evt;
|
|
334
|
+
}
|
|
335
|
+
return undefined;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
export const eventListSerializer = new EventListSerializer();
|
|
339
|
+
/** Map<Clone, Original> texture. This is used for compressed textures (or when the GLTFLoader is cloning RenderTextures)
|
|
340
|
+
* It's a weak map so we don't have to worry about memory leaks
|
|
341
|
+
*/
|
|
342
|
+
const cloneOriginalMap = new WeakMap();
|
|
343
|
+
const textureClone = Texture.prototype.clone;
|
|
344
|
+
Texture.prototype.clone = function () {
|
|
345
|
+
const clone = textureClone.call(this);
|
|
346
|
+
if (!cloneOriginalMap.has(clone)) {
|
|
347
|
+
cloneOriginalMap.set(clone, this);
|
|
348
|
+
}
|
|
349
|
+
return clone;
|
|
350
|
+
};
|
|
351
|
+
export class RenderTextureSerializer extends TypeSerializer {
|
|
352
|
+
constructor() {
|
|
353
|
+
super([RenderTexture, WebGLRenderTarget]);
|
|
354
|
+
}
|
|
355
|
+
onSerialize(_data, _context) {
|
|
356
|
+
}
|
|
357
|
+
onDeserialize(data, context) {
|
|
358
|
+
if (data instanceof Texture && context.type === RenderTexture) {
|
|
359
|
+
let tex = data;
|
|
360
|
+
// If this is a cloned render texture we want to map it back to the original texture
|
|
361
|
+
// See https://linear.app/needle/issue/NE-5530
|
|
362
|
+
if (cloneOriginalMap.has(tex)) {
|
|
363
|
+
const original = cloneOriginalMap.get(tex);
|
|
364
|
+
tex = original;
|
|
365
|
+
}
|
|
366
|
+
tex.isRenderTargetTexture = true;
|
|
367
|
+
tex.flipY = true;
|
|
368
|
+
tex.offset.y = 1;
|
|
369
|
+
tex.repeat.y = -1;
|
|
370
|
+
tex.needsUpdate = true;
|
|
371
|
+
// when we have a compressed texture using mipmaps causes error in threejs because the bindframebuffer call will then try to set an array of framebuffers https://linear.app/needle/issue/NE-4294
|
|
372
|
+
tex.mipmaps = [];
|
|
373
|
+
if (tex instanceof CompressedTexture) {
|
|
374
|
+
//@ts-ignore
|
|
375
|
+
tex["isCompressedTexture"] = false;
|
|
376
|
+
//@ts-ignore
|
|
377
|
+
tex.format = RGBAFormat;
|
|
378
|
+
}
|
|
379
|
+
const rt = new RenderTexture(tex.image.width, tex.image.height, {
|
|
380
|
+
colorSpace: LinearSRGBColorSpace,
|
|
381
|
+
});
|
|
382
|
+
rt.texture = tex;
|
|
383
|
+
return rt;
|
|
384
|
+
}
|
|
385
|
+
return undefined;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
new RenderTextureSerializer();
|
|
389
|
+
export class UriSerializer extends TypeSerializer {
|
|
390
|
+
constructor() {
|
|
391
|
+
super([URL]);
|
|
392
|
+
}
|
|
393
|
+
onSerialize(_data, _context) {
|
|
394
|
+
return null;
|
|
395
|
+
}
|
|
396
|
+
onDeserialize(data, _context) {
|
|
397
|
+
if (typeof data === "string" && data.length > 0) {
|
|
398
|
+
return resolveUrl(_context.gltfId, data);
|
|
399
|
+
}
|
|
400
|
+
return undefined;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
new UriSerializer();
|
|
404
404
|
//# sourceMappingURL=engine_serialization_builtin_serializer.js.map
|