@relu-interactives/spatial-ecs 0.3.9 → 0.3.11

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.
Files changed (38) hide show
  1. package/dist/{XRHandPose-CxPz8VBp.d.ts → XRHandPose-B6I4y1lj.d.ts} +117 -14
  2. package/dist/{XRHandPose-VuSbe4iz.d.cts → XRHandPose-C-KJeYcJ.d.cts} +117 -14
  3. package/dist/{chunk-KIKIWCEB.js → chunk-FSHRPY65.js} +4 -4
  4. package/dist/{chunk-KIKIWCEB.js.map → chunk-FSHRPY65.js.map} +1 -1
  5. package/dist/{chunk-W5TSYV6Q.js → chunk-KLU2M43M.js} +836 -212
  6. package/dist/chunk-KLU2M43M.js.map +1 -0
  7. package/dist/{chunk-KVGGAL5V.js → chunk-TXEGYR76.js} +26 -5
  8. package/dist/chunk-TXEGYR76.js.map +1 -0
  9. package/dist/{chunk-L5BP727H.js → chunk-Y3AC3VZ2.js} +3 -3
  10. package/dist/{chunk-L5BP727H.js.map → chunk-Y3AC3VZ2.js.map} +1 -1
  11. package/dist/components/index.cjs +23 -2
  12. package/dist/components/index.cjs.map +1 -1
  13. package/dist/components/index.d.cts +2 -2
  14. package/dist/components/index.d.ts +2 -2
  15. package/dist/components/index.js +1 -1
  16. package/dist/docs/guide/vr-and-hand-poses.md +55 -3
  17. package/dist/factories/index.cjs +22 -2
  18. package/dist/factories/index.cjs.map +1 -1
  19. package/dist/factories/index.d.cts +1 -1
  20. package/dist/factories/index.d.ts +1 -1
  21. package/dist/factories/index.js +3 -3
  22. package/dist/{index-C7XQyrgE.d.ts → index-Bi_wIo1o.d.ts} +107 -1
  23. package/dist/{index-BxdXgqiI.d.ts → index-CEZp7qLL.d.ts} +9 -3
  24. package/dist/{index-BIQoaKAA.d.cts → index-DPRnnSI-.d.cts} +9 -3
  25. package/dist/{index-DyN50JZo.d.cts → index-jlgDou9W.d.cts} +107 -1
  26. package/dist/index.cjs +978 -331
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +14 -5
  29. package/dist/index.d.ts +14 -5
  30. package/dist/index.js +8 -8
  31. package/dist/systems/index.cjs +885 -239
  32. package/dist/systems/index.cjs.map +1 -1
  33. package/dist/systems/index.d.cts +1 -1
  34. package/dist/systems/index.d.ts +1 -1
  35. package/dist/systems/index.js +3 -3
  36. package/package.json +1 -1
  37. package/dist/chunk-KVGGAL5V.js.map +0 -1
  38. package/dist/chunk-W5TSYV6Q.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { A as AnimationComponent, b as AudioComponent, c as CameraComponentOptions, C as CameraComponent, T as RigidbodyState, g as ColliderState, P as PhysicsComponent, o as EntityType, I as ImageComponent, q as ImageTargetAnchor, p as ImageTarget, L as LightComponent, M as MaterialComponent, B as MeshComponent, F as MeshGeometryComponent, J as ModelComponent, N as Name, O as Object3DRef, W as ScriptEntry, V as ScriptComponent, Y as ScriptObjectComponentInput, X as ScriptObjectComponent, _ as Selectable, $ as SelectionTransformState, a0 as SpriteComponent, w as InstancedMeshKind, G as MeshGeometryParameters, v as InstancedMeshComponent, t as InstanceSlotComponent, a6 as VideoComponent, af as XRRigComponent, a4 as VRTeleportAreaComponent, a8 as XRHandPoseComponent, aa as XRInteractableComponent, ac as XRInteractorComponent, ae as XRInteractorSideComponent } from '../XRHandPose-VuSbe4iz.cjs';
1
+ import { A as AnimationComponent, b as AudioComponent, c as CameraComponentOptions, C as CameraComponent, T as RigidbodyState, g as ColliderState, P as PhysicsComponent, o as EntityType, I as ImageComponent, q as ImageTargetAnchor, p as ImageTarget, L as LightComponent, M as MaterialComponent, B as MeshComponent, F as MeshGeometryComponent, J as ModelComponent, N as Name, O as Object3DRef, W as ScriptEntry, V as ScriptComponent, Y as ScriptObjectComponentInput, X as ScriptObjectComponent, _ as Selectable, $ as SelectionTransformState, a0 as SpriteComponent, w as InstancedMeshKind, G as MeshGeometryParameters, v as InstancedMeshComponent, t as InstanceSlotComponent, a6 as VideoComponent, af as XRRigComponent, a4 as VRTeleportAreaComponent, a8 as XRHandPoseComponent, aa as XRInteractableComponent, ac as XRInteractorComponent, ae as XRInteractorSideComponent } from '../XRHandPose-C-KJeYcJ.cjs';
2
2
  import { l as World, g as EnvironmentState, E as Environment, P as ParentId, i as PostprocessingState, h as Postprocessing, T as TransformComponent, O as ObjectManagementSystem } from '../System-31wk-A0g.cjs';
3
3
  import * as THREE from 'three';
4
4
  import '@dimforge/rapier3d-compat';
@@ -1,4 +1,4 @@
1
- import { A as AnimationComponent, b as AudioComponent, c as CameraComponentOptions, C as CameraComponent, T as RigidbodyState, g as ColliderState, P as PhysicsComponent, o as EntityType, I as ImageComponent, q as ImageTargetAnchor, p as ImageTarget, L as LightComponent, M as MaterialComponent, B as MeshComponent, F as MeshGeometryComponent, J as ModelComponent, N as Name, O as Object3DRef, W as ScriptEntry, V as ScriptComponent, Y as ScriptObjectComponentInput, X as ScriptObjectComponent, _ as Selectable, $ as SelectionTransformState, a0 as SpriteComponent, w as InstancedMeshKind, G as MeshGeometryParameters, v as InstancedMeshComponent, t as InstanceSlotComponent, a6 as VideoComponent, af as XRRigComponent, a4 as VRTeleportAreaComponent, a8 as XRHandPoseComponent, aa as XRInteractableComponent, ac as XRInteractorComponent, ae as XRInteractorSideComponent } from '../XRHandPose-CxPz8VBp.js';
1
+ import { A as AnimationComponent, b as AudioComponent, c as CameraComponentOptions, C as CameraComponent, T as RigidbodyState, g as ColliderState, P as PhysicsComponent, o as EntityType, I as ImageComponent, q as ImageTargetAnchor, p as ImageTarget, L as LightComponent, M as MaterialComponent, B as MeshComponent, F as MeshGeometryComponent, J as ModelComponent, N as Name, O as Object3DRef, W as ScriptEntry, V as ScriptComponent, Y as ScriptObjectComponentInput, X as ScriptObjectComponent, _ as Selectable, $ as SelectionTransformState, a0 as SpriteComponent, w as InstancedMeshKind, G as MeshGeometryParameters, v as InstancedMeshComponent, t as InstanceSlotComponent, a6 as VideoComponent, af as XRRigComponent, a4 as VRTeleportAreaComponent, a8 as XRHandPoseComponent, aa as XRInteractableComponent, ac as XRInteractorComponent, ae as XRInteractorSideComponent } from '../XRHandPose-B6I4y1lj.js';
2
2
  import { l as World, g as EnvironmentState, E as Environment, P as ParentId, i as PostprocessingState, h as Postprocessing, T as TransformComponent, O as ObjectManagementSystem } from '../System-31wk-A0g.js';
3
3
  import * as THREE from 'three';
4
4
  import '@dimforge/rapier3d-compat';
