@needle-tools/engine 4.5.5-next.f053174 → 4.5.6
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 +3740 -3740
- package/LICENSE.md +10 -10
- package/README.md +64 -64
- package/components.needle.json +1 -1
- package/dist/{needle-engine.bundle-DFfLpZpn.min.js → needle-engine.bundle-2nTaeeW3.min.js} +62 -62
- package/dist/{needle-engine.bundle-Dx2hV9Bu.umd.cjs → needle-engine.bundle-B3qVc_uH.umd.cjs} +54 -54
- package/dist/{needle-engine.bundle-DvRTYg0j.js → needle-engine.bundle-B9tUMvDR.js} +623 -623
- package/dist/{needle-engine.bundle-BxW8rOic.light.min.js → needle-engine.bundle-BWeBylyu.light.min.js} +62 -62
- package/dist/{needle-engine.bundle-5YrltOTW.light.umd.cjs → needle-engine.bundle-Bx32FU5Z.light.umd.cjs} +54 -54
- package/dist/{needle-engine.bundle-Bjtl-M4D.light.js → needle-engine.bundle-CAuuubKQ.light.js} +623 -623
- package/dist/needle-engine.d.ts +129 -130
- package/dist/needle-engine.js +2 -2
- package/dist/needle-engine.light.d.ts +129 -130
- package/dist/needle-engine.light.js +2 -2
- package/dist/needle-engine.light.min.js +1 -1
- package/dist/needle-engine.light.umd.cjs +1 -1
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- 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 +166 -166
- package/lib/engine/engine_addressables.js +608 -608
- 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 +344 -344
- 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 +472 -472
- package/lib/engine/engine_context.js +1664 -1664
- 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 +616 -616
- 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 +91 -91
- 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 +31 -31
- package/lib/engine/engine_lods.js +146 -146
- 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 +201 -201
- package/lib/engine/engine_three_utils.js +731 -731
- 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 +2 -2
- package/lib/engine/engine_tonemapping.js +194 -194
- 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 +993 -993
- 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 +513 -513
- 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 +113 -113
- 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 +831 -831
- 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 +634 -634
- 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 +121 -121
- 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 +27 -27
- package/lib/engine-components/ReflectionProbe.js +201 -201
- package/lib/engine-components/Renderer.d.ts +153 -153
- package/lib/engine-components/Renderer.js +830 -830
- package/lib/engine-components/RendererInstancing.d.ts +140 -140
- package/lib/engine-components/RendererInstancing.js +744 -744
- 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 +82 -82
- package/lib/engine-components/Skybox.js +448 -448
- 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 +160 -160
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +1782 -1782
- 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/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 +50 -50
- 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 +15 -15
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +92 -92
- 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 +175 -175
- package/lib/engine-components/postprocessing/Effects/Sharpening.d.ts +17 -17
- package/lib/engine-components/postprocessing/Effects/Sharpening.js +123 -123
- 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 +26 -26
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js +138 -138
- 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 +72 -72
- package/lib/engine-components/postprocessing/PostProcessingEffect.js +149 -149
- package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +25 -25
- package/lib/engine-components/postprocessing/PostProcessingHandler.js +350 -350
- package/lib/engine-components/postprocessing/Volume.d.ts +89 -89
- package/lib/engine-components/postprocessing/Volume.js +367 -367
- 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 +5 -5
- package/lib/engine-components/postprocessing/index.js +5 -5
- package/lib/engine-components/postprocessing/utils.d.ts +11 -11
- package/lib/engine-components/postprocessing/utils.js +37 -37
- 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 -442
- 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 +120 -120
- package/plugins/types/vite.d.ts +13 -13
- package/plugins/types/webmanifest.d.ts +32 -32
- package/plugins/vite/alias.js +174 -174
- package/plugins/vite/asap.js +245 -245
- 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 +231 -231
- 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 +143 -143
- package/plugins/vite/license.js +56 -56
- package/plugins/vite/local-files.js +231 -231
- 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 +31 -31
- 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 +680 -680
- package/src/engine/engine_animation.ts +145 -145
- package/src/engine/engine_application.ts +113 -113
- package/src/engine/engine_assetdatabase.ts +387 -387
- 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 +1811 -1811
- 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 +709 -709
- 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 +117 -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 +168 -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 +849 -849
- package/src/engine/engine_time.ts +94 -94
- package/src/engine/engine_time_utils.ts +237 -237
- package/src/engine/engine_tonemapping.ts +210 -210
- 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 +1093 -1093
- package/src/engine/engine_utils_format.ts +273 -273
- package/src/engine/engine_utils_screenshot.ts +698 -698
- 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 +871 -871
- 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 +136 -136
- 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 +216 -216
- package/src/engine-components/Renderer.ts +900 -900
- 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 +455 -455
- 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 +2413 -2413
- 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/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 +55 -55
- 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 +95 -95
- 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 +191 -191
- package/src/engine-components/postprocessing/Effects/Sharpening.ts +138 -138
- package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +61 -61
- package/src/engine-components/postprocessing/Effects/Tonemapping.ts +155 -155
- package/src/engine-components/postprocessing/Effects/Vignette.ts +59 -59
- package/src/engine-components/postprocessing/PostProcessingEffect.ts +172 -172
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +398 -398
- package/src/engine-components/postprocessing/Volume.ts +410 -410
- 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 +52 -52
- 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
|
@@ -1,265 +1,265 @@
|
|
|
1
|
-
import { isDevEnvironment, showBalloonWarning } from "../debug/debug.js";
|
|
2
|
-
import { generateQRCode } from "../engine_utils.js";
|
|
3
|
-
import { onXRSessionEnd, onXRSessionStart } from "../xr/events.js";
|
|
4
|
-
import { getIconElement } from "./icons.js";
|
|
5
|
-
/**
|
|
6
|
-
* Use the ButtonsFactory to create buttons with icons and functionality
|
|
7
|
-
* Get access to the default buttons by using `ButtonsFactory.instance`
|
|
8
|
-
* The factory will create the buttons if they don't exist yet, and return the existing ones if they do (this allows you to reparent or modify created buttons)
|
|
9
|
-
*/
|
|
10
|
-
export class ButtonsFactory {
|
|
11
|
-
static _instance;
|
|
12
|
-
/**
|
|
13
|
-
* Get access to the default HTML button factory.
|
|
14
|
-
* Use this to get or create default Needle Engine buttons that can be added to your HTML UI
|
|
15
|
-
* If you want to create a new factory and create new button instances instead of shared buttons, use `ButtonsFactory.create()` instead
|
|
16
|
-
*/
|
|
17
|
-
static get instance() {
|
|
18
|
-
return this.getOrCreate();
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Get access to the default HTML button factory.
|
|
22
|
-
* Use this to get or create default Needle Engine buttons that can be added to your HTML UI
|
|
23
|
-
* If you want to create a new factory and create new button instances instead of shared buttons, use `ButtonsFactory.create()` instead
|
|
24
|
-
*/
|
|
25
|
-
static getOrCreate() {
|
|
26
|
-
if (!this._instance) {
|
|
27
|
-
this._instance = new ButtonsFactory();
|
|
28
|
-
}
|
|
29
|
-
return this._instance;
|
|
30
|
-
}
|
|
31
|
-
/** create a new buttons factory */
|
|
32
|
-
static create() {
|
|
33
|
-
return new ButtonsFactory();
|
|
34
|
-
}
|
|
35
|
-
_fullscreenButton;
|
|
36
|
-
/**
|
|
37
|
-
* Get the fullscreen button (or undefined if it doesn't exist yet). Call {@link ButtonsFactory.createFullscreenButton} to get or create it
|
|
38
|
-
*/
|
|
39
|
-
get fullscreenButton() {
|
|
40
|
-
return this._fullscreenButton;
|
|
41
|
-
}
|
|
42
|
-
/** Create a fullscreen button (or return the existing one if it already exists) */
|
|
43
|
-
createFullscreenButton(ctx) {
|
|
44
|
-
if (this._fullscreenButton) {
|
|
45
|
-
return this._fullscreenButton;
|
|
46
|
-
}
|
|
47
|
-
// check for fullscreen support
|
|
48
|
-
if (!document.fullscreenEnabled) {
|
|
49
|
-
if (isDevEnvironment())
|
|
50
|
-
console.warn("NeedleMenu: Fullscreen button could not be created, device doesn't support the Fullscreen API");
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
const button = document.createElement("button");
|
|
54
|
-
this._fullscreenButton = button;
|
|
55
|
-
button.classList.add("fullscreen-button");
|
|
56
|
-
button.title = "Click to enter fullscreen mode";
|
|
57
|
-
const enterFullscreenIcon = getIconElement("fullscreen");
|
|
58
|
-
const exitFullscreenIcon = getIconElement("fullscreen_exit");
|
|
59
|
-
button.appendChild(enterFullscreenIcon);
|
|
60
|
-
button.onclick = () => {
|
|
61
|
-
if (document.fullscreenElement) {
|
|
62
|
-
document.exitFullscreen();
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
if ("webkitRequestFullscreen" in ctx.domElement && typeof ctx.domElement["webkitRequestFullscreen"] === "function")
|
|
66
|
-
ctx.domElement["webkitRequestFullscreen"]();
|
|
67
|
-
else if ("requestFullscreen" in ctx.domElement)
|
|
68
|
-
ctx.domElement.requestFullscreen();
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
document.addEventListener("fullscreenchange", () => {
|
|
72
|
-
if (document.fullscreenElement) {
|
|
73
|
-
enterFullscreenIcon.remove();
|
|
74
|
-
button.appendChild(exitFullscreenIcon);
|
|
75
|
-
button.title = "Click to enter fullscreen mode";
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
exitFullscreenIcon.remove();
|
|
79
|
-
button.appendChild(enterFullscreenIcon);
|
|
80
|
-
button.title = "Click to exit fullscreen mode";
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
// xr session started?
|
|
84
|
-
globalThis.addEventListener("needle-xrsession-start", () => {
|
|
85
|
-
button.style.display = "none";
|
|
86
|
-
});
|
|
87
|
-
globalThis.addEventListener("needle-xrsession-end", () => {
|
|
88
|
-
button.style.display = "";
|
|
89
|
-
});
|
|
90
|
-
return button;
|
|
91
|
-
}
|
|
92
|
-
_muteButton;
|
|
93
|
-
/** Get the mute button (or undefined if it doesn't exist yet). Call {@link ButtonsFactory.createMuteButton} to get or create it */
|
|
94
|
-
get muteButton() { return this._muteButton; }
|
|
95
|
-
/** Create a mute button (or return the existing one if it already exists) */
|
|
96
|
-
createMuteButton(ctx) {
|
|
97
|
-
if (this._muteButton) {
|
|
98
|
-
return this._muteButton;
|
|
99
|
-
}
|
|
100
|
-
const button = document.createElement("button");
|
|
101
|
-
this._muteButton = button;
|
|
102
|
-
button.classList.add("mute-button");
|
|
103
|
-
button.title = "Click to mute/unmute";
|
|
104
|
-
const muteIcon = getIconElement("volume_off");
|
|
105
|
-
const unmuteIcon = getIconElement("volume_up");
|
|
106
|
-
// save state in session storage (this needs consent)
|
|
107
|
-
// if (sessionStorage.getItem("muted") === "true") {
|
|
108
|
-
// ctx.application.muted = true;
|
|
109
|
-
// }
|
|
110
|
-
// else {
|
|
111
|
-
// ctx.application.muted = false;
|
|
112
|
-
// }
|
|
113
|
-
if (ctx.application.muted) {
|
|
114
|
-
button.appendChild(muteIcon);
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
button.appendChild(unmuteIcon);
|
|
118
|
-
}
|
|
119
|
-
button.onclick = () => {
|
|
120
|
-
if (ctx.application.muted) {
|
|
121
|
-
muteIcon.remove();
|
|
122
|
-
button.appendChild(unmuteIcon);
|
|
123
|
-
ctx.application.muted = false;
|
|
124
|
-
// sessionStorage.setItem("muted", "false");
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
unmuteIcon.remove();
|
|
128
|
-
button.appendChild(muteIcon);
|
|
129
|
-
ctx.application.muted = true;
|
|
130
|
-
// sessionStorage.setItem("muted", "true");
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
return button;
|
|
134
|
-
}
|
|
135
|
-
_qrButton;
|
|
136
|
-
/**
|
|
137
|
-
* Get the QR code button (or undefined if it doesn't exist yet). Call {@link ButtonsFactory.createQRCode} to get or create it
|
|
138
|
-
*/
|
|
139
|
-
get qrButton() { return this._qrButton; }
|
|
140
|
-
_customQRButtonUrl;
|
|
141
|
-
/** Get or set the QR code button URL - this URL will open when scanning the QR code */
|
|
142
|
-
set qrButtonUrl(url) {
|
|
143
|
-
// make sure it's a URL
|
|
144
|
-
try {
|
|
145
|
-
new URL(url);
|
|
146
|
-
this._customQRButtonUrl = url;
|
|
147
|
-
}
|
|
148
|
-
catch (e) {
|
|
149
|
-
console.warn(`[Needle] QR code button URL is not a valid URL '${url}'`);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
get qrButtonUrl() {
|
|
153
|
-
return this._customQRButtonUrl || window.location.href;
|
|
154
|
-
}
|
|
155
|
-
/** Create a QR code button (or return the existing one if it already exists)
|
|
156
|
-
* The QR code button will show a QR code that can be scanned to open the current page on a phone
|
|
157
|
-
* The QR code will be generated with the current URL when the button is clicked
|
|
158
|
-
* @returns the QR code button element
|
|
159
|
-
*/
|
|
160
|
-
createQRCode() {
|
|
161
|
-
if (this._qrButton)
|
|
162
|
-
return this._qrButton;
|
|
163
|
-
const instance = this;
|
|
164
|
-
const qrCodeButton = document.createElement("button");
|
|
165
|
-
this._qrButton = qrCodeButton;
|
|
166
|
-
qrCodeButton.innerText = "QR Code";
|
|
167
|
-
qrCodeButton.prepend(getIconElement("qr_code"));
|
|
168
|
-
qrCodeButton.title = "Scan this QR code with your phone to open this page";
|
|
169
|
-
this.hideElementDuringXRSession(qrCodeButton);
|
|
170
|
-
const qrCodeContainer = document.createElement("div");
|
|
171
|
-
qrCodeContainer.style.cssText = `
|
|
172
|
-
position: fixed;
|
|
173
|
-
display: inline-block;
|
|
174
|
-
padding: 0.5rem;
|
|
175
|
-
background-color: white;
|
|
176
|
-
border-radius: 0.4rem;
|
|
177
|
-
cursor: pointer;
|
|
178
|
-
z-index: 1000;
|
|
179
|
-
box-shadow: 0 0 12px rgba(0, 0, 0, 0.2);
|
|
180
|
-
`;
|
|
181
|
-
const qrCodeElement = document.createElement("div");
|
|
182
|
-
qrCodeElement.classList.add("qr-code-container");
|
|
183
|
-
qrCodeContainer.appendChild(qrCodeElement);
|
|
184
|
-
qrCodeButton.addEventListener("click", () => {
|
|
185
|
-
if (qrCodeContainer.parentNode)
|
|
186
|
-
return hideQRCode();
|
|
187
|
-
if (isDevEnvironment() && window.location.href.includes("://localhost")) {
|
|
188
|
-
showBalloonWarning("To access your website from another device in the same local network you have to use the IP address instead of localhost. The IP address is logged in your development server console when you start the server.");
|
|
189
|
-
}
|
|
190
|
-
showQRCode();
|
|
191
|
-
});
|
|
192
|
-
/** shows the QRCode near the button */
|
|
193
|
-
async function showQRCode() {
|
|
194
|
-
// generate the qr code when the button is clicked
|
|
195
|
-
// this ensures that we get the QRcode with the latest URL
|
|
196
|
-
await generateAndInsertQRCode();
|
|
197
|
-
// TODO: make sure it doesnt overflow the screen
|
|
198
|
-
// we need to add the qrCodeContainer to the body to get the correct size
|
|
199
|
-
document.body.appendChild(qrCodeContainer);
|
|
200
|
-
const containerRect = qrCodeElement.getBoundingClientRect();
|
|
201
|
-
const buttonRect = qrCodeButton.getBoundingClientRect();
|
|
202
|
-
qrCodeContainer.style.left = (buttonRect.left + buttonRect.width * .5 - containerRect.width * .5) + "px";
|
|
203
|
-
const isButtonInTopHalf = buttonRect.top < containerRect.height;
|
|
204
|
-
const padding = "1.3rem";
|
|
205
|
-
if (isButtonInTopHalf)
|
|
206
|
-
qrCodeContainer.style.top = `calc(${buttonRect.bottom}px + ${qrCodeContainer.style.padding} + 0.0rem)`;
|
|
207
|
-
else
|
|
208
|
-
qrCodeContainer.style.top = `calc(${buttonRect.top - containerRect.height}px - ${qrCodeContainer.style.padding} - ${padding})`;
|
|
209
|
-
qrCodeContainer.style.opacity = "0";
|
|
210
|
-
qrCodeContainer.style.pointerEvents = "all";
|
|
211
|
-
qrCodeContainer.style.transition = "opacity 0.2s ease-in-out";
|
|
212
|
-
// context click to hide the QR code again, if we dont timeout the event will be triggered immediately
|
|
213
|
-
setTimeout(() => {
|
|
214
|
-
qrCodeContainer.style.opacity = "1";
|
|
215
|
-
window.addEventListener("click", hideQRCode, { once: true });
|
|
216
|
-
});
|
|
217
|
-
window.addEventListener("resize", hideQRCode);
|
|
218
|
-
window.addEventListener("scroll", hideQRCode);
|
|
219
|
-
// if we're in fullscreen:
|
|
220
|
-
if (document.fullscreenElement) {
|
|
221
|
-
document.fullscreenElement.appendChild(qrCodeContainer);
|
|
222
|
-
}
|
|
223
|
-
else
|
|
224
|
-
document.body.appendChild(qrCodeContainer);
|
|
225
|
-
}
|
|
226
|
-
/** hides to QRCode overlay and unsubscribes from events */
|
|
227
|
-
function hideQRCode() {
|
|
228
|
-
qrCodeContainer.style.pointerEvents = "none";
|
|
229
|
-
qrCodeContainer.style.transition = "opacity 0.2s";
|
|
230
|
-
qrCodeContainer.style.opacity = "0";
|
|
231
|
-
setTimeout(() => qrCodeContainer.parentNode?.removeChild(qrCodeContainer), 500);
|
|
232
|
-
window.removeEventListener("click", hideQRCode);
|
|
233
|
-
window.removeEventListener("resize", hideQRCode);
|
|
234
|
-
window.removeEventListener("scroll", hideQRCode);
|
|
235
|
-
}
|
|
236
|
-
;
|
|
237
|
-
/** generates a QR code and inserts it into the qrCodeElement */
|
|
238
|
-
async function generateAndInsertQRCode() {
|
|
239
|
-
const size = 200;
|
|
240
|
-
const code = await generateQRCode({
|
|
241
|
-
text: instance.qrButtonUrl,
|
|
242
|
-
width: size,
|
|
243
|
-
height: size,
|
|
244
|
-
});
|
|
245
|
-
qrCodeElement.innerHTML = "";
|
|
246
|
-
qrCodeElement.appendChild(code);
|
|
247
|
-
}
|
|
248
|
-
// lazily create the qr button
|
|
249
|
-
qrCodeButton.addEventListener("pointerenter", () => {
|
|
250
|
-
generateAndInsertQRCode();
|
|
251
|
-
}, { once: true });
|
|
252
|
-
return qrCodeButton;
|
|
253
|
-
}
|
|
254
|
-
hideElementDuringXRSession(element) {
|
|
255
|
-
onXRSessionStart(_ => {
|
|
256
|
-
element["previous-display"] = element.style.display;
|
|
257
|
-
element.style.display = "none";
|
|
258
|
-
});
|
|
259
|
-
onXRSessionEnd(_ => {
|
|
260
|
-
if (element["previous-display"] != undefined)
|
|
261
|
-
element.style.display = element["previous-display"];
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
}
|
|
1
|
+
import { isDevEnvironment, showBalloonWarning } from "../debug/debug.js";
|
|
2
|
+
import { generateQRCode } from "../engine_utils.js";
|
|
3
|
+
import { onXRSessionEnd, onXRSessionStart } from "../xr/events.js";
|
|
4
|
+
import { getIconElement } from "./icons.js";
|
|
5
|
+
/**
|
|
6
|
+
* Use the ButtonsFactory to create buttons with icons and functionality
|
|
7
|
+
* Get access to the default buttons by using `ButtonsFactory.instance`
|
|
8
|
+
* The factory will create the buttons if they don't exist yet, and return the existing ones if they do (this allows you to reparent or modify created buttons)
|
|
9
|
+
*/
|
|
10
|
+
export class ButtonsFactory {
|
|
11
|
+
static _instance;
|
|
12
|
+
/**
|
|
13
|
+
* Get access to the default HTML button factory.
|
|
14
|
+
* Use this to get or create default Needle Engine buttons that can be added to your HTML UI
|
|
15
|
+
* If you want to create a new factory and create new button instances instead of shared buttons, use `ButtonsFactory.create()` instead
|
|
16
|
+
*/
|
|
17
|
+
static get instance() {
|
|
18
|
+
return this.getOrCreate();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get access to the default HTML button factory.
|
|
22
|
+
* Use this to get or create default Needle Engine buttons that can be added to your HTML UI
|
|
23
|
+
* If you want to create a new factory and create new button instances instead of shared buttons, use `ButtonsFactory.create()` instead
|
|
24
|
+
*/
|
|
25
|
+
static getOrCreate() {
|
|
26
|
+
if (!this._instance) {
|
|
27
|
+
this._instance = new ButtonsFactory();
|
|
28
|
+
}
|
|
29
|
+
return this._instance;
|
|
30
|
+
}
|
|
31
|
+
/** create a new buttons factory */
|
|
32
|
+
static create() {
|
|
33
|
+
return new ButtonsFactory();
|
|
34
|
+
}
|
|
35
|
+
_fullscreenButton;
|
|
36
|
+
/**
|
|
37
|
+
* Get the fullscreen button (or undefined if it doesn't exist yet). Call {@link ButtonsFactory.createFullscreenButton} to get or create it
|
|
38
|
+
*/
|
|
39
|
+
get fullscreenButton() {
|
|
40
|
+
return this._fullscreenButton;
|
|
41
|
+
}
|
|
42
|
+
/** Create a fullscreen button (or return the existing one if it already exists) */
|
|
43
|
+
createFullscreenButton(ctx) {
|
|
44
|
+
if (this._fullscreenButton) {
|
|
45
|
+
return this._fullscreenButton;
|
|
46
|
+
}
|
|
47
|
+
// check for fullscreen support
|
|
48
|
+
if (!document.fullscreenEnabled) {
|
|
49
|
+
if (isDevEnvironment())
|
|
50
|
+
console.warn("NeedleMenu: Fullscreen button could not be created, device doesn't support the Fullscreen API");
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const button = document.createElement("button");
|
|
54
|
+
this._fullscreenButton = button;
|
|
55
|
+
button.classList.add("fullscreen-button");
|
|
56
|
+
button.title = "Click to enter fullscreen mode";
|
|
57
|
+
const enterFullscreenIcon = getIconElement("fullscreen");
|
|
58
|
+
const exitFullscreenIcon = getIconElement("fullscreen_exit");
|
|
59
|
+
button.appendChild(enterFullscreenIcon);
|
|
60
|
+
button.onclick = () => {
|
|
61
|
+
if (document.fullscreenElement) {
|
|
62
|
+
document.exitFullscreen();
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
if ("webkitRequestFullscreen" in ctx.domElement && typeof ctx.domElement["webkitRequestFullscreen"] === "function")
|
|
66
|
+
ctx.domElement["webkitRequestFullscreen"]();
|
|
67
|
+
else if ("requestFullscreen" in ctx.domElement)
|
|
68
|
+
ctx.domElement.requestFullscreen();
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
document.addEventListener("fullscreenchange", () => {
|
|
72
|
+
if (document.fullscreenElement) {
|
|
73
|
+
enterFullscreenIcon.remove();
|
|
74
|
+
button.appendChild(exitFullscreenIcon);
|
|
75
|
+
button.title = "Click to enter fullscreen mode";
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
exitFullscreenIcon.remove();
|
|
79
|
+
button.appendChild(enterFullscreenIcon);
|
|
80
|
+
button.title = "Click to exit fullscreen mode";
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
// xr session started?
|
|
84
|
+
globalThis.addEventListener("needle-xrsession-start", () => {
|
|
85
|
+
button.style.display = "none";
|
|
86
|
+
});
|
|
87
|
+
globalThis.addEventListener("needle-xrsession-end", () => {
|
|
88
|
+
button.style.display = "";
|
|
89
|
+
});
|
|
90
|
+
return button;
|
|
91
|
+
}
|
|
92
|
+
_muteButton;
|
|
93
|
+
/** Get the mute button (or undefined if it doesn't exist yet). Call {@link ButtonsFactory.createMuteButton} to get or create it */
|
|
94
|
+
get muteButton() { return this._muteButton; }
|
|
95
|
+
/** Create a mute button (or return the existing one if it already exists) */
|
|
96
|
+
createMuteButton(ctx) {
|
|
97
|
+
if (this._muteButton) {
|
|
98
|
+
return this._muteButton;
|
|
99
|
+
}
|
|
100
|
+
const button = document.createElement("button");
|
|
101
|
+
this._muteButton = button;
|
|
102
|
+
button.classList.add("mute-button");
|
|
103
|
+
button.title = "Click to mute/unmute";
|
|
104
|
+
const muteIcon = getIconElement("volume_off");
|
|
105
|
+
const unmuteIcon = getIconElement("volume_up");
|
|
106
|
+
// save state in session storage (this needs consent)
|
|
107
|
+
// if (sessionStorage.getItem("muted") === "true") {
|
|
108
|
+
// ctx.application.muted = true;
|
|
109
|
+
// }
|
|
110
|
+
// else {
|
|
111
|
+
// ctx.application.muted = false;
|
|
112
|
+
// }
|
|
113
|
+
if (ctx.application.muted) {
|
|
114
|
+
button.appendChild(muteIcon);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
button.appendChild(unmuteIcon);
|
|
118
|
+
}
|
|
119
|
+
button.onclick = () => {
|
|
120
|
+
if (ctx.application.muted) {
|
|
121
|
+
muteIcon.remove();
|
|
122
|
+
button.appendChild(unmuteIcon);
|
|
123
|
+
ctx.application.muted = false;
|
|
124
|
+
// sessionStorage.setItem("muted", "false");
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
unmuteIcon.remove();
|
|
128
|
+
button.appendChild(muteIcon);
|
|
129
|
+
ctx.application.muted = true;
|
|
130
|
+
// sessionStorage.setItem("muted", "true");
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
return button;
|
|
134
|
+
}
|
|
135
|
+
_qrButton;
|
|
136
|
+
/**
|
|
137
|
+
* Get the QR code button (or undefined if it doesn't exist yet). Call {@link ButtonsFactory.createQRCode} to get or create it
|
|
138
|
+
*/
|
|
139
|
+
get qrButton() { return this._qrButton; }
|
|
140
|
+
_customQRButtonUrl;
|
|
141
|
+
/** Get or set the QR code button URL - this URL will open when scanning the QR code */
|
|
142
|
+
set qrButtonUrl(url) {
|
|
143
|
+
// make sure it's a URL
|
|
144
|
+
try {
|
|
145
|
+
new URL(url);
|
|
146
|
+
this._customQRButtonUrl = url;
|
|
147
|
+
}
|
|
148
|
+
catch (e) {
|
|
149
|
+
console.warn(`[Needle] QR code button URL is not a valid URL '${url}'`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
get qrButtonUrl() {
|
|
153
|
+
return this._customQRButtonUrl || window.location.href;
|
|
154
|
+
}
|
|
155
|
+
/** Create a QR code button (or return the existing one if it already exists)
|
|
156
|
+
* The QR code button will show a QR code that can be scanned to open the current page on a phone
|
|
157
|
+
* The QR code will be generated with the current URL when the button is clicked
|
|
158
|
+
* @returns the QR code button element
|
|
159
|
+
*/
|
|
160
|
+
createQRCode() {
|
|
161
|
+
if (this._qrButton)
|
|
162
|
+
return this._qrButton;
|
|
163
|
+
const instance = this;
|
|
164
|
+
const qrCodeButton = document.createElement("button");
|
|
165
|
+
this._qrButton = qrCodeButton;
|
|
166
|
+
qrCodeButton.innerText = "QR Code";
|
|
167
|
+
qrCodeButton.prepend(getIconElement("qr_code"));
|
|
168
|
+
qrCodeButton.title = "Scan this QR code with your phone to open this page";
|
|
169
|
+
this.hideElementDuringXRSession(qrCodeButton);
|
|
170
|
+
const qrCodeContainer = document.createElement("div");
|
|
171
|
+
qrCodeContainer.style.cssText = `
|
|
172
|
+
position: fixed;
|
|
173
|
+
display: inline-block;
|
|
174
|
+
padding: 0.5rem;
|
|
175
|
+
background-color: white;
|
|
176
|
+
border-radius: 0.4rem;
|
|
177
|
+
cursor: pointer;
|
|
178
|
+
z-index: 1000;
|
|
179
|
+
box-shadow: 0 0 12px rgba(0, 0, 0, 0.2);
|
|
180
|
+
`;
|
|
181
|
+
const qrCodeElement = document.createElement("div");
|
|
182
|
+
qrCodeElement.classList.add("qr-code-container");
|
|
183
|
+
qrCodeContainer.appendChild(qrCodeElement);
|
|
184
|
+
qrCodeButton.addEventListener("click", () => {
|
|
185
|
+
if (qrCodeContainer.parentNode)
|
|
186
|
+
return hideQRCode();
|
|
187
|
+
if (isDevEnvironment() && window.location.href.includes("://localhost")) {
|
|
188
|
+
showBalloonWarning("To access your website from another device in the same local network you have to use the IP address instead of localhost. The IP address is logged in your development server console when you start the server.");
|
|
189
|
+
}
|
|
190
|
+
showQRCode();
|
|
191
|
+
});
|
|
192
|
+
/** shows the QRCode near the button */
|
|
193
|
+
async function showQRCode() {
|
|
194
|
+
// generate the qr code when the button is clicked
|
|
195
|
+
// this ensures that we get the QRcode with the latest URL
|
|
196
|
+
await generateAndInsertQRCode();
|
|
197
|
+
// TODO: make sure it doesnt overflow the screen
|
|
198
|
+
// we need to add the qrCodeContainer to the body to get the correct size
|
|
199
|
+
document.body.appendChild(qrCodeContainer);
|
|
200
|
+
const containerRect = qrCodeElement.getBoundingClientRect();
|
|
201
|
+
const buttonRect = qrCodeButton.getBoundingClientRect();
|
|
202
|
+
qrCodeContainer.style.left = (buttonRect.left + buttonRect.width * .5 - containerRect.width * .5) + "px";
|
|
203
|
+
const isButtonInTopHalf = buttonRect.top < containerRect.height;
|
|
204
|
+
const padding = "1.3rem";
|
|
205
|
+
if (isButtonInTopHalf)
|
|
206
|
+
qrCodeContainer.style.top = `calc(${buttonRect.bottom}px + ${qrCodeContainer.style.padding} + 0.0rem)`;
|
|
207
|
+
else
|
|
208
|
+
qrCodeContainer.style.top = `calc(${buttonRect.top - containerRect.height}px - ${qrCodeContainer.style.padding} - ${padding})`;
|
|
209
|
+
qrCodeContainer.style.opacity = "0";
|
|
210
|
+
qrCodeContainer.style.pointerEvents = "all";
|
|
211
|
+
qrCodeContainer.style.transition = "opacity 0.2s ease-in-out";
|
|
212
|
+
// context click to hide the QR code again, if we dont timeout the event will be triggered immediately
|
|
213
|
+
setTimeout(() => {
|
|
214
|
+
qrCodeContainer.style.opacity = "1";
|
|
215
|
+
window.addEventListener("click", hideQRCode, { once: true });
|
|
216
|
+
});
|
|
217
|
+
window.addEventListener("resize", hideQRCode);
|
|
218
|
+
window.addEventListener("scroll", hideQRCode);
|
|
219
|
+
// if we're in fullscreen:
|
|
220
|
+
if (document.fullscreenElement) {
|
|
221
|
+
document.fullscreenElement.appendChild(qrCodeContainer);
|
|
222
|
+
}
|
|
223
|
+
else
|
|
224
|
+
document.body.appendChild(qrCodeContainer);
|
|
225
|
+
}
|
|
226
|
+
/** hides to QRCode overlay and unsubscribes from events */
|
|
227
|
+
function hideQRCode() {
|
|
228
|
+
qrCodeContainer.style.pointerEvents = "none";
|
|
229
|
+
qrCodeContainer.style.transition = "opacity 0.2s";
|
|
230
|
+
qrCodeContainer.style.opacity = "0";
|
|
231
|
+
setTimeout(() => qrCodeContainer.parentNode?.removeChild(qrCodeContainer), 500);
|
|
232
|
+
window.removeEventListener("click", hideQRCode);
|
|
233
|
+
window.removeEventListener("resize", hideQRCode);
|
|
234
|
+
window.removeEventListener("scroll", hideQRCode);
|
|
235
|
+
}
|
|
236
|
+
;
|
|
237
|
+
/** generates a QR code and inserts it into the qrCodeElement */
|
|
238
|
+
async function generateAndInsertQRCode() {
|
|
239
|
+
const size = 200;
|
|
240
|
+
const code = await generateQRCode({
|
|
241
|
+
text: instance.qrButtonUrl,
|
|
242
|
+
width: size,
|
|
243
|
+
height: size,
|
|
244
|
+
});
|
|
245
|
+
qrCodeElement.innerHTML = "";
|
|
246
|
+
qrCodeElement.appendChild(code);
|
|
247
|
+
}
|
|
248
|
+
// lazily create the qr button
|
|
249
|
+
qrCodeButton.addEventListener("pointerenter", () => {
|
|
250
|
+
generateAndInsertQRCode();
|
|
251
|
+
}, { once: true });
|
|
252
|
+
return qrCodeButton;
|
|
253
|
+
}
|
|
254
|
+
hideElementDuringXRSession(element) {
|
|
255
|
+
onXRSessionStart(_ => {
|
|
256
|
+
element["previous-display"] = element.style.display;
|
|
257
|
+
element.style.display = "none";
|
|
258
|
+
});
|
|
259
|
+
onXRSessionEnd(_ => {
|
|
260
|
+
if (element["previous-display"] != undefined)
|
|
261
|
+
element.style.display = element["previous-display"];
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
265
|
//# sourceMappingURL=buttons.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
declare type LoadFontOptions = {
|
|
2
|
-
element?: HTMLElement | DocumentFragment;
|
|
3
|
-
loadedCallback?: () => void;
|
|
4
|
-
};
|
|
5
|
-
export declare function loadFont(url: string, opts?: LoadFontOptions): void;
|
|
6
|
-
/** Ensure the fonts that needle engine uses are loaded */
|
|
7
|
-
export declare function ensureFonts(): void;
|
|
8
|
-
export declare const iconFontUrl = "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=block";
|
|
9
|
-
export {};
|
|
1
|
+
declare type LoadFontOptions = {
|
|
2
|
+
element?: HTMLElement | DocumentFragment;
|
|
3
|
+
loadedCallback?: () => void;
|
|
4
|
+
};
|
|
5
|
+
export declare function loadFont(url: string, opts?: LoadFontOptions): void;
|
|
6
|
+
/** Ensure the fonts that needle engine uses are loaded */
|
|
7
|
+
export declare function ensureFonts(): void;
|
|
8
|
+
export declare const iconFontUrl = "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=block";
|
|
9
|
+
export {};
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
export function loadFont(url, opts) {
|
|
2
|
-
const element = opts?.element || document.head;
|
|
3
|
-
// Workaround for font loading not being supported in ShadowDOM:
|
|
4
|
-
// Add font import to document header.
|
|
5
|
-
// Note that this is slower than it could be, ideally the font would be prefetched,
|
|
6
|
-
// but for that it needs to be in the actual document and not added by JS.
|
|
7
|
-
const elements = Array.from(element.querySelectorAll(`link[rel=stylesheet][href*='${url}']`));
|
|
8
|
-
if (elements.length <= 0) {
|
|
9
|
-
const fontLink = document.createElement("link");
|
|
10
|
-
fontLink.href = url;
|
|
11
|
-
fontLink.rel = "stylesheet";
|
|
12
|
-
element.appendChild(fontLink);
|
|
13
|
-
elements.push(fontLink);
|
|
14
|
-
}
|
|
15
|
-
if (opts?.loadedCallback) {
|
|
16
|
-
for (let i = 0; i < elements.length; i++) {
|
|
17
|
-
if (opts?.loadedCallback) {
|
|
18
|
-
const fontLink = elements[i];
|
|
19
|
-
fontLink.addEventListener("load", opts.loadedCallback);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/** Ensure the fonts that needle engine uses are loaded */
|
|
25
|
-
export function ensureFonts() {
|
|
26
|
-
loadFont("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
|
|
27
|
-
}
|
|
28
|
-
// add to document head AND shadow dom to work
|
|
29
|
-
// using a static font because the variable font is quite large
|
|
30
|
-
// eslint-disable-next-line no-secrets/no-secrets
|
|
31
|
-
export const iconFontUrl = "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=block";
|
|
32
|
-
// const fontUrl = "./include/fonts/MaterialSymbolsOutlined.css"; // for offline support
|
|
1
|
+
export function loadFont(url, opts) {
|
|
2
|
+
const element = opts?.element || document.head;
|
|
3
|
+
// Workaround for font loading not being supported in ShadowDOM:
|
|
4
|
+
// Add font import to document header.
|
|
5
|
+
// Note that this is slower than it could be, ideally the font would be prefetched,
|
|
6
|
+
// but for that it needs to be in the actual document and not added by JS.
|
|
7
|
+
const elements = Array.from(element.querySelectorAll(`link[rel=stylesheet][href*='${url}']`));
|
|
8
|
+
if (elements.length <= 0) {
|
|
9
|
+
const fontLink = document.createElement("link");
|
|
10
|
+
fontLink.href = url;
|
|
11
|
+
fontLink.rel = "stylesheet";
|
|
12
|
+
element.appendChild(fontLink);
|
|
13
|
+
elements.push(fontLink);
|
|
14
|
+
}
|
|
15
|
+
if (opts?.loadedCallback) {
|
|
16
|
+
for (let i = 0; i < elements.length; i++) {
|
|
17
|
+
if (opts?.loadedCallback) {
|
|
18
|
+
const fontLink = elements[i];
|
|
19
|
+
fontLink.addEventListener("load", opts.loadedCallback);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** Ensure the fonts that needle engine uses are loaded */
|
|
25
|
+
export function ensureFonts() {
|
|
26
|
+
loadFont("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
|
|
27
|
+
}
|
|
28
|
+
// add to document head AND shadow dom to work
|
|
29
|
+
// using a static font because the variable font is quite large
|
|
30
|
+
// eslint-disable-next-line no-secrets/no-secrets
|
|
31
|
+
export const iconFontUrl = "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=block";
|
|
32
|
+
// const fontUrl = "./include/fonts/MaterialSymbolsOutlined.css"; // for offline support
|
|
33
33
|
//# sourceMappingURL=fonts.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Texture } from "three";
|
|
2
|
-
/** Returns a HTML element containing an icon. Using https://fonts.google.com/icons
|
|
3
|
-
* As a string you should pass in the name of the icon, e.g. "add" or "delete"
|
|
4
|
-
* @returns HTMLElement containing the icon
|
|
5
|
-
*/
|
|
6
|
-
export declare function getIconElement(str: string): HTMLElement;
|
|
7
|
-
/**@returns true if the element is an needle engine icon element */
|
|
8
|
-
export declare function isIconElement(element: Node): boolean;
|
|
9
|
-
export declare function getIconTexture(str: string): Promise<Texture | null>;
|
|
1
|
+
import { Texture } from "three";
|
|
2
|
+
/** Returns a HTML element containing an icon. Using https://fonts.google.com/icons
|
|
3
|
+
* As a string you should pass in the name of the icon, e.g. "add" or "delete"
|
|
4
|
+
* @returns HTMLElement containing the icon
|
|
5
|
+
*/
|
|
6
|
+
export declare function getIconElement(str: string): HTMLElement;
|
|
7
|
+
/**@returns true if the element is an needle engine icon element */
|
|
8
|
+
export declare function isIconElement(element: Node): boolean;
|
|
9
|
+
export declare function getIconTexture(str: string): Promise<Texture | null>;
|