@needle-tools/engine 5.1.0-canary.fbdfce3 → 5.1.0-experimental.03e8105
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 +86 -0
- package/SKILL.md +4 -1
- package/components.needle.json +1 -1
- package/dist/{needle-engine.bundle-BFSj2Fz8.js → needle-engine.bundle-BNqUjnSQ.js} +19180 -18386
- package/dist/needle-engine.bundle-Bt8ULD7E.umd.cjs +1733 -0
- package/dist/needle-engine.bundle-DF6ovbwD.min.js +1733 -0
- package/dist/needle-engine.d.ts +1487 -356
- package/dist/needle-engine.js +544 -542
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/three.js +1 -0
- package/dist/three.min.js +21 -21
- package/dist/three.umd.cjs +16 -16
- package/lib/engine/api.d.ts +8 -1
- package/lib/engine/api.js +7 -1
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/codegen/register_types.js +10 -18
- package/lib/engine/codegen/register_types.js.map +1 -1
- package/lib/engine/engine_audio.d.ts +68 -0
- package/lib/engine/engine_audio.js +172 -0
- package/lib/engine/engine_audio.js.map +1 -1
- package/lib/engine/engine_camera.fit.js +16 -4
- package/lib/engine/engine_camera.fit.js.map +1 -1
- package/lib/engine/engine_components.js +1 -1
- package/lib/engine/engine_components.js.map +1 -1
- package/lib/engine/engine_context.d.ts +21 -8
- package/lib/engine/engine_context.js +32 -16
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_context_eventbus.d.ts +47 -0
- package/lib/engine/engine_context_eventbus.js +47 -0
- package/lib/engine/engine_context_eventbus.js.map +1 -0
- package/lib/engine/engine_disposable.d.ts +172 -0
- package/lib/engine/engine_disposable.js +136 -0
- package/lib/engine/engine_disposable.js.map +1 -0
- package/lib/engine/engine_gameobject.d.ts +1 -10
- package/lib/engine/engine_gameobject.js +22 -120
- package/lib/engine/engine_gameobject.js.map +1 -1
- package/lib/engine/engine_gltf_builtin_components.js +7 -69
- package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
- package/lib/engine/engine_init.js +7 -7
- package/lib/engine/engine_init.js.map +1 -1
- package/lib/engine/engine_input.d.ts +24 -5
- package/lib/engine/engine_input.js +3 -2
- package/lib/engine/engine_input.js.map +1 -1
- package/lib/engine/engine_instantiate_resolve.d.ts +42 -0
- package/lib/engine/engine_instantiate_resolve.js +372 -0
- package/lib/engine/engine_instantiate_resolve.js.map +1 -0
- package/lib/engine/engine_license.d.ts +7 -7
- package/lib/engine/engine_license.js +183 -57
- package/lib/engine/engine_license.js.map +1 -1
- package/lib/engine/engine_mainloop_utils.js +7 -4
- package/lib/engine/engine_mainloop_utils.js.map +1 -1
- package/lib/engine/engine_networking.d.ts +51 -37
- package/lib/engine/engine_networking.js +132 -82
- package/lib/engine/engine_networking.js.map +1 -1
- package/lib/engine/engine_networking.transport.websocket.d.ts +15 -0
- package/lib/engine/engine_networking.transport.websocket.js +38 -0
- package/lib/engine/engine_networking.transport.websocket.js.map +1 -0
- package/lib/engine/engine_networking_blob.js +4 -4
- package/lib/engine/engine_networking_blob.js.map +1 -1
- package/lib/engine/engine_networking_instantiate.js +2 -2
- package/lib/engine/engine_networking_instantiate.js.map +1 -1
- package/lib/engine/engine_networking_types.d.ts +39 -1
- package/lib/engine/engine_networking_types.js +7 -0
- package/lib/engine/engine_networking_types.js.map +1 -1
- package/lib/engine/engine_physics_rapier.d.ts +21 -3
- package/lib/engine/engine_physics_rapier.js +94 -25
- package/lib/engine/engine_physics_rapier.js.map +1 -1
- package/lib/engine/engine_scenedata.js +2 -2
- package/lib/engine/engine_scenedata.js.map +1 -1
- package/lib/engine/engine_serialization_builtin_serializer.js +28 -5
- package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
- package/lib/engine/engine_serialization_core.d.ts +1 -0
- package/lib/engine/engine_serialization_core.js +7 -0
- package/lib/engine/engine_serialization_core.js.map +1 -1
- package/lib/engine/engine_types.d.ts +29 -11
- package/lib/engine/engine_types.js +1 -1
- package/lib/engine/engine_types.js.map +1 -1
- package/lib/engine/engine_util_decorator.js +7 -2
- package/lib/engine/engine_util_decorator.js.map +1 -1
- package/lib/engine/engine_utils.d.ts +1 -1
- package/lib/engine/engine_utils.js +19 -5
- package/lib/engine/engine_utils.js.map +1 -1
- package/lib/engine/engine_utils_qrcode.js +2 -2
- package/lib/engine/engine_utils_qrcode.js.map +1 -1
- package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
- package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.js +6 -6
- package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.d.ts +10 -4
- package/lib/engine/webcomponents/needle-engine.js +3 -3
- package/lib/engine/webcomponents/needle-engine.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
- package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
- package/lib/engine/xr/NeedleXRSession.d.ts +3 -2
- package/lib/engine/xr/NeedleXRSession.js +50 -14
- package/lib/engine/xr/NeedleXRSession.js.map +1 -1
- package/lib/engine/xr/TempXRContext.js +2 -2
- package/lib/engine/xr/TempXRContext.js.map +1 -1
- package/lib/engine/xr/events.d.ts +1 -1
- package/lib/engine/xr/events.js.map +1 -1
- package/lib/engine-components/Animation.js +17 -16
- package/lib/engine-components/Animation.js.map +1 -1
- package/lib/engine-components/AnimationBuilder.d.ts +158 -0
- package/lib/engine-components/AnimationBuilder.js +305 -0
- package/lib/engine-components/AnimationBuilder.js.map +1 -0
- package/lib/engine-components/Animator.d.ts +6 -0
- package/lib/engine-components/Animator.js +23 -13
- package/lib/engine-components/Animator.js.map +1 -1
- package/lib/engine-components/AnimatorController.builder.d.ts +191 -0
- package/lib/engine-components/AnimatorController.builder.js +263 -0
- package/lib/engine-components/AnimatorController.builder.js.map +1 -0
- package/lib/engine-components/AnimatorController.d.ts +2 -119
- package/lib/engine-components/AnimatorController.js +33 -232
- package/lib/engine-components/AnimatorController.js.map +1 -1
- package/lib/engine-components/AudioSource.d.ts +19 -3
- package/lib/engine-components/AudioSource.js +121 -68
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/Collider.d.ts +18 -9
- package/lib/engine-components/Collider.js +61 -14
- package/lib/engine-components/Collider.js.map +1 -1
- package/lib/engine-components/Component.d.ts +72 -9
- package/lib/engine-components/Component.js +114 -10
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/ContactShadows.d.ts +1 -0
- package/lib/engine-components/ContactShadows.js +14 -1
- package/lib/engine-components/ContactShadows.js.map +1 -1
- package/lib/engine-components/DragControls.d.ts +7 -0
- package/lib/engine-components/DragControls.js +19 -7
- package/lib/engine-components/DragControls.js.map +1 -1
- package/lib/engine-components/DropListener.js +3 -0
- package/lib/engine-components/DropListener.js.map +1 -1
- package/lib/engine-components/EventList.d.ts +31 -9
- package/lib/engine-components/EventList.js +37 -76
- package/lib/engine-components/EventList.js.map +1 -1
- package/lib/engine-components/Joints.d.ts +4 -2
- package/lib/engine-components/Joints.js +19 -3
- package/lib/engine-components/Joints.js.map +1 -1
- package/lib/engine-components/Light.js +9 -1
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/Networking.d.ts +1 -1
- package/lib/engine-components/Networking.js +1 -1
- package/lib/engine-components/OrbitControls.d.ts +0 -2
- package/lib/engine-components/OrbitControls.js +30 -12
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/RigidBody.d.ts +12 -4
- package/lib/engine-components/RigidBody.js +18 -4
- package/lib/engine-components/RigidBody.js.map +1 -1
- package/lib/engine-components/SceneSwitcher.js +3 -0
- package/lib/engine-components/SceneSwitcher.js.map +1 -1
- package/lib/engine-components/SeeThrough.js +2 -2
- package/lib/engine-components/SeeThrough.js.map +1 -1
- package/lib/engine-components/api.d.ts +2 -1
- package/lib/engine-components/api.js +2 -1
- package/lib/engine-components/api.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +7 -13
- package/lib/engine-components/codegen/components.js +7 -13
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
- package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
- package/lib/engine-components/timeline/PlayableDirector.d.ts +21 -11
- package/lib/engine-components/timeline/PlayableDirector.js +75 -67
- package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
- package/lib/engine-components/timeline/SignalAsset.d.ts +3 -1
- package/lib/engine-components/timeline/SignalAsset.js +1 -0
- package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
- package/lib/engine-components/timeline/TimelineBuilder.d.ts +413 -0
- package/lib/engine-components/timeline/TimelineBuilder.js +506 -0
- package/lib/engine-components/timeline/TimelineBuilder.js.map +1 -0
- package/lib/engine-components/timeline/TimelineModels.d.ts +2 -1
- package/lib/engine-components/timeline/TimelineModels.js +3 -0
- package/lib/engine-components/timeline/TimelineModels.js.map +1 -1
- package/lib/engine-components/timeline/TimelineTracks.d.ts +37 -6
- package/lib/engine-components/timeline/TimelineTracks.js +92 -26
- package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
- package/lib/engine-components/timeline/index.d.ts +2 -1
- package/lib/engine-components/timeline/index.js +2 -0
- package/lib/engine-components/timeline/index.js.map +1 -1
- package/lib/engine-components/ui/Canvas.d.ts +1 -1
- package/lib/engine-components/ui/Canvas.js +2 -8
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/engine-components/ui/Text.d.ts +1 -0
- package/lib/engine-components/ui/Text.js +10 -7
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/lib/engine-components/web/CursorFollow.d.ts +0 -1
- package/lib/engine-components/web/CursorFollow.js +21 -13
- package/lib/engine-components/web/CursorFollow.js.map +1 -1
- package/lib/engine-components/webxr/WebXRImageTracking.js +4 -0
- package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
- package/package.json +2 -83
- package/plugins/common/cloud.js +6 -1
- package/plugins/common/license.js +31 -10
- package/plugins/common/worker.js +9 -4
- package/plugins/vite/asap.js +17 -8
- package/plugins/vite/dependencies.js +29 -10
- package/plugins/vite/dependency-watcher.js +2 -2
- package/plugins/vite/editor-connection.js +3 -3
- package/plugins/vite/license.js +46 -7
- package/plugins/vite/local-files-core.js +3 -3
- package/plugins/vite/local-files-utils.d.ts +3 -1
- package/plugins/vite/local-files-utils.js +29 -5
- package/plugins/vite/reload.js +1 -1
- package/plugins/vite/server.js +2 -1
- package/src/engine/api.ts +11 -1
- package/src/engine/codegen/register_types.ts +10 -18
- package/src/engine/engine_audio.ts +184 -0
- package/src/engine/engine_camera.fit.ts +15 -4
- package/src/engine/engine_components.ts +1 -1
- package/src/engine/engine_context.ts +34 -18
- package/src/engine/engine_context_eventbus.ts +73 -0
- package/src/engine/engine_disposable.ts +214 -0
- package/src/engine/engine_gameobject.ts +54 -159
- package/src/engine/engine_gltf_builtin_components.ts +7 -76
- package/src/engine/engine_init.ts +7 -7
- package/src/engine/engine_input.ts +28 -7
- package/src/engine/engine_instantiate_resolve.ts +407 -0
- package/src/engine/engine_license.ts +197 -55
- package/src/engine/engine_mainloop_utils.ts +7 -4
- package/src/engine/engine_networking.transport.websocket.ts +45 -0
- package/src/engine/engine_networking.ts +161 -137
- package/src/engine/engine_networking_blob.ts +4 -4
- package/src/engine/engine_networking_instantiate.ts +2 -2
- package/src/engine/engine_networking_types.ts +41 -1
- package/src/engine/engine_physics_rapier.ts +102 -33
- package/src/engine/engine_scenedata.ts +3 -3
- package/src/engine/engine_serialization_builtin_serializer.ts +32 -9
- package/src/engine/engine_serialization_core.ts +9 -0
- package/src/engine/engine_types.ts +46 -27
- package/src/engine/engine_util_decorator.ts +7 -2
- package/src/engine/engine_utils.ts +16 -5
- package/src/engine/engine_utils_qrcode.ts +2 -2
- package/src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
- package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
- package/src/engine/webcomponents/needle menu/needle-menu.ts +6 -6
- package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
- package/src/engine/webcomponents/needle-engine.ts +12 -6
- package/src/engine/xr/NeedleXRSession.ts +48 -13
- package/src/engine/xr/TempXRContext.ts +2 -2
- package/src/engine/xr/events.ts +1 -1
- package/src/engine-components/Animation.ts +19 -16
- package/src/engine-components/AnimationBuilder.ts +472 -0
- package/src/engine-components/Animator.ts +24 -12
- package/src/engine-components/AnimatorController.builder.ts +387 -0
- package/src/engine-components/AnimatorController.ts +20 -291
- package/src/engine-components/AudioSource.ts +130 -79
- package/src/engine-components/Collider.ts +66 -18
- package/src/engine-components/Component.ts +118 -20
- package/src/engine-components/ContactShadows.ts +15 -1
- package/src/engine-components/DragControls.ts +18 -11
- package/src/engine-components/DropListener.ts +3 -0
- package/src/engine-components/EventList.ts +45 -83
- package/src/engine-components/Joints.ts +20 -4
- package/src/engine-components/Light.ts +10 -2
- package/src/engine-components/Networking.ts +1 -1
- package/src/engine-components/OrbitControls.ts +34 -14
- package/src/engine-components/RigidBody.ts +18 -4
- package/src/engine-components/SceneSwitcher.ts +3 -0
- package/src/engine-components/SeeThrough.ts +2 -2
- package/src/engine-components/api.ts +2 -1
- package/src/engine-components/codegen/components.ts +7 -13
- package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
- package/src/engine-components/timeline/PlayableDirector.ts +83 -81
- package/src/engine-components/timeline/SignalAsset.ts +4 -1
- package/src/engine-components/timeline/TimelineBuilder.ts +824 -0
- package/src/engine-components/timeline/TimelineModels.ts +5 -1
- package/src/engine-components/timeline/TimelineTracks.ts +96 -27
- package/src/engine-components/timeline/index.ts +2 -1
- package/src/engine-components/ui/Canvas.ts +2 -8
- package/src/engine-components/ui/Text.ts +12 -8
- package/src/engine-components/web/CursorFollow.ts +21 -14
- package/src/engine-components/webxr/WebXRImageTracking.ts +2 -0
- package/dist/needle-engine.bundle-CmxIO5uH.min.js +0 -1732
- package/dist/needle-engine.bundle-tJIZukCz.umd.cjs +0 -1732
- package/lib/engine-components/AvatarLoader.d.ts +0 -80
- package/lib/engine-components/AvatarLoader.js +0 -232
- package/lib/engine-components/AvatarLoader.js.map +0 -1
- package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +0 -11
- package/lib/engine-components/avatar/AvatarBlink_Simple.js +0 -77
- package/lib/engine-components/avatar/AvatarBlink_Simple.js.map +0 -1
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +0 -14
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +0 -69
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js.map +0 -1
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +0 -29
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +0 -122
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.js.map +0 -1
- package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +0 -15
- package/lib/engine-components/avatar/Avatar_MouthShapes.js +0 -80
- package/lib/engine-components/avatar/Avatar_MouthShapes.js.map +0 -1
- package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +0 -9
- package/lib/engine-components/avatar/Avatar_MustacheShake.js +0 -30
- package/lib/engine-components/avatar/Avatar_MustacheShake.js.map +0 -1
- package/plugins/dts-generator/dts.codegen.js +0 -334
- package/plugins/dts-generator/dts.scan.js +0 -99
- package/plugins/dts-generator/dts.writer.js +0 -59
- package/plugins/dts-generator/glb.discovery.js +0 -279
- package/plugins/dts-generator/glb.extractor.js +0 -215
- package/plugins/dts-generator/glb.reader.js +0 -167
- package/plugins/dts-generator/index.js +0 -36
- package/plugins/dts-generator/manifest.types.js +0 -174
- package/plugins/gltf-packer.mjs +0 -1
- package/src/engine-components/AvatarLoader.ts +0 -264
- package/src/engine-components/avatar/AvatarBlink_Simple.ts +0 -70
- package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +0 -64
- package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +0 -140
- package/src/engine-components/avatar/Avatar_MouthShapes.ts +0 -84
- package/src/engine-components/avatar/Avatar_MustacheShake.ts +0 -32
- package/src/vite-env.d.ts +0 -16
|
@@ -386,6 +386,9 @@ export class RapierPhysics {
|
|
|
386
386
|
Gizmos.DrawRay(ray.origin, ray.dir, 0x0000ff, 1);
|
|
387
387
|
const hit = this.world?.castRay(ray, maxDistance, solid, options?.queryFilterFlags, options?.filterGroups, undefined, undefined, (c) => {
|
|
388
388
|
const component = c[$componentKey];
|
|
389
|
+
// Skip trigger/sensor colliders unless explicitly included
|
|
390
|
+
if (options?.includeTriggers !== true && component?.isTrigger)
|
|
391
|
+
return false;
|
|
389
392
|
if (options?.filterPredicate)
|
|
390
393
|
return options.filterPredicate(component);
|
|
391
394
|
if (options?.useIgnoreRaycastLayer !== false) {
|
|
@@ -419,6 +422,9 @@ export class RapierPhysics {
|
|
|
419
422
|
Gizmos.DrawRay(ray.origin, ray.dir, 0x0000ff, 1);
|
|
420
423
|
const hit = this.world?.castRayAndGetNormal(ray, maxDistance, solid, options?.queryFilterFlags, options?.filterGroups, undefined, undefined, (c) => {
|
|
421
424
|
const component = c[$componentKey];
|
|
425
|
+
// Skip trigger/sensor colliders unless explicitly included
|
|
426
|
+
if (options?.includeTriggers !== true && component?.isTrigger)
|
|
427
|
+
return false;
|
|
422
428
|
if (options?.filterPredicate)
|
|
423
429
|
return options.filterPredicate(component);
|
|
424
430
|
if (options?.useIgnoreRaycastLayer !== false) {
|
|
@@ -608,12 +614,25 @@ export class RapierPhysics {
|
|
|
608
614
|
this._gravity = value;
|
|
609
615
|
}
|
|
610
616
|
}
|
|
611
|
-
|
|
617
|
+
/** Tears down the physics world and frees all WASM resources.
|
|
618
|
+
* After calling this, the world will be re-created on next use. */
|
|
619
|
+
dispose() {
|
|
612
620
|
this._meshCache.clear();
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
621
|
+
this.eventQueue?.free();
|
|
622
|
+
this._world?.free();
|
|
623
|
+
// Reset initialization state so the world can be recreated
|
|
624
|
+
this._world = undefined;
|
|
625
|
+
this.eventQueue = undefined;
|
|
626
|
+
this.collisionHandler = undefined;
|
|
627
|
+
this._isInitialized = false;
|
|
628
|
+
this._hasCreatedWorld = false;
|
|
629
|
+
this._initializePromise = undefined;
|
|
630
|
+
this.objects.length = 0;
|
|
631
|
+
this.bodies.length = 0;
|
|
632
|
+
}
|
|
633
|
+
/** @deprecated Use {@link dispose} instead. */
|
|
634
|
+
clearCaches() {
|
|
635
|
+
this.dispose();
|
|
617
636
|
}
|
|
618
637
|
async addBoxCollider(collider, size) {
|
|
619
638
|
if (!this._isInitialized)
|
|
@@ -888,13 +907,17 @@ export class RapierPhysics {
|
|
|
888
907
|
}
|
|
889
908
|
}
|
|
890
909
|
}
|
|
891
|
-
//
|
|
892
|
-
//
|
|
910
|
+
// When using explicit mass (autoMass=false), set collider mass to near-zero
|
|
911
|
+
// so Rapier doesn't contribute mass from the collider shape.
|
|
912
|
+
// The actual mass is applied via setAdditionalMass on the rigidbody instead.
|
|
913
|
+
// Note: setMass overrides any prior setDensity call (they are mutually exclusive in Rapier)
|
|
893
914
|
// https://rapier.rs/docs/user_guides/javascript/rigid_bodies#mass-properties
|
|
894
915
|
if (collider.attachedRigidbody?.autoMass === false) {
|
|
895
|
-
desc.setDensity(.000001);
|
|
896
916
|
desc.setMass(.000001);
|
|
897
917
|
}
|
|
918
|
+
else if (collider.density != null) {
|
|
919
|
+
desc.setDensity(collider.density);
|
|
920
|
+
}
|
|
898
921
|
try {
|
|
899
922
|
const col = this.world.createCollider(desc, rigidBody);
|
|
900
923
|
col[$componentKey] = collider;
|
|
@@ -1030,6 +1053,10 @@ export class RapierPhysics {
|
|
|
1030
1053
|
}
|
|
1031
1054
|
break;
|
|
1032
1055
|
}
|
|
1056
|
+
// Update density if specified (setDensity auto-recomputes parent body mass)
|
|
1057
|
+
if (col.density != null) {
|
|
1058
|
+
collider.setDensity(col.density);
|
|
1059
|
+
}
|
|
1033
1060
|
if (sizeHasChanged) {
|
|
1034
1061
|
const rb = col.attachedRigidbody;
|
|
1035
1062
|
if (rb?.autoMass) {
|
|
@@ -1057,7 +1084,8 @@ export class RapierPhysics {
|
|
|
1057
1084
|
rigidbody.setAdditionalMass(0, false);
|
|
1058
1085
|
for (let i = 0; i < rigidbody.numColliders(); i++) {
|
|
1059
1086
|
const col = rigidbody.collider(i);
|
|
1060
|
-
col
|
|
1087
|
+
const colliderComponent = col[$componentKey];
|
|
1088
|
+
col.setDensity(colliderComponent?.density ?? 1);
|
|
1061
1089
|
}
|
|
1062
1090
|
rigidbody.recomputeMassPropertiesFromColliders();
|
|
1063
1091
|
}
|
|
@@ -1351,48 +1379,89 @@ export class RapierPhysics {
|
|
|
1351
1379
|
}
|
|
1352
1380
|
static centerConnectionPos = { x: 0, y: 0, z: 0 };
|
|
1353
1381
|
static centerConnectionRot = { x: 0, y: 0, z: 0, w: 1 };
|
|
1354
|
-
|
|
1382
|
+
_jointTempMatrix = new Matrix4();
|
|
1383
|
+
async addFixedJoint(body1, body2) {
|
|
1384
|
+
if (!this._isInitialized)
|
|
1385
|
+
await this.initialize();
|
|
1355
1386
|
if (!this.world) {
|
|
1356
1387
|
console.error("Physics world not initialized");
|
|
1357
|
-
return;
|
|
1388
|
+
return null;
|
|
1358
1389
|
}
|
|
1359
1390
|
const b1 = body1[$bodyKey];
|
|
1360
1391
|
const b2 = body2[$bodyKey];
|
|
1392
|
+
if (!b1 || !b2) {
|
|
1393
|
+
console.error("Cannot create fixed joint: one or both physics bodies are not initialized");
|
|
1394
|
+
return null;
|
|
1395
|
+
}
|
|
1361
1396
|
this.calculateJointRelativeMatrices(body1.gameObject, body2.gameObject, this._tempMatrix);
|
|
1362
1397
|
this._tempMatrix.decompose(this._tempPosition, this._tempQuaternion, this._tempScale);
|
|
1363
1398
|
const params = MODULES.RAPIER_PHYSICS.MODULE.JointData.fixed(RapierPhysics.centerConnectionPos, RapierPhysics.centerConnectionRot, this._tempPosition, this._tempQuaternion);
|
|
1364
1399
|
const joint = this.world.createImpulseJoint(params, b1, b2, true);
|
|
1365
1400
|
if (debugPhysics)
|
|
1366
1401
|
console.log("ADD FIXED JOINT", joint);
|
|
1402
|
+
return joint;
|
|
1367
1403
|
}
|
|
1368
1404
|
/** The joint prevents any relative movement between two rigid-bodies, except for relative rotations along one axis. This is typically used to simulate wheels, fans, etc. They are characterized by one local anchor as well as one local axis on each rigid-body. */
|
|
1369
|
-
addHingeJoint(body1, body2, anchor, axis) {
|
|
1405
|
+
async addHingeJoint(body1, body2, anchor, axis) {
|
|
1406
|
+
if (!this._isInitialized)
|
|
1407
|
+
await this.initialize();
|
|
1370
1408
|
if (!this.world) {
|
|
1371
1409
|
console.error("Physics world not initialized");
|
|
1372
|
-
return;
|
|
1410
|
+
return null;
|
|
1373
1411
|
}
|
|
1374
1412
|
const b1 = body1[$bodyKey];
|
|
1375
1413
|
const b2 = body2[$bodyKey];
|
|
1414
|
+
if (!b1 || !b2) {
|
|
1415
|
+
console.error("Cannot create hinge joint: one or both physics bodies are not initialized");
|
|
1416
|
+
return null;
|
|
1417
|
+
}
|
|
1376
1418
|
this.calculateJointRelativeMatrices(body1.gameObject, body2.gameObject, this._tempMatrix);
|
|
1377
|
-
|
|
1378
|
-
const
|
|
1419
|
+
// Transform anchor from body1's local space to body2's local space
|
|
1420
|
+
const anchor2 = this._tempPosition.set(anchor.x, anchor.y, anchor.z).applyMatrix4(this._tempMatrix);
|
|
1421
|
+
const params = MODULES.RAPIER_PHYSICS.MODULE.JointData.revolute(anchor, anchor2, axis);
|
|
1379
1422
|
const joint = this.world.createImpulseJoint(params, b1, b2, true);
|
|
1380
1423
|
if (debugPhysics)
|
|
1381
1424
|
console.log("ADD HINGE JOINT", joint);
|
|
1425
|
+
return joint;
|
|
1426
|
+
}
|
|
1427
|
+
removeJoint(joint) {
|
|
1428
|
+
if (!this.world)
|
|
1429
|
+
return;
|
|
1430
|
+
this.world.removeImpulseJoint(joint, true);
|
|
1382
1431
|
}
|
|
1432
|
+
/** Compute the relative transform from body1's local space to body2's local space (W2⁻¹ * W1), ignoring scale. */
|
|
1383
1433
|
calculateJointRelativeMatrices(body1, body2, mat) {
|
|
1384
1434
|
body1.updateWorldMatrix(true, false);
|
|
1385
1435
|
body2.updateWorldMatrix(true, false);
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1436
|
+
// Work on copies to avoid mutating the actual world matrices
|
|
1437
|
+
mat.copy(body1.matrixWorld);
|
|
1438
|
+
const w2 = this._jointTempMatrix.copy(body2.matrixWorld);
|
|
1439
|
+
// Strip scale by normalizing each column of the upper 3x3
|
|
1440
|
+
this.normalizeMatrixColumns(mat);
|
|
1441
|
+
this.normalizeMatrixColumns(w2);
|
|
1442
|
+
// mat = W2^-1 * W1 (body1's frame in body2's local space)
|
|
1443
|
+
mat.premultiply(w2.invert());
|
|
1444
|
+
}
|
|
1445
|
+
normalizeMatrixColumns(m) {
|
|
1446
|
+
const e = m.elements;
|
|
1447
|
+
let len = Math.sqrt(e[0] * e[0] + e[1] * e[1] + e[2] * e[2]);
|
|
1448
|
+
if (len > 0) {
|
|
1449
|
+
e[0] /= len;
|
|
1450
|
+
e[1] /= len;
|
|
1451
|
+
e[2] /= len;
|
|
1452
|
+
}
|
|
1453
|
+
len = Math.sqrt(e[4] * e[4] + e[5] * e[5] + e[6] * e[6]);
|
|
1454
|
+
if (len > 0) {
|
|
1455
|
+
e[4] /= len;
|
|
1456
|
+
e[5] /= len;
|
|
1457
|
+
e[6] /= len;
|
|
1458
|
+
}
|
|
1459
|
+
len = Math.sqrt(e[8] * e[8] + e[9] * e[9] + e[10] * e[10]);
|
|
1460
|
+
if (len > 0) {
|
|
1461
|
+
e[8] /= len;
|
|
1462
|
+
e[9] /= len;
|
|
1463
|
+
e[10] /= len;
|
|
1464
|
+
}
|
|
1396
1465
|
}
|
|
1397
1466
|
}
|
|
1398
1467
|
/** responsible of processing collision events for the component system */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_physics_rapier.js","sourceRoot":"","sources":["../../src/engine/engine_physics_rapier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine_physics_rapier.js","sourceRoot":"","sources":["../../src/engine/engine_physics_rapier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { getComponent } from "./engine_components.js";
|
|
2
|
-
import { TypeStore } from "./engine_typestore.js";
|
|
3
1
|
import { isDevEnvironment } from "./debug/index.js";
|
|
2
|
+
import { getComponent } from "./engine_components.js";
|
|
4
3
|
import { ContextRegistry } from "./engine_context_registry.js";
|
|
4
|
+
import { TypeStore } from "./engine_typestore.js";
|
|
5
5
|
/**
|
|
6
6
|
* Quick access to the current Needle Engine context from anywhere — no need to pass `ctx` around.
|
|
7
7
|
* Use it in React/Svelte/Vue components, button handlers, or plain JavaScript.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_scenedata.js","sourceRoot":"","sources":["../../src/engine/engine_scenedata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine_scenedata.js","sourceRoot":"","sources":["../../src/engine/engine_scenedata.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,13 @@ import { isDevEnvironment, showBalloonWarning } from "../engine/debug/index.js";
|
|
|
3
3
|
import { Behaviour, Component, GameObject } from "../engine-components/Component.js";
|
|
4
4
|
import { CallInfo, EventList } from "../engine-components/EventList.js";
|
|
5
5
|
import { AssetReference } from "./engine_addressables.js";
|
|
6
|
+
import { AudioClip } from "./engine_audio.js";
|
|
6
7
|
import { debugExtension } from "./engine_default_parameters.js";
|
|
7
8
|
import { TypeSerializer } from "./engine_serialization_core.js";
|
|
8
9
|
import { RenderTexture } from "./engine_texture.js";
|
|
9
10
|
import { resolveUrl } from "./engine_utils.js";
|
|
10
11
|
import { RGBAColor } from "./js-extensions/index.js";
|
|
12
|
+
// #region Color
|
|
11
13
|
class ColorSerializer extends TypeSerializer {
|
|
12
14
|
constructor() {
|
|
13
15
|
super([Color, RGBAColor], "ColorSerializer");
|
|
@@ -32,6 +34,7 @@ class ColorSerializer extends TypeSerializer {
|
|
|
32
34
|
return { r: data.r, g: data.g, b: data.b };
|
|
33
35
|
}
|
|
34
36
|
}
|
|
37
|
+
// #region Euler
|
|
35
38
|
class EulerSerializer extends TypeSerializer {
|
|
36
39
|
constructor() {
|
|
37
40
|
super([Euler], "EulerSerializer");
|
|
@@ -51,6 +54,7 @@ class EulerSerializer extends TypeSerializer {
|
|
|
51
54
|
return { x: data.x, y: data.y, z: data.z, order: data.order };
|
|
52
55
|
}
|
|
53
56
|
}
|
|
57
|
+
// #region ObjectSerializer
|
|
54
58
|
class ObjectSerializer extends TypeSerializer {
|
|
55
59
|
constructor() {
|
|
56
60
|
super(Object3D, "ObjectSerializer");
|
|
@@ -110,7 +114,7 @@ class ObjectSerializer extends TypeSerializer {
|
|
|
110
114
|
}
|
|
111
115
|
if (!res) {
|
|
112
116
|
if (isDevEnvironment() || debugExtension)
|
|
113
|
-
console.warn(
|
|
117
|
+
console.warn(`Could not resolve object reference \"${context.path}\" (guid: ${data.guid}). The referenced object may have been deleted — check if the reference is still valid in your scene.`);
|
|
114
118
|
data["could_not_resolve"] = true;
|
|
115
119
|
}
|
|
116
120
|
else {
|
|
@@ -128,6 +132,7 @@ class ObjectSerializer extends TypeSerializer {
|
|
|
128
132
|
return undefined;
|
|
129
133
|
}
|
|
130
134
|
}
|
|
135
|
+
// #region ComponentSerializer
|
|
131
136
|
class ComponentSerializer extends TypeSerializer {
|
|
132
137
|
constructor() {
|
|
133
138
|
super([Component, Behaviour], "ComponentSerializer");
|
|
@@ -198,6 +203,7 @@ class ComponentSerializer extends TypeSerializer {
|
|
|
198
203
|
}
|
|
199
204
|
}
|
|
200
205
|
const $eventListDebugInfo = Symbol("eventListDebugInfo");
|
|
206
|
+
// #region EventListSerializer
|
|
201
207
|
class EventListSerializer extends TypeSerializer {
|
|
202
208
|
constructor() {
|
|
203
209
|
super([EventList]);
|
|
@@ -296,10 +302,6 @@ class EventListSerializer extends TypeSerializer {
|
|
|
296
302
|
const evt = new EventList(fns);
|
|
297
303
|
if (debugExtension)
|
|
298
304
|
console.log(evt);
|
|
299
|
-
const eventListOwner = context.target;
|
|
300
|
-
if (eventListOwner !== undefined && context.path !== undefined) {
|
|
301
|
-
evt.setEventTarget(context.path, eventListOwner);
|
|
302
|
-
}
|
|
303
305
|
return evt;
|
|
304
306
|
}
|
|
305
307
|
return undefined;
|
|
@@ -309,6 +311,7 @@ class EventListSerializer extends TypeSerializer {
|
|
|
309
311
|
* It's a weak map so we don't have to worry about memory leaks
|
|
310
312
|
*/
|
|
311
313
|
const cloneOriginalMap = new WeakMap();
|
|
314
|
+
// #region RenderTextureSerializer
|
|
312
315
|
export class RenderTextureSerializer extends TypeSerializer {
|
|
313
316
|
constructor() {
|
|
314
317
|
super([RenderTexture, WebGLRenderTarget]);
|
|
@@ -346,6 +349,7 @@ export class RenderTextureSerializer extends TypeSerializer {
|
|
|
346
349
|
return undefined;
|
|
347
350
|
}
|
|
348
351
|
}
|
|
352
|
+
// #region UriSerializer
|
|
349
353
|
export class UriSerializer extends TypeSerializer {
|
|
350
354
|
constructor() {
|
|
351
355
|
super([URL]);
|
|
@@ -360,6 +364,24 @@ export class UriSerializer extends TypeSerializer {
|
|
|
360
364
|
return undefined;
|
|
361
365
|
}
|
|
362
366
|
}
|
|
367
|
+
// #region AudioClipSerializer
|
|
368
|
+
class AudioClipSerializer extends TypeSerializer {
|
|
369
|
+
constructor() {
|
|
370
|
+
super([AudioClip]);
|
|
371
|
+
}
|
|
372
|
+
onSerialize(_data, _context) {
|
|
373
|
+
return null;
|
|
374
|
+
}
|
|
375
|
+
onDeserialize(data, context) {
|
|
376
|
+
if (typeof data === "string" && data.length > 0) {
|
|
377
|
+
const url = resolveUrl(context.gltfId, data);
|
|
378
|
+
if (url)
|
|
379
|
+
return new AudioClip(url);
|
|
380
|
+
}
|
|
381
|
+
return undefined;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
// #region Init serializer
|
|
363
385
|
// Module-level references used by EventListSerializer internally
|
|
364
386
|
export let colorSerializer;
|
|
365
387
|
export let objectSerializer;
|
|
@@ -387,5 +409,6 @@ export function initBuiltinSerializers() {
|
|
|
387
409
|
eventListSerializer = new EventListSerializer();
|
|
388
410
|
new RenderTextureSerializer();
|
|
389
411
|
new UriSerializer();
|
|
412
|
+
new AudioClipSerializer();
|
|
390
413
|
}
|
|
391
414
|
//# sourceMappingURL=engine_serialization_builtin_serializer.js.map
|