@@ -1,6 +1,6 @@
1
- export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstanceSlotComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createScriptObjectComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVRTeleportAreaComponent, createVideoComponent, createXRHandPoseComponent, createXRInteractableComponent, createXRInteractorComponent, createXRInteractorSideComponent, createXRRigComponent, registerDefaultComponentFactories, registerDefaultFactories } from '../chunk-KIKIWCEB.js';
2
- import '../chunk-L5BP727H.js';
3
- import '../chunk-KVGGAL5V.js';
1
+ export { createAnimationComponent, createAudioComponent, createCameraComponent, createEntityTypeComponent, createEnvironmentComponent, createImageComponent, createImageTargetAnchorComponent, createImageTargetComponent, createInstanceSlotComponent, createInstancedMeshComponent, createLightComponent, createMaterialComponent, createMeshComponent, createMeshGeometryComponent, createModelComponent, createNameComponent, createObject3DRefComponent, createParentIdComponent, createPhysicsComponent, createPostprocessingComponent, createScriptComponent, createScriptObjectComponent, createSelectableComponent, createSelectionTransformStateComponent, createSpriteComponent, createTransformComponent, createVRTeleportAreaComponent, createVideoComponent, createXRHandPoseComponent, createXRInteractableComponent, createXRInteractorComponent, createXRInteractorSideComponent, createXRRigComponent, registerDefaultComponentFactories, registerDefaultFactories } from '../chunk-FSHRPY65.js';
2
+ import '../chunk-Y3AC3VZ2.js';
3
+ import '../chunk-TXEGYR76.js';
4
4
  import '../chunk-OY7ZODZP.js';
5
5
  //# sourceMappingURL=index.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -411,10 +411,34 @@ declare class XRInteractionSystem implements EcsSystem {
411
411
  private readonly raycaster;
412
412
  private readonly grabs;
413
413
  private hoveredEntityId;
414
+ /** Per-hand hover, with the hit distance so the ray can stop at the surface. */
415
+ private readonly hovers;
414
416
  /** Monotonic seconds, accumulated from deltaTime for velocity sampling. */
415
417
  private elapsed;
416
418
  constructor(inputSystem: XRInputSystem);
417
419
  update(world: World, deltaTime: number): void;
420
+ /** Hands currently holding an entity. */
421
+ private holdersOf;
422
+ /**
423
+ * Route a new grab: first hand, hand-off, or second hand.
424
+ *
425
+ * Which of those happens is the object's choice (`grabHands`), not the
426
+ * hand's — a ball should pass between hands, a rifle should be held by both,
427
+ * and a lever should stay with whoever grabbed it first.
428
+ */
429
+ private tryGrab;
430
+ /**
431
+ * Re-derive a record's hold from where the object is NOW.
432
+ *
433
+ * Used on hand-off and on promotion after the primary lets go. Without it the
434
+ * object snaps to whatever offset the previous hand had, which reads as the
435
+ * object jumping out of your grip at the moment you take it.
436
+ */
437
+ private reanchor;
438
+ /** Capture the two-hand basis once both hands are on the object. */
439
+ private beginTwoHand;
440
+ /** World point → the object's UNSCALED local space. */
441
+ private objectLocalPoint;
418
442
  /** Whether the grab gesture for this object is currently starting. */
419
443
  private gestureMatches;
420
444
  /** True once the gesture that started the grab has ended. */
