@needle-tools/engine 4.7.2-alpha → 4.7.2-next.6f2cd71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3782 -3782
- package/LICENSE.md +10 -10
- package/README.md +64 -64
- package/components.needle.json +1 -1
- package/dist/generateMeshBVH.worker-BaNp_Xtp.js +25 -0
- package/dist/{gltf-progressive-zdhlW609.umd.cjs → gltf-progressive-B9o1T8Vr.umd.cjs} +1 -1
- package/dist/{gltf-progressive-YjtQYFa9.js → gltf-progressive-DO0SisAM.js} +2 -2
- package/dist/{gltf-progressive-yOP1mp5W.min.js → gltf-progressive-DQF10PJE.min.js} +1 -1
- package/dist/{needle-engine.bundle-BhDF-YSv.min.js → needle-engine.bundle-B-NoV0t_.min.js} +64 -64
- package/dist/{needle-engine.bundle-D2myV4E4.umd.cjs → needle-engine.bundle-BMnlxDfi.umd.cjs} +59 -59
- package/dist/{needle-engine.bundle-gp00DTS4.js → needle-engine.bundle-CFi0ugBx.js} +638 -638
- package/dist/needle-engine.d.ts +130 -129
- package/dist/needle-engine.js +4 -4
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-8AQTeZsr.umd.cjs → postprocessing-CjW23fio.umd.cjs} +2 -2
- package/dist/{postprocessing-BkxN_08g.js → postprocessing-DYLNOL3W.js} +3 -3
- package/dist/{postprocessing-BDScN9yu.min.js → postprocessing-xYQWCHFu.min.js} +2 -2
- package/dist/{three-DMrv-4ar.umd.cjs → three-B_hneGZr.umd.cjs} +4 -4
- package/dist/{three-Bz6X1mrw.js → three-DrqIzZTH.js} +4198 -4198
- package/dist/{three-Boa-jOq-.min.js → three-DuDKwKB8.min.js} +33 -33
- package/dist/{three-examples-GggCDHv0.js → three-examples-B50TT3Iu.js} +5 -5
- package/dist/{three-examples-DuVhxqft.min.js → three-examples-DaDLBuy6.min.js} +14 -14
- package/dist/{three-examples-C7ryg8vN.umd.cjs → three-examples-X3OadjXB.umd.cjs} +3 -3
- package/dist/{three-mesh-ui-CY6Izc7C.min.js → three-mesh-ui-B3p3gyUz.min.js} +1 -1
- package/dist/{three-mesh-ui-CwlN0FUC.umd.cjs → three-mesh-ui-CQiIQIlA.umd.cjs} +1 -1
- package/dist/{three-mesh-ui-CLNOfsWn.js → three-mesh-ui-CxuWt7m-.js} +1 -1
- package/dist/{vendor-zxXa3Dmr.min.js → vendor-BlSxe9JJ.min.js} +3 -3
- package/dist/{vendor-BSD1RQIh.js → vendor-BmYIgaS1.js} +3 -3
- package/dist/{vendor-DHr4aqIZ.umd.cjs → vendor-Cavtu3CP.umd.cjs} +3 -3
- package/lib/asap/needle-asap.d.ts +1 -1
- package/lib/asap/needle-asap.js +95 -95
- package/lib/asap/sessiongranted.d.ts +3 -3
- package/lib/asap/sessiongranted.js +65 -65
- package/lib/asap/utils.d.ts +1 -1
- package/lib/asap/utils.js +3 -3
- package/lib/engine/analytics/index.d.ts +6 -6
- package/lib/engine/analytics/index.js +12 -12
- package/lib/engine/analytics/lcp.d.ts +3 -3
- package/lib/engine/analytics/lcp.js +34 -34
- package/lib/engine/api.d.ts +82 -82
- package/lib/engine/api.js +81 -81
- package/lib/engine/assets/index.d.ts +11 -11
- package/lib/engine/assets/index.js +47 -47
- package/lib/engine/assets/static.d.ts +1 -1
- package/lib/engine/assets/static.js +4 -4
- package/lib/engine/codegen/register_types.d.ts +1 -1
- package/lib/engine/codegen/register_types.js +300 -300
- package/lib/engine/debug/debug.d.ts +15 -15
- package/lib/engine/debug/debug.js +44 -44
- package/lib/engine/debug/debug_console.d.ts +2 -2
- package/lib/engine/debug/debug_console.js +307 -307
- package/lib/engine/debug/debug_overlay.d.ts +22 -22
- package/lib/engine/debug/debug_overlay.js +316 -316
- package/lib/engine/debug/debug_spatial_console.d.ts +2 -2
- package/lib/engine/debug/debug_spatial_console.js +390 -390
- package/lib/engine/debug/index.d.ts +2 -2
- package/lib/engine/debug/index.js +2 -2
- package/lib/engine/engine_addressables.d.ts +164 -164
- package/lib/engine/engine_addressables.js +601 -601
- package/lib/engine/engine_animation.d.ts +43 -43
- package/lib/engine/engine_animation.js +133 -133
- package/lib/engine/engine_application.d.ts +45 -45
- package/lib/engine/engine_application.js +104 -104
- package/lib/engine/engine_assetdatabase.d.ts +25 -25
- package/lib/engine/engine_assetdatabase.js +346 -346
- package/lib/engine/engine_audio.d.ts +4 -4
- package/lib/engine/engine_audio.js +23 -23
- package/lib/engine/engine_camera.d.ts +13 -13
- package/lib/engine/engine_camera.js +30 -30
- package/lib/engine/engine_components.d.ts +110 -110
- package/lib/engine/engine_components.js +374 -374
- package/lib/engine/engine_components_internal.d.ts +9 -9
- package/lib/engine/engine_components_internal.js +36 -36
- package/lib/engine/engine_constants.d.ts +10 -10
- package/lib/engine/engine_constants.js +41 -41
- package/lib/engine/engine_context.d.ts +475 -475
- package/lib/engine/engine_context.js +1673 -1673
- package/lib/engine/engine_context_registry.d.ts +71 -71
- package/lib/engine/engine_context_registry.js +117 -117
- package/lib/engine/engine_coroutine.d.ts +35 -35
- package/lib/engine/engine_coroutine.js +52 -52
- package/lib/engine/engine_create_objects.d.ts +119 -119
- package/lib/engine/engine_create_objects.js +320 -320
- package/lib/engine/engine_default_parameters.d.ts +2 -2
- package/lib/engine/engine_default_parameters.js +3 -3
- package/lib/engine/engine_editor-sync.d.ts +21 -21
- package/lib/engine/engine_editor-sync.js +4 -4
- package/lib/engine/engine_fileloader.d.ts +2 -2
- package/lib/engine/engine_fileloader.js +8 -8
- package/lib/engine/engine_gameobject.d.ts +68 -68
- package/lib/engine/engine_gameobject.js +619 -619
- package/lib/engine/engine_generic_utils.d.ts +1 -1
- package/lib/engine/engine_generic_utils.js +13 -13
- package/lib/engine/engine_gizmos.d.ts +149 -149
- package/lib/engine/engine_gizmos.js +530 -530
- package/lib/engine/engine_gltf.d.ts +12 -12
- package/lib/engine/engine_gltf.js +15 -15
- package/lib/engine/engine_gltf_builtin_components.d.ts +11 -11
- package/lib/engine/engine_gltf_builtin_components.js +341 -341
- package/lib/engine/engine_hot_reload.d.ts +8 -8
- package/lib/engine/engine_hot_reload.js +197 -197
- package/lib/engine/engine_input.d.ts +362 -362
- package/lib/engine/engine_input.js +1294 -1294
- package/lib/engine/engine_input_utils.d.ts +2 -2
- package/lib/engine/engine_input_utils.js +22 -22
- package/lib/engine/engine_instancing.d.ts +19 -19
- package/lib/engine/engine_instancing.js +39 -39
- package/lib/engine/engine_license.d.ts +11 -11
- package/lib/engine/engine_license.js +369 -369
- package/lib/engine/engine_lifecycle_api.d.ts +83 -83
- package/lib/engine/engine_lifecycle_api.js +106 -106
- package/lib/engine/engine_lifecycle_functions_internal.d.ts +32 -32
- package/lib/engine/engine_lifecycle_functions_internal.js +146 -146
- package/lib/engine/engine_lightdata.d.ts +23 -23
- package/lib/engine/engine_lightdata.js +101 -101
- package/lib/engine/engine_loaders.callbacks.d.ts +97 -97
- package/lib/engine/engine_loaders.callbacks.js +86 -86
- package/lib/engine/engine_loaders.d.ts +48 -48
- package/lib/engine/engine_loaders.gltf.d.ts +13 -13
- package/lib/engine/engine_loaders.gltf.js +62 -62
- package/lib/engine/engine_loaders.js +337 -337
- package/lib/engine/engine_lods.d.ts +35 -35
- package/lib/engine/engine_lods.js +160 -160
- package/lib/engine/engine_mainloop_utils.d.ts +32 -32
- package/lib/engine/engine_mainloop_utils.js +466 -466
- package/lib/engine/engine_math.d.ts +114 -114
- package/lib/engine/engine_math.js +247 -247
- package/lib/engine/engine_modules.d.ts +36 -36
- package/lib/engine/engine_modules.js +85 -85
- package/lib/engine/engine_networking.d.ts +260 -260
- package/lib/engine/engine_networking.js +764 -764
- package/lib/engine/engine_networking_auto.d.ts +24 -24
- package/lib/engine/engine_networking_auto.js +310 -310
- package/lib/engine/engine_networking_blob.d.ts +48 -48
- package/lib/engine/engine_networking_blob.js +228 -228
- package/lib/engine/engine_networking_files.d.ts +35 -35
- package/lib/engine/engine_networking_files.js +172 -172
- package/lib/engine/engine_networking_files_default_components.d.ts +6 -6
- package/lib/engine/engine_networking_files_default_components.js +42 -42
- package/lib/engine/engine_networking_instantiate.d.ts +100 -100
- package/lib/engine/engine_networking_instantiate.js +345 -345
- package/lib/engine/engine_networking_peer.d.ts +15 -15
- package/lib/engine/engine_networking_peer.js +132 -132
- package/lib/engine/engine_networking_streams.d.ts +123 -123
- package/lib/engine/engine_networking_streams.js +645 -645
- package/lib/engine/engine_networking_types.d.ts +22 -22
- package/lib/engine/engine_networking_types.js +7 -7
- package/lib/engine/engine_networking_utils.d.ts +2 -2
- package/lib/engine/engine_networking_utils.js +20 -20
- package/lib/engine/engine_networking_websocket.d.ts +1 -1
- package/lib/engine/engine_networking_websocket.js +2 -2
- package/lib/engine/engine_patcher.d.ts +10 -10
- package/lib/engine/engine_patcher.js +142 -142
- package/lib/engine/engine_physics.d.ts +152 -152
- package/lib/engine/engine_physics.js +645 -645
- package/lib/engine/engine_physics.types.d.ts +40 -40
- package/lib/engine/engine_physics.types.js +33 -33
- package/lib/engine/engine_physics_rapier.d.ts +147 -147
- package/lib/engine/engine_physics_rapier.js +1433 -1433
- package/lib/engine/engine_playerview.d.ts +26 -26
- package/lib/engine/engine_playerview.js +64 -64
- package/lib/engine/engine_scenelighting.d.ts +71 -71
- package/lib/engine/engine_scenelighting.js +226 -226
- package/lib/engine/engine_serialization.d.ts +3 -3
- package/lib/engine/engine_serialization.js +3 -3
- package/lib/engine/engine_serialization_builtin_serializer.d.ts +72 -72
- package/lib/engine/engine_serialization_builtin_serializer.js +403 -403
- package/lib/engine/engine_serialization_core.d.ts +94 -94
- package/lib/engine/engine_serialization_core.js +607 -607
- package/lib/engine/engine_serialization_decorator.d.ts +23 -23
- package/lib/engine/engine_serialization_decorator.js +66 -66
- package/lib/engine/engine_setup.d.ts +1 -1
- package/lib/engine/engine_setup.js +2 -2
- package/lib/engine/engine_shaders.d.ts +53 -53
- package/lib/engine/engine_shaders.js +252 -252
- package/lib/engine/engine_shims.d.ts +4 -4
- package/lib/engine/engine_shims.js +24 -24
- package/lib/engine/engine_test_utils.d.ts +39 -39
- package/lib/engine/engine_test_utils.js +83 -83
- package/lib/engine/engine_texture.d.ts +28 -28
- package/lib/engine/engine_texture.js +64 -64
- package/lib/engine/engine_three_utils.d.ts +204 -204
- package/lib/engine/engine_three_utils.js +788 -788
- package/lib/engine/engine_time.d.ts +51 -51
- package/lib/engine/engine_time.js +82 -82
- package/lib/engine/engine_time_utils.d.ts +88 -88
- package/lib/engine/engine_time_utils.js +215 -215
- package/lib/engine/engine_tonemapping.d.ts +6 -6
- package/lib/engine/engine_tonemapping.js +197 -197
- package/lib/engine/engine_types.d.ts +578 -578
- package/lib/engine/engine_types.js +95 -95
- package/lib/engine/engine_typestore.d.ts +28 -28
- package/lib/engine/engine_typestore.js +55 -55
- package/lib/engine/engine_util_decorator.d.ts +13 -13
- package/lib/engine/engine_util_decorator.js +116 -116
- package/lib/engine/engine_utils.d.ts +248 -248
- package/lib/engine/engine_utils.js +1012 -1012
- package/lib/engine/engine_utils_format.d.ts +24 -24
- package/lib/engine/engine_utils_format.js +239 -239
- package/lib/engine/engine_utils_screenshot.d.ts +159 -159
- package/lib/engine/engine_utils_screenshot.js +522 -522
- package/lib/engine/engine_utils_screenshot.xr.d.ts +5 -5
- package/lib/engine/engine_utils_screenshot.xr.js +90 -90
- package/lib/engine/engine_xr.d.ts +1 -1
- package/lib/engine/engine_xr.js +1 -1
- package/lib/engine/export/gltf/Writers.d.ts +19 -19
- package/lib/engine/export/gltf/Writers.js +24 -24
- package/lib/engine/export/gltf/index.d.ts +11 -11
- package/lib/engine/export/gltf/index.js +123 -123
- package/lib/engine/export/index.d.ts +2 -2
- package/lib/engine/export/index.js +2 -2
- package/lib/engine/export/state.d.ts +7 -7
- package/lib/engine/export/state.js +17 -17
- package/lib/engine/export/utils.d.ts +2 -2
- package/lib/engine/export/utils.js +7 -7
- package/lib/engine/extensions/EXT_texture_exr.d.ts +8 -8
- package/lib/engine/extensions/EXT_texture_exr.js +32 -32
- package/lib/engine/extensions/NEEDLE_animator_controller_model.d.ts +122 -122
- package/lib/engine/extensions/NEEDLE_animator_controller_model.js +95 -95
- package/lib/engine/extensions/NEEDLE_components.d.ts +35 -35
- package/lib/engine/extensions/NEEDLE_components.js +220 -220
- package/lib/engine/extensions/NEEDLE_gameobject_data.d.ts +10 -10
- package/lib/engine/extensions/NEEDLE_gameobject_data.js +57 -57
- package/lib/engine/extensions/NEEDLE_lighting_settings.d.ts +37 -37
- package/lib/engine/extensions/NEEDLE_lighting_settings.js +157 -157
- package/lib/engine/extensions/NEEDLE_lightmaps.d.ts +18 -18
- package/lib/engine/extensions/NEEDLE_lightmaps.js +99 -99
- package/lib/engine/extensions/NEEDLE_persistent_assets.d.ts +11 -11
- package/lib/engine/extensions/NEEDLE_persistent_assets.js +63 -63
- package/lib/engine/extensions/NEEDLE_progressive.d.ts +1 -1
- package/lib/engine/extensions/NEEDLE_progressive.js +1 -1
- package/lib/engine/extensions/NEEDLE_render_objects.d.ts +13 -13
- package/lib/engine/extensions/NEEDLE_render_objects.js +159 -159
- package/lib/engine/extensions/NEEDLE_techniques_webgl.d.ts +38 -38
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js +564 -564
- package/lib/engine/extensions/extension_resolver.d.ts +4 -4
- package/lib/engine/extensions/extension_resolver.js +1 -1
- package/lib/engine/extensions/extension_utils.d.ts +12 -12
- package/lib/engine/extensions/extension_utils.js +152 -152
- package/lib/engine/extensions/extensions.d.ts +32 -32
- package/lib/engine/extensions/extensions.js +107 -107
- package/lib/engine/extensions/index.d.ts +6 -6
- package/lib/engine/extensions/index.js +6 -6
- package/lib/engine/extensions/usage_tracker.d.ts +13 -13
- package/lib/engine/extensions/usage_tracker.js +65 -65
- package/lib/engine/js-extensions/Camera.d.ts +1 -1
- package/lib/engine/js-extensions/Camera.js +39 -39
- package/lib/engine/js-extensions/ExtensionUtils.d.ts +9 -9
- package/lib/engine/js-extensions/ExtensionUtils.js +67 -67
- package/lib/engine/js-extensions/Layers.d.ts +6 -6
- package/lib/engine/js-extensions/Layers.js +22 -22
- package/lib/engine/js-extensions/Object3D.d.ts +120 -120
- package/lib/engine/js-extensions/Object3D.js +136 -136
- package/lib/engine/js-extensions/RGBAColor.d.ts +23 -23
- package/lib/engine/js-extensions/RGBAColor.js +111 -111
- package/lib/engine/js-extensions/Vector.d.ts +3 -3
- package/lib/engine/js-extensions/Vector.js +13 -13
- package/lib/engine/js-extensions/index.d.ts +5 -5
- package/lib/engine/js-extensions/index.js +5 -5
- package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.d.ts +4 -4
- package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +79 -79
- package/lib/engine/shaders/shaderData.d.ts +55 -55
- package/lib/engine/shaders/shaderData.js +58 -58
- package/lib/engine/tests/test_utils.d.ts +2 -2
- package/lib/engine/tests/test_utils.js +53 -53
- package/lib/engine/webcomponents/WebXRButtons.d.ts +56 -56
- package/lib/engine/webcomponents/WebXRButtons.js +230 -230
- package/lib/engine/webcomponents/api.d.ts +5 -5
- package/lib/engine/webcomponents/api.js +4 -4
- package/lib/engine/webcomponents/buttons.d.ts +51 -51
- package/lib/engine/webcomponents/buttons.js +264 -264
- package/lib/engine/webcomponents/fonts.d.ts +9 -9
- package/lib/engine/webcomponents/fonts.js +32 -32
- package/lib/engine/webcomponents/icons.d.ts +9 -9
- package/lib/engine/webcomponents/icons.js +52 -52
- package/lib/engine/webcomponents/index.d.ts +1 -1
- package/lib/engine/webcomponents/index.js +1 -1
- package/lib/engine/webcomponents/logo-element.d.ts +10 -10
- package/lib/engine/webcomponents/logo-element.js +67 -67
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.d.ts +37 -37
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +513 -513
- package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +155 -155
- package/lib/engine/webcomponents/needle menu/needle-menu.js +1029 -1029
- package/lib/engine/webcomponents/needle-button.d.ts +34 -34
- package/lib/engine/webcomponents/needle-button.js +161 -161
- package/lib/engine/webcomponents/needle-engine.ar-overlay.d.ts +21 -21
- package/lib/engine/webcomponents/needle-engine.ar-overlay.js +166 -166
- package/lib/engine/webcomponents/needle-engine.attributes.d.ts +69 -69
- package/lib/engine/webcomponents/needle-engine.attributes.js +1 -1
- package/lib/engine/webcomponents/needle-engine.d.ts +116 -116
- package/lib/engine/webcomponents/needle-engine.extras.d.ts +6 -6
- package/lib/engine/webcomponents/needle-engine.extras.js +13 -13
- package/lib/engine/webcomponents/needle-engine.js +821 -821
- package/lib/engine/webcomponents/needle-engine.loading.d.ts +44 -44
- package/lib/engine/webcomponents/needle-engine.loading.js +341 -341
- package/lib/engine/xr/NeedleXRController.d.ts +313 -313
- package/lib/engine/xr/NeedleXRController.js +1007 -1007
- package/lib/engine/xr/NeedleXRSession.d.ts +340 -340
- package/lib/engine/xr/NeedleXRSession.js +1463 -1463
- package/lib/engine/xr/NeedleXRSync.d.ts +22 -22
- package/lib/engine/xr/NeedleXRSync.js +188 -188
- package/lib/engine/xr/SceneTransition.d.ts +18 -18
- package/lib/engine/xr/SceneTransition.js +69 -69
- package/lib/engine/xr/TempXRContext.d.ts +34 -34
- package/lib/engine/xr/TempXRContext.js +187 -187
- package/lib/engine/xr/XRRig.d.ts +7 -7
- package/lib/engine/xr/XRRig.js +1 -1
- package/lib/engine/xr/api.d.ts +6 -6
- package/lib/engine/xr/api.js +6 -6
- package/lib/engine/xr/events.d.ts +66 -66
- package/lib/engine/xr/events.js +93 -93
- package/lib/engine/xr/internal.d.ts +12 -12
- package/lib/engine/xr/internal.js +25 -25
- package/lib/engine/xr/usdz.d.ts +12 -12
- package/lib/engine/xr/usdz.js +29 -29
- package/lib/engine/xr/utils.d.ts +11 -11
- package/lib/engine/xr/utils.js +34 -34
- package/lib/engine-components/AlignmentConstraint.d.ts +10 -10
- package/lib/engine-components/AlignmentConstraint.js +39 -39
- package/lib/engine-components/Animation.d.ts +156 -156
- package/lib/engine-components/Animation.js +508 -508
- package/lib/engine-components/AnimationCurve.d.ts +40 -40
- package/lib/engine-components/AnimationCurve.js +159 -159
- package/lib/engine-components/AnimationUtils.d.ts +8 -8
- package/lib/engine-components/AnimationUtils.js +27 -27
- package/lib/engine-components/AnimationUtilsAutoplay.d.ts +1 -1
- package/lib/engine-components/AnimationUtilsAutoplay.js +39 -39
- package/lib/engine-components/Animator.d.ts +217 -217
- package/lib/engine-components/Animator.js +354 -354
- package/lib/engine-components/AnimatorController.d.ts +227 -227
- package/lib/engine-components/AnimatorController.js +1152 -1152
- package/lib/engine-components/AudioListener.d.ts +33 -33
- package/lib/engine-components/AudioListener.js +86 -86
- package/lib/engine-components/AudioSource.d.ts +217 -217
- package/lib/engine-components/AudioSource.js +635 -635
- package/lib/engine-components/AvatarLoader.d.ts +80 -80
- package/lib/engine-components/AvatarLoader.js +231 -231
- package/lib/engine-components/AxesHelper.d.ts +32 -32
- package/lib/engine-components/AxesHelper.js +67 -67
- package/lib/engine-components/BasicIKConstraint.d.ts +9 -9
- package/lib/engine-components/BasicIKConstraint.js +43 -43
- package/lib/engine-components/BoxCollider.d.ts +2 -2
- package/lib/engine-components/BoxCollider.js +2 -2
- package/lib/engine-components/BoxHelperComponent.d.ts +47 -47
- package/lib/engine-components/BoxHelperComponent.js +102 -102
- package/lib/engine-components/Camera.d.ts +231 -231
- package/lib/engine-components/Camera.js +700 -700
- package/lib/engine-components/CameraUtils.d.ts +1 -1
- package/lib/engine-components/CameraUtils.js +123 -123
- package/lib/engine-components/CharacterController.d.ts +55 -55
- package/lib/engine-components/CharacterController.js +236 -236
- package/lib/engine-components/Collider.d.ts +188 -188
- package/lib/engine-components/Collider.js +369 -369
- package/lib/engine-components/Component.d.ts +792 -792
- package/lib/engine-components/Component.js +920 -920
- package/lib/engine-components/ContactShadows.d.ts +94 -94
- package/lib/engine-components/ContactShadows.js +453 -453
- package/lib/engine-components/DeleteBox.d.ts +19 -19
- package/lib/engine-components/DeleteBox.js +58 -58
- package/lib/engine-components/DeviceFlag.d.ts +16 -16
- package/lib/engine-components/DeviceFlag.js +47 -47
- package/lib/engine-components/DragControls.d.ts +170 -170
- package/lib/engine-components/DragControls.js +1421 -1421
- package/lib/engine-components/DropListener.d.ts +215 -215
- package/lib/engine-components/DropListener.js +642 -642
- package/lib/engine-components/Duplicatable.d.ts +35 -35
- package/lib/engine-components/Duplicatable.js +202 -202
- package/lib/engine-components/EventList.d.ts +54 -54
- package/lib/engine-components/EventList.js +232 -232
- package/lib/engine-components/EventTrigger.d.ts +33 -33
- package/lib/engine-components/EventTrigger.js +75 -75
- package/lib/engine-components/EventType.d.ts +22 -22
- package/lib/engine-components/EventType.js +23 -23
- package/lib/engine-components/Fog.d.ts +22 -22
- package/lib/engine-components/Fog.js +61 -61
- package/lib/engine-components/Gizmos.d.ts +17 -17
- package/lib/engine-components/Gizmos.js +64 -64
- package/lib/engine-components/GridHelper.d.ts +20 -20
- package/lib/engine-components/GridHelper.js +54 -54
- package/lib/engine-components/GroundProjection.d.ts +67 -67
- package/lib/engine-components/GroundProjection.js +343 -343
- package/lib/engine-components/Interactable.d.ts +12 -12
- package/lib/engine-components/Interactable.js +12 -12
- package/lib/engine-components/Joints.d.ts +19 -19
- package/lib/engine-components/Joints.js +51 -51
- package/lib/engine-components/LODGroup.d.ts +35 -35
- package/lib/engine-components/LODGroup.js +152 -152
- package/lib/engine-components/Light.d.ts +180 -180
- package/lib/engine-components/Light.js +535 -535
- package/lib/engine-components/LookAtConstraint.d.ts +19 -19
- package/lib/engine-components/LookAtConstraint.js +35 -35
- package/lib/engine-components/NeedleMenu.d.ts +50 -50
- package/lib/engine-components/NeedleMenu.js +92 -92
- package/lib/engine-components/NestedGltf.d.ts +25 -25
- package/lib/engine-components/NestedGltf.js +88 -88
- package/lib/engine-components/Networking.d.ts +54 -54
- package/lib/engine-components/Networking.js +112 -112
- package/lib/engine-components/OffsetConstraint.d.ts +14 -14
- package/lib/engine-components/OffsetConstraint.js +65 -65
- package/lib/engine-components/OrbitControls.d.ts +268 -268
- package/lib/engine-components/OrbitControls.js +1015 -1015
- package/lib/engine-components/PlayerColor.d.ts +19 -19
- package/lib/engine-components/PlayerColor.js +94 -94
- package/lib/engine-components/ReflectionProbe.d.ts +28 -28
- package/lib/engine-components/ReflectionProbe.js +204 -204
- package/lib/engine-components/Renderer.d.ts +153 -153
- package/lib/engine-components/Renderer.js +834 -834
- package/lib/engine-components/RendererInstancing.d.ts +140 -140
- package/lib/engine-components/RendererInstancing.js +744 -744
- package/lib/engine-components/RendererLightmap.d.ts +24 -24
- package/lib/engine-components/RendererLightmap.js +182 -182
- package/lib/engine-components/RigidBody.d.ts +155 -155
- package/lib/engine-components/RigidBody.js +517 -517
- package/lib/engine-components/SceneSwitcher.d.ts +263 -263
- package/lib/engine-components/SceneSwitcher.js +971 -971
- package/lib/engine-components/ScreenCapture.d.ts +144 -144
- package/lib/engine-components/ScreenCapture.js +547 -547
- package/lib/engine-components/ShadowCatcher.d.ts +33 -33
- package/lib/engine-components/ShadowCatcher.js +166 -166
- package/lib/engine-components/Skybox.d.ts +88 -88
- package/lib/engine-components/Skybox.js +469 -469
- package/lib/engine-components/SmoothFollow.d.ts +34 -34
- package/lib/engine-components/SmoothFollow.js +82 -82
- package/lib/engine-components/SpatialTrigger.d.ts +102 -102
- package/lib/engine-components/SpatialTrigger.js +225 -225
- package/lib/engine-components/SpectatorCamera.d.ts +111 -111
- package/lib/engine-components/SpectatorCamera.js +715 -715
- package/lib/engine-components/SphereCollider.d.ts +2 -2
- package/lib/engine-components/SphereCollider.js +2 -2
- package/lib/engine-components/SpriteRenderer.d.ts +132 -132
- package/lib/engine-components/SpriteRenderer.js +472 -472
- package/lib/engine-components/SyncedCamera.d.ts +41 -41
- package/lib/engine-components/SyncedCamera.js +199 -199
- package/lib/engine-components/SyncedRoom.d.ts +106 -106
- package/lib/engine-components/SyncedRoom.js +371 -371
- package/lib/engine-components/SyncedTransform.d.ts +94 -94
- package/lib/engine-components/SyncedTransform.js +331 -331
- package/lib/engine-components/TestRunner.d.ts +16 -16
- package/lib/engine-components/TestRunner.js +102 -102
- package/lib/engine-components/TransformGizmo.d.ts +75 -75
- package/lib/engine-components/TransformGizmo.js +209 -209
- package/lib/engine-components/VideoPlayer.d.ts +184 -184
- package/lib/engine-components/VideoPlayer.js +978 -978
- package/lib/engine-components/Voip.d.ts +67 -67
- package/lib/engine-components/Voip.js +360 -360
- package/lib/engine-components/api.d.ts +51 -51
- package/lib/engine-components/api.js +50 -50
- package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +11 -11
- package/lib/engine-components/avatar/AvatarBlink_Simple.js +76 -76
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +14 -14
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +68 -68
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +29 -29
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +121 -121
- package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +15 -15
- package/lib/engine-components/avatar/Avatar_MouthShapes.js +79 -79
- package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +9 -9
- package/lib/engine-components/avatar/Avatar_MustacheShake.js +29 -29
- package/lib/engine-components/codegen/components.d.ts +216 -216
- package/lib/engine-components/codegen/components.js +218 -218
- package/lib/engine-components/debug/LogStats.d.ts +5 -5
- package/lib/engine-components/debug/LogStats.js +18 -18
- package/lib/engine-components/export/gltf/GltfExport.d.ts +30 -30
- package/lib/engine-components/export/gltf/GltfExport.js +246 -246
- package/lib/engine-components/export/gltf/index.d.ts +1 -1
- package/lib/engine-components/export/gltf/index.js +1 -1
- package/lib/engine-components/export/index.d.ts +1 -1
- package/lib/engine-components/export/index.js +1 -1
- package/lib/engine-components/export/usdz/Extension.d.ts +22 -22
- package/lib/engine-components/export/usdz/Extension.js +1 -1
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.d.ts +162 -162
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +1789 -1789
- package/lib/engine-components/export/usdz/USDZExporter.d.ts +130 -130
- package/lib/engine-components/export/usdz/USDZExporter.js +663 -663
- package/lib/engine-components/export/usdz/extensions/Animation.d.ts +106 -106
- package/lib/engine-components/export/usdz/extensions/Animation.js +1071 -1071
- package/lib/engine-components/export/usdz/extensions/DocumentExtension.d.ts +5 -5
- package/lib/engine-components/export/usdz/extensions/DocumentExtension.js +6 -6
- package/lib/engine-components/export/usdz/extensions/NodeMaterialConverter.d.ts +10 -10
- package/lib/engine-components/export/usdz/extensions/NodeMaterialConverter.js +451 -451
- package/lib/engine-components/export/usdz/extensions/USDZText.d.ts +54 -54
- package/lib/engine-components/export/usdz/extensions/USDZText.js +203 -203
- package/lib/engine-components/export/usdz/extensions/USDZUI.d.ts +8 -8
- package/lib/engine-components/export/usdz/extensions/USDZUI.js +158 -158
- package/lib/engine-components/export/usdz/extensions/behavior/Actions.d.ts +30 -30
- package/lib/engine-components/export/usdz/extensions/behavior/Actions.js +88 -88
- package/lib/engine-components/export/usdz/extensions/behavior/AudioExtension.d.ts +10 -10
- package/lib/engine-components/export/usdz/extensions/behavior/AudioExtension.js +86 -86
- package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.d.ts +28 -28
- package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js +290 -290
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +190 -190
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +1060 -1060
- package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.d.ts +135 -135
- package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js +548 -548
- package/lib/engine-components/export/usdz/extensions/behavior/PhysicsExtension.d.ts +7 -7
- package/lib/engine-components/export/usdz/extensions/behavior/PhysicsExtension.js +115 -115
- package/lib/engine-components/export/usdz/index.d.ts +3 -3
- package/lib/engine-components/export/usdz/index.js +2 -2
- package/lib/engine-components/export/usdz/utils/animationutils.d.ts +7 -7
- package/lib/engine-components/export/usdz/utils/animationutils.js +163 -163
- package/lib/engine-components/export/usdz/utils/quicklook.d.ts +2 -2
- package/lib/engine-components/export/usdz/utils/quicklook.js +43 -43
- package/lib/engine-components/particlesystem/ParticleSystem.d.ts +177 -177
- package/lib/engine-components/particlesystem/ParticleSystem.js +1176 -1176
- package/lib/engine-components/particlesystem/ParticleSystemModules.d.ts +526 -526
- package/lib/engine-components/particlesystem/ParticleSystemModules.js +1930 -1930
- package/lib/engine-components/particlesystem/ParticleSystemSubEmitter.d.ts +25 -25
- package/lib/engine-components/particlesystem/ParticleSystemSubEmitter.js +87 -87
- package/lib/engine-components/particlesystem/api.d.ts +2 -2
- package/lib/engine-components/particlesystem/api.js +2 -2
- package/lib/engine-components/postprocessing/Effects/Antialiasing.d.ts +17 -17
- package/lib/engine-components/postprocessing/Effects/Antialiasing.js +59 -59
- package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +46 -46
- package/lib/engine-components/postprocessing/Effects/BloomEffect.js +113 -113
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +11 -11
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +39 -39
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +23 -23
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +111 -111
- package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +25 -25
- package/lib/engine-components/postprocessing/Effects/DepthOfField.js +104 -104
- package/lib/engine-components/postprocessing/Effects/EffectWrapper.d.ts +12 -12
- package/lib/engine-components/postprocessing/Effects/EffectWrapper.js +18 -18
- package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +11 -11
- package/lib/engine-components/postprocessing/Effects/Pixelation.js +32 -32
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.d.ts +18 -18
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js +91 -91
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +70 -70
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +176 -176
- package/lib/engine-components/postprocessing/Effects/Sharpening.d.ts +18 -18
- package/lib/engine-components/postprocessing/Effects/Sharpening.js +127 -127
- package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +17 -17
- package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +70 -70
- package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +19 -19
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js +94 -94
- package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +13 -13
- package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.js +51 -51
- package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +15 -15
- package/lib/engine-components/postprocessing/Effects/Vignette.js +60 -60
- package/lib/engine-components/postprocessing/PostProcessingEffect.d.ts +90 -90
- package/lib/engine-components/postprocessing/PostProcessingEffect.js +168 -168
- package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +42 -42
- package/lib/engine-components/postprocessing/PostProcessingHandler.js +494 -494
- package/lib/engine-components/postprocessing/Volume.d.ts +90 -90
- package/lib/engine-components/postprocessing/Volume.js +385 -385
- package/lib/engine-components/postprocessing/VolumeParameter.d.ts +26 -26
- package/lib/engine-components/postprocessing/VolumeParameter.js +136 -136
- package/lib/engine-components/postprocessing/VolumeProfile.d.ts +15 -15
- package/lib/engine-components/postprocessing/VolumeProfile.js +60 -60
- package/lib/engine-components/postprocessing/index.d.ts +6 -6
- package/lib/engine-components/postprocessing/index.js +6 -6
- package/lib/engine-components/postprocessing/utils.d.ts +55 -55
- package/lib/engine-components/postprocessing/utils.js +119 -119
- package/lib/engine-components/timeline/PlayableDirector.d.ts +163 -163
- package/lib/engine-components/timeline/PlayableDirector.js +686 -686
- package/lib/engine-components/timeline/SignalAsset.d.ts +24 -24
- package/lib/engine-components/timeline/SignalAsset.js +130 -130
- package/lib/engine-components/timeline/TimelineModels.d.ts +89 -89
- package/lib/engine-components/timeline/TimelineModels.js +22 -22
- package/lib/engine-components/timeline/TimelineTracks.d.ts +110 -110
- package/lib/engine-components/timeline/TimelineTracks.js +879 -879
- package/lib/engine-components/timeline/index.d.ts +4 -4
- package/lib/engine-components/timeline/index.js +3 -3
- package/lib/engine-components/ui/BaseUIComponent.d.ts +48 -48
- package/lib/engine-components/ui/BaseUIComponent.js +170 -170
- package/lib/engine-components/ui/Button.d.ts +64 -64
- package/lib/engine-components/ui/Button.js +315 -315
- package/lib/engine-components/ui/Canvas.d.ts +74 -74
- package/lib/engine-components/ui/Canvas.js +407 -407
- package/lib/engine-components/ui/CanvasGroup.d.ts +19 -19
- package/lib/engine-components/ui/CanvasGroup.js +58 -58
- package/lib/engine-components/ui/EventSystem.d.ts +125 -125
- package/lib/engine-components/ui/EventSystem.js +765 -765
- package/lib/engine-components/ui/Graphic.d.ts +55 -55
- package/lib/engine-components/ui/Graphic.js +255 -255
- package/lib/engine-components/ui/Image.d.ts +35 -35
- package/lib/engine-components/ui/Image.js +116 -116
- package/lib/engine-components/ui/InputField.d.ts +42 -42
- package/lib/engine-components/ui/InputField.js +268 -268
- package/lib/engine-components/ui/Interfaces.d.ts +38 -38
- package/lib/engine-components/ui/Interfaces.js +12 -12
- package/lib/engine-components/ui/Layout.d.ts +84 -84
- package/lib/engine-components/ui/Layout.js +330 -330
- package/lib/engine-components/ui/Outline.d.ts +7 -7
- package/lib/engine-components/ui/Outline.js +20 -20
- package/lib/engine-components/ui/PointerEvents.d.ts +115 -115
- package/lib/engine-components/ui/PointerEvents.js +145 -145
- package/lib/engine-components/ui/RaycastUtils.d.ts +11 -11
- package/lib/engine-components/ui/RaycastUtils.js +67 -67
- package/lib/engine-components/ui/Raycaster.d.ts +30 -30
- package/lib/engine-components/ui/Raycaster.js +95 -95
- package/lib/engine-components/ui/RectTransform.d.ts +61 -61
- package/lib/engine-components/ui/RectTransform.js +356 -356
- package/lib/engine-components/ui/SpatialHtml.d.ts +8 -8
- package/lib/engine-components/ui/SpatialHtml.js +79 -79
- package/lib/engine-components/ui/Symbols.d.ts +1 -1
- package/lib/engine-components/ui/Symbols.js +1 -1
- package/lib/engine-components/ui/Text.d.ts +78 -78
- package/lib/engine-components/ui/Text.js +539 -539
- package/lib/engine-components/ui/Utils.d.ts +24 -24
- package/lib/engine-components/ui/Utils.js +90 -90
- package/lib/engine-components/ui/index.d.ts +1 -1
- package/lib/engine-components/ui/index.js +1 -1
- package/lib/engine-components/utils/EnvironmentScene.d.ts +5 -5
- package/lib/engine-components/utils/EnvironmentScene.js +205 -205
- package/lib/engine-components/utils/LookAt.d.ts +31 -31
- package/lib/engine-components/utils/LookAt.js +82 -82
- package/lib/engine-components/utils/OpenURL.d.ts +42 -42
- package/lib/engine-components/utils/OpenURL.js +119 -119
- package/lib/engine-components/webxr/Avatar.d.ts +25 -25
- package/lib/engine-components/webxr/Avatar.js +255 -255
- package/lib/engine-components/webxr/TeleportTarget.d.ts +7 -7
- package/lib/engine-components/webxr/TeleportTarget.js +7 -7
- package/lib/engine-components/webxr/WebARCameraBackground.d.ts +30 -30
- package/lib/engine-components/webxr/WebARCameraBackground.js +155 -155
- package/lib/engine-components/webxr/WebARSessionRoot.d.ts +98 -98
- package/lib/engine-components/webxr/WebARSessionRoot.js +770 -770
- package/lib/engine-components/webxr/WebXR.d.ts +232 -232
- package/lib/engine-components/webxr/WebXR.js +561 -561
- package/lib/engine-components/webxr/WebXRAvatar.d.ts +27 -27
- package/lib/engine-components/webxr/WebXRAvatar.js +44 -44
- package/lib/engine-components/webxr/WebXRImageTracking.d.ts +86 -86
- package/lib/engine-components/webxr/WebXRImageTracking.js +471 -471
- package/lib/engine-components/webxr/WebXRPlaneTracking.d.ts +92 -92
- package/lib/engine-components/webxr/WebXRPlaneTracking.js +500 -500
- package/lib/engine-components/webxr/WebXRRig.d.ts +32 -32
- package/lib/engine-components/webxr/WebXRRig.js +72 -72
- package/lib/engine-components/webxr/XRFlag.d.ts +38 -38
- package/lib/engine-components/webxr/XRFlag.js +139 -139
- package/lib/engine-components/webxr/controllers/XRControllerFollow.d.ts +47 -47
- package/lib/engine-components/webxr/controllers/XRControllerFollow.js +120 -120
- package/lib/engine-components/webxr/controllers/XRControllerModel.d.ts +43 -43
- package/lib/engine-components/webxr/controllers/XRControllerModel.js +352 -352
- package/lib/engine-components/webxr/controllers/XRControllerMovement.d.ts +78 -78
- package/lib/engine-components/webxr/controllers/XRControllerMovement.js +506 -506
- package/lib/engine-components/webxr/index.d.ts +3 -3
- package/lib/engine-components/webxr/index.js +3 -3
- package/lib/engine-components/webxr/types.d.ts +3 -3
- package/lib/engine-components/webxr/types.js +1 -1
- package/lib/engine-components-experimental/Presentation.d.ts +6 -6
- package/lib/engine-components-experimental/Presentation.js +9 -9
- package/lib/engine-components-experimental/api.d.ts +4 -4
- package/lib/engine-components-experimental/api.js +4 -4
- package/lib/engine-components-experimental/networking/PlayerSync.d.ts +156 -156
- package/lib/engine-components-experimental/networking/PlayerSync.js +377 -377
- package/lib/engine-schemes/api.d.ts +12 -12
- package/lib/engine-schemes/api.js +12 -12
- package/lib/engine-schemes/schemes.d.ts +7 -7
- package/lib/engine-schemes/schemes.js +19 -19
- package/lib/engine-schemes/synced-camera-model.d.ts +25 -25
- package/lib/engine-schemes/synced-camera-model.js +67 -67
- package/lib/engine-schemes/synced-transform-model.d.ts +31 -31
- package/lib/engine-schemes/synced-transform-model.js +66 -66
- package/lib/engine-schemes/transform.d.ts +12 -12
- package/lib/engine-schemes/transform.js +39 -39
- package/lib/engine-schemes/vec2.d.ts +10 -10
- package/lib/engine-schemes/vec2.js +25 -25
- package/lib/engine-schemes/vec3.d.ts +11 -11
- package/lib/engine-schemes/vec3.js +29 -29
- package/lib/engine-schemes/vec4.d.ts +12 -12
- package/lib/engine-schemes/vec4.js +33 -33
- package/lib/engine-schemes/vr-user-state-buffer.d.ts +37 -37
- package/lib/engine-schemes/vr-user-state-buffer.js +110 -110
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -6
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +45 -45
- package/lib/needle-engine.d.ts +7 -7
- package/lib/needle-engine.js +64 -64
- package/package.json +3 -3
- package/plugins/common/buildinfo.js +64 -64
- package/plugins/common/cloud.js +1 -1
- package/plugins/common/config.cjs +31 -31
- package/plugins/common/config.js +35 -35
- package/plugins/common/files.js +31 -31
- package/plugins/common/generator.js +10 -10
- package/plugins/common/license.js +452 -452
- package/plugins/common/logger.js +327 -327
- package/plugins/common/npm.js +15 -15
- package/plugins/common/timers.js +7 -7
- package/plugins/common/version.js +37 -37
- package/plugins/gltf-packer.mjs +1 -1
- package/plugins/next/alias.cjs +39 -39
- package/plugins/next/license.cjs +24 -24
- package/plugins/next/meshbvhworker.cjs +18 -18
- package/plugins/next/next.js +141 -141
- package/plugins/types/index.d.ts +2 -2
- package/plugins/types/license.d.ts +24 -24
- package/plugins/types/needleConfig.d.ts +27 -27
- package/plugins/types/next.d.ts +2 -2
- package/plugins/types/userconfig.d.ts +124 -124
- package/plugins/types/vite.d.ts +13 -13
- package/plugins/types/webmanifest.d.ts +32 -32
- package/plugins/vite/alias.js +189 -189
- package/plugins/vite/asap.js +251 -251
- package/plugins/vite/build-pipeline.js +371 -371
- package/plugins/vite/build.js +19 -19
- package/plugins/vite/buildinfo.js +41 -41
- package/plugins/vite/config.js +106 -106
- package/plugins/vite/copyfiles.js +138 -138
- package/plugins/vite/defines.js +70 -70
- package/plugins/vite/dependencies.js +232 -232
- package/plugins/vite/dependency-watcher.js +237 -237
- package/plugins/vite/drop-client.js +76 -76
- package/plugins/vite/drop.js +87 -87
- package/plugins/vite/editor-connection.js +124 -124
- package/plugins/vite/facebook-instant-games.js +102 -102
- package/plugins/vite/gzip.js +5 -5
- package/plugins/vite/imports-logger.js +143 -143
- package/plugins/vite/index.js +147 -147
- package/plugins/vite/license.js +56 -56
- package/plugins/vite/local-files.js +440 -440
- package/plugins/vite/logger.client.js +272 -272
- package/plugins/vite/logger.js +100 -100
- package/plugins/vite/materialx.js +31 -31
- package/plugins/vite/meta.js +163 -163
- package/plugins/vite/npm.js +7 -7
- package/plugins/vite/peer.js +29 -29
- package/plugins/vite/poster-client.js +73 -73
- package/plugins/vite/poster.js +79 -79
- package/plugins/vite/pwa.js +604 -604
- package/plugins/vite/reload-client.js +15 -15
- package/plugins/vite/reload.js +351 -351
- package/plugins/vite/server.js +66 -66
- package/plugins/vite/transform-codegen.js +55 -55
- package/plugins/vite/transform.js +32 -32
- package/plugins/vite/vite-4.4-hack.js +31 -31
- package/src/asap/needle-asap.ts +111 -111
- package/src/asap/sessiongranted.ts +75 -75
- package/src/asap/utils.ts +4 -4
- package/src/engine/analytics/index.ts +10 -10
- package/src/engine/analytics/lcp.ts +35 -35
- package/src/engine/api.ts +82 -82
- package/src/engine/assets/index.ts +59 -59
- package/src/engine/assets/static.js +5 -5
- package/src/engine/codegen/register_types.ts +300 -300
- package/src/engine/debug/debug.ts +51 -51
- package/src/engine/debug/debug_console.ts +333 -333
- package/src/engine/debug/debug_overlay.ts +332 -332
- package/src/engine/debug/debug_spatial_console.ts +429 -429
- package/src/engine/debug/index.ts +1 -1
- package/src/engine/engine_addressables.ts +671 -671
- package/src/engine/engine_animation.ts +145 -145
- package/src/engine/engine_application.ts +113 -113
- package/src/engine/engine_assetdatabase.ts +389 -389
- package/src/engine/engine_audio.ts +24 -24
- package/src/engine/engine_camera.ts +39 -39
- package/src/engine/engine_components.ts +366 -366
- package/src/engine/engine_components_internal.ts +40 -40
- package/src/engine/engine_constants.ts +52 -52
- package/src/engine/engine_context.ts +1824 -1824
- package/src/engine/engine_context_registry.ts +129 -129
- package/src/engine/engine_coroutine.ts +54 -54
- package/src/engine/engine_create_objects.ts +411 -411
- package/src/engine/engine_default_parameters.ts +3 -3
- package/src/engine/engine_editor-sync.ts +28 -28
- package/src/engine/engine_fileloader.js +9 -9
- package/src/engine/engine_gameobject.ts +712 -712
- package/src/engine/engine_generic_utils.js +13 -13
- package/src/engine/engine_gizmos.ts +577 -577
- package/src/engine/engine_gltf.ts +29 -29
- package/src/engine/engine_gltf_builtin_components.ts +403 -403
- package/src/engine/engine_hot_reload.ts +210 -210
- package/src/engine/engine_input.ts +1500 -1500
- package/src/engine/engine_input_utils.ts +23 -23
- package/src/engine/engine_instancing.ts +45 -45
- package/src/engine/engine_license.ts +386 -386
- package/src/engine/engine_lifecycle_api.ts +113 -113
- package/src/engine/engine_lifecycle_functions_internal.ts +193 -193
- package/src/engine/engine_lightdata.ts +125 -125
- package/src/engine/engine_loaders.callbacks.ts +136 -136
- package/src/engine/engine_loaders.gltf.ts +82 -82
- package/src/engine/engine_loaders.ts +378 -378
- package/src/engine/engine_lods.ts +186 -186
- package/src/engine/engine_mainloop_utils.ts +472 -472
- package/src/engine/engine_math.ts +282 -282
- package/src/engine/engine_modules.ts +83 -83
- package/src/engine/engine_networking.ts +862 -862
- package/src/engine/engine_networking_auto.ts +352 -352
- package/src/engine/engine_networking_blob.ts +275 -275
- package/src/engine/engine_networking_files.ts +217 -217
- package/src/engine/engine_networking_files_default_components.ts +58 -58
- package/src/engine/engine_networking_instantiate.ts +419 -419
- package/src/engine/engine_networking_peer.ts +159 -159
- package/src/engine/engine_networking_streams.ts +713 -713
- package/src/engine/engine_networking_types.ts +24 -24
- package/src/engine/engine_networking_utils.ts +23 -23
- package/src/engine/engine_networking_websocket.ts +2 -2
- package/src/engine/engine_patcher.ts +199 -199
- package/src/engine/engine_physics.ts +783 -783
- package/src/engine/engine_physics.types.ts +46 -46
- package/src/engine/engine_physics_rapier.ts +1577 -1577
- package/src/engine/engine_playerview.ts +80 -80
- package/src/engine/engine_scenelighting.ts +294 -294
- package/src/engine/engine_serialization.ts +2 -2
- package/src/engine/engine_serialization_builtin_serializer.ts +473 -473
- package/src/engine/engine_serialization_core.ts +720 -720
- package/src/engine/engine_serialization_decorator.ts +80 -80
- package/src/engine/engine_setup.ts +1 -1
- package/src/engine/engine_shaders.ts +267 -267
- package/src/engine/engine_shims.ts +32 -32
- package/src/engine/engine_test_utils.ts +109 -109
- package/src/engine/engine_texture.ts +82 -82
- package/src/engine/engine_three_utils.ts +928 -928
- package/src/engine/engine_time.ts +94 -94
- package/src/engine/engine_time_utils.ts +237 -237
- package/src/engine/engine_tonemapping.ts +208 -208
- package/src/engine/engine_types.ts +730 -730
- package/src/engine/engine_typestore.ts +63 -63
- package/src/engine/engine_util_decorator.ts +136 -136
- package/src/engine/engine_utils.ts +1115 -1115
- package/src/engine/engine_utils_format.ts +273 -273
- package/src/engine/engine_utils_screenshot.ts +708 -708
- package/src/engine/engine_utils_screenshot.xr.ts +103 -103
- package/src/engine/export/gltf/Writers.ts +34 -34
- package/src/engine/export/gltf/index.ts +158 -158
- package/src/engine/export/index.ts +2 -2
- package/src/engine/export/state.ts +19 -19
- package/src/engine/export/utils.ts +9 -9
- package/src/engine/extensions/EXT_texture_exr.ts +50 -50
- package/src/engine/extensions/NEEDLE_animator_controller_model.ts +195 -195
- package/src/engine/extensions/NEEDLE_components.ts +268 -268
- package/src/engine/extensions/NEEDLE_gameobject_data.ts +81 -81
- package/src/engine/extensions/NEEDLE_lighting_settings.ts +185 -185
- package/src/engine/extensions/NEEDLE_lightmaps.ts +119 -119
- package/src/engine/extensions/NEEDLE_persistent_assets.ts +76 -76
- package/src/engine/extensions/NEEDLE_render_objects.ts +209 -209
- package/src/engine/extensions/NEEDLE_techniques_webgl.ts +640 -640
- package/src/engine/extensions/extension_resolver.ts +4 -4
- package/src/engine/extensions/extension_utils.ts +166 -166
- package/src/engine/extensions/extensions.ts +140 -140
- package/src/engine/extensions/index.ts +5 -5
- package/src/engine/extensions/usage_tracker.ts +100 -100
- package/src/engine/js-extensions/Camera.ts +37 -37
- package/src/engine/js-extensions/ExtensionUtils.ts +85 -85
- package/src/engine/js-extensions/Layers.ts +23 -23
- package/src/engine/js-extensions/Object3D.ts +296 -296
- package/src/engine/js-extensions/RGBAColor.ts +126 -126
- package/src/engine/js-extensions/Vector.ts +18 -18
- package/src/engine/js-extensions/index.ts +4 -4
- package/src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +125 -125
- package/src/engine/shaders/shaderData.ts +67 -67
- package/src/engine/tests/test_utils.ts +63 -63
- package/src/engine/webcomponents/WebXRButtons.ts +260 -260
- package/src/engine/webcomponents/api.ts +6 -6
- package/src/engine/webcomponents/buttons.ts +292 -292
- package/src/engine/webcomponents/fonts.ts +41 -41
- package/src/engine/webcomponents/icons.ts +57 -57
- package/src/engine/webcomponents/index.ts +1 -1
- package/src/engine/webcomponents/logo-element.ts +78 -78
- package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +573 -573
- package/src/engine/webcomponents/needle menu/needle-menu.ts +1118 -1118
- package/src/engine/webcomponents/needle-button.ts +181 -181
- package/src/engine/webcomponents/needle-engine.ar-overlay.ts +186 -186
- package/src/engine/webcomponents/needle-engine.attributes.ts +82 -82
- package/src/engine/webcomponents/needle-engine.extras.ts +16 -16
- package/src/engine/webcomponents/needle-engine.loading.ts +373 -373
- package/src/engine/webcomponents/needle-engine.ts +860 -860
- package/src/engine/xr/NeedleXRController.ts +1125 -1125
- package/src/engine/xr/NeedleXRSession.ts +1624 -1624
- package/src/engine/xr/NeedleXRSync.ts +220 -220
- package/src/engine/xr/SceneTransition.ts +78 -78
- package/src/engine/xr/TempXRContext.ts +216 -216
- package/src/engine/xr/XRRig.ts +9 -9
- package/src/engine/xr/api.ts +5 -5
- package/src/engine/xr/events.ts +102 -102
- package/src/engine/xr/internal.ts +34 -34
- package/src/engine/xr/usdz.ts +30 -30
- package/src/engine/xr/utils.ts +39 -39
- package/src/engine-components/AlignmentConstraint.ts +36 -36
- package/src/engine-components/Animation.ts +557 -557
- package/src/engine-components/AnimationCurve.ts +150 -150
- package/src/engine-components/AnimationUtils.ts +28 -28
- package/src/engine-components/AnimationUtilsAutoplay.ts +43 -43
- package/src/engine-components/Animator.ts +397 -397
- package/src/engine-components/AnimatorController.ts +1293 -1293
- package/src/engine-components/AudioListener.ts +92 -92
- package/src/engine-components/AudioSource.ts +644 -644
- package/src/engine-components/AvatarLoader.ts +263 -263
- package/src/engine-components/AxesHelper.ts +59 -59
- package/src/engine-components/BasicIKConstraint.ts +54 -54
- package/src/engine-components/BoxCollider.ts +1 -1
- package/src/engine-components/BoxHelperComponent.ts +114 -114
- package/src/engine-components/Camera.ts +719 -719
- package/src/engine-components/CameraUtils.ts +138 -138
- package/src/engine-components/CharacterController.ts +253 -253
- package/src/engine-components/Collider.ts +374 -374
- package/src/engine-components/Component.ts +1297 -1297
- package/src/engine-components/ContactShadows.ts +506 -506
- package/src/engine-components/DeleteBox.ts +62 -62
- package/src/engine-components/DeviceFlag.ts +46 -46
- package/src/engine-components/DragControls.ts +1623 -1623
- package/src/engine-components/DropListener.ts +713 -713
- package/src/engine-components/Duplicatable.ts +198 -198
- package/src/engine-components/EventList.ts +266 -266
- package/src/engine-components/EventTrigger.ts +74 -74
- package/src/engine-components/EventType.ts +22 -22
- package/src/engine-components/Fog.ts +60 -60
- package/src/engine-components/Gizmos.ts +56 -56
- package/src/engine-components/GridHelper.ts +48 -48
- package/src/engine-components/GroundProjection.ts +356 -356
- package/src/engine-components/Interactable.ts +14 -14
- package/src/engine-components/Joints.ts +52 -52
- package/src/engine-components/LODGroup.ts +153 -153
- package/src/engine-components/Light.ts +558 -558
- package/src/engine-components/LookAtConstraint.ts +25 -25
- package/src/engine-components/NeedleMenu.ts +84 -84
- package/src/engine-components/NestedGltf.ts +86 -86
- package/src/engine-components/Networking.ts +114 -114
- package/src/engine-components/OffsetConstraint.ts +60 -60
- package/src/engine-components/OrbitControls.ts +1074 -1074
- package/src/engine-components/PlayerColor.ts +103 -103
- package/src/engine-components/ReflectionProbe.ts +220 -220
- package/src/engine-components/Renderer.ts +903 -903
- package/src/engine-components/RendererInstancing.ts +855 -855
- package/src/engine-components/RendererLightmap.ts +198 -198
- package/src/engine-components/RigidBody.ts +526 -526
- package/src/engine-components/SceneSwitcher.ts +1030 -1030
- package/src/engine-components/ScreenCapture.ts +592 -592
- package/src/engine-components/ShadowCatcher.ts +172 -172
- package/src/engine-components/Skybox.ts +475 -475
- package/src/engine-components/SmoothFollow.ts +76 -76
- package/src/engine-components/SpatialTrigger.ts +229 -229
- package/src/engine-components/SpectatorCamera.ts +787 -787
- package/src/engine-components/SphereCollider.ts +1 -1
- package/src/engine-components/SpriteRenderer.ts +468 -468
- package/src/engine-components/SyncedCamera.ts +220 -220
- package/src/engine-components/SyncedRoom.ts +380 -380
- package/src/engine-components/SyncedTransform.ts +383 -383
- package/src/engine-components/TestRunner.ts +118 -118
- package/src/engine-components/TransformGizmo.ts +219 -219
- package/src/engine-components/VideoPlayer.ts +1025 -1025
- package/src/engine-components/Voip.ts +363 -363
- package/src/engine-components/api.ts +60 -60
- package/src/engine-components/avatar/AvatarBlink_Simple.ts +69 -69
- package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +63 -63
- package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +139 -139
- package/src/engine-components/avatar/Avatar_MouthShapes.ts +83 -83
- package/src/engine-components/avatar/Avatar_MustacheShake.ts +31 -31
- package/src/engine-components/codegen/components.ts +217 -217
- package/src/engine-components/debug/LogStats.ts +21 -21
- package/src/engine-components/export/gltf/GltfExport.ts +265 -265
- package/src/engine-components/export/usdz/Extension.ts +24 -24
- package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +2426 -2426
- package/src/engine-components/export/usdz/USDZExporter.ts +705 -705
- package/src/engine-components/export/usdz/extensions/Animation.ts +1204 -1204
- package/src/engine-components/export/usdz/extensions/DocumentExtension.ts +9 -9
- package/src/engine-components/export/usdz/extensions/NodeMaterialConverter.ts +532 -532
- package/src/engine-components/export/usdz/extensions/USDZText.ts +240 -240
- package/src/engine-components/export/usdz/extensions/USDZUI.ts +189 -189
- package/src/engine-components/export/usdz/extensions/behavior/Actions.ts +99 -99
- package/src/engine-components/export/usdz/extensions/behavior/AudioExtension.ts +102 -102
- package/src/engine-components/export/usdz/extensions/behavior/Behaviour.ts +320 -320
- package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +1225 -1225
- package/src/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.ts +646 -646
- package/src/engine-components/export/usdz/extensions/behavior/PhysicsExtension.ts +132 -132
- package/src/engine-components/export/usdz/index.ts +2 -2
- package/src/engine-components/export/usdz/utils/animationutils.ts +191 -191
- package/src/engine-components/export/usdz/utils/quicklook.ts +50 -50
- package/src/engine-components/particlesystem/ParticleSystem.ts +1287 -1287
- package/src/engine-components/particlesystem/ParticleSystemModules.ts +1765 -1765
- package/src/engine-components/particlesystem/ParticleSystemSubEmitter.ts +111 -111
- package/src/engine-components/particlesystem/api.ts +1 -1
- package/src/engine-components/postprocessing/Effects/Antialiasing.ts +64 -64
- package/src/engine-components/postprocessing/Effects/BloomEffect.ts +116 -116
- package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +37 -37
- package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +106 -106
- package/src/engine-components/postprocessing/Effects/DepthOfField.ts +103 -103
- package/src/engine-components/postprocessing/Effects/EffectWrapper.ts +25 -25
- package/src/engine-components/postprocessing/Effects/Pixelation.ts +32 -32
- package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.ts +90 -90
- package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +192 -192
- package/src/engine-components/postprocessing/Effects/Sharpening.ts +143 -143
- package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +61 -61
- package/src/engine-components/postprocessing/Effects/Tonemapping.ts +103 -103
- package/src/engine-components/postprocessing/Effects/Tonemapping.utils.ts +60 -60
- package/src/engine-components/postprocessing/Effects/Vignette.ts +59 -59
- package/src/engine-components/postprocessing/PostProcessingEffect.ts +192 -192
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +572 -572
- package/src/engine-components/postprocessing/Volume.ts +426 -426
- package/src/engine-components/postprocessing/VolumeParameter.ts +158 -158
- package/src/engine-components/postprocessing/VolumeProfile.ts +61 -61
- package/src/engine-components/postprocessing/index.ts +5 -5
- package/src/engine-components/postprocessing/utils.ts +154 -154
- package/src/engine-components/timeline/PlayableDirector.ts +722 -722
- package/src/engine-components/timeline/SignalAsset.ts +144 -144
- package/src/engine-components/timeline/TimelineModels.ts +92 -92
- package/src/engine-components/timeline/TimelineTracks.ts +967 -967
- package/src/engine-components/timeline/index.ts +3 -3
- package/src/engine-components/ui/BaseUIComponent.ts +203 -203
- package/src/engine-components/ui/Button.ts +307 -307
- package/src/engine-components/ui/Canvas.ts +419 -419
- package/src/engine-components/ui/CanvasGroup.ts +54 -54
- package/src/engine-components/ui/EventSystem.ts +854 -854
- package/src/engine-components/ui/Graphic.ts +275 -275
- package/src/engine-components/ui/Image.ts +112 -112
- package/src/engine-components/ui/InputField.ts +321 -321
- package/src/engine-components/ui/Interfaces.ts +57 -57
- package/src/engine-components/ui/Layout.ts +334 -334
- package/src/engine-components/ui/Outline.ts +13 -13
- package/src/engine-components/ui/PointerEvents.ts +206 -206
- package/src/engine-components/ui/RaycastUtils.ts +69 -69
- package/src/engine-components/ui/Raycaster.ts +102 -102
- package/src/engine-components/ui/RectTransform.ts +375 -375
- package/src/engine-components/ui/SpatialHtml.ts +79 -79
- package/src/engine-components/ui/Symbols.ts +1 -1
- package/src/engine-components/ui/Text.ts +578 -578
- package/src/engine-components/ui/Utils.ts +113 -113
- package/src/engine-components/utils/EnvironmentScene.ts +245 -245
- package/src/engine-components/utils/LookAt.ts +88 -88
- package/src/engine-components/utils/OpenURL.ts +114 -114
- package/src/engine-components/webxr/Avatar.ts +265 -265
- package/src/engine-components/webxr/TeleportTarget.ts +9 -9
- package/src/engine-components/webxr/WebARCameraBackground.ts +175 -175
- package/src/engine-components/webxr/WebARSessionRoot.ts +880 -880
- package/src/engine-components/webxr/WebXR.ts +585 -585
- package/src/engine-components/webxr/WebXRAvatar.ts +66 -66
- package/src/engine-components/webxr/WebXRImageTracking.ts +519 -519
- package/src/engine-components/webxr/WebXRPlaneTracking.ts +570 -570
- package/src/engine-components/webxr/WebXRRig.ts +77 -77
- package/src/engine-components/webxr/XRFlag.ts +147 -147
- package/src/engine-components/webxr/controllers/XRControllerFollow.ts +118 -118
- package/src/engine-components/webxr/controllers/XRControllerModel.ts +373 -373
- package/src/engine-components/webxr/controllers/XRControllerMovement.ts +550 -550
- package/src/engine-components/webxr/index.ts +2 -2
- package/src/engine-components/webxr/types.ts +3 -3
- package/src/engine-components-experimental/Presentation.ts +12 -12
- package/src/engine-components-experimental/api.ts +4 -4
- package/src/engine-components-experimental/networking/PlayerSync.ts +401 -401
- package/src/engine-schemes/COMPILE_SCHEMES.bat +3 -3
- package/src/engine-schemes/COMPILE_TS.bat +11 -11
- package/src/engine-schemes/README.md +1 -1
- package/src/engine-schemes/api.ts +12 -12
- package/src/engine-schemes/schemes.ts +28 -28
- package/src/engine-schemes/synced-camera-model.ts +92 -92
- package/src/engine-schemes/synced-transform-model.ts +90 -90
- package/src/engine-schemes/syncedCamera.fbs +10 -10
- package/src/engine-schemes/transform.ts +50 -50
- package/src/engine-schemes/transforms.fbs +25 -25
- package/src/engine-schemes/vec.fbs +19 -19
- package/src/engine-schemes/vec2.ts +33 -33
- package/src/engine-schemes/vec3.ts +38 -38
- package/src/engine-schemes/vec4.ts +43 -43
- package/src/engine-schemes/vr-user-state-buffer.ts +145 -145
- package/src/engine-schemes/vrUserStateBuffer.fbs +17 -17
- package/src/include/draco/draco_decoder.js +34 -34
- package/src/include/ktx2/basis_transcoder.js +21 -21
- package/src/include/needle/arial-msdf.json +1471 -1471
- package/src/include/three/DragControls.js +231 -231
- package/src/include/three/EXT_mesh_gpu_instancing_exporter.js +66 -66
- package/src/needle-engine.ts +70 -70
- package/dist/generateMeshBVH.worker-Cdfpaq5W.js +0 -25
- package/src/engine-schemes/dist/api.js +0 -17
- package/src/engine-schemes/dist/api.js.meta +0 -7
- package/src/engine-schemes/dist/schemes.js +0 -25
- package/src/engine-schemes/dist/schemes.js.meta +0 -7
- package/src/engine-schemes/dist/synced-camera-model.js +0 -74
- package/src/engine-schemes/dist/synced-camera-model.js.meta +0 -7
- package/src/engine-schemes/dist/synced-transform-model.js +0 -73
- package/src/engine-schemes/dist/synced-transform-model.js.meta +0 -7
- package/src/engine-schemes/dist/transform.js +0 -46
- package/src/engine-schemes/dist/transform.js.meta +0 -7
- package/src/engine-schemes/dist/vec2.js +0 -32
- package/src/engine-schemes/dist/vec2.js.meta +0 -7
- package/src/engine-schemes/dist/vec3.js +0 -36
- package/src/engine-schemes/dist/vec3.js.meta +0 -7
- package/src/engine-schemes/dist/vec4.js +0 -40
- package/src/engine-schemes/dist/vec4.js.meta +0 -7
- package/src/engine-schemes/dist/vr-user-state-buffer.js +0 -110
- package/src/engine-schemes/dist/vr-user-state-buffer.js.meta +0 -7
|
@@ -1,731 +1,731 @@
|
|
|
1
|
-
import type { QueryFilterFlags, World } from "@dimforge/rapier3d-compat";
|
|
2
|
-
import { AnimationClip, Color, Loader, Material, Mesh, Object3D, Quaternion } from "three";
|
|
3
|
-
import { Vector3 } from "three";
|
|
4
|
-
import { type GLTF as THREE_GLTF } from "three/examples/jsm/loaders/GLTFLoader.js";
|
|
5
|
-
|
|
6
|
-
import type { Camera as CameraComponent } from "../engine-components/api.js";
|
|
7
|
-
import type { Context } from "./engine_context.js";
|
|
8
|
-
import { InstantiateContext } from "./engine_gameobject.js";
|
|
9
|
-
import { CollisionDetectionMode, type PhysicsMaterial, RigidbodyConstraints } from "./engine_physics.types.js";
|
|
10
|
-
import { CircularBuffer } from "./engine_utils.js";
|
|
11
|
-
import type { NeedleXRSession } from "./engine_xr.js";
|
|
12
|
-
|
|
13
|
-
/** Removes all properties that match TypesToFilter */
|
|
14
|
-
type FilterTypes<T, TypesToFilter> = { [P in keyof T as T[P] extends TypesToFilter ? never : P]: T[P] };
|
|
15
|
-
/** Removes all undefined functions */
|
|
16
|
-
type NoUndefinedNoFunctions<T> = FilterTypes<T, Function | undefined | null>;
|
|
17
|
-
/* @ts-ignore Removes all properties that start with a specific prefix */
|
|
18
|
-
type FilterStartingWith<T, Prefix extends string> = { [K in keyof T as K extends string ? (K extends `${Prefix}${infer _}` ? never : K) : never]: T[K] };
|
|
19
|
-
/** Removes all properties that start with an underscore */
|
|
20
|
-
type NoInternals<T> = FilterStartingWith<T, "_">;
|
|
21
|
-
type NoInternalNeedleEngineState<T> = Omit<T, "destroyed" | "gameObject" | "activeAndEnabled" | "context" | "isComponent" | "scene" | "up" | "forward" | "right" | "worldRotation" | "worldEuler" | "worldPosition" | "worldQuaternion">;
|
|
22
|
-
export type ComponentInit<T> = Partial<NoInternalNeedleEngineState<NoInternals<NoUndefinedNoFunctions<T>>>>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/** GLTF, GLB or VRM */
|
|
26
|
-
export type GLTF = THREE_GLTF;
|
|
27
|
-
|
|
28
|
-
/** FBX type */
|
|
29
|
-
export type FBX = {
|
|
30
|
-
animations: AnimationClip[];
|
|
31
|
-
scene: Object3D;
|
|
32
|
-
scenes: Object3D[];
|
|
33
|
-
}
|
|
34
|
-
/** OBJ type */
|
|
35
|
-
export type OBJ = {
|
|
36
|
-
animations: AnimationClip[];
|
|
37
|
-
scene: Object3D;
|
|
38
|
-
scenes: Object3D[];
|
|
39
|
-
}
|
|
40
|
-
export type CustomModel = {
|
|
41
|
-
animations: AnimationClip[];
|
|
42
|
-
scene: Object3D;
|
|
43
|
-
scenes: Object3D[];
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/** All possible model types that Needle Engine can load */
|
|
47
|
-
export type Model = (GLTF | FBX | OBJ | CustomModel);
|
|
48
|
-
|
|
49
|
-
export function isGLTFModel(model: Model): model is GLTF {
|
|
50
|
-
const gltf = model as GLTF;
|
|
51
|
-
if (gltf.parser && gltf.parser.json) {
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/** A loaded model */
|
|
58
|
-
export type LoadedModel = {
|
|
59
|
-
src: string;
|
|
60
|
-
file: Model;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
/** used to find data registered via gltf files e.g. find lightmaps for a Renderer component that were shipped inside a gltf */
|
|
64
|
-
export declare type SourceIdentifier = string;
|
|
65
|
-
|
|
66
|
-
// TODO: figure out what is best here!
|
|
67
|
-
// https://stackoverflow.com/a/67229348
|
|
68
|
-
// https://stackoverflow.com/questions/36886082/abstract-constructor-type-in-typescript
|
|
69
|
-
// type Constructor<T> = Function & { prototype: T } // << this includes abstract constructor types
|
|
70
|
-
export type Constructor<T> = abstract new (...args: any[]) => T; // abstract to support @serializable and also getComponent with abstract types
|
|
71
|
-
export type ConstructorConcrete<T> = new (...args: any[]) => T;
|
|
72
|
-
export type GuidsMap = { [key: string]: string };
|
|
73
|
-
|
|
74
|
-
export interface UIDProvider {
|
|
75
|
-
seed: number;
|
|
76
|
-
generateUUID(): string;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export declare type CoroutineData = {
|
|
80
|
-
comp: IComponent,
|
|
81
|
-
main: Generator,
|
|
82
|
-
chained?: Array<Generator>
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export interface ITime {
|
|
86
|
-
get time(): number;
|
|
87
|
-
get deltaTime(): number;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface IInput {
|
|
91
|
-
convertScreenspaceToRaycastSpace(vec: Vec2): void;
|
|
92
|
-
getPointerPosition(i: number): Vec2 | null;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export interface IPhysics {
|
|
96
|
-
engine?: IPhysicsEngine;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export type IContext = Context;
|
|
100
|
-
|
|
101
|
-
export type INeedleXRSession = NeedleXRSession;
|
|
102
|
-
|
|
103
|
-
export declare interface INeedleEngineComponent extends HTMLElement {
|
|
104
|
-
getAROverlayContainer(): HTMLElement;
|
|
105
|
-
onEnterAR(session: XRSession, overlayContainer: HTMLElement);
|
|
106
|
-
onExitAR(session: XRSession);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export enum HideFlags {
|
|
110
|
-
None = 0,
|
|
111
|
-
/** When enabled the glTF exporter will omit this object and all children from being exported */
|
|
112
|
-
DontExport = 1 << 0,
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export declare interface IGameObject extends Object3D {
|
|
116
|
-
|
|
117
|
-
/** the object's unique identifier */
|
|
118
|
-
guid: string | undefined;
|
|
119
|
-
|
|
120
|
-
/** if the object is enabled in the hierarchy (usually equivalent to `visible`) */
|
|
121
|
-
activeSelf: boolean;
|
|
122
|
-
|
|
123
|
-
/** call to destroy this object including all components that are attached to it. Will destroy all children recursively */
|
|
124
|
-
destroy(): void;
|
|
125
|
-
|
|
126
|
-
/** Add a new component to this object. Expects a component type (e.g. `addNewComponent(Animator)`) */
|
|
127
|
-
addNewComponent<T extends IComponent>(type: Constructor<T>, init?: ComponentInit<T>): T;
|
|
128
|
-
/** Remove a component from this object. Expected a component instance
|
|
129
|
-
* @returns the removed component (equal to the passed in component)
|
|
130
|
-
*/
|
|
131
|
-
addComponent<T extends IComponent>(comp: T | ConstructorConcrete<T>, init?: ComponentInit<T>): T;
|
|
132
|
-
removeComponent<T extends IComponent>(comp: T): T;
|
|
133
|
-
/** Searches for a component type on this object. If no component of the searched type exists yet a new instance will be created and returned */
|
|
134
|
-
getOrAddComponent<T>(typeName: Constructor<T> | null): T;
|
|
135
|
-
/** Tries to find a component of a type on this object.
|
|
136
|
-
* @returns the first instance of a component on this object that matches the passed in type or null if no component of this type (or a subtype) exists */
|
|
137
|
-
getComponent<T>(type: Constructor<T>): T | null;
|
|
138
|
-
/** @returns all components of a certain type on this object */
|
|
139
|
-
getComponents<T>(type: Constructor<T>, arr?: T[]): Array<T>;
|
|
140
|
-
/** Finds a component of a certain type on this object OR a child object if any exists */
|
|
141
|
-
getComponentInChildren<T>(type: Constructor<T>): T | null;
|
|
142
|
-
/** Finds all components of a certain type on this object AND all children (recursively) */
|
|
143
|
-
getComponentsInChildren<T>(type: Constructor<T>, arr?: T[]): Array<T>;
|
|
144
|
-
/** Finds a component of a certain type on this object OR a parent object if any exists */
|
|
145
|
-
getComponentInParent<T>(type: Constructor<T>): T | null;
|
|
146
|
-
/** Finds all components of a certain type on this object AND all parents (recursively) */
|
|
147
|
-
getComponentsInParent<T>(type: Constructor<T>, arr?: T[]): Array<T>;
|
|
148
|
-
|
|
149
|
-
get worldPosition(): Vector3;
|
|
150
|
-
set worldPosition(val: Vector3);
|
|
151
|
-
get worldQuaternion(): Quaternion;
|
|
152
|
-
set worldQuaternion(val: Quaternion);
|
|
153
|
-
get worldRotation(): Vector3;
|
|
154
|
-
set worldRotation(val: Vector3);
|
|
155
|
-
get worldScale(): Vector3;
|
|
156
|
-
set worldScale(val: Vector3);
|
|
157
|
-
|
|
158
|
-
get worldForward(): Vector3;
|
|
159
|
-
get worldRight(): Vector3;
|
|
160
|
-
get worldUp(): Vector3;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
export interface IHasGuid {
|
|
164
|
-
guid: string;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
// TODO: we might want to separate the IComponent and IBehaviour where the Behaviour is the one with custom methods and the component only has e.g. the gameobject reference
|
|
168
|
-
export interface IComponent extends IHasGuid {
|
|
169
|
-
get isComponent(): boolean;
|
|
170
|
-
|
|
171
|
-
/** the object this component is attached to */
|
|
172
|
-
gameObject: IGameObject;
|
|
173
|
-
// guid: string;
|
|
174
|
-
enabled: boolean;
|
|
175
|
-
sourceId?: SourceIdentifier;
|
|
176
|
-
|
|
177
|
-
get name(): string;
|
|
178
|
-
get layer(): number;
|
|
179
|
-
get destroyed(): boolean;
|
|
180
|
-
get tag(): string;
|
|
181
|
-
|
|
182
|
-
context: any;
|
|
183
|
-
|
|
184
|
-
get activeAndEnabled(): boolean;
|
|
185
|
-
/** @internal */
|
|
186
|
-
__internalNewInstanceCreated(init?: ComponentInit<any>);
|
|
187
|
-
/** @internal */
|
|
188
|
-
_internalInit(init?: ComponentInit<any>);
|
|
189
|
-
/** @internal */
|
|
190
|
-
__internalAwake();
|
|
191
|
-
/** @internal */
|
|
192
|
-
__internalStart();
|
|
193
|
-
/** @internal */
|
|
194
|
-
__internalEnable(isAddingOrRemovingFromScene?: boolean);
|
|
195
|
-
/** @internal */
|
|
196
|
-
__internalDisable(isAddingOrRemovingFromScene?: boolean);
|
|
197
|
-
/** @internal */
|
|
198
|
-
__internalDestroy();
|
|
199
|
-
/** @internal */
|
|
200
|
-
resolveGuids?(guidsMap: GuidsMap): void;
|
|
201
|
-
|
|
202
|
-
/** experimental, called when the script is registered for the first time, this is called even if the component is not enabled. */
|
|
203
|
-
registering?();
|
|
204
|
-
awake();
|
|
205
|
-
onEnable();
|
|
206
|
-
onDisable();
|
|
207
|
-
onDestroy();
|
|
208
|
-
destroy();
|
|
209
|
-
|
|
210
|
-
/** called for properties decorated with the @validate decorator */
|
|
211
|
-
onValidate?(property?: string);
|
|
212
|
-
/** called when this.context.isPaused changes or when rendering loop changes due to changing DOM element visibility
|
|
213
|
-
* e.g. when the DOM element becomes hidden or out ot view
|
|
214
|
-
*/
|
|
215
|
-
onPausedChanged?(isPaused: boolean, wasPaused: boolean);
|
|
216
|
-
|
|
217
|
-
start?(): void;
|
|
218
|
-
earlyUpdate?(): void;
|
|
219
|
-
update?(): void;
|
|
220
|
-
lateUpdate?(): void;
|
|
221
|
-
onBeforeRender?(frame: XRFrame | null): void;
|
|
222
|
-
onAfterRender?(): void;
|
|
223
|
-
|
|
224
|
-
onCollisionEnter?(col: Collision);
|
|
225
|
-
onCollisionExit?(col: Collision);
|
|
226
|
-
onCollisionStay?(col: Collision);
|
|
227
|
-
|
|
228
|
-
onTriggerEnter?(col: ICollider);
|
|
229
|
-
onTriggerStay?(col: ICollider);
|
|
230
|
-
onTriggerExit?(col: ICollider);
|
|
231
|
-
|
|
232
|
-
get forward(): Vector3;
|
|
233
|
-
get worldPosition(): Vector3;
|
|
234
|
-
get worldQuaternion(): Quaternion;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
export function isComponent(obj: any): obj is IComponent {
|
|
238
|
-
return obj && obj.isComponent;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
export type ICamera = CameraComponent;
|
|
242
|
-
|
|
243
|
-
export type IAnimationComponent = Pick<IComponent, "gameObject"> & {
|
|
244
|
-
isAnimationComponent: boolean;
|
|
245
|
-
addClip?(clip: AnimationClip);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/** Interface for a camera controller component that can be attached to a camera to control it */
|
|
249
|
-
export declare interface ICameraController {
|
|
250
|
-
get isCameraController(): boolean;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
export declare interface ILight extends IComponent {
|
|
254
|
-
intensity: number;
|
|
255
|
-
color: Color;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
export declare interface ISharedMaterials {
|
|
259
|
-
[num: number]: Material;
|
|
260
|
-
get length(): number;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
export declare interface IRenderer extends IComponent {
|
|
264
|
-
sharedMaterial: Material;
|
|
265
|
-
get sharedMaterials(): ISharedMaterials;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
export declare interface IEventList {
|
|
269
|
-
readonly isEventList: true;
|
|
270
|
-
__internalOnInstantiate(map: InstantiateContext): IEventList;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
// export declare interface IPhysicsComponent extends IComponent {
|
|
274
|
-
// get type() : string;
|
|
275
|
-
// }
|
|
276
|
-
|
|
277
|
-
export declare interface ICollider extends IComponent {
|
|
278
|
-
get isCollider();
|
|
279
|
-
attachedRigidbody: IRigidbody | null;
|
|
280
|
-
/**
|
|
281
|
-
* Note: Make sure to call updatePhysicsMaterial after having changed this property
|
|
282
|
-
*/
|
|
283
|
-
isTrigger: boolean;
|
|
284
|
-
/**
|
|
285
|
-
* The physics material determines how the collider interacts with other colliders (e.g. bouncyness)
|
|
286
|
-
* Note: Make sure to call updatePhysicsMaterial after having changed this property
|
|
287
|
-
*/
|
|
288
|
-
sharedMaterial?: PhysicsMaterial;
|
|
289
|
-
center?: Vec3 & { multiply(vec: Vec3) };
|
|
290
|
-
updateProperties(): void;
|
|
291
|
-
updatePhysicsMaterial(): void;
|
|
292
|
-
/** The collider membership indicates what groups the collider is part of (e.g. group 2 and 3)
|
|
293
|
-
* An `undefined` array indicates that the collider is part of all groups
|
|
294
|
-
* Note: Make sure to call updateProperties after having changed this property
|
|
295
|
-
* Default: [0]
|
|
296
|
-
*/
|
|
297
|
-
membership?: number[];
|
|
298
|
-
/** The collider filter indicates what groups the collider can interact with (e.g. group 3 and 4)
|
|
299
|
-
* An `undefined` array indicates that the collider can interact with all groups
|
|
300
|
-
* Note: Make sure to call updateProperties after having changed this property
|
|
301
|
-
* Default: undefined
|
|
302
|
-
*/
|
|
303
|
-
filter?: number[];
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
export declare interface ISphereCollider extends ICollider {
|
|
307
|
-
radius: number;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
export declare interface IBoxCollider extends ICollider {
|
|
311
|
-
size: Vec3;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
export declare interface IRigidbody extends IComponent {
|
|
315
|
-
get isRigidbody(): boolean;
|
|
316
|
-
constraints: RigidbodyConstraints;
|
|
317
|
-
isKinematic: boolean;
|
|
318
|
-
/** When true the mass will automatically calculated by attached colliders */
|
|
319
|
-
autoMass: boolean;
|
|
320
|
-
mass: number;
|
|
321
|
-
drag: number;
|
|
322
|
-
angularDrag: number;
|
|
323
|
-
useGravity: boolean;
|
|
324
|
-
centerOfMass: Vec3;
|
|
325
|
-
gravityScale: number;
|
|
326
|
-
dominanceGroup: number;
|
|
327
|
-
|
|
328
|
-
collisionDetectionMode: CollisionDetectionMode;
|
|
329
|
-
|
|
330
|
-
lockPositionX: boolean;
|
|
331
|
-
lockPositionY: boolean;
|
|
332
|
-
lockPositionZ: boolean;
|
|
333
|
-
lockRotationX: boolean;
|
|
334
|
-
lockRotationY: boolean;
|
|
335
|
-
lockRotationZ: boolean;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
export const $physicsKey = Symbol("object");
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
export declare type ICollisionContext = {
|
|
343
|
-
getCollider(obj: Object3D): ICollider;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
export type Vec2 = {
|
|
348
|
-
x: number,
|
|
349
|
-
y: number
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
export type Vec3 = {
|
|
353
|
-
x: number,
|
|
354
|
-
y: number,
|
|
355
|
-
z: number,
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
export type Vec4 = {
|
|
359
|
-
x: number,
|
|
360
|
-
y: number,
|
|
361
|
-
z: number,
|
|
362
|
-
w: number,
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
const contactsVectorBuffer = new CircularBuffer(() => new Vector3(), 20);
|
|
366
|
-
|
|
367
|
-
/**
|
|
368
|
-
* Holds information about physics contacts
|
|
369
|
-
*/
|
|
370
|
-
export class ContactPoint {
|
|
371
|
-
|
|
372
|
-
private readonly _point: Vec3;
|
|
373
|
-
private readonly _normal: Vec3;
|
|
374
|
-
private readonly _tangentVelocity: Vec3;
|
|
375
|
-
|
|
376
|
-
/** the distance of the collision point */
|
|
377
|
-
readonly distance: number;
|
|
378
|
-
/** the impulse velocity */
|
|
379
|
-
readonly impulse: number;
|
|
380
|
-
readonly friction: number;
|
|
381
|
-
|
|
382
|
-
/** worldspace point */
|
|
383
|
-
get point() {
|
|
384
|
-
const target = contactsVectorBuffer.get();
|
|
385
|
-
return target.set(this._point.x, this._point.y, this._point.z);
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
/** worldspace normal */
|
|
389
|
-
get normal() {
|
|
390
|
-
const target = contactsVectorBuffer.get();
|
|
391
|
-
return target.set(this._normal.x, this._normal.y, this._normal.z);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
/** worldspace tangent */
|
|
395
|
-
get tangentVelocity() {
|
|
396
|
-
const target = contactsVectorBuffer.get();
|
|
397
|
-
return target.set(this._tangentVelocity.x, this._tangentVelocity.y, this._tangentVelocity.z);
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
/** @internal */
|
|
401
|
-
constructor(point: Vec3, dist: number, normal: Vec3, impulse: number, friction: number, tangentVelocity: Vec3) {
|
|
402
|
-
this._point = point;
|
|
403
|
-
this.distance = dist;
|
|
404
|
-
this._normal = normal;
|
|
405
|
-
this.impulse = impulse;
|
|
406
|
-
this.friction = friction;
|
|
407
|
-
this._tangentVelocity = tangentVelocity;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
/**
|
|
412
|
-
* Holds information about a collision event. Includes a list of contact points and the colliders involved
|
|
413
|
-
*/
|
|
414
|
-
export class Collision {
|
|
415
|
-
|
|
416
|
-
/** The contact points of this collision. Contains information about positions, normals, distance, friction, impulse... */
|
|
417
|
-
readonly contacts: ContactPoint[];
|
|
418
|
-
|
|
419
|
-
/** @internal */
|
|
420
|
-
constructor(obj: IGameObject, otherCollider: ICollider, contacts: ContactPoint[]) {
|
|
421
|
-
this.me = obj;
|
|
422
|
-
this._collider = otherCollider;
|
|
423
|
-
this._gameObject = otherCollider.gameObject;
|
|
424
|
-
this.contacts = contacts;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
/** the gameobject this collision event belongs to (e.g. if onCollisionEnter is called then `me` is the same as `this.gameObject`) */
|
|
428
|
-
readonly me: IGameObject;
|
|
429
|
-
|
|
430
|
-
private _collider: ICollider;
|
|
431
|
-
/** the other collider the collision happened with */
|
|
432
|
-
get collider(): ICollider {
|
|
433
|
-
return this._collider;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
private _gameObject: IGameObject;
|
|
437
|
-
/** the other object the collision happened with */
|
|
438
|
-
get gameObject(): IGameObject {
|
|
439
|
-
return this._gameObject;
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
/** the other rigidbody we hit, null if none attached */
|
|
443
|
-
get rigidBody(): IRigidbody | null {
|
|
444
|
-
return this.collider?.attachedRigidbody;
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
export type RaycastResult = null | { point: Vector3, collider: ICollider, normal?: Vector3 };
|
|
449
|
-
|
|
450
|
-
export class SphereOverlapResult {
|
|
451
|
-
object: Object3D;
|
|
452
|
-
collider: ICollider;
|
|
453
|
-
constructor(object: Object3D, collider: ICollider) {
|
|
454
|
-
this.object = object;
|
|
455
|
-
this.collider = collider;
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
export interface IPhysicsEngine {
|
|
461
|
-
/** Initializes the physics engine */
|
|
462
|
-
initialize(): Promise<boolean>;
|
|
463
|
-
/** Indicates whether the physics engine has been initialized */
|
|
464
|
-
get isInitialized(): boolean;
|
|
465
|
-
/** Advances physics simulation by the given time step */
|
|
466
|
-
step(dt: number): void;
|
|
467
|
-
postStep();
|
|
468
|
-
/** Indicates whether the physics engine is currently updating */
|
|
469
|
-
get isUpdating(): boolean;
|
|
470
|
-
/** Clears all cached data (e.g., mesh data when creating scaled mesh colliders) */
|
|
471
|
-
clearCaches();
|
|
472
|
-
|
|
473
|
-
/** Enables or disables the physics engine */
|
|
474
|
-
enabled: boolean;
|
|
475
|
-
/** Returns the underlying physics world object */
|
|
476
|
-
get world(): World | undefined;
|
|
477
|
-
|
|
478
|
-
/** Sets the gravity vector for the physics simulation */
|
|
479
|
-
set gravity(vec3: Vec3);
|
|
480
|
-
/** Gets the current gravity vector */
|
|
481
|
-
get gravity(): Vec3;
|
|
482
|
-
|
|
483
|
-
/**
|
|
484
|
-
* Gets the rapier physics body for a Needle component
|
|
485
|
-
* @param obj The collider or rigidbody component
|
|
486
|
-
* @returns The underlying physics body or null if not found
|
|
487
|
-
*/
|
|
488
|
-
getBody(obj: ICollider | IRigidbody): null | any;
|
|
489
|
-
/**
|
|
490
|
-
* Gets the Needle Engine component for a rapier physics object
|
|
491
|
-
* @param rapierObject The rapier physics object
|
|
492
|
-
* @returns The associated component or null if not found
|
|
493
|
-
*/
|
|
494
|
-
getComponent(rapierObject: object): IComponent | null;
|
|
495
|
-
|
|
496
|
-
/**
|
|
497
|
-
* Performs a fast raycast against physics colliders
|
|
498
|
-
* @param origin Ray origin in screen or worldspace
|
|
499
|
-
* @param direction Ray direction in worldspace
|
|
500
|
-
* @param options Additional raycast configuration options
|
|
501
|
-
* @returns Raycast result containing hit point and collider, or null if no hit
|
|
502
|
-
*/
|
|
503
|
-
raycast(origin?: Vec2 | Vec3, direction?: Vec3, options?: {
|
|
504
|
-
maxDistance?: number,
|
|
505
|
-
/** True if you want to also hit objects when the raycast starts from inside a collider */
|
|
506
|
-
solid?: boolean,
|
|
507
|
-
queryFilterFlags?: QueryFilterFlags,
|
|
508
|
-
/**
|
|
509
|
-
* Raycast filter groups. Groups are used to apply the collision group rules for the scene query.
|
|
510
|
-
* The scene query will only consider hits with colliders with collision groups compatible with
|
|
511
|
-
* this collision group (using the bitwise test described in the collision groups section).
|
|
512
|
-
* For example membership 0x0001 and filter 0x0002 should be 0x00010002
|
|
513
|
-
* @see https://rapier.rs/docs/user_guides/javascript/colliders#collision-groups-and-solver-groups
|
|
514
|
-
*/
|
|
515
|
-
filterGroups?: number,
|
|
516
|
-
/**
|
|
517
|
-
* Predicate to filter colliders in raycast results
|
|
518
|
-
* @param collider The collider being tested
|
|
519
|
-
* @returns False to ignore this collider, true to include it
|
|
520
|
-
*/
|
|
521
|
-
filterPredicate?: (collider: ICollider) => boolean
|
|
522
|
-
}): RaycastResult;
|
|
523
|
-
|
|
524
|
-
/**
|
|
525
|
-
* Performs a raycast that also returns the normal vector at the hit point
|
|
526
|
-
* @param origin Ray origin in screen or worldspace
|
|
527
|
-
* @param direction Ray direction in worldspace
|
|
528
|
-
* @param options Additional raycast configuration options
|
|
529
|
-
* @returns Raycast result containing hit point, normal, and collider, or null if no hit
|
|
530
|
-
*/
|
|
531
|
-
raycastAndGetNormal(origin?: Vec2 | Vec3, direction?: Vec3, options?: {
|
|
532
|
-
maxDistance?: number,
|
|
533
|
-
/** True if you want to also hit objects when the raycast starts from inside a collider */
|
|
534
|
-
solid?: boolean,
|
|
535
|
-
queryFilterFlags?: QueryFilterFlags,
|
|
536
|
-
/**
|
|
537
|
-
* Raycast filter groups. Groups are used to apply the collision group rules for the scene query.
|
|
538
|
-
* The scene query will only consider hits with colliders with collision groups compatible with
|
|
539
|
-
* this collision group (using the bitwise test described in the collision groups section).
|
|
540
|
-
* For example membership 0x0001 and filter 0x0002 should be 0x00010002
|
|
541
|
-
* @see https://rapier.rs/docs/user_guides/javascript/colliders#collision-groups-and-solver-groups
|
|
542
|
-
*/
|
|
543
|
-
filterGroups?: number,
|
|
544
|
-
/**
|
|
545
|
-
* Predicate to filter colliders in raycast results
|
|
546
|
-
* @param collider The collider being tested
|
|
547
|
-
* @returns False to ignore this collider, true to include it
|
|
548
|
-
*/
|
|
549
|
-
filterPredicate?: (collider: ICollider) => boolean
|
|
550
|
-
}): RaycastResult;
|
|
551
|
-
|
|
552
|
-
/**
|
|
553
|
-
* Finds all colliders within a sphere
|
|
554
|
-
* @param point The center point of the sphere
|
|
555
|
-
* @param radius The radius of the sphere
|
|
556
|
-
* @returns Array of objects that overlap with the sphere
|
|
557
|
-
*/
|
|
558
|
-
sphereOverlap(point: Vector3, radius: number): Array<SphereOverlapResult>;
|
|
559
|
-
|
|
560
|
-
// Collider methods
|
|
561
|
-
/**
|
|
562
|
-
* Adds a sphere collider to the physics world
|
|
563
|
-
* @param collider The collider component to add
|
|
564
|
-
*/
|
|
565
|
-
addSphereCollider(collider: ICollider);
|
|
566
|
-
|
|
567
|
-
/**
|
|
568
|
-
* Adds a box collider to the physics world
|
|
569
|
-
* @param collider The collider component to add
|
|
570
|
-
* @param size The size of the box
|
|
571
|
-
*/
|
|
572
|
-
addBoxCollider(collider: ICollider, size: Vector3);
|
|
573
|
-
|
|
574
|
-
/**
|
|
575
|
-
* Adds a capsule collider to the physics world
|
|
576
|
-
* @param collider The collider component to add
|
|
577
|
-
* @param radius The radius of the capsule
|
|
578
|
-
* @param height The height of the capsule
|
|
579
|
-
*/
|
|
580
|
-
addCapsuleCollider(collider: ICollider, radius: number, height: number);
|
|
581
|
-
|
|
582
|
-
/**
|
|
583
|
-
* Adds a mesh collider to the physics world
|
|
584
|
-
* @param collider The collider component to add
|
|
585
|
-
* @param mesh The mesh to use for collision
|
|
586
|
-
* @param convex Whether the collision mesh should be treated as convex
|
|
587
|
-
* @param scale Optional scale to apply to the mesh
|
|
588
|
-
*/
|
|
589
|
-
addMeshCollider(collider: ICollider, mesh: Mesh, convex: boolean, scale?: Vector3 | undefined);
|
|
590
|
-
|
|
591
|
-
/**
|
|
592
|
-
* Updates the physics material properties of a collider
|
|
593
|
-
* @param collider The collider to update
|
|
594
|
-
*/
|
|
595
|
-
updatePhysicsMaterial(collider: ICollider);
|
|
596
|
-
|
|
597
|
-
// Rigidbody methods
|
|
598
|
-
/**
|
|
599
|
-
* Wakes up a sleeping rigidbody
|
|
600
|
-
* @param rb The rigidbody to wake up
|
|
601
|
-
*/
|
|
602
|
-
wakeup(rb: IRigidbody);
|
|
603
|
-
|
|
604
|
-
/**
|
|
605
|
-
* Checks if a rigidbody is currently sleeping
|
|
606
|
-
* @param rb The rigidbody to check
|
|
607
|
-
* @returns Whether the rigidbody is sleeping or undefined if cannot be determined
|
|
608
|
-
*/
|
|
609
|
-
isSleeping(rb: IRigidbody): boolean | undefined;
|
|
610
|
-
|
|
611
|
-
/**
|
|
612
|
-
* Updates the physical properties of a rigidbody or collider
|
|
613
|
-
* @param rb The rigidbody or collider to update
|
|
614
|
-
*/
|
|
615
|
-
updateProperties(rb: IRigidbody | ICollider);
|
|
616
|
-
|
|
617
|
-
/**
|
|
618
|
-
* Resets all forces acting on a rigidbody
|
|
619
|
-
* @param rb The rigidbody to reset forces on
|
|
620
|
-
* @param wakeup Whether to wake up the rigidbody
|
|
621
|
-
*/
|
|
622
|
-
resetForces(rb: IRigidbody, wakeup: boolean);
|
|
623
|
-
|
|
624
|
-
/**
|
|
625
|
-
* Resets all torques acting on a rigidbody
|
|
626
|
-
* @param rb The rigidbody to reset torques on
|
|
627
|
-
* @param wakeup Whether to wake up the rigidbody
|
|
628
|
-
*/
|
|
629
|
-
resetTorques(rb: IRigidbody, wakeup: boolean);
|
|
630
|
-
|
|
631
|
-
/**
|
|
632
|
-
* Adds a continuous force to a rigidbody
|
|
633
|
-
* @param rb The rigidbody to add force to
|
|
634
|
-
* @param vec The force vector to add
|
|
635
|
-
* @param wakeup Whether to wake up the rigidbody
|
|
636
|
-
*/
|
|
637
|
-
addForce(rb: IRigidbody, vec: Vec3, wakeup: boolean);
|
|
638
|
-
|
|
639
|
-
/**
|
|
640
|
-
* Applies an instantaneous impulse to a rigidbody
|
|
641
|
-
* @param rb The rigidbody to apply impulse to
|
|
642
|
-
* @param vec The impulse vector to apply
|
|
643
|
-
* @param wakeup Whether to wake up the rigidbody
|
|
644
|
-
*/
|
|
645
|
-
applyImpulse(rb: IRigidbody, vec: Vec3, wakeup: boolean);
|
|
646
|
-
|
|
647
|
-
/**
|
|
648
|
-
* Gets the linear velocity of a rigidbody or the rigidbody attached to a collider
|
|
649
|
-
* @param rb The rigidbody or collider to get velocity from
|
|
650
|
-
* @returns The linear velocity vector or null if not available
|
|
651
|
-
*/
|
|
652
|
-
getLinearVelocity(rb: IRigidbody | ICollider): Vec3 | null;
|
|
653
|
-
|
|
654
|
-
/**
|
|
655
|
-
* Gets the angular velocity of a rigidbody
|
|
656
|
-
* @param rb The rigidbody to get angular velocity from
|
|
657
|
-
* @returns The angular velocity vector or null if not available
|
|
658
|
-
*/
|
|
659
|
-
getAngularVelocity(rb: IRigidbody): Vec3 | null;
|
|
660
|
-
|
|
661
|
-
/**
|
|
662
|
-
* Sets the angular velocity of a rigidbody
|
|
663
|
-
* @param rb The rigidbody to set angular velocity for
|
|
664
|
-
* @param vec The angular velocity vector to set
|
|
665
|
-
* @param wakeup Whether to wake up the rigidbody
|
|
666
|
-
*/
|
|
667
|
-
setAngularVelocity(rb: IRigidbody, vec: Vec3, wakeup: boolean);
|
|
668
|
-
|
|
669
|
-
/**
|
|
670
|
-
* Sets the linear velocity of a rigidbody
|
|
671
|
-
* @param rb The rigidbody to set linear velocity for
|
|
672
|
-
* @param vec The linear velocity vector to set
|
|
673
|
-
* @param wakeup Whether to wake up the rigidbody
|
|
674
|
-
*/
|
|
675
|
-
setLinearVelocity(rb: IRigidbody, vec: Vec3, wakeup: boolean);
|
|
676
|
-
|
|
677
|
-
/**
|
|
678
|
-
* Updates the position and/or rotation of a physics body
|
|
679
|
-
* @param comp The collider or rigidbody component to update
|
|
680
|
-
* @param translation Whether to update the position
|
|
681
|
-
* @param rotation Whether to update the rotation
|
|
682
|
-
*/
|
|
683
|
-
updateBody(comp: ICollider | IRigidbody, translation: boolean, rotation: boolean);
|
|
684
|
-
|
|
685
|
-
/**
|
|
686
|
-
* Removes a physics body from the simulation
|
|
687
|
-
* @param body The component whose physics body should be removed
|
|
688
|
-
*/
|
|
689
|
-
removeBody(body: IComponent);
|
|
690
|
-
|
|
691
|
-
/**
|
|
692
|
-
* Gets the physics body for a component
|
|
693
|
-
* @param obj The collider or rigidbody component
|
|
694
|
-
* @returns The underlying physics body or null if not found
|
|
695
|
-
*/
|
|
696
|
-
getBody(obj: ICollider | IRigidbody): null | any;
|
|
697
|
-
|
|
698
|
-
// Joints
|
|
699
|
-
addFixedJoint(body1: IRigidbody, body2: IRigidbody);
|
|
700
|
-
addHingeJoint(body1: IRigidbody, body2: IRigidbody, anchor: Vec3, axis: Vec3);
|
|
701
|
-
|
|
702
|
-
/** Enable to render collider shapes */
|
|
703
|
-
debugRenderColliders: boolean;
|
|
704
|
-
/** Enable to visualize raycasts in the scene with gizmos */
|
|
705
|
-
debugRenderRaycasts: boolean;
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
/**
|
|
709
|
-
* Available cursor types
|
|
710
|
-
* @link https://developer.mozilla.org/en-US/docs/Web/CSS/cursor
|
|
711
|
-
*/
|
|
712
|
-
export type CursorTypeName = "auto" | "default" | "none" | "context-menu" | "help" | "pointer" | "progress" | "wait" | "cell" | "crosshair" | "text" | "vertical-text" | "alias" | "copy" | "move" | "no-drop" | "not-allowed" | "grab" | "grabbing" | "all-scroll" | "col-resize" | "row-resize" | "n-resize" | "e-resize" | "s-resize" | "w-resize" | "nw-resize" | "se-resize" | "sw-resize" | "ew-resize" | "ns-resize" | "nesw-resize" | "nwse-resize" | "zoom-in" | "zoom-out";
|
|
713
|
-
|
|
714
|
-
/** Typical mouse button names for most devices */
|
|
715
|
-
export type MouseButtonName = "left" | "right" | "middle";
|
|
716
|
-
|
|
717
|
-
/** Button names on typical controllers (since there seems to be no agreed naming)
|
|
718
|
-
* https://w3c.github.io/gamepad/#remapping
|
|
719
|
-
*/
|
|
720
|
-
export type GamepadButtonName = "a-button" | "b-button" | "x-button" | "y-button";
|
|
721
|
-
|
|
722
|
-
/** Needle-defined names for stylus (MX Ink) */
|
|
723
|
-
export type StylusButtonName = "stylus-touch" | "stylus-tip";
|
|
724
|
-
|
|
725
|
-
/** Button names as used in the xr profile */
|
|
726
|
-
export type XRControllerButtonName = "thumbrest" | "xr-standard-trigger" | "xr-standard-squeeze" | "xr-standard-thumbstick" | "xr-standard-touchpad" | "menu" | GamepadButtonName | StylusButtonName;
|
|
727
|
-
|
|
728
|
-
export type XRGestureName = "pinch";
|
|
729
|
-
|
|
730
|
-
/** All known (types) button names for various devices and cases combined. You should use the device specific names if you e.g. know you only deal with a mouse use MouseButtonName */
|
|
1
|
+
import type { QueryFilterFlags, World } from "@dimforge/rapier3d-compat";
|
|
2
|
+
import { AnimationClip, Color, Loader, Material, Mesh, Object3D, Quaternion } from "three";
|
|
3
|
+
import { Vector3 } from "three";
|
|
4
|
+
import { type GLTF as THREE_GLTF } from "three/examples/jsm/loaders/GLTFLoader.js";
|
|
5
|
+
|
|
6
|
+
import type { Camera as CameraComponent } from "../engine-components/api.js";
|
|
7
|
+
import type { Context } from "./engine_context.js";
|
|
8
|
+
import { InstantiateContext } from "./engine_gameobject.js";
|
|
9
|
+
import { CollisionDetectionMode, type PhysicsMaterial, RigidbodyConstraints } from "./engine_physics.types.js";
|
|
10
|
+
import { CircularBuffer } from "./engine_utils.js";
|
|
11
|
+
import type { NeedleXRSession } from "./engine_xr.js";
|
|
12
|
+
|
|
13
|
+
/** Removes all properties that match TypesToFilter */
|
|
14
|
+
type FilterTypes<T, TypesToFilter> = { [P in keyof T as T[P] extends TypesToFilter ? never : P]: T[P] };
|
|
15
|
+
/** Removes all undefined functions */
|
|
16
|
+
type NoUndefinedNoFunctions<T> = FilterTypes<T, Function | undefined | null>;
|
|
17
|
+
/* @ts-ignore Removes all properties that start with a specific prefix */
|
|
18
|
+
type FilterStartingWith<T, Prefix extends string> = { [K in keyof T as K extends string ? (K extends `${Prefix}${infer _}` ? never : K) : never]: T[K] };
|
|
19
|
+
/** Removes all properties that start with an underscore */
|
|
20
|
+
type NoInternals<T> = FilterStartingWith<T, "_">;
|
|
21
|
+
type NoInternalNeedleEngineState<T> = Omit<T, "destroyed" | "gameObject" | "activeAndEnabled" | "context" | "isComponent" | "scene" | "up" | "forward" | "right" | "worldRotation" | "worldEuler" | "worldPosition" | "worldQuaternion">;
|
|
22
|
+
export type ComponentInit<T> = Partial<NoInternalNeedleEngineState<NoInternals<NoUndefinedNoFunctions<T>>>>
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
/** GLTF, GLB or VRM */
|
|
26
|
+
export type GLTF = THREE_GLTF;
|
|
27
|
+
|
|
28
|
+
/** FBX type */
|
|
29
|
+
export type FBX = {
|
|
30
|
+
animations: AnimationClip[];
|
|
31
|
+
scene: Object3D;
|
|
32
|
+
scenes: Object3D[];
|
|
33
|
+
}
|
|
34
|
+
/** OBJ type */
|
|
35
|
+
export type OBJ = {
|
|
36
|
+
animations: AnimationClip[];
|
|
37
|
+
scene: Object3D;
|
|
38
|
+
scenes: Object3D[];
|
|
39
|
+
}
|
|
40
|
+
export type CustomModel = {
|
|
41
|
+
animations: AnimationClip[];
|
|
42
|
+
scene: Object3D;
|
|
43
|
+
scenes: Object3D[];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** All possible model types that Needle Engine can load */
|
|
47
|
+
export type Model = (GLTF | FBX | OBJ | CustomModel);
|
|
48
|
+
|
|
49
|
+
export function isGLTFModel(model: Model): model is GLTF {
|
|
50
|
+
const gltf = model as GLTF;
|
|
51
|
+
if (gltf.parser && gltf.parser.json) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** A loaded model */
|
|
58
|
+
export type LoadedModel = {
|
|
59
|
+
src: string;
|
|
60
|
+
file: Model;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/** used to find data registered via gltf files e.g. find lightmaps for a Renderer component that were shipped inside a gltf */
|
|
64
|
+
export declare type SourceIdentifier = string;
|
|
65
|
+
|
|
66
|
+
// TODO: figure out what is best here!
|
|
67
|
+
// https://stackoverflow.com/a/67229348
|
|
68
|
+
// https://stackoverflow.com/questions/36886082/abstract-constructor-type-in-typescript
|
|
69
|
+
// type Constructor<T> = Function & { prototype: T } // << this includes abstract constructor types
|
|
70
|
+
export type Constructor<T> = abstract new (...args: any[]) => T; // abstract to support @serializable and also getComponent with abstract types
|
|
71
|
+
export type ConstructorConcrete<T> = new (...args: any[]) => T;
|
|
72
|
+
export type GuidsMap = { [key: string]: string };
|
|
73
|
+
|
|
74
|
+
export interface UIDProvider {
|
|
75
|
+
seed: number;
|
|
76
|
+
generateUUID(): string;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export declare type CoroutineData = {
|
|
80
|
+
comp: IComponent,
|
|
81
|
+
main: Generator,
|
|
82
|
+
chained?: Array<Generator>
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface ITime {
|
|
86
|
+
get time(): number;
|
|
87
|
+
get deltaTime(): number;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface IInput {
|
|
91
|
+
convertScreenspaceToRaycastSpace(vec: Vec2): void;
|
|
92
|
+
getPointerPosition(i: number): Vec2 | null;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface IPhysics {
|
|
96
|
+
engine?: IPhysicsEngine;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export type IContext = Context;
|
|
100
|
+
|
|
101
|
+
export type INeedleXRSession = NeedleXRSession;
|
|
102
|
+
|
|
103
|
+
export declare interface INeedleEngineComponent extends HTMLElement {
|
|
104
|
+
getAROverlayContainer(): HTMLElement;
|
|
105
|
+
onEnterAR(session: XRSession, overlayContainer: HTMLElement);
|
|
106
|
+
onExitAR(session: XRSession);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export enum HideFlags {
|
|
110
|
+
None = 0,
|
|
111
|
+
/** When enabled the glTF exporter will omit this object and all children from being exported */
|
|
112
|
+
DontExport = 1 << 0,
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export declare interface IGameObject extends Object3D {
|
|
116
|
+
|
|
117
|
+
/** the object's unique identifier */
|
|
118
|
+
guid: string | undefined;
|
|
119
|
+
|
|
120
|
+
/** if the object is enabled in the hierarchy (usually equivalent to `visible`) */
|
|
121
|
+
activeSelf: boolean;
|
|
122
|
+
|
|
123
|
+
/** call to destroy this object including all components that are attached to it. Will destroy all children recursively */
|
|
124
|
+
destroy(): void;
|
|
125
|
+
|
|
126
|
+
/** Add a new component to this object. Expects a component type (e.g. `addNewComponent(Animator)`) */
|
|
127
|
+
addNewComponent<T extends IComponent>(type: Constructor<T>, init?: ComponentInit<T>): T;
|
|
128
|
+
/** Remove a component from this object. Expected a component instance
|
|
129
|
+
* @returns the removed component (equal to the passed in component)
|
|
130
|
+
*/
|
|
131
|
+
addComponent<T extends IComponent>(comp: T | ConstructorConcrete<T>, init?: ComponentInit<T>): T;
|
|
132
|
+
removeComponent<T extends IComponent>(comp: T): T;
|
|
133
|
+
/** Searches for a component type on this object. If no component of the searched type exists yet a new instance will be created and returned */
|
|
134
|
+
getOrAddComponent<T>(typeName: Constructor<T> | null): T;
|
|
135
|
+
/** Tries to find a component of a type on this object.
|
|
136
|
+
* @returns the first instance of a component on this object that matches the passed in type or null if no component of this type (or a subtype) exists */
|
|
137
|
+
getComponent<T>(type: Constructor<T>): T | null;
|
|
138
|
+
/** @returns all components of a certain type on this object */
|
|
139
|
+
getComponents<T>(type: Constructor<T>, arr?: T[]): Array<T>;
|
|
140
|
+
/** Finds a component of a certain type on this object OR a child object if any exists */
|
|
141
|
+
getComponentInChildren<T>(type: Constructor<T>): T | null;
|
|
142
|
+
/** Finds all components of a certain type on this object AND all children (recursively) */
|
|
143
|
+
getComponentsInChildren<T>(type: Constructor<T>, arr?: T[]): Array<T>;
|
|
144
|
+
/** Finds a component of a certain type on this object OR a parent object if any exists */
|
|
145
|
+
getComponentInParent<T>(type: Constructor<T>): T | null;
|
|
146
|
+
/** Finds all components of a certain type on this object AND all parents (recursively) */
|
|
147
|
+
getComponentsInParent<T>(type: Constructor<T>, arr?: T[]): Array<T>;
|
|
148
|
+
|
|
149
|
+
get worldPosition(): Vector3;
|
|
150
|
+
set worldPosition(val: Vector3);
|
|
151
|
+
get worldQuaternion(): Quaternion;
|
|
152
|
+
set worldQuaternion(val: Quaternion);
|
|
153
|
+
get worldRotation(): Vector3;
|
|
154
|
+
set worldRotation(val: Vector3);
|
|
155
|
+
get worldScale(): Vector3;
|
|
156
|
+
set worldScale(val: Vector3);
|
|
157
|
+
|
|
158
|
+
get worldForward(): Vector3;
|
|
159
|
+
get worldRight(): Vector3;
|
|
160
|
+
get worldUp(): Vector3;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export interface IHasGuid {
|
|
164
|
+
guid: string;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// TODO: we might want to separate the IComponent and IBehaviour where the Behaviour is the one with custom methods and the component only has e.g. the gameobject reference
|
|
168
|
+
export interface IComponent extends IHasGuid {
|
|
169
|
+
get isComponent(): boolean;
|
|
170
|
+
|
|
171
|
+
/** the object this component is attached to */
|
|
172
|
+
gameObject: IGameObject;
|
|
173
|
+
// guid: string;
|
|
174
|
+
enabled: boolean;
|
|
175
|
+
sourceId?: SourceIdentifier;
|
|
176
|
+
|
|
177
|
+
get name(): string;
|
|
178
|
+
get layer(): number;
|
|
179
|
+
get destroyed(): boolean;
|
|
180
|
+
get tag(): string;
|
|
181
|
+
|
|
182
|
+
context: any;
|
|
183
|
+
|
|
184
|
+
get activeAndEnabled(): boolean;
|
|
185
|
+
/** @internal */
|
|
186
|
+
__internalNewInstanceCreated(init?: ComponentInit<any>);
|
|
187
|
+
/** @internal */
|
|
188
|
+
_internalInit(init?: ComponentInit<any>);
|
|
189
|
+
/** @internal */
|
|
190
|
+
__internalAwake();
|
|
191
|
+
/** @internal */
|
|
192
|
+
__internalStart();
|
|
193
|
+
/** @internal */
|
|
194
|
+
__internalEnable(isAddingOrRemovingFromScene?: boolean);
|
|
195
|
+
/** @internal */
|
|
196
|
+
__internalDisable(isAddingOrRemovingFromScene?: boolean);
|
|
197
|
+
/** @internal */
|
|
198
|
+
__internalDestroy();
|
|
199
|
+
/** @internal */
|
|
200
|
+
resolveGuids?(guidsMap: GuidsMap): void;
|
|
201
|
+
|
|
202
|
+
/** experimental, called when the script is registered for the first time, this is called even if the component is not enabled. */
|
|
203
|
+
registering?();
|
|
204
|
+
awake();
|
|
205
|
+
onEnable();
|
|
206
|
+
onDisable();
|
|
207
|
+
onDestroy();
|
|
208
|
+
destroy();
|
|
209
|
+
|
|
210
|
+
/** called for properties decorated with the @validate decorator */
|
|
211
|
+
onValidate?(property?: string);
|
|
212
|
+
/** called when this.context.isPaused changes or when rendering loop changes due to changing DOM element visibility
|
|
213
|
+
* e.g. when the DOM element becomes hidden or out ot view
|
|
214
|
+
*/
|
|
215
|
+
onPausedChanged?(isPaused: boolean, wasPaused: boolean);
|
|
216
|
+
|
|
217
|
+
start?(): void;
|
|
218
|
+
earlyUpdate?(): void;
|
|
219
|
+
update?(): void;
|
|
220
|
+
lateUpdate?(): void;
|
|
221
|
+
onBeforeRender?(frame: XRFrame | null): void;
|
|
222
|
+
onAfterRender?(): void;
|
|
223
|
+
|
|
224
|
+
onCollisionEnter?(col: Collision);
|
|
225
|
+
onCollisionExit?(col: Collision);
|
|
226
|
+
onCollisionStay?(col: Collision);
|
|
227
|
+
|
|
228
|
+
onTriggerEnter?(col: ICollider);
|
|
229
|
+
onTriggerStay?(col: ICollider);
|
|
230
|
+
onTriggerExit?(col: ICollider);
|
|
231
|
+
|
|
232
|
+
get forward(): Vector3;
|
|
233
|
+
get worldPosition(): Vector3;
|
|
234
|
+
get worldQuaternion(): Quaternion;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export function isComponent(obj: any): obj is IComponent {
|
|
238
|
+
return obj && obj.isComponent;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export type ICamera = CameraComponent;
|
|
242
|
+
|
|
243
|
+
export type IAnimationComponent = Pick<IComponent, "gameObject"> & {
|
|
244
|
+
isAnimationComponent: boolean;
|
|
245
|
+
addClip?(clip: AnimationClip);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/** Interface for a camera controller component that can be attached to a camera to control it */
|
|
249
|
+
export declare interface ICameraController {
|
|
250
|
+
get isCameraController(): boolean;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
export declare interface ILight extends IComponent {
|
|
254
|
+
intensity: number;
|
|
255
|
+
color: Color;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
export declare interface ISharedMaterials {
|
|
259
|
+
[num: number]: Material;
|
|
260
|
+
get length(): number;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export declare interface IRenderer extends IComponent {
|
|
264
|
+
sharedMaterial: Material;
|
|
265
|
+
get sharedMaterials(): ISharedMaterials;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export declare interface IEventList {
|
|
269
|
+
readonly isEventList: true;
|
|
270
|
+
__internalOnInstantiate(map: InstantiateContext): IEventList;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// export declare interface IPhysicsComponent extends IComponent {
|
|
274
|
+
// get type() : string;
|
|
275
|
+
// }
|
|
276
|
+
|
|
277
|
+
export declare interface ICollider extends IComponent {
|
|
278
|
+
get isCollider();
|
|
279
|
+
attachedRigidbody: IRigidbody | null;
|
|
280
|
+
/**
|
|
281
|
+
* Note: Make sure to call updatePhysicsMaterial after having changed this property
|
|
282
|
+
*/
|
|
283
|
+
isTrigger: boolean;
|
|
284
|
+
/**
|
|
285
|
+
* The physics material determines how the collider interacts with other colliders (e.g. bouncyness)
|
|
286
|
+
* Note: Make sure to call updatePhysicsMaterial after having changed this property
|
|
287
|
+
*/
|
|
288
|
+
sharedMaterial?: PhysicsMaterial;
|
|
289
|
+
center?: Vec3 & { multiply(vec: Vec3) };
|
|
290
|
+
updateProperties(): void;
|
|
291
|
+
updatePhysicsMaterial(): void;
|
|
292
|
+
/** The collider membership indicates what groups the collider is part of (e.g. group 2 and 3)
|
|
293
|
+
* An `undefined` array indicates that the collider is part of all groups
|
|
294
|
+
* Note: Make sure to call updateProperties after having changed this property
|
|
295
|
+
* Default: [0]
|
|
296
|
+
*/
|
|
297
|
+
membership?: number[];
|
|
298
|
+
/** The collider filter indicates what groups the collider can interact with (e.g. group 3 and 4)
|
|
299
|
+
* An `undefined` array indicates that the collider can interact with all groups
|
|
300
|
+
* Note: Make sure to call updateProperties after having changed this property
|
|
301
|
+
* Default: undefined
|
|
302
|
+
*/
|
|
303
|
+
filter?: number[];
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export declare interface ISphereCollider extends ICollider {
|
|
307
|
+
radius: number;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export declare interface IBoxCollider extends ICollider {
|
|
311
|
+
size: Vec3;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
export declare interface IRigidbody extends IComponent {
|
|
315
|
+
get isRigidbody(): boolean;
|
|
316
|
+
constraints: RigidbodyConstraints;
|
|
317
|
+
isKinematic: boolean;
|
|
318
|
+
/** When true the mass will automatically calculated by attached colliders */
|
|
319
|
+
autoMass: boolean;
|
|
320
|
+
mass: number;
|
|
321
|
+
drag: number;
|
|
322
|
+
angularDrag: number;
|
|
323
|
+
useGravity: boolean;
|
|
324
|
+
centerOfMass: Vec3;
|
|
325
|
+
gravityScale: number;
|
|
326
|
+
dominanceGroup: number;
|
|
327
|
+
|
|
328
|
+
collisionDetectionMode: CollisionDetectionMode;
|
|
329
|
+
|
|
330
|
+
lockPositionX: boolean;
|
|
331
|
+
lockPositionY: boolean;
|
|
332
|
+
lockPositionZ: boolean;
|
|
333
|
+
lockRotationX: boolean;
|
|
334
|
+
lockRotationY: boolean;
|
|
335
|
+
lockRotationZ: boolean;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
export const $physicsKey = Symbol("object");
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
export declare type ICollisionContext = {
|
|
343
|
+
getCollider(obj: Object3D): ICollider;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
export type Vec2 = {
|
|
348
|
+
x: number,
|
|
349
|
+
y: number
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
export type Vec3 = {
|
|
353
|
+
x: number,
|
|
354
|
+
y: number,
|
|
355
|
+
z: number,
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
export type Vec4 = {
|
|
359
|
+
x: number,
|
|
360
|
+
y: number,
|
|
361
|
+
z: number,
|
|
362
|
+
w: number,
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
const contactsVectorBuffer = new CircularBuffer(() => new Vector3(), 20);
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Holds information about physics contacts
|
|
369
|
+
*/
|
|
370
|
+
export class ContactPoint {
|
|
371
|
+
|
|
372
|
+
private readonly _point: Vec3;
|
|
373
|
+
private readonly _normal: Vec3;
|
|
374
|
+
private readonly _tangentVelocity: Vec3;
|
|
375
|
+
|
|
376
|
+
/** the distance of the collision point */
|
|
377
|
+
readonly distance: number;
|
|
378
|
+
/** the impulse velocity */
|
|
379
|
+
readonly impulse: number;
|
|
380
|
+
readonly friction: number;
|
|
381
|
+
|
|
382
|
+
/** worldspace point */
|
|
383
|
+
get point() {
|
|
384
|
+
const target = contactsVectorBuffer.get();
|
|
385
|
+
return target.set(this._point.x, this._point.y, this._point.z);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/** worldspace normal */
|
|
389
|
+
get normal() {
|
|
390
|
+
const target = contactsVectorBuffer.get();
|
|
391
|
+
return target.set(this._normal.x, this._normal.y, this._normal.z);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/** worldspace tangent */
|
|
395
|
+
get tangentVelocity() {
|
|
396
|
+
const target = contactsVectorBuffer.get();
|
|
397
|
+
return target.set(this._tangentVelocity.x, this._tangentVelocity.y, this._tangentVelocity.z);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/** @internal */
|
|
401
|
+
constructor(point: Vec3, dist: number, normal: Vec3, impulse: number, friction: number, tangentVelocity: Vec3) {
|
|
402
|
+
this._point = point;
|
|
403
|
+
this.distance = dist;
|
|
404
|
+
this._normal = normal;
|
|
405
|
+
this.impulse = impulse;
|
|
406
|
+
this.friction = friction;
|
|
407
|
+
this._tangentVelocity = tangentVelocity;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Holds information about a collision event. Includes a list of contact points and the colliders involved
|
|
413
|
+
*/
|
|
414
|
+
export class Collision {
|
|
415
|
+
|
|
416
|
+
/** The contact points of this collision. Contains information about positions, normals, distance, friction, impulse... */
|
|
417
|
+
readonly contacts: ContactPoint[];
|
|
418
|
+
|
|
419
|
+
/** @internal */
|
|
420
|
+
constructor(obj: IGameObject, otherCollider: ICollider, contacts: ContactPoint[]) {
|
|
421
|
+
this.me = obj;
|
|
422
|
+
this._collider = otherCollider;
|
|
423
|
+
this._gameObject = otherCollider.gameObject;
|
|
424
|
+
this.contacts = contacts;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/** the gameobject this collision event belongs to (e.g. if onCollisionEnter is called then `me` is the same as `this.gameObject`) */
|
|
428
|
+
readonly me: IGameObject;
|
|
429
|
+
|
|
430
|
+
private _collider: ICollider;
|
|
431
|
+
/** the other collider the collision happened with */
|
|
432
|
+
get collider(): ICollider {
|
|
433
|
+
return this._collider;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
private _gameObject: IGameObject;
|
|
437
|
+
/** the other object the collision happened with */
|
|
438
|
+
get gameObject(): IGameObject {
|
|
439
|
+
return this._gameObject;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
/** the other rigidbody we hit, null if none attached */
|
|
443
|
+
get rigidBody(): IRigidbody | null {
|
|
444
|
+
return this.collider?.attachedRigidbody;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
export type RaycastResult = null | { point: Vector3, collider: ICollider, normal?: Vector3 };
|
|
449
|
+
|
|
450
|
+
export class SphereOverlapResult {
|
|
451
|
+
object: Object3D;
|
|
452
|
+
collider: ICollider;
|
|
453
|
+
constructor(object: Object3D, collider: ICollider) {
|
|
454
|
+
this.object = object;
|
|
455
|
+
this.collider = collider;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
export interface IPhysicsEngine {
|
|
461
|
+
/** Initializes the physics engine */
|
|
462
|
+
initialize(): Promise<boolean>;
|
|
463
|
+
/** Indicates whether the physics engine has been initialized */
|
|
464
|
+
get isInitialized(): boolean;
|
|
465
|
+
/** Advances physics simulation by the given time step */
|
|
466
|
+
step(dt: number): void;
|
|
467
|
+
postStep();
|
|
468
|
+
/** Indicates whether the physics engine is currently updating */
|
|
469
|
+
get isUpdating(): boolean;
|
|
470
|
+
/** Clears all cached data (e.g., mesh data when creating scaled mesh colliders) */
|
|
471
|
+
clearCaches();
|
|
472
|
+
|
|
473
|
+
/** Enables or disables the physics engine */
|
|
474
|
+
enabled: boolean;
|
|
475
|
+
/** Returns the underlying physics world object */
|
|
476
|
+
get world(): World | undefined;
|
|
477
|
+
|
|
478
|
+
/** Sets the gravity vector for the physics simulation */
|
|
479
|
+
set gravity(vec3: Vec3);
|
|
480
|
+
/** Gets the current gravity vector */
|
|
481
|
+
get gravity(): Vec3;
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* Gets the rapier physics body for a Needle component
|
|
485
|
+
* @param obj The collider or rigidbody component
|
|
486
|
+
* @returns The underlying physics body or null if not found
|
|
487
|
+
*/
|
|
488
|
+
getBody(obj: ICollider | IRigidbody): null | any;
|
|
489
|
+
/**
|
|
490
|
+
* Gets the Needle Engine component for a rapier physics object
|
|
491
|
+
* @param rapierObject The rapier physics object
|
|
492
|
+
* @returns The associated component or null if not found
|
|
493
|
+
*/
|
|
494
|
+
getComponent(rapierObject: object): IComponent | null;
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* Performs a fast raycast against physics colliders
|
|
498
|
+
* @param origin Ray origin in screen or worldspace
|
|
499
|
+
* @param direction Ray direction in worldspace
|
|
500
|
+
* @param options Additional raycast configuration options
|
|
501
|
+
* @returns Raycast result containing hit point and collider, or null if no hit
|
|
502
|
+
*/
|
|
503
|
+
raycast(origin?: Vec2 | Vec3, direction?: Vec3, options?: {
|
|
504
|
+
maxDistance?: number,
|
|
505
|
+
/** True if you want to also hit objects when the raycast starts from inside a collider */
|
|
506
|
+
solid?: boolean,
|
|
507
|
+
queryFilterFlags?: QueryFilterFlags,
|
|
508
|
+
/**
|
|
509
|
+
* Raycast filter groups. Groups are used to apply the collision group rules for the scene query.
|
|
510
|
+
* The scene query will only consider hits with colliders with collision groups compatible with
|
|
511
|
+
* this collision group (using the bitwise test described in the collision groups section).
|
|
512
|
+
* For example membership 0x0001 and filter 0x0002 should be 0x00010002
|
|
513
|
+
* @see https://rapier.rs/docs/user_guides/javascript/colliders#collision-groups-and-solver-groups
|
|
514
|
+
*/
|
|
515
|
+
filterGroups?: number,
|
|
516
|
+
/**
|
|
517
|
+
* Predicate to filter colliders in raycast results
|
|
518
|
+
* @param collider The collider being tested
|
|
519
|
+
* @returns False to ignore this collider, true to include it
|
|
520
|
+
*/
|
|
521
|
+
filterPredicate?: (collider: ICollider) => boolean
|
|
522
|
+
}): RaycastResult;
|
|
523
|
+
|
|
524
|
+
/**
|
|
525
|
+
* Performs a raycast that also returns the normal vector at the hit point
|
|
526
|
+
* @param origin Ray origin in screen or worldspace
|
|
527
|
+
* @param direction Ray direction in worldspace
|
|
528
|
+
* @param options Additional raycast configuration options
|
|
529
|
+
* @returns Raycast result containing hit point, normal, and collider, or null if no hit
|
|
530
|
+
*/
|
|
531
|
+
raycastAndGetNormal(origin?: Vec2 | Vec3, direction?: Vec3, options?: {
|
|
532
|
+
maxDistance?: number,
|
|
533
|
+
/** True if you want to also hit objects when the raycast starts from inside a collider */
|
|
534
|
+
solid?: boolean,
|
|
535
|
+
queryFilterFlags?: QueryFilterFlags,
|
|
536
|
+
/**
|
|
537
|
+
* Raycast filter groups. Groups are used to apply the collision group rules for the scene query.
|
|
538
|
+
* The scene query will only consider hits with colliders with collision groups compatible with
|
|
539
|
+
* this collision group (using the bitwise test described in the collision groups section).
|
|
540
|
+
* For example membership 0x0001 and filter 0x0002 should be 0x00010002
|
|
541
|
+
* @see https://rapier.rs/docs/user_guides/javascript/colliders#collision-groups-and-solver-groups
|
|
542
|
+
*/
|
|
543
|
+
filterGroups?: number,
|
|
544
|
+
/**
|
|
545
|
+
* Predicate to filter colliders in raycast results
|
|
546
|
+
* @param collider The collider being tested
|
|
547
|
+
* @returns False to ignore this collider, true to include it
|
|
548
|
+
*/
|
|
549
|
+
filterPredicate?: (collider: ICollider) => boolean
|
|
550
|
+
}): RaycastResult;
|
|
551
|
+
|
|
552
|
+
/**
|
|
553
|
+
* Finds all colliders within a sphere
|
|
554
|
+
* @param point The center point of the sphere
|
|
555
|
+
* @param radius The radius of the sphere
|
|
556
|
+
* @returns Array of objects that overlap with the sphere
|
|
557
|
+
*/
|
|
558
|
+
sphereOverlap(point: Vector3, radius: number): Array<SphereOverlapResult>;
|
|
559
|
+
|
|
560
|
+
// Collider methods
|
|
561
|
+
/**
|
|
562
|
+
* Adds a sphere collider to the physics world
|
|
563
|
+
* @param collider The collider component to add
|
|
564
|
+
*/
|
|
565
|
+
addSphereCollider(collider: ICollider);
|
|
566
|
+
|
|
567
|
+
/**
|
|
568
|
+
* Adds a box collider to the physics world
|
|
569
|
+
* @param collider The collider component to add
|
|
570
|
+
* @param size The size of the box
|
|
571
|
+
*/
|
|
572
|
+
addBoxCollider(collider: ICollider, size: Vector3);
|
|
573
|
+
|
|
574
|
+
/**
|
|
575
|
+
* Adds a capsule collider to the physics world
|
|
576
|
+
* @param collider The collider component to add
|
|
577
|
+
* @param radius The radius of the capsule
|
|
578
|
+
* @param height The height of the capsule
|
|
579
|
+
*/
|
|
580
|
+
addCapsuleCollider(collider: ICollider, radius: number, height: number);
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Adds a mesh collider to the physics world
|
|
584
|
+
* @param collider The collider component to add
|
|
585
|
+
* @param mesh The mesh to use for collision
|
|
586
|
+
* @param convex Whether the collision mesh should be treated as convex
|
|
587
|
+
* @param scale Optional scale to apply to the mesh
|
|
588
|
+
*/
|
|
589
|
+
addMeshCollider(collider: ICollider, mesh: Mesh, convex: boolean, scale?: Vector3 | undefined);
|
|
590
|
+
|
|
591
|
+
/**
|
|
592
|
+
* Updates the physics material properties of a collider
|
|
593
|
+
* @param collider The collider to update
|
|
594
|
+
*/
|
|
595
|
+
updatePhysicsMaterial(collider: ICollider);
|
|
596
|
+
|
|
597
|
+
// Rigidbody methods
|
|
598
|
+
/**
|
|
599
|
+
* Wakes up a sleeping rigidbody
|
|
600
|
+
* @param rb The rigidbody to wake up
|
|
601
|
+
*/
|
|
602
|
+
wakeup(rb: IRigidbody);
|
|
603
|
+
|
|
604
|
+
/**
|
|
605
|
+
* Checks if a rigidbody is currently sleeping
|
|
606
|
+
* @param rb The rigidbody to check
|
|
607
|
+
* @returns Whether the rigidbody is sleeping or undefined if cannot be determined
|
|
608
|
+
*/
|
|
609
|
+
isSleeping(rb: IRigidbody): boolean | undefined;
|
|
610
|
+
|
|
611
|
+
/**
|
|
612
|
+
* Updates the physical properties of a rigidbody or collider
|
|
613
|
+
* @param rb The rigidbody or collider to update
|
|
614
|
+
*/
|
|
615
|
+
updateProperties(rb: IRigidbody | ICollider);
|
|
616
|
+
|
|
617
|
+
/**
|
|
618
|
+
* Resets all forces acting on a rigidbody
|
|
619
|
+
* @param rb The rigidbody to reset forces on
|
|
620
|
+
* @param wakeup Whether to wake up the rigidbody
|
|
621
|
+
*/
|
|
622
|
+
resetForces(rb: IRigidbody, wakeup: boolean);
|
|
623
|
+
|
|
624
|
+
/**
|
|
625
|
+
* Resets all torques acting on a rigidbody
|
|
626
|
+
* @param rb The rigidbody to reset torques on
|
|
627
|
+
* @param wakeup Whether to wake up the rigidbody
|
|
628
|
+
*/
|
|
629
|
+
resetTorques(rb: IRigidbody, wakeup: boolean);
|
|
630
|
+
|
|
631
|
+
/**
|
|
632
|
+
* Adds a continuous force to a rigidbody
|
|
633
|
+
* @param rb The rigidbody to add force to
|
|
634
|
+
* @param vec The force vector to add
|
|
635
|
+
* @param wakeup Whether to wake up the rigidbody
|
|
636
|
+
*/
|
|
637
|
+
addForce(rb: IRigidbody, vec: Vec3, wakeup: boolean);
|
|
638
|
+
|
|
639
|
+
/**
|
|
640
|
+
* Applies an instantaneous impulse to a rigidbody
|
|
641
|
+
* @param rb The rigidbody to apply impulse to
|
|
642
|
+
* @param vec The impulse vector to apply
|
|
643
|
+
* @param wakeup Whether to wake up the rigidbody
|
|
644
|
+
*/
|
|
645
|
+
applyImpulse(rb: IRigidbody, vec: Vec3, wakeup: boolean);
|
|
646
|
+
|
|
647
|
+
/**
|
|
648
|
+
* Gets the linear velocity of a rigidbody or the rigidbody attached to a collider
|
|
649
|
+
* @param rb The rigidbody or collider to get velocity from
|
|
650
|
+
* @returns The linear velocity vector or null if not available
|
|
651
|
+
*/
|
|
652
|
+
getLinearVelocity(rb: IRigidbody | ICollider): Vec3 | null;
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* Gets the angular velocity of a rigidbody
|
|
656
|
+
* @param rb The rigidbody to get angular velocity from
|
|
657
|
+
* @returns The angular velocity vector or null if not available
|
|
658
|
+
*/
|
|
659
|
+
getAngularVelocity(rb: IRigidbody): Vec3 | null;
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Sets the angular velocity of a rigidbody
|
|
663
|
+
* @param rb The rigidbody to set angular velocity for
|
|
664
|
+
* @param vec The angular velocity vector to set
|
|
665
|
+
* @param wakeup Whether to wake up the rigidbody
|
|
666
|
+
*/
|
|
667
|
+
setAngularVelocity(rb: IRigidbody, vec: Vec3, wakeup: boolean);
|
|
668
|
+
|
|
669
|
+
/**
|
|
670
|
+
* Sets the linear velocity of a rigidbody
|
|
671
|
+
* @param rb The rigidbody to set linear velocity for
|
|
672
|
+
* @param vec The linear velocity vector to set
|
|
673
|
+
* @param wakeup Whether to wake up the rigidbody
|
|
674
|
+
*/
|
|
675
|
+
setLinearVelocity(rb: IRigidbody, vec: Vec3, wakeup: boolean);
|
|
676
|
+
|
|
677
|
+
/**
|
|
678
|
+
* Updates the position and/or rotation of a physics body
|
|
679
|
+
* @param comp The collider or rigidbody component to update
|
|
680
|
+
* @param translation Whether to update the position
|
|
681
|
+
* @param rotation Whether to update the rotation
|
|
682
|
+
*/
|
|
683
|
+
updateBody(comp: ICollider | IRigidbody, translation: boolean, rotation: boolean);
|
|
684
|
+
|
|
685
|
+
/**
|
|
686
|
+
* Removes a physics body from the simulation
|
|
687
|
+
* @param body The component whose physics body should be removed
|
|
688
|
+
*/
|
|
689
|
+
removeBody(body: IComponent);
|
|
690
|
+
|
|
691
|
+
/**
|
|
692
|
+
* Gets the physics body for a component
|
|
693
|
+
* @param obj The collider or rigidbody component
|
|
694
|
+
* @returns The underlying physics body or null if not found
|
|
695
|
+
*/
|
|
696
|
+
getBody(obj: ICollider | IRigidbody): null | any;
|
|
697
|
+
|
|
698
|
+
// Joints
|
|
699
|
+
addFixedJoint(body1: IRigidbody, body2: IRigidbody);
|
|
700
|
+
addHingeJoint(body1: IRigidbody, body2: IRigidbody, anchor: Vec3, axis: Vec3);
|
|
701
|
+
|
|
702
|
+
/** Enable to render collider shapes */
|
|
703
|
+
debugRenderColliders: boolean;
|
|
704
|
+
/** Enable to visualize raycasts in the scene with gizmos */
|
|
705
|
+
debugRenderRaycasts: boolean;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
/**
|
|
709
|
+
* Available cursor types
|
|
710
|
+
* @link https://developer.mozilla.org/en-US/docs/Web/CSS/cursor
|
|
711
|
+
*/
|
|
712
|
+
export type CursorTypeName = "auto" | "default" | "none" | "context-menu" | "help" | "pointer" | "progress" | "wait" | "cell" | "crosshair" | "text" | "vertical-text" | "alias" | "copy" | "move" | "no-drop" | "not-allowed" | "grab" | "grabbing" | "all-scroll" | "col-resize" | "row-resize" | "n-resize" | "e-resize" | "s-resize" | "w-resize" | "nw-resize" | "se-resize" | "sw-resize" | "ew-resize" | "ns-resize" | "nesw-resize" | "nwse-resize" | "zoom-in" | "zoom-out";
|
|
713
|
+
|
|
714
|
+
/** Typical mouse button names for most devices */
|
|
715
|
+
export type MouseButtonName = "left" | "right" | "middle";
|
|
716
|
+
|
|
717
|
+
/** Button names on typical controllers (since there seems to be no agreed naming)
|
|
718
|
+
* https://w3c.github.io/gamepad/#remapping
|
|
719
|
+
*/
|
|
720
|
+
export type GamepadButtonName = "a-button" | "b-button" | "x-button" | "y-button";
|
|
721
|
+
|
|
722
|
+
/** Needle-defined names for stylus (MX Ink) */
|
|
723
|
+
export type StylusButtonName = "stylus-touch" | "stylus-tip";
|
|
724
|
+
|
|
725
|
+
/** Button names as used in the xr profile */
|
|
726
|
+
export type XRControllerButtonName = "thumbrest" | "xr-standard-trigger" | "xr-standard-squeeze" | "xr-standard-thumbstick" | "xr-standard-touchpad" | "menu" | GamepadButtonName | StylusButtonName;
|
|
727
|
+
|
|
728
|
+
export type XRGestureName = "pinch";
|
|
729
|
+
|
|
730
|
+
/** All known (types) button names for various devices and cases combined. You should use the device specific names if you e.g. know you only deal with a mouse use MouseButtonName */
|
|
731
731
|
export type ButtonName = "unknown" | MouseButtonName | GamepadButtonName | XRControllerButtonName | XRGestureName;
|