@@ -430,7 +454,19 @@ declare class XRInteractionSystem implements EcsSystem {
430
454
  private collectInteractables;
431
455
  /** Entity id of the nearest pointable hit along this source's ray, or null. */
432
456
  private raycast;
457
+ /**
458
+ * Pick the authored hold this hand should take.
459
+ *
460
+ * Filters by hand and by role — that is what makes "the trigger hand goes on
461
+ * the grip" hold regardless of which hand reaches first — then takes the
462
+ * nearest remaining one so grabbing near the foregrip picks the foregrip.
463
+ */
464
+ private chooseAttachPoint;
433
465
  private grab;
466
+ /** Drive every held object, once each, after grabs and releases settle. */
467
+ private moveAllHeld;
468
+ /** Solve and apply a two-hand hold. */
469
+ private moveTwoHand;
434
470
  private moveHeld;
435
471
  private release;
436
472
  private releaseAll;
@@ -448,8 +484,39 @@ declare class XRInteractionSystem implements EcsSystem {
448
484
  private dispatch;
449
485
  /** Entity currently under a pointer this frame, or null. */
450
486
  getHoveredEntityId(): number | null;
487
+ /**
488
+ * What this hand is pointing at, with the distance to it.
489
+ *
490
+ * The distance is what lets the pointer ray stop at the surface instead of
491
+ * passing through the object.
492
+ */
493
+ getHoverFor(handedness: XrInputState["handedness"]): {
494
+ entityId: number;
495
+ distance: number;
496
+ } | null;
497
+ /** Every entity under a pointer this frame — drives hover feedback. */
498
+ getHoveredEntityIds(): Set<number>;
499
+ /** Entities currently held, so hover feedback can skip them. */
500
+ getHeldEntityIds(): Set<number>;
451
501
  /** True when any source is holding something. */
452
502
  isGrabbing(): boolean;
503
+ /**
504
+ * How an entity is currently held.
505
+ *
506
+ * Exposed for scripts: a Behaviour can poll this in `onUpdate` to drive
507
+ * two-hand-specific behaviour — showing a bipod when both hands are on a
508
+ * weapon, reading the live hand separation to gate a gesture, or reacting to
509
+ * the scale a pull-apart produced. Returns null when nothing holds it.
510
+ */
511
+ getGrabInfo(entityId: number): {
512
+ hands: number;
513
+ primaryHandedness: XrInputState["handedness"] | null;
514
+ secondaryHandedness: XrInputState["handedness"] | null;
515
+ /** Metres between the hands, or null unless two hands are on it. */
516
+ handSeparation: number | null;
517
+ /** The attach point ids in use, in holder order. */
518
+ attachPointIds: Array<string | null>;
519
+ } | null;
453
520
  }
454
521
 
455
522
  declare class XRLocomotionSystem implements EcsSystem {
@@ -619,6 +686,14 @@ declare class XRControllerVisualSystem implements EcsSystem {
619
686
  * clutter implying the whole scene is clickable.
620
687
  */
621
688
  private shouldShowRay;
689
+ /**
690
+ * Stop the ray at whatever it is pointing at.
691
+ *
692
+ * A fixed-length ray drawn with depth testing off punches straight through the
693
+ * object, so the user cannot tell where the pointer actually lands. Scaling it
694
+ * to the hit distance turns it into a pointer that meets the surface.
695
+ */
696
+ private fitRayToHover;
622
697
  /** Lazily build per-slot visuals; the device reports profiles late. */
623
698
  private ensureSlots;
624
699
  /**
@@ -681,4 +756,35 @@ declare class XRHandPoseSystem implements EcsSystem {
681
756
  isPoseActive(entityId: number, poseId: string, handedness: "left" | "right"): boolean;
682
757
  }
683
758
 
684
- export { AnimationSystem as A, CameraSyncSystem as C, EnvironmentSyncSystem as E, InstancedMeshSystem as I, LightSyncSystem as L, MaterialSyncSystem as M, NO_XR_CAPABILITIES as N, ObjectVisibilitySystem as O, PhysicsSyncSystem as P, SCRIPT_OBJECT_ROOT_FLAG as S, VRTeleportAreaSystem as V, type XrCapabilities as X, type XrInputState as a, type XrHandPoseEventDetail as b, AudioSystem as c, MeshGeometrySystem as d, type ModuleLoader as e, PostprocessingSyncSystem as f, ScriptBehaviourSystem as g, ScriptObjectSystem as h, type SelectionContext as i, VideoSystem as j, XRControllerVisualSystem as k, XRHandPoseSystem as l, XRInputSystem as m, XRInteractionSystem as n, XRLocomotionSystem as o, XRSessionSystem as p, XRTeleportVisualSystem as q, type XrHandedness as r, type XrInputKind as s, readXrCapabilities as t };
759
+ /**
760
+ * Hover feedback for XR interactables.
761
+ *
762
+ * Without it, aiming the pointer at a grabbable object and aiming at empty space
763
+ * look identical, so users cannot tell what they are about to pick up.
764
+ *
765
+ * The colour effect is drawn as a SEPARATE shell mesh rather than by tinting the
766
+ * object's materials. Materials are frequently shared between entities (every
767
+ * instance of a loaded model points at the same one), so tinting on hover would
768
+ * light up every copy in the scene and would have to be perfectly unwound on
769
+ * un-hover to avoid leaving objects permanently stained. A shell owns its own
770
+ * material, can be removed wholesale, and cannot corrupt anything.
771
+ */
772
+ /** Marks shell meshes so they are never mistaken for scene content. */
773
+ declare const XR_HOVER_SHELL_FLAG = "__xrHoverShell";
774
+ declare class XRHoverVisualSystem implements EcsSystem {
775
+ private readonly interactionSystem;
776
+ private readonly records;
777
+ constructor(interactionSystem: XRInteractionSystem);
778
+ update(world: World, deltaTime: number): void;
779
+ private begin;
780
+ /** Build an inflated back-face copy of the object's meshes. */
781
+ private addShell;
782
+ private animate;
783
+ /** Remove the effect and restore the authored scale exactly. */
784
+ private finish;
785
+ private disposeShell;
786
+ private clearAll;
787
+ dispose(): void;
788
+ }
789
+
790
+ export { AnimationSystem as A, CameraSyncSystem as C, EnvironmentSyncSystem as E, InstancedMeshSystem as I, LightSyncSystem as L, MaterialSyncSystem as M, NO_XR_CAPABILITIES as N, ObjectVisibilitySystem as O, PhysicsSyncSystem as P, SCRIPT_OBJECT_ROOT_FLAG as S, VRTeleportAreaSystem as V, type XrCapabilities as X, type XrInputState as a, type XrHandPoseEventDetail as b, AudioSystem as c, MeshGeometrySystem as d, type ModuleLoader as e, PostprocessingSyncSystem as f, ScriptBehaviourSystem as g, ScriptObjectSystem as h, type SelectionContext as i, VideoSystem as j, XRControllerVisualSystem as k, XRHandPoseSystem as l, XRHoverVisualSystem as m, XRInputSystem as n, XRInteractionSystem as o, XRLocomotionSystem as p, XRSessionSystem as q, XRTeleportVisualSystem as r, XR_HOVER_SHELL_FLAG as s, type XrHandedness as t, type XrInputKind as u, readXrCapabilities as v };
@@ -1,4 +1,4 @@
1
- import { A as AnimationComponent, a as AnimationComponentOptions, b as AudioComponent, C as CameraComponent, c as CameraComponentOptions, d as CameraProjection, e as CameraRuntimeType, f as ColliderShape, g as ColliderState, h as CubeMeshParameters, D as DEFAULT_COLLIDER_STATE, i as DEFAULT_INSTANCED_MESH_PARAMETERS, j as DEFAULT_INSTANCE_TRANSFORM, k as DEFAULT_MESH_GEOMETRY_PARAMETERS, l as DEFAULT_PHYSICS_STATE, m as DEFAULT_POSE_CURLS, n as DEFAULT_RIGIDBODY_STATE, E as EditableMeshObjectKind, o as EntityType, I as ImageComponent, p as ImageTarget, q as ImageTargetAnchor, r as ImageTargetAnchorOptions, s as ImageTargetReference, t as InstanceSlotComponent, u as InstanceTransform, v as InstancedMeshComponent, w as InstancedMeshKind, L as LightComponent, x as LightValueState, M as MaterialComponent, y as MaterialTypeValue, z as MaterialValueState, B as MeshComponent, F as MeshGeometryComponent, G as MeshGeometryParameters, H as MeshGeometryParametersByKind, J as ModelComponent, N as Name, O as Object3DRef, P as PhysicsComponent, K as PhysicsState, Q as PlaneMeshParameters, R as RadiusHeightMeshParameters, S as RadiusMeshParameters, T as RigidbodyState, U as RigidbodyType, V as ScriptComponent, W as ScriptEntry, X as ScriptObjectComponent, Y as ScriptObjectComponentInput, Z as ScriptObjectRuntimeState, _ as Selectable, $ as SelectionTransformState, a0 as SpriteComponent, a1 as TextureFilteringValue, a2 as TransformModeValue, a3 as TransformSpaceValue, a4 as VRTeleportAreaComponent, a5 as VRTeleportAreaOptions, a6 as VideoComponent, a7 as VrTeleportShape, a8 as XRHandPoseComponent, a9 as XRHandPoseOptions, aa as XRInteractableComponent, ab as XRInteractableOptions, ac as XRInteractorComponent, ad as XRInteractorOptions, ae as XRInteractorSideComponent, af as XRRigComponent, ag as XRRigOptions, ah as XrGrabMode, ai as XrHandPoseEntry, aj as XrHandPreset, ak as XrInteractorSide, al as XrInteractorType, am as XrLocomotionMode, an as XrTrackingOrigin, ao as createHandPoseEntry, ap as defaultMaterialValue, aq as handPoseDefinitionFor, ar as normalizePhysicsState, as as setPhysicsLiveRef } from './XRHandPose-CxPz8VBp.js';
1
+ import { A as AnimationComponent, a as AnimationComponentOptions, b as AudioComponent, C as CameraComponent, c as CameraComponentOptions, d as CameraProjection, e as CameraRuntimeType, f as ColliderShape, g as ColliderState, h as CubeMeshParameters, D as DEFAULT_COLLIDER_STATE, i as DEFAULT_INSTANCED_MESH_PARAMETERS, j as DEFAULT_INSTANCE_TRANSFORM, k as DEFAULT_MESH_GEOMETRY_PARAMETERS, l as DEFAULT_PHYSICS_STATE, m as DEFAULT_POSE_CURLS, n as DEFAULT_RIGIDBODY_STATE, E as EditableMeshObjectKind, o as EntityType, I as ImageComponent, p as ImageTarget, q as ImageTargetAnchor, r as ImageTargetAnchorOptions, s as ImageTargetReference, t as InstanceSlotComponent, u as InstanceTransform, v as InstancedMeshComponent, w as InstancedMeshKind, L as LightComponent, x as LightValueState, M as MaterialComponent, y as MaterialTypeValue, z as MaterialValueState, B as MeshComponent, F as MeshGeometryComponent, G as MeshGeometryParameters, H as MeshGeometryParametersByKind, J as ModelComponent, N as Name, O as Object3DRef, P as PhysicsComponent, K as PhysicsState, Q as PlaneMeshParameters, R as RadiusHeightMeshParameters, S as RadiusMeshParameters, T as RigidbodyState, U as RigidbodyType, V as ScriptComponent, W as ScriptEntry, X as ScriptObjectComponent, Y as ScriptObjectComponentInput, Z as ScriptObjectRuntimeState, _ as Selectable, $ as SelectionTransformState, a0 as SpriteComponent, a1 as TextureFilteringValue, a2 as TransformModeValue, a3 as TransformSpaceValue, a4 as VRTeleportAreaComponent, a5 as VRTeleportAreaOptions, a6 as VideoComponent, a7 as VrTeleportShape, a8 as XRHandPoseComponent, a9 as XRHandPoseOptions, aa as XRInteractableComponent, ab as XRInteractableOptions, ac as XRInteractorComponent, ad as XRInteractorOptions, ae as XRInteractorSideComponent, af as XRRigComponent, ag as XRRigOptions, ah as XrAttachPoint, ai as XrDistanceGrabBehavior, aj as XrGrabGesture, ak as XrGrabHands, al as XrGrabReach, am as XrHandPoseEntry, an as XrHandPreset, ao as XrInteractorSide, ap as XrInteractorType, aq as XrLocomotionMode, ar as XrTrackingOrigin, as as XrTwoHandRotation, at as createAttachPoint, au as createHandPoseEntry, av as defaultMaterialValue, aw as handPoseDefinitionFor, ax as normalizePhysicsState, ay as setPhysicsLiveRef } from './XRHandPose-B6I4y1lj.js';
2
2
  import { C as Component, D as DEFAULT_ENVIRONMENT_STATE, a as DEFAULT_POSTPROCESSING_STATE, E as Environment, b as EnvironmentFogState, c as EnvironmentFogType, d as EnvironmentGradientEffect, e as EnvironmentSkyboxState, f as EnvironmentSkyboxType, g as EnvironmentState, P as ParentId, h as Postprocessing, i as PostprocessingState, T as TransformComponent, j as TransformData, V as Vec3 } from './System-31wk-A0g.js';
3
3
 
4
4
  /**
@@ -158,20 +158,26 @@ declare const index_XRInteractorOptions: typeof XRInteractorOptions;
158
158
  declare const index_XRInteractorSideComponent: typeof XRInteractorSideComponent;
159
159
  declare const index_XRRigComponent: typeof XRRigComponent;
160
160
  declare const index_XRRigOptions: typeof XRRigOptions;
161
- declare const index_XrGrabMode: typeof XrGrabMode;
161
+ declare const index_XrAttachPoint: typeof XrAttachPoint;
162
+ declare const index_XrDistanceGrabBehavior: typeof XrDistanceGrabBehavior;
163
+ declare const index_XrGrabGesture: typeof XrGrabGesture;
164
+ declare const index_XrGrabHands: typeof XrGrabHands;
165
+ declare const index_XrGrabReach: typeof XrGrabReach;
162
166
  declare const index_XrHandPoseEntry: typeof XrHandPoseEntry;
163
167
  declare const index_XrHandPreset: typeof XrHandPreset;
164
168
  declare const index_XrInteractorSide: typeof XrInteractorSide;
165
169
  declare const index_XrInteractorType: typeof XrInteractorType;
166
170
  declare const index_XrLocomotionMode: typeof XrLocomotionMode;
167
171
  declare const index_XrTrackingOrigin: typeof XrTrackingOrigin;
172
+ declare const index_XrTwoHandRotation: typeof XrTwoHandRotation;
173
+ declare const index_createAttachPoint: typeof createAttachPoint;
168
174
  declare const index_createHandPoseEntry: typeof createHandPoseEntry;
169
175
  declare const index_defaultMaterialValue: typeof defaultMaterialValue;
170
176
  declare const index_handPoseDefinitionFor: typeof handPoseDefinitionFor;
171
177
  declare const index_normalizePhysicsState: typeof normalizePhysicsState;
172
178
  declare const index_setPhysicsLiveRef: typeof setPhysicsLiveRef;
173
179
  declare namespace index {
174
- export { index_AnimationComponent as AnimationComponent, index_AnimationComponentOptions as AnimationComponentOptions, index_AudioComponent as AudioComponent, index_CameraComponent as CameraComponent, index_CameraComponentOptions as CameraComponentOptions, index_CameraProjection as CameraProjection, index_CameraRuntimeType as CameraRuntimeType, index_ColliderShape as ColliderShape, index_ColliderState as ColliderState, index_CubeMeshParameters as CubeMeshParameters, index_DEFAULT_COLLIDER_STATE as DEFAULT_COLLIDER_STATE, index_DEFAULT_ENVIRONMENT_STATE as DEFAULT_ENVIRONMENT_STATE, index_DEFAULT_INSTANCED_MESH_PARAMETERS as DEFAULT_INSTANCED_MESH_PARAMETERS, index_DEFAULT_INSTANCE_TRANSFORM as DEFAULT_INSTANCE_TRANSFORM, index_DEFAULT_MESH_GEOMETRY_PARAMETERS as DEFAULT_MESH_GEOMETRY_PARAMETERS, index_DEFAULT_PHYSICS_STATE as DEFAULT_PHYSICS_STATE, index_DEFAULT_POSE_CURLS as DEFAULT_POSE_CURLS, index_DEFAULT_POSTPROCESSING_STATE as DEFAULT_POSTPROCESSING_STATE, index_DEFAULT_RIGIDBODY_STATE as DEFAULT_RIGIDBODY_STATE, index_EditableMeshObjectKind as EditableMeshObjectKind, index_EntityType as EntityType, index_Environment as Environment, index_EnvironmentFogState as EnvironmentFogState, index_EnvironmentFogType as EnvironmentFogType, index_EnvironmentGradientEffect as EnvironmentGradientEffect, index_EnvironmentSkyboxState as EnvironmentSkyboxState, index_EnvironmentSkyboxType as EnvironmentSkyboxType, index_EnvironmentState as EnvironmentState, index_ImageComponent as ImageComponent, index_ImageTarget as ImageTarget, index_ImageTargetAnchor as ImageTargetAnchor, index_ImageTargetAnchorOptions as ImageTargetAnchorOptions, index_ImageTargetReference as ImageTargetReference, index_InstanceSlotComponent as InstanceSlotComponent, index_InstanceTransform as InstanceTransform, index_InstancedMeshComponent as InstancedMeshComponent, index_InstancedMeshKind as InstancedMeshKind, index_LightComponent as LightComponent, index_LightValueState as LightValueState, index_MaterialComponent as MaterialComponent, index_MaterialTypeValue as MaterialTypeValue, index_MaterialValueState as MaterialValueState, index_MeshComponent as MeshComponent, index_MeshGeometryComponent as MeshGeometryComponent, index_MeshGeometryParameters as MeshGeometryParameters, index_MeshGeometryParametersByKind as MeshGeometryParametersByKind, index_ModelComponent as ModelComponent, index_Name as Name, index_Object3DRef as Object3DRef, index_ParentId as ParentId, index_PhysicsComponent as PhysicsComponent, index_PhysicsState as PhysicsState, index_PlaneMeshParameters as PlaneMeshParameters, index_Postprocessing as Postprocessing, index_PostprocessingState as PostprocessingState, index_PrefabInstance as PrefabInstance, index_PrefabNode as PrefabNode, index_RadiusHeightMeshParameters as RadiusHeightMeshParameters, index_RadiusMeshParameters as RadiusMeshParameters, index_RigidbodyState as RigidbodyState, index_RigidbodyType as RigidbodyType, index_ScriptComponent as ScriptComponent, index_ScriptEntry as ScriptEntry, index_ScriptObjectComponent as ScriptObjectComponent, index_ScriptObjectComponentInput as ScriptObjectComponentInput, index_ScriptObjectRuntimeState as ScriptObjectRuntimeState, index_Selectable as Selectable, index_SelectionTransformState as SelectionTransformState, index_SpriteComponent as SpriteComponent, index_TextureFilteringValue as TextureFilteringValue, index_TransformComponent as TransformComponent, index_TransformData as TransformData, index_TransformModeValue as TransformModeValue, index_TransformSpaceValue as TransformSpaceValue, index_VRTeleportAreaComponent as VRTeleportAreaComponent, index_VRTeleportAreaOptions as VRTeleportAreaOptions, index_Vec3 as Vec3, index_VideoComponent as VideoComponent, index_VrTeleportShape as VrTeleportShape, index_XRHandPoseComponent as XRHandPoseComponent, index_XRHandPoseOptions as XRHandPoseOptions, index_XRInteractableComponent as XRInteractableComponent, index_XRInteractableOptions as XRInteractableOptions, index_XRInteractorComponent as XRInteractorComponent, index_XRInteractorOptions as XRInteractorOptions, index_XRInteractorSideComponent as XRInteractorSideComponent, index_XRRigComponent as XRRigComponent, index_XRRigOptions as XRRigOptions, index_XrGrabMode as XrGrabMode, index_XrHandPoseEntry as XrHandPoseEntry, index_XrHandPreset as XrHandPreset, index_XrInteractorSide as XrInteractorSide, index_XrInteractorType as XrInteractorType, index_XrLocomotionMode as XrLocomotionMode, index_XrTrackingOrigin as XrTrackingOrigin, index_createHandPoseEntry as createHandPoseEntry, index_defaultMaterialValue as defaultMaterialValue, index_handPoseDefinitionFor as handPoseDefinitionFor, index_normalizePhysicsState as normalizePhysicsState, index_setPhysicsLiveRef as setPhysicsLiveRef };
180
+ export { index_AnimationComponent as AnimationComponent, index_AnimationComponentOptions as AnimationComponentOptions, index_AudioComponent as AudioComponent, index_CameraComponent as CameraComponent, index_CameraComponentOptions as CameraComponentOptions, index_CameraProjection as CameraProjection, index_CameraRuntimeType as CameraRuntimeType, index_ColliderShape as ColliderShape, index_ColliderState as ColliderState, index_CubeMeshParameters as CubeMeshParameters, index_DEFAULT_COLLIDER_STATE as DEFAULT_COLLIDER_STATE, index_DEFAULT_ENVIRONMENT_STATE as DEFAULT_ENVIRONMENT_STATE, index_DEFAULT_INSTANCED_MESH_PARAMETERS as DEFAULT_INSTANCED_MESH_PARAMETERS, index_DEFAULT_INSTANCE_TRANSFORM as DEFAULT_INSTANCE_TRANSFORM, index_DEFAULT_MESH_GEOMETRY_PARAMETERS as DEFAULT_MESH_GEOMETRY_PARAMETERS, index_DEFAULT_PHYSICS_STATE as DEFAULT_PHYSICS_STATE, index_DEFAULT_POSE_CURLS as DEFAULT_POSE_CURLS, index_DEFAULT_POSTPROCESSING_STATE as DEFAULT_POSTPROCESSING_STATE, index_DEFAULT_RIGIDBODY_STATE as DEFAULT_RIGIDBODY_STATE, index_EditableMeshObjectKind as EditableMeshObjectKind, index_EntityType as EntityType, index_Environment as Environment, index_EnvironmentFogState as EnvironmentFogState, index_EnvironmentFogType as EnvironmentFogType, index_EnvironmentGradientEffect as EnvironmentGradientEffect, index_EnvironmentSkyboxState as EnvironmentSkyboxState, index_EnvironmentSkyboxType as EnvironmentSkyboxType, index_EnvironmentState as EnvironmentState, index_ImageComponent as ImageComponent, index_ImageTarget as ImageTarget, index_ImageTargetAnchor as ImageTargetAnchor, index_ImageTargetAnchorOptions as ImageTargetAnchorOptions, index_ImageTargetReference as ImageTargetReference, index_InstanceSlotComponent as InstanceSlotComponent, index_InstanceTransform as InstanceTransform, index_InstancedMeshComponent as InstancedMeshComponent, index_InstancedMeshKind as InstancedMeshKind, index_LightComponent as LightComponent, index_LightValueState as LightValueState, index_MaterialComponent as MaterialComponent, index_MaterialTypeValue as MaterialTypeValue, index_MaterialValueState as MaterialValueState, index_MeshComponent as MeshComponent, index_MeshGeometryComponent as MeshGeometryComponent, index_MeshGeometryParameters as MeshGeometryParameters, index_MeshGeometryParametersByKind as MeshGeometryParametersByKind, index_ModelComponent as ModelComponent, index_Name as Name, index_Object3DRef as Object3DRef, index_ParentId as ParentId, index_PhysicsComponent as PhysicsComponent, index_PhysicsState as PhysicsState, index_PlaneMeshParameters as PlaneMeshParameters, index_Postprocessing as Postprocessing, index_PostprocessingState as PostprocessingState, index_PrefabInstance as PrefabInstance, index_PrefabNode as PrefabNode, index_RadiusHeightMeshParameters as RadiusHeightMeshParameters, index_RadiusMeshParameters as RadiusMeshParameters, index_RigidbodyState as RigidbodyState, index_RigidbodyType as RigidbodyType, index_ScriptComponent as ScriptComponent, index_ScriptEntry as ScriptEntry, index_ScriptObjectComponent as ScriptObjectComponent, index_ScriptObjectComponentInput as ScriptObjectComponentInput, index_ScriptObjectRuntimeState as ScriptObjectRuntimeState, index_Selectable as Selectable, index_SelectionTransformState as SelectionTransformState, index_SpriteComponent as SpriteComponent, index_TextureFilteringValue as TextureFilteringValue, index_TransformComponent as TransformComponent, index_TransformData as TransformData, index_TransformModeValue as TransformModeValue, index_TransformSpaceValue as TransformSpaceValue, index_VRTeleportAreaComponent as VRTeleportAreaComponent, index_VRTeleportAreaOptions as VRTeleportAreaOptions, index_Vec3 as Vec3, index_VideoComponent as VideoComponent, index_VrTeleportShape as VrTeleportShape, index_XRHandPoseComponent as XRHandPoseComponent, index_XRHandPoseOptions as XRHandPoseOptions, index_XRInteractableComponent as XRInteractableComponent, index_XRInteractableOptions as XRInteractableOptions, index_XRInteractorComponent as XRInteractorComponent, index_XRInteractorOptions as XRInteractorOptions, index_XRInteractorSideComponent as XRInteractorSideComponent, index_XRRigComponent as XRRigComponent, index_XRRigOptions as XRRigOptions, index_XrAttachPoint as XrAttachPoint, index_XrDistanceGrabBehavior as XrDistanceGrabBehavior, index_XrGrabGesture as XrGrabGesture, index_XrGrabHands as XrGrabHands, index_XrGrabReach as XrGrabReach, index_XrHandPoseEntry as XrHandPoseEntry, index_XrHandPreset as XrHandPreset, index_XrInteractorSide as XrInteractorSide, index_XrInteractorType as XrInteractorType, index_XrLocomotionMode as XrLocomotionMode, index_XrTrackingOrigin as XrTrackingOrigin, index_XrTwoHandRotation as XrTwoHandRotation, index_createAttachPoint as createAttachPoint, index_createHandPoseEntry as createHandPoseEntry, index_defaultMaterialValue as defaultMaterialValue, index_handPoseDefinitionFor as handPoseDefinitionFor, index_normalizePhysicsState as normalizePhysicsState, index_setPhysicsLiveRef as setPhysicsLiveRef };
175
181
  }
176
182
 
177
183
  export { PrefabInstance as P, PrefabNode as a, index as i };
@@ -1,4 +1,4 @@
1
- import { A as AnimationComponent, a as AnimationComponentOptions, b as AudioComponent, C as CameraComponent, c as CameraComponentOptions, d as CameraProjection, e as CameraRuntimeType, f as ColliderShape, g as ColliderState, h as CubeMeshParameters, D as DEFAULT_COLLIDER_STATE, i as DEFAULT_INSTANCED_MESH_PARAMETERS, j as DEFAULT_INSTANCE_TRANSFORM, k as DEFAULT_MESH_GEOMETRY_PARAMETERS, l as DEFAULT_PHYSICS_STATE, m as DEFAULT_POSE_CURLS, n as DEFAULT_RIGIDBODY_STATE, E as EditableMeshObjectKind, o as EntityType, I as ImageComponent, p as ImageTarget, q as ImageTargetAnchor, r as ImageTargetAnchorOptions, s as ImageTargetReference, t as InstanceSlotComponent, u as InstanceTransform, v as InstancedMeshComponent, w as InstancedMeshKind, L as LightComponent, x as LightValueState, M as MaterialComponent, y as MaterialTypeValue, z as MaterialValueState, B as MeshComponent, F as MeshGeometryComponent, G as MeshGeometryParameters, H as MeshGeometryParametersByKind, J as ModelComponent, N as Name, O as Object3DRef, P as PhysicsComponent, K as PhysicsState, Q as PlaneMeshParameters, R as RadiusHeightMeshParameters, S as RadiusMeshParameters, T as RigidbodyState, U as RigidbodyType, V as ScriptComponent, W as ScriptEntry, X as ScriptObjectComponent, Y as ScriptObjectComponentInput, Z as ScriptObjectRuntimeState, _ as Selectable, $ as SelectionTransformState, a0 as SpriteComponent, a1 as TextureFilteringValue, a2 as TransformModeValue, a3 as TransformSpaceValue, a4 as VRTeleportAreaComponent, a5 as VRTeleportAreaOptions, a6 as VideoComponent, a7 as VrTeleportShape, a8 as XRHandPoseComponent, a9 as XRHandPoseOptions, aa as XRInteractableComponent, ab as XRInteractableOptions, ac as XRInteractorComponent, ad as XRInteractorOptions, ae as XRInteractorSideComponent, af as XRRigComponent, ag as XRRigOptions, ah as XrGrabMode, ai as XrHandPoseEntry, aj as XrHandPreset, ak as XrInteractorSide, al as XrInteractorType, am as XrLocomotionMode, an as XrTrackingOrigin, ao as createHandPoseEntry, ap as defaultMaterialValue, aq as handPoseDefinitionFor, ar as normalizePhysicsState, as as setPhysicsLiveRef } from './XRHandPose-VuSbe4iz.cjs';
1
+ import { A as AnimationComponent, a as AnimationComponentOptions, b as AudioComponent, C as CameraComponent, c as CameraComponentOptions, d as CameraProjection, e as CameraRuntimeType, f as ColliderShape, g as ColliderState, h as CubeMeshParameters, D as DEFAULT_COLLIDER_STATE, i as DEFAULT_INSTANCED_MESH_PARAMETERS, j as DEFAULT_INSTANCE_TRANSFORM, k as DEFAULT_MESH_GEOMETRY_PARAMETERS, l as DEFAULT_PHYSICS_STATE, m as DEFAULT_POSE_CURLS, n as DEFAULT_RIGIDBODY_STATE, E as EditableMeshObjectKind, o as EntityType, I as ImageComponent, p as ImageTarget, q as ImageTargetAnchor, r as ImageTargetAnchorOptions, s as ImageTargetReference, t as InstanceSlotComponent, u as InstanceTransform, v as InstancedMeshComponent, w as InstancedMeshKind, L as LightComponent, x as LightValueState, M as MaterialComponent, y as MaterialTypeValue, z as MaterialValueState, B as MeshComponent, F as MeshGeometryComponent, G as MeshGeometryParameters, H as MeshGeometryParametersByKind, J as ModelComponent, N as Name, O as Object3DRef, P as PhysicsComponent, K as PhysicsState, Q as PlaneMeshParameters, R as RadiusHeightMeshParameters, S as RadiusMeshParameters, T as RigidbodyState, U as RigidbodyType, V as ScriptComponent, W as ScriptEntry, X as ScriptObjectComponent, Y as ScriptObjectComponentInput, Z as ScriptObjectRuntimeState, _ as Selectable, $ as SelectionTransformState, a0 as SpriteComponent, a1 as TextureFilteringValue, a2 as TransformModeValue, a3 as TransformSpaceValue, a4 as VRTeleportAreaComponent, a5 as VRTeleportAreaOptions, a6 as VideoComponent, a7 as VrTeleportShape, a8 as XRHandPoseComponent, a9 as XRHandPoseOptions, aa as XRInteractableComponent, ab as XRInteractableOptions, ac as XRInteractorComponent, ad as XRInteractorOptions, ae as XRInteractorSideComponent, af as XRRigComponent, ag as XRRigOptions, ah as XrAttachPoint, ai as XrDistanceGrabBehavior, aj as XrGrabGesture, ak as XrGrabHands, al as XrGrabReach, am as XrHandPoseEntry, an as XrHandPreset, ao as XrInteractorSide, ap as XrInteractorType, aq as XrLocomotionMode, ar as XrTrackingOrigin, as as XrTwoHandRotation, at as createAttachPoint, au as createHandPoseEntry, av as defaultMaterialValue, aw as handPoseDefinitionFor, ax as normalizePhysicsState, ay as setPhysicsLiveRef } from './XRHandPose-C-KJeYcJ.cjs';
2
2
  import { C as Component, D as DEFAULT_ENVIRONMENT_STATE, a as DEFAULT_POSTPROCESSING_STATE, E as Environment, b as EnvironmentFogState, c as EnvironmentFogType, d as EnvironmentGradientEffect, e as EnvironmentSkyboxState, f as EnvironmentSkyboxType, g as EnvironmentState, P as ParentId, h as Postprocessing, i as PostprocessingState, T as TransformComponent, j as TransformData, V as Vec3 } from './System-31wk-A0g.cjs';
3
3
 
4
4
  /**
@@ -158,20 +158,26 @@ declare const index_XRInteractorOptions: typeof XRInteractorOptions;
158
158
  declare const index_XRInteractorSideComponent: typeof XRInteractorSideComponent;
159
159
  declare const index_XRRigComponent: typeof XRRigComponent;
160
160
  declare const index_XRRigOptions: typeof XRRigOptions;
161
- declare const index_XrGrabMode: typeof XrGrabMode;
161
+ declare const index_XrAttachPoint: typeof XrAttachPoint;
162
+ declare const index_XrDistanceGrabBehavior: typeof XrDistanceGrabBehavior;
163
+ declare const index_XrGrabGesture: typeof XrGrabGesture;
164
+ declare const index_XrGrabHands: typeof XrGrabHands;
165
+ declare const index_XrGrabReach: typeof XrGrabReach;
162
166
  declare const index_XrHandPoseEntry: typeof XrHandPoseEntry;
163
167
  declare const index_XrHandPreset: typeof XrHandPreset;
164
168
  declare const index_XrInteractorSide: typeof XrInteractorSide;
165
169
  declare const index_XrInteractorType: typeof XrInteractorType;
166
170
  declare const index_XrLocomotionMode: typeof XrLocomotionMode;
167
171
  declare const index_XrTrackingOrigin: typeof XrTrackingOrigin;
172
+ declare const index_XrTwoHandRotation: typeof XrTwoHandRotation;
173
+ declare const index_createAttachPoint: typeof createAttachPoint;
168
174
  declare const index_createHandPoseEntry: typeof createHandPoseEntry;
169
175
  declare const index_defaultMaterialValue: typeof defaultMaterialValue;
170
176
  declare const index_handPoseDefinitionFor: typeof handPoseDefinitionFor;
171
177
  declare const index_normalizePhysicsState: typeof normalizePhysicsState;
172
178
  declare const index_setPhysicsLiveRef: typeof setPhysicsLiveRef;
173
179
  declare namespace index {
174
- export { index_AnimationComponent as AnimationComponent, index_AnimationComponentOptions as AnimationComponentOptions, index_AudioComponent as AudioComponent, index_CameraComponent as CameraComponent, index_CameraComponentOptions as CameraComponentOptions, index_CameraProjection as CameraProjection, index_CameraRuntimeType as CameraRuntimeType, index_ColliderShape as ColliderShape, index_ColliderState as ColliderState, index_CubeMeshParameters as CubeMeshParameters, index_DEFAULT_COLLIDER_STATE as DEFAULT_COLLIDER_STATE, index_DEFAULT_ENVIRONMENT_STATE as DEFAULT_ENVIRONMENT_STATE, index_DEFAULT_INSTANCED_MESH_PARAMETERS as DEFAULT_INSTANCED_MESH_PARAMETERS, index_DEFAULT_INSTANCE_TRANSFORM as DEFAULT_INSTANCE_TRANSFORM, index_DEFAULT_MESH_GEOMETRY_PARAMETERS as DEFAULT_MESH_GEOMETRY_PARAMETERS, index_DEFAULT_PHYSICS_STATE as DEFAULT_PHYSICS_STATE, index_DEFAULT_POSE_CURLS as DEFAULT_POSE_CURLS, index_DEFAULT_POSTPROCESSING_STATE as DEFAULT_POSTPROCESSING_STATE, index_DEFAULT_RIGIDBODY_STATE as DEFAULT_RIGIDBODY_STATE, index_EditableMeshObjectKind as EditableMeshObjectKind, index_EntityType as EntityType, index_Environment as Environment, index_EnvironmentFogState as EnvironmentFogState, index_EnvironmentFogType as EnvironmentFogType, index_EnvironmentGradientEffect as EnvironmentGradientEffect, index_EnvironmentSkyboxState as EnvironmentSkyboxState, index_EnvironmentSkyboxType as EnvironmentSkyboxType, index_EnvironmentState as EnvironmentState, index_ImageComponent as ImageComponent, index_ImageTarget as ImageTarget, index_ImageTargetAnchor as ImageTargetAnchor, index_ImageTargetAnchorOptions as ImageTargetAnchorOptions, index_ImageTargetReference as ImageTargetReference, index_InstanceSlotComponent as InstanceSlotComponent, index_InstanceTransform as InstanceTransform, index_InstancedMeshComponent as InstancedMeshComponent, index_InstancedMeshKind as InstancedMeshKind, index_LightComponent as LightComponent, index_LightValueState as LightValueState, index_MaterialComponent as MaterialComponent, index_MaterialTypeValue as MaterialTypeValue, index_MaterialValueState as MaterialValueState, index_MeshComponent as MeshComponent, index_MeshGeometryComponent as MeshGeometryComponent, index_MeshGeometryParameters as MeshGeometryParameters, index_MeshGeometryParametersByKind as MeshGeometryParametersByKind, index_ModelComponent as ModelComponent, index_Name as Name, index_Object3DRef as Object3DRef, index_ParentId as ParentId, index_PhysicsComponent as PhysicsComponent, index_PhysicsState as PhysicsState, index_PlaneMeshParameters as PlaneMeshParameters, index_Postprocessing as Postprocessing, index_PostprocessingState as PostprocessingState, index_PrefabInstance as PrefabInstance, index_PrefabNode as PrefabNode, index_RadiusHeightMeshParameters as RadiusHeightMeshParameters, index_RadiusMeshParameters as RadiusMeshParameters, index_RigidbodyState as RigidbodyState, index_RigidbodyType as RigidbodyType, index_ScriptComponent as ScriptComponent, index_ScriptEntry as ScriptEntry, index_ScriptObjectComponent as ScriptObjectComponent, index_ScriptObjectComponentInput as ScriptObjectComponentInput, index_ScriptObjectRuntimeState as ScriptObjectRuntimeState, index_Selectable as Selectable, index_SelectionTransformState as SelectionTransformState, index_SpriteComponent as SpriteComponent, index_TextureFilteringValue as TextureFilteringValue, index_TransformComponent as TransformComponent, index_TransformData as TransformData, index_TransformModeValue as TransformModeValue, index_TransformSpaceValue as TransformSpaceValue, index_VRTeleportAreaComponent as VRTeleportAreaComponent, index_VRTeleportAreaOptions as VRTeleportAreaOptions, index_Vec3 as Vec3, index_VideoComponent as VideoComponent, index_VrTeleportShape as VrTeleportShape, index_XRHandPoseComponent as XRHandPoseComponent, index_XRHandPoseOptions as XRHandPoseOptions, index_XRInteractableComponent as XRInteractableComponent, index_XRInteractableOptions as XRInteractableOptions, index_XRInteractorComponent as XRInteractorComponent, index_XRInteractorOptions as XRInteractorOptions, index_XRInteractorSideComponent as XRInteractorSideComponent, index_XRRigComponent as XRRigComponent, index_XRRigOptions as XRRigOptions, index_XrGrabMode as XrGrabMode, index_XrHandPoseEntry as XrHandPoseEntry, index_XrHandPreset as XrHandPreset, index_XrInteractorSide as XrInteractorSide, index_XrInteractorType as XrInteractorType, index_XrLocomotionMode as XrLocomotionMode, index_XrTrackingOrigin as XrTrackingOrigin, index_createHandPoseEntry as createHandPoseEntry, index_defaultMaterialValue as defaultMaterialValue, index_handPoseDefinitionFor as handPoseDefinitionFor, index_normalizePhysicsState as normalizePhysicsState, index_setPhysicsLiveRef as setPhysicsLiveRef };
180
+ export { index_AnimationComponent as AnimationComponent, index_AnimationComponentOptions as AnimationComponentOptions, index_AudioComponent as AudioComponent, index_CameraComponent as CameraComponent, index_CameraComponentOptions as CameraComponentOptions, index_CameraProjection as CameraProjection, index_CameraRuntimeType as CameraRuntimeType, index_ColliderShape as ColliderShape, index_ColliderState as ColliderState, index_CubeMeshParameters as CubeMeshParameters, index_DEFAULT_COLLIDER_STATE as DEFAULT_COLLIDER_STATE, index_DEFAULT_ENVIRONMENT_STATE as DEFAULT_ENVIRONMENT_STATE, index_DEFAULT_INSTANCED_MESH_PARAMETERS as DEFAULT_INSTANCED_MESH_PARAMETERS, index_DEFAULT_INSTANCE_TRANSFORM as DEFAULT_INSTANCE_TRANSFORM, index_DEFAULT_MESH_GEOMETRY_PARAMETERS as DEFAULT_MESH_GEOMETRY_PARAMETERS, index_DEFAULT_PHYSICS_STATE as DEFAULT_PHYSICS_STATE, index_DEFAULT_POSE_CURLS as DEFAULT_POSE_CURLS, index_DEFAULT_POSTPROCESSING_STATE as DEFAULT_POSTPROCESSING_STATE, index_DEFAULT_RIGIDBODY_STATE as DEFAULT_RIGIDBODY_STATE, index_EditableMeshObjectKind as EditableMeshObjectKind, index_EntityType as EntityType, index_Environment as Environment, index_EnvironmentFogState as EnvironmentFogState, index_EnvironmentFogType as EnvironmentFogType, index_EnvironmentGradientEffect as EnvironmentGradientEffect, index_EnvironmentSkyboxState as EnvironmentSkyboxState, index_EnvironmentSkyboxType as EnvironmentSkyboxType, index_EnvironmentState as EnvironmentState, index_ImageComponent as ImageComponent, index_ImageTarget as ImageTarget, index_ImageTargetAnchor as ImageTargetAnchor, index_ImageTargetAnchorOptions as ImageTargetAnchorOptions, index_ImageTargetReference as ImageTargetReference, index_InstanceSlotComponent as InstanceSlotComponent, index_InstanceTransform as InstanceTransform, index_InstancedMeshComponent as InstancedMeshComponent, index_InstancedMeshKind as InstancedMeshKind, index_LightComponent as LightComponent, index_LightValueState as LightValueState, index_MaterialComponent as MaterialComponent, index_MaterialTypeValue as MaterialTypeValue, index_MaterialValueState as MaterialValueState, index_MeshComponent as MeshComponent, index_MeshGeometryComponent as MeshGeometryComponent, index_MeshGeometryParameters as MeshGeometryParameters, index_MeshGeometryParametersByKind as MeshGeometryParametersByKind, index_ModelComponent as ModelComponent, index_Name as Name, index_Object3DRef as Object3DRef, index_ParentId as ParentId, index_PhysicsComponent as PhysicsComponent, index_PhysicsState as PhysicsState, index_PlaneMeshParameters as PlaneMeshParameters, index_Postprocessing as Postprocessing, index_PostprocessingState as PostprocessingState, index_PrefabInstance as PrefabInstance, index_PrefabNode as PrefabNode, index_RadiusHeightMeshParameters as RadiusHeightMeshParameters, index_RadiusMeshParameters as RadiusMeshParameters, index_RigidbodyState as RigidbodyState, index_RigidbodyType as RigidbodyType, index_ScriptComponent as ScriptComponent, index_ScriptEntry as ScriptEntry, index_ScriptObjectComponent as ScriptObjectComponent, index_ScriptObjectComponentInput as ScriptObjectComponentInput, index_ScriptObjectRuntimeState as ScriptObjectRuntimeState, index_Selectable as Selectable, index_SelectionTransformState as SelectionTransformState, index_SpriteComponent as SpriteComponent, index_TextureFilteringValue as TextureFilteringValue, index_TransformComponent as TransformComponent, index_TransformData as TransformData, index_TransformModeValue as TransformModeValue, index_TransformSpaceValue as TransformSpaceValue, index_VRTeleportAreaComponent as VRTeleportAreaComponent, index_VRTeleportAreaOptions as VRTeleportAreaOptions, index_Vec3 as Vec3, index_VideoComponent as VideoComponent, index_VrTeleportShape as VrTeleportShape, index_XRHandPoseComponent as XRHandPoseComponent, index_XRHandPoseOptions as XRHandPoseOptions, index_XRInteractableComponent as XRInteractableComponent, index_XRInteractableOptions as XRInteractableOptions, index_XRInteractorComponent as XRInteractorComponent, index_XRInteractorOptions as XRInteractorOptions, index_XRInteractorSideComponent as XRInteractorSideComponent, index_XRRigComponent as XRRigComponent, index_XRRigOptions as XRRigOptions, index_XrAttachPoint as XrAttachPoint, index_XrDistanceGrabBehavior as XrDistanceGrabBehavior, index_XrGrabGesture as XrGrabGesture, index_XrGrabHands as XrGrabHands, index_XrGrabReach as XrGrabReach, index_XrHandPoseEntry as XrHandPoseEntry, index_XrHandPreset as XrHandPreset, index_XrInteractorSide as XrInteractorSide, index_XrInteractorType as XrInteractorType, index_XrLocomotionMode as XrLocomotionMode, index_XrTrackingOrigin as XrTrackingOrigin, index_XrTwoHandRotation as XrTwoHandRotation, index_createAttachPoint as createAttachPoint, index_createHandPoseEntry as createHandPoseEntry, index_defaultMaterialValue as defaultMaterialValue, index_handPoseDefinitionFor as handPoseDefinitionFor, index_normalizePhysicsState as normalizePhysicsState, index_setPhysicsLiveRef as setPhysicsLiveRef };
175
181
  }
176
182
 
177
183
  export { PrefabInstance as P, PrefabNode as a, index as i };
@@ -411,10 +411,34 @@ declare class XRInteractionSystem implements EcsSystem {
411
411
  private readonly raycaster;
412
412
  private readonly grabs;
413
413
  private hoveredEntityId;
414
+ /** Per-hand hover, with the hit distance so the ray can stop at the surface. */
415
+ private readonly hovers;
414
416
  /** Monotonic seconds, accumulated from deltaTime for velocity sampling. */
415
417
  private elapsed;
416
418
  constructor(inputSystem: XRInputSystem);
417
419
  update(world: World, deltaTime: number): void;
420
+ /** Hands currently holding an entity. */
421
+ private holdersOf;
422
+ /**
423
+ * Route a new grab: first hand, hand-off, or second hand.
424
+ *
425
+ * Which of those happens is the object's choice (`grabHands`), not the
426
+ * hand's — a ball should pass between hands, a rifle should be held by both,
427
+ * and a lever should stay with whoever grabbed it first.
428
+ */
429
+ private tryGrab;
430
+ /**
431
+ * Re-derive a record's hold from where the object is NOW.
432
+ *
433
+ * Used on hand-off and on promotion after the primary lets go. Without it the
434
+ * object snaps to whatever offset the previous hand had, which reads as the
435
+ * object jumping out of your grip at the moment you take it.
436
+ */
437
+ private reanchor;
438
+ /** Capture the two-hand basis once both hands are on the object. */
439
+ private beginTwoHand;
440
+ /** World point → the object's UNSCALED local space. */
441
+ private objectLocalPoint;
418
442
  /** Whether the grab gesture for this object is currently starting. */
419
443
  private gestureMatches;
420
444
  /** True once the gesture that started the grab has ended. */
@@ -430,7 +454,19 @@ declare class XRInteractionSystem implements EcsSystem {
430
454
  private collectInteractables;
431
455
  /** Entity id of the nearest pointable hit along this source's ray, or null. */
432
456
  private raycast;
457
+ /**
458
+ * Pick the authored hold this hand should take.
459
+ *
460
+ * Filters by hand and by role — that is what makes "the trigger hand goes on
461
+ * the grip" hold regardless of which hand reaches first — then takes the
462
+ * nearest remaining one so grabbing near the foregrip picks the foregrip.
463
+ */
464
+ private chooseAttachPoint;
433
465
  private grab;
466
+ /** Drive every held object, once each, after grabs and releases settle. */
467
+ private moveAllHeld;
468
+ /** Solve and apply a two-hand hold. */
469
+ private moveTwoHand;
434
470
  private moveHeld;
435
471
  private release;
436
472
  private releaseAll;
@@ -448,8 +484,39 @@ declare class XRInteractionSystem implements EcsSystem {
448
484
  private dispatch;
449
485
  /** Entity currently under a pointer this frame, or null. */
450
486
  getHoveredEntityId(): number | null;
487
+ /**
488
+ * What this hand is pointing at, with the distance to it.
489
+ *
490
+ * The distance is what lets the pointer ray stop at the surface instead of
491
+ * passing through the object.
492
+ */
493
+ getHoverFor(handedness: XrInputState["handedness"]): {
494
+ entityId: number;
495
+ distance: number;
496
+ } | null;
497
+ /** Every entity under a pointer this frame — drives hover feedback. */
498
+ getHoveredEntityIds(): Set<number>;
499
+ /** Entities currently held, so hover feedback can skip them. */
500
+ getHeldEntityIds(): Set<number>;
451
501
  /** True when any source is holding something. */
452
502
  isGrabbing(): boolean;
503
+ /**
504
+ * How an entity is currently held.
505
+ *
506
+ * Exposed for scripts: a Behaviour can poll this in `onUpdate` to drive
507
+ * two-hand-specific behaviour — showing a bipod when both hands are on a
508
+ * weapon, reading the live hand separation to gate a gesture, or reacting to
509
+ * the scale a pull-apart produced. Returns null when nothing holds it.
510
+ */
511
+ getGrabInfo(entityId: number): {
512
+ hands: number;
513
+ primaryHandedness: XrInputState["handedness"] | null;
514
+ secondaryHandedness: XrInputState["handedness"] | null;
515
+ /** Metres between the hands, or null unless two hands are on it. */
516
+ handSeparation: number | null;
517
+ /** The attach point ids in use, in holder order. */
518
+ attachPointIds: Array<string | null>;
519
+ } | null;
453
520
  }
454
521
 
455
522
  declare class XRLocomotionSystem implements EcsSystem {
@@ -619,6 +686,14 @@ declare class XRControllerVisualSystem implements EcsSystem {
619
686
  * clutter implying the whole scene is clickable.
620
687
  */
621
688
  private shouldShowRay;
689
+ /**
690
+ * Stop the ray at whatever it is pointing at.
691
+ *
692
+ * A fixed-length ray drawn with depth testing off punches straight through the
693
+ * object, so the user cannot tell where the pointer actually lands. Scaling it
694
+ * to the hit distance turns it into a pointer that meets the surface.
695
+ */
696
+ private fitRayToHover;
622
697
  /** Lazily build per-slot visuals; the device reports profiles late. */
623
698
  private ensureSlots;
624
699
  /**
@@ -681,4 +756,35 @@ declare class XRHandPoseSystem implements EcsSystem {
681
756
  isPoseActive(entityId: number, poseId: string, handedness: "left" | "right"): boolean;
682
757
  }
683
758
 
684
- export { AnimationSystem as A, CameraSyncSystem as C, EnvironmentSyncSystem as E, InstancedMeshSystem as I, LightSyncSystem as L, MaterialSyncSystem as M, NO_XR_CAPABILITIES as N, ObjectVisibilitySystem as O, PhysicsSyncSystem as P, SCRIPT_OBJECT_ROOT_FLAG as S, VRTeleportAreaSystem as V, type XrCapabilities as X, type XrInputState as a, type XrHandPoseEventDetail as b, AudioSystem as c, MeshGeometrySystem as d, type ModuleLoader as e, PostprocessingSyncSystem as f, ScriptBehaviourSystem as g, ScriptObjectSystem as h, type SelectionContext as i, VideoSystem as j, XRControllerVisualSystem as k, XRHandPoseSystem as l, XRInputSystem as m, XRInteractionSystem as n, XRLocomotionSystem as o, XRSessionSystem as p, XRTeleportVisualSystem as q, type XrHandedness as r, type XrInputKind as s, readXrCapabilities as t };
759
+ /**
760
+ * Hover feedback for XR interactables.
761
+ *
762
+ * Without it, aiming the pointer at a grabbable object and aiming at empty space
763
+ * look identical, so users cannot tell what they are about to pick up.
764
+ *
765
+ * The colour effect is drawn as a SEPARATE shell mesh rather than by tinting the
766
+ * object's materials. Materials are frequently shared between entities (every
767
+ * instance of a loaded model points at the same one), so tinting on hover would
768
+ * light up every copy in the scene and would have to be perfectly unwound on
769
+ * un-hover to avoid leaving objects permanently stained. A shell owns its own
770
+ * material, can be removed wholesale, and cannot corrupt anything.
771
+ */
772
+ /** Marks shell meshes so they are never mistaken for scene content. */
773
+ declare const XR_HOVER_SHELL_FLAG = "__xrHoverShell";
774
+ declare class XRHoverVisualSystem implements EcsSystem {
775
+ private readonly interactionSystem;
776
+ private readonly records;
777
+ constructor(interactionSystem: XRInteractionSystem);
778
+ update(world: World, deltaTime: number): void;
779
+ private begin;
780
+ /** Build an inflated back-face copy of the object's meshes. */
781
+ private addShell;
782
+ private animate;
783
+ /** Remove the effect and restore the authored scale exactly. */
784
+ private finish;
785
+ private disposeShell;
786
+ private clearAll;
787
+ dispose(): void;
788
+ }
789
+
790
+ export { AnimationSystem as A, CameraSyncSystem as C, EnvironmentSyncSystem as E, InstancedMeshSystem as I, LightSyncSystem as L, MaterialSyncSystem as M, NO_XR_CAPABILITIES as N, ObjectVisibilitySystem as O, PhysicsSyncSystem as P, SCRIPT_OBJECT_ROOT_FLAG as S, VRTeleportAreaSystem as V, type XrCapabilities as X, type XrInputState as a, type XrHandPoseEventDetail as b, AudioSystem as c, MeshGeometrySystem as d, type ModuleLoader as e, PostprocessingSyncSystem as f, ScriptBehaviourSystem as g, ScriptObjectSystem as h, type SelectionContext as i, VideoSystem as j, XRControllerVisualSystem as k, XRHandPoseSystem as l, XRHoverVisualSystem as m, XRInputSystem as n, XRInteractionSystem as o, XRLocomotionSystem as p, XRSessionSystem as q, XRTeleportVisualSystem as r, XR_HOVER_SHELL_FLAG as s, type XrHandedness as t, type XrInputKind as u, readXrCapabilities as v };