@relu-interactives/spatial-ecs 0.11.0 → 0.11.1

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 (503) hide show
  1. package/dist/{System-BldSHxZV.d.cts → System-D8vm-Jvv.d.cts} +110 -3
  2. package/dist/{System-CADhPyQs.d.ts → System-ttkDQCrj.d.ts} +110 -3
  3. package/dist/{XRHandPose-D3Ab1Dfs.d.cts → XRHandPose-C97XVW2R.d.cts} +2 -41
  4. package/dist/{XRHandPose-BNSwd1y9.d.ts → XRHandPose-CxXtWF1y.d.ts} +2 -41
  5. package/dist/animation/index.cjs +33 -1
  6. package/dist/animation/index.cjs.map +1 -1
  7. package/dist/animation/index.js +1 -1
  8. package/dist/{chunk-TY3XCHOR.js → chunk-2DJBNWBB.js} +56 -15
  9. package/dist/chunk-2DJBNWBB.js.map +1 -0
  10. package/dist/{chunk-WWP46AEF.js → chunk-4FHJA6U4.js} +8 -4
  11. package/dist/chunk-4FHJA6U4.js.map +1 -0
  12. package/dist/{chunk-GSWC6LLD.js → chunk-GMSFEXUZ.js} +35 -3
  13. package/dist/chunk-GMSFEXUZ.js.map +1 -0
  14. package/dist/{chunk-JEPUCLZX.js → chunk-QAZCVCMP.js} +88 -27
  15. package/dist/chunk-QAZCVCMP.js.map +1 -0
  16. package/dist/{chunk-NXASMBDS.js → chunk-SM5KGNYX.js} +4 -4
  17. package/dist/{chunk-NXASMBDS.js.map → chunk-SM5KGNYX.js.map} +1 -1
  18. package/dist/{chunk-JNYPJB55.js → chunk-T7SRBLPJ.js} +24 -4
  19. package/dist/chunk-T7SRBLPJ.js.map +1 -0
  20. package/dist/components/index.cjs +21 -1
  21. package/dist/components/index.cjs.map +1 -1
  22. package/dist/components/index.d.cts +3 -3
  23. package/dist/components/index.d.ts +3 -3
  24. package/dist/components/index.js +1 -1
  25. package/dist/docs/api/Behaviour/classes/Behaviour.md +187 -46
  26. package/dist/docs/api/Behaviour/type-aliases/UiInteractionEvent.md +5 -5
  27. package/dist/docs/api/Component/classes/Component.md +7 -1
  28. package/dist/docs/api/components/classes/AnimationComponent.md +26 -26
  29. package/dist/docs/api/components/classes/AudioComponent.md +20 -19
  30. package/dist/docs/api/components/classes/BoneAttachmentComponent.md +65 -0
  31. package/dist/docs/api/components/classes/CameraComponent.md +14 -14
  32. package/dist/docs/api/components/classes/EntityType.md +3 -3
  33. package/dist/docs/api/components/classes/Environment.md +3 -3
  34. package/dist/docs/api/components/classes/IKComponent.md +59 -0
  35. package/dist/docs/api/components/classes/ImageComponent.md +7 -7
  36. package/dist/docs/api/components/classes/ImageTarget.md +7 -7
  37. package/dist/docs/api/components/classes/ImageTargetAnchor.md +4 -4
  38. package/dist/docs/api/components/classes/InstanceSlotComponent.md +4 -4
  39. package/dist/docs/api/components/classes/InstancedMeshComponent.md +10 -10
  40. package/dist/docs/api/components/classes/LightComponent.md +6 -6
  41. package/dist/docs/api/components/classes/MaterialComponent.md +14 -14
  42. package/dist/docs/api/components/classes/MeshComponent.md +3 -3
  43. package/dist/docs/api/components/classes/MeshGeometryComponent.md +9 -9
  44. package/dist/docs/api/components/classes/ModelComponent.md +6 -6
  45. package/dist/docs/api/components/classes/Name.md +3 -3
  46. package/dist/docs/api/components/classes/NetworkIdentityComponent.md +42 -0
  47. package/dist/docs/api/components/classes/NetworkSpawnerComponent.md +48 -0
  48. package/dist/docs/api/components/classes/NetworkTransformComponent.md +51 -0
  49. package/dist/docs/api/components/classes/NetworkedPropsComponent.md +47 -0
  50. package/dist/docs/api/components/classes/Object3DRef.md +4 -4
  51. package/dist/docs/api/components/classes/ParentId.md +3 -3
  52. package/dist/docs/api/components/classes/PhysicsComponent.md +7 -7
  53. package/dist/docs/api/components/classes/Postprocessing.md +3 -3
  54. package/dist/docs/api/components/classes/PrefabInstance.md +5 -5
  55. package/dist/docs/api/components/classes/PrefabNode.md +3 -3
  56. package/dist/docs/api/components/classes/ScriptComponent.md +5 -5
  57. package/dist/docs/api/components/classes/ScriptObjectComponent.md +9 -9
  58. package/dist/docs/api/components/classes/Selectable.md +3 -3
  59. package/dist/docs/api/components/classes/SelectionTransformState.md +5 -5
  60. package/dist/docs/api/components/classes/SpriteComponent.md +7 -7
  61. package/dist/docs/api/components/classes/TransformComponent.md +12 -12
  62. package/dist/docs/api/components/classes/UIButtonComponent.md +18 -14
  63. package/dist/docs/api/components/classes/UIPanelComponent.md +13 -11
  64. package/dist/docs/api/components/classes/UISliderComponent.md +16 -11
  65. package/dist/docs/api/components/classes/UITextComponent.md +14 -12
  66. package/dist/docs/api/components/classes/UIToggleComponent.md +12 -9
  67. package/dist/docs/api/components/classes/VRTeleportAreaComponent.md +6 -6
  68. package/dist/docs/api/components/classes/VideoComponent.md +28 -28
  69. package/dist/docs/api/components/classes/XRAnchorComponent.md +3 -3
  70. package/dist/docs/api/components/classes/XREnvironmentComponent.md +5 -5
  71. package/dist/docs/api/components/classes/XRHandPoseComponent.md +4 -4
  72. package/dist/docs/api/components/classes/XRInteractableComponent.md +28 -28
  73. package/dist/docs/api/components/classes/XRInteractorComponent.md +10 -10
  74. package/dist/docs/api/components/classes/XRInteractorSideComponent.md +3 -3
  75. package/dist/docs/api/components/classes/XRRigComponent.md +17 -17
  76. package/dist/docs/api/components/functions/createAttachPoint.md +1 -1
  77. package/dist/docs/api/components/functions/createHandPoseEntry.md +1 -1
  78. package/dist/docs/api/components/functions/defaultMaterialValue.md +1 -1
  79. package/dist/docs/api/components/functions/handPoseDefinitionFor.md +1 -1
  80. package/dist/docs/api/components/functions/normalizeBoneHold.md +25 -0
  81. package/dist/docs/api/components/functions/normalizeEnvironmentLighting.md +1 -1
  82. package/dist/docs/api/components/functions/normalizeIKChain.md +25 -0
  83. package/dist/docs/api/components/functions/normalizePhysicsState.md +1 -1
  84. package/dist/docs/api/components/functions/setModelLoadState.md +1 -1
  85. package/dist/docs/api/components/functions/setPhysicsLiveRef.md +1 -1
  86. package/dist/docs/api/components/index.md +18 -0
  87. package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +9 -9
  88. package/dist/docs/api/components/type-aliases/BoneAttachmentOptions.md +35 -0
  89. package/dist/docs/api/components/type-aliases/BoneHold.md +34 -0
  90. package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +13 -13
  91. package/dist/docs/api/components/type-aliases/CameraProjection.md +1 -1
  92. package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +1 -1
  93. package/dist/docs/api/components/type-aliases/ColliderShape.md +1 -1
  94. package/dist/docs/api/components/type-aliases/ColliderState.md +20 -20
  95. package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +4 -4
  96. package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +1 -1
  97. package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +8 -8
  98. package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +1 -1
  99. package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +1 -1
  100. package/dist/docs/api/components/type-aliases/EnvironmentLightingState.md +9 -9
  101. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxImageProjection.md +1 -1
  102. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +8 -8
  103. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +1 -1
  104. package/dist/docs/api/components/type-aliases/EnvironmentState.md +6 -6
  105. package/dist/docs/api/components/type-aliases/EnvironmentToneMapping.md +1 -1
  106. package/dist/docs/api/components/type-aliases/IKChain.md +37 -0
  107. package/dist/docs/api/components/type-aliases/IKLimb.md +15 -0
  108. package/dist/docs/api/components/type-aliases/IKOptions.md +27 -0
  109. package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +3 -3
  110. package/dist/docs/api/components/type-aliases/ImageTargetReference.md +7 -7
  111. package/dist/docs/api/components/type-aliases/InstanceTransform.md +13 -13
  112. package/dist/docs/api/components/type-aliases/InstancedMeshKind.md +1 -1
  113. package/dist/docs/api/components/type-aliases/LightShadowState.md +8 -8
  114. package/dist/docs/api/components/type-aliases/LightValueState.md +12 -12
  115. package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +1 -1
  116. package/dist/docs/api/components/type-aliases/MaterialValueState.md +28 -28
  117. package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +1 -1
  118. package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +7 -7
  119. package/dist/docs/api/components/type-aliases/ModelLoadState.md +1 -1
  120. package/dist/docs/api/components/type-aliases/NetValue.md +23 -0
  121. package/dist/docs/api/components/type-aliases/NetworkTransformOptions.md +18 -0
  122. package/dist/docs/api/components/type-aliases/PhysicsState.md +3 -3
  123. package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +3 -3
  124. package/dist/docs/api/components/type-aliases/PostprocessingState.md +62 -62
  125. package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +3 -3
  126. package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +2 -2
  127. package/dist/docs/api/components/type-aliases/RigidbodyState.md +17 -17
  128. package/dist/docs/api/components/type-aliases/RigidbodyType.md +1 -1
  129. package/dist/docs/api/components/type-aliases/ScriptEntry.md +8 -8
  130. package/dist/docs/api/components/type-aliases/ScriptObjectComponentInput.md +1 -1
  131. package/dist/docs/api/components/type-aliases/ScriptObjectRuntimeState.md +1 -1
  132. package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +1 -1
  133. package/dist/docs/api/components/type-aliases/TransformData.md +4 -4
  134. package/dist/docs/api/components/type-aliases/TransformModeValue.md +1 -1
  135. package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +1 -1
  136. package/dist/docs/api/components/type-aliases/UIButtonOptions.md +21 -13
  137. package/dist/docs/api/components/type-aliases/UIPanelOptions.md +14 -10
  138. package/dist/docs/api/components/type-aliases/UISliderOptions.md +20 -10
  139. package/dist/docs/api/components/type-aliases/UITextOptions.md +15 -11
  140. package/dist/docs/api/components/type-aliases/UIToggleOptions.md +14 -8
  141. package/dist/docs/api/components/type-aliases/UiFollowMode.md +1 -1
  142. package/dist/docs/api/components/type-aliases/UiIconPosition.md +13 -0
  143. package/dist/docs/api/components/type-aliases/UiSliderVariant.md +13 -0
  144. package/dist/docs/api/components/type-aliases/UiTextAlign.md +1 -1
  145. package/dist/docs/api/components/type-aliases/UiTextVAlign.md +1 -1
  146. package/dist/docs/api/components/type-aliases/UiToggleVariant.md +13 -0
  147. package/dist/docs/api/components/type-aliases/VRTeleportAreaOptions.md +5 -5
  148. package/dist/docs/api/components/type-aliases/Vec3.md +4 -4
  149. package/dist/docs/api/components/type-aliases/VrTeleportShape.md +1 -1
  150. package/dist/docs/api/components/type-aliases/XRAnchorOptions.md +2 -2
  151. package/dist/docs/api/components/type-aliases/XRHandPoseOptions.md +3 -3
  152. package/dist/docs/api/components/type-aliases/XRInteractableOptions.md +27 -27
  153. package/dist/docs/api/components/type-aliases/XRInteractorOptions.md +9 -9
  154. package/dist/docs/api/components/type-aliases/XRRigOptions.md +16 -16
  155. package/dist/docs/api/components/type-aliases/XrAttachPoint.md +13 -13
  156. package/dist/docs/api/components/type-aliases/XrDistanceGrabBehavior.md +1 -1
  157. package/dist/docs/api/components/type-aliases/XrEnvironmentKind.md +1 -1
  158. package/dist/docs/api/components/type-aliases/XrEnvironmentOrientation.md +1 -1
  159. package/dist/docs/api/components/type-aliases/XrEnvironmentPhysics.md +1 -1
  160. package/dist/docs/api/components/type-aliases/XrGrabGesture.md +1 -1
  161. package/dist/docs/api/components/type-aliases/XrGrabHands.md +1 -1
  162. package/dist/docs/api/components/type-aliases/XrGrabReach.md +1 -1
  163. package/dist/docs/api/components/type-aliases/XrHandPoseEntry.md +12 -12
  164. package/dist/docs/api/components/type-aliases/XrHandPreset.md +1 -1
  165. package/dist/docs/api/components/type-aliases/XrInteractorSide.md +1 -1
  166. package/dist/docs/api/components/type-aliases/XrInteractorType.md +1 -1
  167. package/dist/docs/api/components/type-aliases/XrLocomotionMode.md +1 -1
  168. package/dist/docs/api/components/type-aliases/XrTrackingOrigin.md +1 -1
  169. package/dist/docs/api/components/type-aliases/XrTwoHandRotation.md +1 -1
  170. package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +1 -1
  171. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_LIGHTING.md +1 -1
  172. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +1 -1
  173. package/dist/docs/api/components/variables/DEFAULT_INSTANCED_MESH_PARAMETERS.md +1 -1
  174. package/dist/docs/api/components/variables/DEFAULT_INSTANCE_TRANSFORM.md +1 -1
  175. package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +1 -1
  176. package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +1 -1
  177. package/dist/docs/api/components/variables/DEFAULT_POSE_CURLS.md +1 -1
  178. package/dist/docs/api/components/variables/DEFAULT_POSE_DIRECTIONS.md +1 -1
  179. package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +1 -1
  180. package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +1 -1
  181. package/dist/docs/api/components/variables/MODEL_NO_PATH_MESSAGE.md +1 -1
  182. package/dist/docs/api/index/classes/AnimationStateMachine.md +16 -16
  183. package/dist/docs/api/index/classes/AnimationStateManager.md +13 -13
  184. package/dist/docs/api/index/classes/AnimationSystem.md +3 -3
  185. package/dist/docs/api/index/classes/AudioMixer.md +161 -0
  186. package/dist/docs/api/index/classes/AudioSystem.md +138 -4
  187. package/dist/docs/api/index/classes/BoneHoldSystem.md +54 -0
  188. package/dist/docs/api/index/classes/CameraSyncSystem.md +2 -2
  189. package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +4 -4
  190. package/dist/docs/api/index/classes/HandPoseTracker.md +6 -6
  191. package/dist/docs/api/index/classes/IKSystem.md +98 -0
  192. package/dist/docs/api/index/classes/InputSystem.md +33 -33
  193. package/dist/docs/api/index/classes/InstancedMeshSystem.md +2 -2
  194. package/dist/docs/api/index/classes/LightSyncSystem.md +2 -2
  195. package/dist/docs/api/index/classes/MaterialSyncSystem.md +3 -3
  196. package/dist/docs/api/index/classes/MeshGeometrySystem.md +2 -2
  197. package/dist/docs/api/index/classes/ObjectManagementSystem.md +269 -14
  198. package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +2 -2
  199. package/dist/docs/api/index/classes/PhysicsSyncSystem.md +4 -4
  200. package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +4 -4
  201. package/dist/docs/api/index/classes/RenderSystem.md +3 -3
  202. package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +4 -4
  203. package/dist/docs/api/index/classes/ScriptObject.md +10 -10
  204. package/dist/docs/api/index/classes/ScriptObjectSystem.md +6 -6
  205. package/dist/docs/api/index/classes/SlotChooser.md +59 -0
  206. package/dist/docs/api/index/classes/TeleportAimGate.md +4 -4
  207. package/dist/docs/api/index/classes/ThrowVelocityTracker.md +4 -4
  208. package/dist/docs/api/index/classes/TransformSyncSystem.md +2 -2
  209. package/dist/docs/api/index/classes/UIInteractionSystem.md +3 -3
  210. package/dist/docs/api/index/classes/UIPanelSystem.md +4 -4
  211. package/dist/docs/api/index/classes/VRTeleportAreaSystem.md +2 -2
  212. package/dist/docs/api/index/classes/VideoSystem.md +4 -4
  213. package/dist/docs/api/index/classes/World.md +168 -98
  214. package/dist/docs/api/index/classes/XRAnchorSystem.md +4 -4
  215. package/dist/docs/api/index/classes/XRControllerVisualSystem.md +4 -4
  216. package/dist/docs/api/index/classes/XREnvironmentSystem.md +7 -7
  217. package/dist/docs/api/index/classes/XRHandPoseSystem.md +5 -5
  218. package/dist/docs/api/index/classes/XRHitTestSystem.md +4 -4
  219. package/dist/docs/api/index/classes/XRHoverVisualSystem.md +4 -4
  220. package/dist/docs/api/index/classes/XRInputSystem.md +9 -9
  221. package/dist/docs/api/index/classes/XRInteractionSystem.md +18 -18
  222. package/dist/docs/api/index/classes/XRLocomotionSystem.md +7 -7
  223. package/dist/docs/api/index/classes/XRSessionSystem.md +6 -6
  224. package/dist/docs/api/index/classes/XRTeleportVisualSystem.md +4 -4
  225. package/dist/docs/api/index/functions/angularVelocityFrom.md +1 -1
  226. package/dist/docs/api/index/functions/applyHandMaterial.md +1 -1
  227. package/dist/docs/api/index/functions/applyPrefabToSnapshotInstances.md +1 -1
  228. package/dist/docs/api/index/functions/arcGroundCrossing.md +1 -1
  229. package/dist/docs/api/index/functions/buildComponentValueMaps.md +1 -1
  230. package/dist/docs/api/index/functions/buildNodeKeyMapsFromSnapshot.md +1 -1
  231. package/dist/docs/api/index/functions/buildNodeMapsFromSnapshot.md +1 -1
  232. package/dist/docs/api/index/functions/canonicalizeComponentValue.md +1 -1
  233. package/dist/docs/api/index/functions/clearModelCache.md +1 -1
  234. package/dist/docs/api/index/functions/clearPrefabCache.md +1 -1
  235. package/dist/docs/api/index/functions/cloneHandPose.md +1 -1
  236. package/dist/docs/api/index/functions/collectDiffPaths.md +1 -1
  237. package/dist/docs/api/index/functions/collectDirectPrefabDependencies.md +1 -1
  238. package/dist/docs/api/index/functions/collectEntitySubtree.md +1 -1
  239. package/dist/docs/api/index/functions/collectSnapshotSubtreeIds.md +1 -1
  240. package/dist/docs/api/index/functions/computeFingerCurl.md +1 -1
  241. package/dist/docs/api/index/functions/computeHandShape.md +1 -1
  242. package/dist/docs/api/index/functions/computeInstanceOverrides.md +1 -1
  243. package/dist/docs/api/index/functions/computePalmPose.md +1 -1
  244. package/dist/docs/api/index/functions/computePalmWidth.md +1 -1
  245. package/dist/docs/api/index/functions/computePinch.md +1 -1
  246. package/dist/docs/api/index/functions/computeSpread.md +1 -1
  247. package/dist/docs/api/index/functions/createAnimationComponent.md +1 -1
  248. package/dist/docs/api/index/functions/createAudioComponent.md +1 -1
  249. package/dist/docs/api/index/functions/createBoneAttachmentComponent.md +28 -0
  250. package/dist/docs/api/index/functions/createCameraComponent.md +1 -1
  251. package/dist/docs/api/index/functions/createEntityTypeComponent.md +1 -1
  252. package/dist/docs/api/index/functions/createEnvironmentComponent.md +1 -1
  253. package/dist/docs/api/index/functions/createGLTFLoader.md +30 -0
  254. package/dist/docs/api/index/functions/createHandMaterial.md +1 -1
  255. package/dist/docs/api/index/functions/createIKComponent.md +28 -0
  256. package/dist/docs/api/index/functions/createImageComponent.md +1 -1
  257. package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +1 -1
  258. package/dist/docs/api/index/functions/createImageTargetComponent.md +1 -1
  259. package/dist/docs/api/index/functions/createInstanceSlotComponent.md +1 -1
  260. package/dist/docs/api/index/functions/createInstancedMeshComponent.md +1 -1
  261. package/dist/docs/api/index/functions/createLightComponent.md +1 -1
  262. package/dist/docs/api/index/functions/createMaterialComponent.md +1 -1
  263. package/dist/docs/api/index/functions/createMeshComponent.md +1 -1
  264. package/dist/docs/api/index/functions/createMeshGeometryComponent.md +1 -1
  265. package/dist/docs/api/index/functions/createModelComponent.md +1 -1
  266. package/dist/docs/api/index/functions/createNameComponent.md +1 -1
  267. package/dist/docs/api/index/functions/createNetworkIdentityComponent.md +24 -0
  268. package/dist/docs/api/index/functions/createNetworkSpawnerComponent.md +28 -0
  269. package/dist/docs/api/index/functions/createNetworkTransformComponent.md +28 -0
  270. package/dist/docs/api/index/functions/createNetworkedPropsComponent.md +28 -0
  271. package/dist/docs/api/index/functions/createObject3DRefComponent.md +1 -1
  272. package/dist/docs/api/index/functions/createParentIdComponent.md +1 -1
  273. package/dist/docs/api/index/functions/createPhysicsComponent.md +1 -1
  274. package/dist/docs/api/index/functions/createPostprocessingComponent.md +1 -1
  275. package/dist/docs/api/index/functions/createScriptComponent.md +1 -1
  276. package/dist/docs/api/index/functions/createScriptObjectComponent.md +1 -1
  277. package/dist/docs/api/index/functions/createSelectableComponent.md +1 -1
  278. package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +1 -1
  279. package/dist/docs/api/index/functions/createSpriteComponent.md +1 -1
  280. package/dist/docs/api/index/functions/createTransformComponent.md +1 -1
  281. package/dist/docs/api/index/functions/createUIButtonComponent.md +1 -1
  282. package/dist/docs/api/index/functions/createUIPanelComponent.md +1 -1
  283. package/dist/docs/api/index/functions/createUISliderComponent.md +1 -1
  284. package/dist/docs/api/index/functions/createUITextComponent.md +1 -1
  285. package/dist/docs/api/index/functions/createUIToggleComponent.md +1 -1
  286. package/dist/docs/api/index/functions/createVRTeleportAreaComponent.md +1 -1
  287. package/dist/docs/api/index/functions/createVideoComponent.md +1 -1
  288. package/dist/docs/api/index/functions/createXRAnchorComponent.md +1 -1
  289. package/dist/docs/api/index/functions/createXRHandPoseComponent.md +1 -1
  290. package/dist/docs/api/index/functions/createXRInteractableComponent.md +1 -1
  291. package/dist/docs/api/index/functions/createXRInteractorComponent.md +1 -1
  292. package/dist/docs/api/index/functions/createXRInteractorSideComponent.md +1 -1
  293. package/dist/docs/api/index/functions/createXRRigComponent.md +1 -1
  294. package/dist/docs/api/index/functions/decanonicalizeComponentValue.md +1 -1
  295. package/dist/docs/api/index/functions/despawnPrefab.md +1 -1
  296. package/dist/docs/api/index/functions/encodeOverride.md +1 -1
  297. package/dist/docs/api/index/functions/estimateHandScale.md +1 -1
  298. package/dist/docs/api/index/functions/findModelBone.md +30 -0
  299. package/dist/docs/api/index/functions/findSnapshotRootEntityIds.md +1 -1
  300. package/dist/docs/api/index/functions/findTopLevelNestedRegions.md +1 -1
  301. package/dist/docs/api/index/functions/getHandPosePreset.md +1 -1
  302. package/dist/docs/api/index/functions/gripQuaternion.md +36 -0
  303. package/dist/docs/api/index/functions/groupOverridePaths.md +1 -1
  304. package/dist/docs/api/index/functions/handPoseFromCurls.md +1 -1
  305. package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +1 -1
  306. package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +1 -1
  307. package/dist/docs/api/index/functions/indexSnapshotByEntity.md +1 -1
  308. package/dist/docs/api/index/functions/instantiateSubtree.md +1 -1
  309. package/dist/docs/api/index/functions/listModelBones.md +25 -0
  310. package/dist/docs/api/index/functions/loadPrefab.md +1 -1
  311. package/dist/docs/api/index/functions/loadSharedGltf.md +1 -1
  312. package/dist/docs/api/index/functions/matchHandPose.md +1 -1
  313. package/dist/docs/api/index/functions/mergeComponentValue.md +1 -1
  314. package/dist/docs/api/index/functions/parseOverride.md +1 -1
  315. package/dist/docs/api/index/functions/parsePrefabAsset.md +1 -1
  316. package/dist/docs/api/index/functions/prefabFileVersionFor.md +1 -1
  317. package/dist/docs/api/index/functions/readXrCapabilities.md +1 -1
  318. package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +1 -1
  319. package/dist/docs/api/index/functions/registerDefaultFactories.md +1 -1
  320. package/dist/docs/api/index/functions/remapSnapshotEntityIds.md +3 -3
  321. package/dist/docs/api/index/functions/resolveDracoDecoderPath.md +1 -1
  322. package/dist/docs/api/index/functions/restoreComponentState.md +1 -1
  323. package/dist/docs/api/index/functions/restorePostCreateComponents.md +1 -1
  324. package/dist/docs/api/index/functions/sampleTeleportArc.md +1 -1
  325. package/dist/docs/api/index/functions/serializeEntitySubtree.md +1 -1
  326. package/dist/docs/api/index/functions/setDracoDecoderPath.md +1 -1
  327. package/dist/docs/api/index/functions/setPrefabAssetUrlResolver.md +1 -1
  328. package/dist/docs/api/index/functions/setWorldQuaternion.md +26 -0
  329. package/dist/docs/api/index/functions/soundBankFiles.md +25 -0
  330. package/dist/docs/api/index/functions/spawnPrefab.md +1 -1
  331. package/dist/docs/api/index/functions/twoBoneIK.md +41 -0
  332. package/dist/docs/api/index/index.md +31 -0
  333. package/dist/docs/api/index/interfaces/ChromaKeyOptions.md +5 -5
  334. package/dist/docs/api/index/interfaces/EcsSystem.md +3 -3
  335. package/dist/docs/api/index/interfaces/NetworkHandle.md +180 -0
  336. package/dist/docs/api/index/interfaces/PostprocessingBuildContext.md +6 -6
  337. package/dist/docs/api/index/interfaces/PostprocessingPipeline.md +5 -5
  338. package/dist/docs/api/index/interfaces/RenderBackend.md +8 -8
  339. package/dist/docs/api/index/interfaces/SoundBankAsset.md +18 -0
  340. package/dist/docs/api/index/interfaces/SoundSlot.md +31 -0
  341. package/dist/docs/api/index/interfaces/SoundTake.md +18 -0
  342. package/dist/docs/api/index/interfaces/StateMachine.md +13 -13
  343. package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +4 -4
  344. package/dist/docs/api/index/type-aliases/ApplyPrefabToSnapshotResult.md +3 -3
  345. package/dist/docs/api/index/type-aliases/AudioBus.md +15 -0
  346. package/dist/docs/api/index/type-aliases/ComponentFactory.md +1 -1
  347. package/dist/docs/api/index/type-aliases/ComponentValueMaps.md +50 -38
  348. package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +7 -1
  349. package/dist/docs/api/index/type-aliases/EcsRenderer.md +1 -1
  350. package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +3 -3
  351. package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +4 -4
  352. package/dist/docs/api/index/type-aliases/ExternalRefWarning.md +5 -5
  353. package/dist/docs/api/index/type-aliases/HandMaterialOptions.md +4 -4
  354. package/dist/docs/api/index/type-aliases/HandPoseTrackerOptions.md +5 -5
  355. package/dist/docs/api/index/type-aliases/HydrateOptions.md +3 -3
  356. package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +4 -4
  357. package/dist/docs/api/index/type-aliases/InstantiateSubtreeResult.md +3 -3
  358. package/dist/docs/api/index/type-aliases/KeyboardKey.md +1 -1
  359. package/dist/docs/api/index/type-aliases/ModelBoneInfo.md +29 -0
  360. package/dist/docs/api/index/type-aliases/ModuleLoader.md +1 -1
  361. package/dist/docs/api/index/type-aliases/MouseButton.md +1 -1
  362. package/dist/docs/api/index/type-aliases/NestedRegion.md +5 -5
  363. package/dist/docs/api/index/type-aliases/NetSpawnOptions.md +41 -0
  364. package/dist/docs/api/index/type-aliases/NodeKeyMaps.md +5 -5
  365. package/dist/docs/api/index/type-aliases/NodeMaps.md +4 -4
  366. package/dist/docs/api/index/type-aliases/PlaySlotOptions.md +32 -0
  367. package/dist/docs/api/index/type-aliases/PrefabAsset.md +5 -5
  368. package/dist/docs/api/index/type-aliases/RemapSnapshotOptions.md +2 -2
  369. package/dist/docs/api/index/type-aliases/RendererKind.md +1 -1
  370. package/dist/docs/api/index/type-aliases/ScriptBehaviourSystemOptions.md +2 -2
  371. package/dist/docs/api/index/type-aliases/ScriptErrorEvent.md +9 -9
  372. package/dist/docs/api/index/type-aliases/ScriptErrorListener.md +1 -1
  373. package/dist/docs/api/index/type-aliases/ScriptErrorPhase.md +1 -1
  374. package/dist/docs/api/index/type-aliases/ScriptErrorReport.md +6 -6
  375. package/dist/docs/api/index/type-aliases/ScriptErrorSource.md +1 -1
  376. package/dist/docs/api/index/type-aliases/SelectionContext.md +4 -4
  377. package/dist/docs/api/index/type-aliases/SerializeEntitySubtreeResult.md +4 -4
  378. package/dist/docs/api/index/type-aliases/SpawnPrefabOptions.md +5 -5
  379. package/dist/docs/api/index/type-aliases/SpawnPrefabSource.md +1 -1
  380. package/dist/docs/api/index/type-aliases/SubtreeSnapshot.md +4 -3
  381. package/dist/docs/api/index/type-aliases/UiCanvasLike.md +4 -4
  382. package/dist/docs/api/index/type-aliases/UiColorStop.md +37 -0
  383. package/dist/docs/api/index/type-aliases/UiPaint.md +81 -0
  384. package/dist/docs/api/index/type-aliases/UiShadow.md +27 -0
  385. package/dist/docs/api/index/type-aliases/UiStyle.md +43 -0
  386. package/dist/docs/api/index/type-aliases/UiTextStyle.md +33 -0
  387. package/dist/docs/api/index/type-aliases/UiTokens.md +13 -0
  388. package/dist/docs/api/index/type-aliases/VelocitySample.md +3 -3
  389. package/dist/docs/api/index/type-aliases/XrCapabilities.md +9 -9
  390. package/dist/docs/api/index/type-aliases/XrFinger.md +1 -1
  391. package/dist/docs/api/index/type-aliases/XrFingerCurl.md +4 -4
  392. package/dist/docs/api/index/type-aliases/XrFingerTarget.md +6 -6
  393. package/dist/docs/api/index/type-aliases/XrHandJointName.md +1 -1
  394. package/dist/docs/api/index/type-aliases/XrHandJoints.md +1 -1
  395. package/dist/docs/api/index/type-aliases/XrHandPoseAxis.md +1 -1
  396. package/dist/docs/api/index/type-aliases/XrHandPoseContext.md +2 -2
  397. package/dist/docs/api/index/type-aliases/XrHandPoseDefinition.md +11 -11
  398. package/dist/docs/api/index/type-aliases/XrHandPoseDirection.md +1 -1
  399. package/dist/docs/api/index/type-aliases/XrHandPoseEvent.md +1 -1
  400. package/dist/docs/api/index/type-aliases/XrHandPoseEventDetail.md +5 -5
  401. package/dist/docs/api/index/type-aliases/XrHandPoseMatch.md +4 -4
  402. package/dist/docs/api/index/type-aliases/XrHandPoseOrientation.md +4 -4
  403. package/dist/docs/api/index/type-aliases/XrHandShape.md +13 -13
  404. package/dist/docs/api/index/type-aliases/XrHandedness.md +1 -1
  405. package/dist/docs/api/index/type-aliases/XrHitResult.md +3 -3
  406. package/dist/docs/api/index/type-aliases/XrInputKind.md +1 -1
  407. package/dist/docs/api/index/type-aliases/XrInputState.md +18 -18
  408. package/dist/docs/api/index/type-aliases/XrPalmPose.md +6 -6
  409. package/dist/docs/api/index/variables/ADDED_NODE_MARKER_COMPONENT.md +1 -1
  410. package/dist/docs/api/index/variables/ARC_GRAVITY.md +1 -1
  411. package/dist/docs/api/index/variables/ARC_MAX_TIME.md +1 -1
  412. package/dist/docs/api/index/variables/ARC_SPEED.md +1 -1
  413. package/dist/docs/api/index/variables/ARC_STEPS.md +1 -1
  414. package/dist/docs/api/index/variables/CURLED_COS.md +1 -1
  415. package/dist/docs/api/index/variables/DEFAULT_DIRECTION_TOLERANCE.md +1 -1
  416. package/dist/docs/api/index/variables/DEFAULT_ENTER_CONFIDENCE.md +1 -1
  417. package/dist/docs/api/index/variables/DEFAULT_EXIT_CONFIDENCE.md +1 -1
  418. package/dist/docs/api/index/variables/DEFAULT_LOST_GRACE_SECONDS.md +1 -1
  419. package/dist/docs/api/index/variables/DEFAULT_MIN_HOLD_SECONDS.md +1 -1
  420. package/dist/docs/api/index/variables/DEFAULT_SCRIPT_ERROR_RETRY_DELAY.md +1 -1
  421. package/dist/docs/api/index/variables/FALLBACK_HAND_SCALE.md +1 -1
  422. package/dist/docs/api/index/variables/HAND_POSE_PRESETS.md +1 -1
  423. package/dist/docs/api/index/variables/HAND_POSE_PRESET_IDS.md +1 -1
  424. package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +1 -1
  425. package/dist/docs/api/index/variables/KeyboardKeys.md +89 -89
  426. package/dist/docs/api/index/variables/MATCH_FALLOFF.md +1 -1
  427. package/dist/docs/api/index/variables/MAX_PLAUSIBLE_SPEED.md +1 -1
  428. package/dist/docs/api/index/variables/MAX_SAMPLE_AGE_SECONDS.md +1 -1
  429. package/dist/docs/api/index/variables/NODE_KEY_SEPARATOR.md +1 -1
  430. package/dist/docs/api/index/variables/NO_XR_CAPABILITIES.md +1 -1
  431. package/dist/docs/api/index/variables/OVERRIDE_DIFF_EXCLUDED_COMPONENTS.md +1 -1
  432. package/dist/docs/api/index/variables/OVERRIDE_ROOT_EXCLUDED_COMPONENTS.md +1 -1
  433. package/dist/docs/api/index/variables/PINCH_FINGERS.md +1 -1
  434. package/dist/docs/api/index/variables/PREFAB_FILE_VERSION.md +1 -1
  435. package/dist/docs/api/index/variables/PREFAB_FILE_VERSION_NESTED.md +1 -1
  436. package/dist/docs/api/index/variables/SCRIPT_OBJECT_ROOT_FLAG.md +1 -1
  437. package/dist/docs/api/index/variables/SHARED_MODEL_RESOURCE_FLAG.md +1 -1
  438. package/dist/docs/api/index/variables/STRAIGHT_COS.md +1 -1
  439. package/dist/docs/api/index/variables/VELOCITY_SAMPLES.md +1 -1
  440. package/dist/docs/api/index/variables/XR_FINGERS.md +1 -1
  441. package/dist/docs/api/index/variables/XR_HOVER_SHELL_FLAG.md +1 -1
  442. package/dist/docs/api/index/variables/webglBackend.md +1 -1
  443. package/dist/docs/api/typedoc-sidebar.json +1 -1
  444. package/dist/docs/api/types/type-aliases/AssetInput.md +3 -3
  445. package/dist/docs/api/types/type-aliases/CheckboxInput.md +3 -3
  446. package/dist/docs/api/types/type-aliases/ColorInput.md +1 -1
  447. package/dist/docs/api/types/type-aliases/ComponentInput.md +4 -4
  448. package/dist/docs/api/types/type-aliases/ComponentKind.md +1 -1
  449. package/dist/docs/api/types/type-aliases/DropdownInput.md +3 -3
  450. package/dist/docs/api/types/type-aliases/DropdownOption.md +3 -3
  451. package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +1 -1
  452. package/dist/docs/api/types/type-aliases/EcsEntityKind.md +1 -1
  453. package/dist/docs/api/types/type-aliases/EntityId.md +1 -1
  454. package/dist/docs/api/types/type-aliases/EntityInput.md +3 -3
  455. package/dist/docs/api/types/type-aliases/FloatInput.md +1 -1
  456. package/dist/docs/api/types/type-aliases/IntersectionResult.md +3 -3
  457. package/dist/docs/api/types/type-aliases/ParentLookup.md +3 -3
  458. package/dist/docs/api/types/type-aliases/SelectionListener.md +1 -1
  459. package/dist/docs/api/types/type-aliases/SliderInput.md +5 -5
  460. package/dist/docs/api/types/type-aliases/TextInput.md +1 -1
  461. package/dist/docs/api/types/type-aliases/ToggleInput.md +1 -1
  462. package/dist/docs/api/types/type-aliases/Vec3.md +1 -1
  463. package/dist/docs/api/types/type-aliases/Vector2Input.md +3 -3
  464. package/dist/docs/api/types/type-aliases/Vector3Input.md +4 -4
  465. package/dist/docs/api/types/type-aliases/WorldEntityView.md +1 -1
  466. package/dist/docs/guide/bone-attachments-and-ik.md +51 -0
  467. package/dist/docs/guide/components/audio.md +1 -1
  468. package/dist/factories/index.cjs +29 -1
  469. package/dist/factories/index.cjs.map +1 -1
  470. package/dist/factories/index.d.cts +2 -2
  471. package/dist/factories/index.d.ts +2 -2
  472. package/dist/factories/index.js +4 -4
  473. package/dist/{index-BXjwEdNq.d.cts → index-BbrnjNXy.d.ts} +5 -3
  474. package/dist/{index-CVG-hREM.d.ts → index-DD7aHv0p.d.cts} +5 -3
  475. package/dist/{index-6pZO_gV7.d.ts → index-OgOoIpEI.d.ts} +14 -2
  476. package/dist/{index-BdghvXKE.d.cts → index-xyqzT0PQ.d.cts} +14 -2
  477. package/dist/index.cjs +174 -13
  478. package/dist/index.cjs.map +1 -1
  479. package/dist/index.d.cts +10 -9
  480. package/dist/index.d.ts +10 -9
  481. package/dist/index.js +13 -11
  482. package/dist/index.js.map +1 -1
  483. package/dist/network/index.cjs +70 -38
  484. package/dist/network/index.cjs.map +1 -1
  485. package/dist/network/index.d.cts +2 -2
  486. package/dist/network/index.d.ts +2 -2
  487. package/dist/network/index.js +4 -4
  488. package/dist/systems/index.cjs +171 -13
  489. package/dist/systems/index.cjs.map +1 -1
  490. package/dist/systems/index.d.cts +2 -2
  491. package/dist/systems/index.d.ts +2 -2
  492. package/dist/systems/index.js +5 -5
  493. package/dist/types.d.cts +1 -1
  494. package/dist/types.d.ts +1 -1
  495. package/dist/webgpu/index.d.ts +2 -2
  496. package/dist/worldSnapshotUtils.d.cts +1 -1
  497. package/dist/worldSnapshotUtils.d.ts +1 -1
  498. package/package.json +2 -1
  499. package/dist/chunk-GSWC6LLD.js.map +0 -1
  500. package/dist/chunk-JEPUCLZX.js.map +0 -1
  501. package/dist/chunk-JNYPJB55.js.map +0 -1
  502. package/dist/chunk-TY3XCHOR.js.map +0 -1
  503. package/dist/chunk-WWP46AEF.js.map +0 -1
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: UITextComponent
8
8
 
9
- Defined in: [components/UIText.ts:30](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L30)
9
+ Defined in: [components/UIText.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L33)
10
10
 
11
11
  A block of text drawn onto a transparent canvas quad.
12
12
 
@@ -27,7 +27,7 @@ inside `width`; overflow past `height` is line-clamped with an ellipsis.
27
27
  new UITextComponent(options?): UITextComponent;
28
28
  ```
29
29
 
30
- Defined in: [components/UIText.ts:48](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L48)
30
+ Defined in: [components/UIText.ts:59](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L59)
31
31
 
32
32
  #### Parameters
33
33
 
@@ -47,13 +47,15 @@ Defined in: [components/UIText.ts:48](https://github.com/Relu-Interactives/relu-
47
47
 
48
48
  | Property | Type | Description | Defined in |
49
49
  | ------ | ------ | ------ | ------ |
50
- | <a id="text"></a> `text` | `string` | - | [components/UIText.ts:31](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L31) |
51
- | <a id="width"></a> `width` | `number` | Layout box width in metres — wrap happens against this. | [components/UIText.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L33) |
52
- | <a id="height"></a> `height` | `number` | Layout box height in metres — overflow clamps to it. | [components/UIText.ts:35](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L35) |
53
- | <a id="fontsize"></a> `fontSize` | `number` | Glyph height in metres. | [components/UIText.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L37) |
54
- | <a id="fontweight"></a> `fontWeight` | `number` | CSS font weight (400 normal, 600 semibold…). | [components/UIText.ts:39](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L39) |
55
- | <a id="color"></a> `color` | `string` | - | [components/UIText.ts:40](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L40) |
56
- | <a id="align"></a> `align` | [`UiTextAlign`](../type-aliases/UiTextAlign.md) | - | [components/UIText.ts:41](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L41) |
57
- | <a id="valign"></a> `valign` | [`UiTextVAlign`](../type-aliases/UiTextVAlign.md) | - | [components/UIText.ts:42](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L42) |
58
- | <a id="lineheight"></a> `lineHeight` | `number` | Unitless multiplier over fontSize. | [components/UIText.ts:44](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L44) |
59
- | <a id="padding"></a> `padding` | `number` | Inner padding in metres. | [components/UIText.ts:46](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIText.ts#L46) |
50
+ | <a id="text"></a> `text` | `string` | - | [components/UIText.ts:34](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L34) |
51
+ | <a id="width"></a> `width` | `number` | Layout box width in metres — wrap happens against this. | [components/UIText.ts:36](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L36) |
52
+ | <a id="height"></a> `height` | `number` | Layout box height in metres — overflow clamps to it. | [components/UIText.ts:38](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L38) |
53
+ | <a id="fontsize"></a> `fontSize` | `number` | Glyph height in metres. | [components/UIText.ts:40](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L40) |
54
+ | <a id="fontweight"></a> `fontWeight` | `number` | CSS font weight (400 normal, 600 semibold…). | [components/UIText.ts:42](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L42) |
55
+ | <a id="color"></a> `color` | `string` | - | [components/UIText.ts:43](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L43) |
56
+ | <a id="align"></a> `align` | [`UiTextAlign`](../type-aliases/UiTextAlign.md) | - | [components/UIText.ts:44](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L44) |
57
+ | <a id="valign"></a> `valign` | [`UiTextVAlign`](../type-aliases/UiTextVAlign.md) | - | [components/UIText.ts:45](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L45) |
58
+ | <a id="lineheight"></a> `lineHeight` | `number` | Unitless multiplier over fontSize. | [components/UIText.ts:47](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L47) |
59
+ | <a id="padding"></a> `padding` | `number` | Inner padding in metres. | [components/UIText.ts:49](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L49) |
60
+ | <a id="pixeldensity"></a> `pixelDensity?` | `number` | Texture density in px/metre, clamped 256–2048 at render time. Absent means the default: a defaulted field would count as a change on every instance of a prefab saved before it existed. | [components/UIText.ts:55](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L55) |
61
+ | <a id="style"></a> `style?` | [`UiStyle`](../../index/type-aliases/UiStyle.md) | Modern styling; wins over the flat fields above. Absent until authored. | [components/UIText.ts:57](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIText.ts#L57) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: UIToggleComponent
8
8
 
9
- Defined in: [components/UIToggle.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIToggle.ts#L24)
9
+ Defined in: [components/UIToggle.ts:30](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L30)
10
10
 
11
11
  An on/off switch.
12
12
 
@@ -27,7 +27,7 @@ state and persists with the scene.
27
27
  new UIToggleComponent(options?): UIToggleComponent;
28
28
  ```
29
29
 
30
- Defined in: [components/UIToggle.ts:38](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIToggle.ts#L38)
30
+ Defined in: [components/UIToggle.ts:54](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L54)
31
31
 
32
32
  #### Parameters
33
33
 
@@ -47,10 +47,13 @@ Defined in: [components/UIToggle.ts:38](https://github.com/Relu-Interactives/rel
47
47
 
48
48
  | Property | Type | Description | Defined in |
49
49
  | ------ | ------ | ------ | ------ |
50
- | <a id="value"></a> `value` | `boolean` | - | [components/UIToggle.ts:25](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIToggle.ts#L25) |
51
- | <a id="actionid"></a> `actionId` | `string` | Dispatch identifier; empty string means "use the entity name". | [components/UIToggle.ts:27](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIToggle.ts#L27) |
52
- | <a id="width"></a> `width` | `number` | Full width in metres. | [components/UIToggle.ts:29](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIToggle.ts#L29) |
53
- | <a id="height"></a> `height` | `number` | Full height in metres. | [components/UIToggle.ts:31](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIToggle.ts#L31) |
54
- | <a id="trackcolor"></a> `trackColor` | `string` | Track colour while OFF. | [components/UIToggle.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIToggle.ts#L33) |
55
- | <a id="accentcolor"></a> `accentColor` | `string` | Track colour while ON. | [components/UIToggle.ts:35](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIToggle.ts#L35) |
56
- | <a id="knobcolor"></a> `knobColor` | `string` | - | [components/UIToggle.ts:36](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/UIToggle.ts#L36) |
50
+ | <a id="value"></a> `value` | `boolean` | - | [components/UIToggle.ts:31](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L31) |
51
+ | <a id="actionid"></a> `actionId` | `string` | Dispatch identifier; empty string means "use the entity name". | [components/UIToggle.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L33) |
52
+ | <a id="width"></a> `width` | `number` | Full width in metres. | [components/UIToggle.ts:35](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L35) |
53
+ | <a id="height"></a> `height` | `number` | Full height in metres. | [components/UIToggle.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L37) |
54
+ | <a id="trackcolor"></a> `trackColor` | `string` | Track colour while OFF. | [components/UIToggle.ts:39](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L39) |
55
+ | <a id="accentcolor"></a> `accentColor` | `string` | Track colour while ON. | [components/UIToggle.ts:41](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L41) |
56
+ | <a id="knobcolor"></a> `knobColor` | `string` | - | [components/UIToggle.ts:42](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L42) |
57
+ | <a id="pixeldensity"></a> `pixelDensity?` | `number` | Texture density in px/metre, clamped 256–2048 at render time. Absent means the default: a defaulted field would count as a change on every instance of a prefab saved before it existed. | [components/UIToggle.ts:48](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L48) |
58
+ | <a id="style"></a> `style?` | [`UiStyle`](../../index/type-aliases/UiStyle.md) | Modern styling; wins over the flat fields above. Absent until authored. | [components/UIToggle.ts:50](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L50) |
59
+ | <a id="variant"></a> `variant?` | [`UiToggleVariant`](../type-aliases/UiToggleVariant.md) | How the control is drawn. Absent means `switch`. | [components/UIToggle.ts:52](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/UIToggle.ts#L52) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: VRTeleportAreaComponent
8
8
 
9
- Defined in: [components/VRTeleportArea.ts:28](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/VRTeleportArea.ts#L28)
9
+ Defined in: [components/VRTeleportArea.ts:28](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/VRTeleportArea.ts#L28)
10
10
 
11
11
  Marks an entity's surface as a valid teleport destination.
12
12
 
@@ -27,7 +27,7 @@ collider in the scene is walkable.
27
27
  new VRTeleportAreaComponent(options?): VRTeleportAreaComponent;
28
28
  ```
29
29
 
30
- Defined in: [components/VRTeleportArea.ts:38](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/VRTeleportArea.ts#L38)
30
+ Defined in: [components/VRTeleportArea.ts:38](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/VRTeleportArea.ts#L38)
31
31
 
32
32
  #### Parameters
33
33
 
@@ -47,7 +47,7 @@ Defined in: [components/VRTeleportArea.ts:38](https://github.com/Relu-Interactiv
47
47
 
48
48
  | Property | Type | Description | Defined in |
49
49
  | ------ | ------ | ------ | ------ |
50
- | <a id="enabled"></a> `enabled` | `boolean` | Whether this area currently accepts teleports. | [components/VRTeleportArea.ts:30](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/VRTeleportArea.ts#L30) |
51
- | <a id="shape"></a> `shape` | [`VrTeleportShape`](../type-aliases/VrTeleportShape.md) | Footprint shape. | [components/VRTeleportArea.ts:32](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/VRTeleportArea.ts#L32) |
52
- | <a id="width"></a> `width` | `number` | Full width in metres (diameter for `circle`). | [components/VRTeleportArea.ts:34](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/VRTeleportArea.ts#L34) |
53
- | <a id="depth"></a> `depth` | `number` | Full depth in metres (unused for `circle`). | [components/VRTeleportArea.ts:36](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/VRTeleportArea.ts#L36) |
50
+ | <a id="enabled"></a> `enabled` | `boolean` | Whether this area currently accepts teleports. | [components/VRTeleportArea.ts:30](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/VRTeleportArea.ts#L30) |
51
+ | <a id="shape"></a> `shape` | [`VrTeleportShape`](../type-aliases/VrTeleportShape.md) | Footprint shape. | [components/VRTeleportArea.ts:32](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/VRTeleportArea.ts#L32) |
52
+ | <a id="width"></a> `width` | `number` | Full width in metres (diameter for `circle`). | [components/VRTeleportArea.ts:34](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/VRTeleportArea.ts#L34) |
53
+ | <a id="depth"></a> `depth` | `number` | Full depth in metres (unused for `circle`). | [components/VRTeleportArea.ts:36](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/VRTeleportArea.ts#L36) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: VideoComponent
8
8
 
9
- Defined in: [components/Video.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L37)
9
+ Defined in: [components/Video.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L37)
10
10
 
11
11
  Plays a video file as a texture on a quad. Supports green-screen keying
12
12
  (`isGreenScreen`, `backgroundColor`, `similarity`, `smoothness`, `spill`).
@@ -25,7 +25,7 @@ when the project loads.
25
25
  new VideoComponent(path, options?): VideoComponent;
26
26
  ```
27
27
 
28
- Defined in: [components/Video.ts:90](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L90)
28
+ Defined in: [components/Video.ts:90](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L90)
29
29
 
30
30
  #### Parameters
31
31
 
@@ -46,29 +46,29 @@ Defined in: [components/Video.ts:90](https://github.com/Relu-Interactives/relu-s
46
46
 
47
47
  | Property | Type | Description | Defined in |
48
48
  | ------ | ------ | ------ | ------ |
49
- | <a id="path"></a> `path` | `string` | Source URL or `localasset://` path of the video file. | [components/Video.ts:39](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L39) |
50
- | <a id="options"></a> `options` | \{ `autoplay`: `boolean`; `loop`: `boolean`; `volume`: `number`; `width`: `number`; `height`: `number`; `isGreenScreen`: `boolean`; `backgroundColor`: `string`; `similarity`: `number`; `smoothness`: `number`; `spill`: `number`; `positional`: `boolean`; `refDistance`: `number`; `distanceModel`: `string`; `rolloffFactor`: `number`; \} | Playback + green-screen options. | Field | Default | Description | |---|---|---| | `autoplay` | `false` | Start playback as soon as the video is ready. | | `loop` | `true` | Loop playback indefinitely. | | `volume` | `1` | Linear gain in `[0, 1]`. | | `width` | `1` | Quad width in world units. | | `height` | `1` | Quad height in world units. | | `isGreenScreen` | `false` | Enable chroma keying using the fields below. | | `backgroundColor` | `"#00ff00"` | Color to key out (CSS color string). | | `similarity` | `0.4` | How close a pixel must be to the key to be removed (`0`–`1`). | | `smoothness` | `0.08` | Soft-edge thickness around the key threshold. | | `spill` | `0.12` | Amount of color spill suppression near edges. | | `positional` | `false` | When `true`, the video's audio stream is spatialized using the entity's 3D position. | | `refDistance` | `1` | Distance at which volume is unattenuated (positional only). | | `distanceModel` | `"inverse"` | WebAudio distance model (`linear`, `inverse`, `exponential`). Positional only. | | `rolloffFactor` | `1` | How quickly volume falls off past `refDistance`. Positional only. | | [components/Video.ts:60](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L60) |
51
- | `options.autoplay` | `boolean` | - | [components/Video.ts:9](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L9) |
52
- | `options.loop` | `boolean` | - | [components/Video.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L10) |
53
- | `options.volume` | `number` | - | [components/Video.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L11) |
54
- | `options.width` | `number` | - | [components/Video.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L12) |
55
- | `options.height` | `number` | - | [components/Video.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L13) |
56
- | `options.isGreenScreen` | `boolean` | - | [components/Video.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L14) |
57
- | `options.backgroundColor` | `string` | - | [components/Video.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L15) |
58
- | `options.similarity` | `number` | - | [components/Video.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L16) |
59
- | `options.smoothness` | `number` | - | [components/Video.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L17) |
60
- | `options.spill` | `number` | - | [components/Video.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L18) |
61
- | `options.positional` | `boolean` | When `true`, the video's audio stream is spatialized using the entity's transform. | [components/Video.ts:20](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L20) |
62
- | `options.refDistance` | `number` | Distance at which volume is unattenuated (positional only). | [components/Video.ts:22](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L22) |
63
- | `options.distanceModel` | `string` | WebAudio distance model (`linear`, `inverse`, `exponential`). Positional only. | [components/Video.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L24) |
64
- | `options.rolloffFactor` | `number` | How quickly volume falls off past `refDistance`. Positional only. | [components/Video.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L26) |
65
- | <a id="object"></a> `object` | `Object3D`\<`Object3DEventMap`\> \| `null` | Live three.js object hosting the video quad. `null` until built. | [components/Video.ts:62](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L62) |
66
- | <a id="videoelement"></a> `videoElement` | `HTMLVideoElement` \| `null` | Underlying HTML video element. `null` until built. | [components/Video.ts:64](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L64) |
67
- | <a id="texture"></a> `texture` | `VideoTexture`\<`HTMLVideoElement`\> \| `null` | Three.js texture sampling the video element. `null` until built. | [components/Video.ts:66](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L66) |
68
- | <a id="material"></a> `material` | `Material`\<`MaterialEventMap`\> \| `null` | Material rendering the video texture (with green-screen shader when enabled). `null` until built. | [components/Video.ts:68](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L68) |
69
- | <a id="audionode"></a> `audioNode` | `Audio`\<`GainNode`\> \| `PositionalAudio` \| `null` | THREE.js audio node connected to this video's audio stream via `setMediaElementSource`. Present only in preview when the camera listener is available. `null` in editor mode. | [components/Video.ts:74](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L74) |
70
- | <a id="isplaying"></a> `isPlaying` | `boolean` | Whether the video should be playing. Managed by `VideoSystem` in preview. Non-enumerable — not persisted to snapshots or save data. Set via [play](#play) / [stop](#stop). | [components/Video.ts:81](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L81) |
71
- | <a id="ispaused"></a> `isPaused` | `boolean` | Whether the video is paused mid-playback (position is preserved). Non-enumerable — not persisted to snapshots or save data. Set via [pause](#pause) / [play](#play) / [stop](#stop). | [components/Video.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L88) |
49
+ | <a id="path"></a> `path` | `string` | Source URL or `localasset://` path of the video file. | [components/Video.ts:39](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L39) |
50
+ | <a id="options"></a> `options` | \{ `autoplay`: `boolean`; `loop`: `boolean`; `volume`: `number`; `width`: `number`; `height`: `number`; `isGreenScreen`: `boolean`; `backgroundColor`: `string`; `similarity`: `number`; `smoothness`: `number`; `spill`: `number`; `positional`: `boolean`; `refDistance`: `number`; `distanceModel`: `string`; `rolloffFactor`: `number`; \} | Playback + green-screen options. | Field | Default | Description | |---|---|---| | `autoplay` | `false` | Start playback as soon as the video is ready. | | `loop` | `true` | Loop playback indefinitely. | | `volume` | `1` | Linear gain in `[0, 1]`. | | `width` | `1` | Quad width in world units. | | `height` | `1` | Quad height in world units. | | `isGreenScreen` | `false` | Enable chroma keying using the fields below. | | `backgroundColor` | `"#00ff00"` | Color to key out (CSS color string). | | `similarity` | `0.4` | How close a pixel must be to the key to be removed (`0`–`1`). | | `smoothness` | `0.08` | Soft-edge thickness around the key threshold. | | `spill` | `0.12` | Amount of color spill suppression near edges. | | `positional` | `false` | When `true`, the video's audio stream is spatialized using the entity's 3D position. | | `refDistance` | `1` | Distance at which volume is unattenuated (positional only). | | `distanceModel` | `"inverse"` | WebAudio distance model (`linear`, `inverse`, `exponential`). Positional only. | | `rolloffFactor` | `1` | How quickly volume falls off past `refDistance`. Positional only. | | [components/Video.ts:60](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L60) |
51
+ | `options.autoplay` | `boolean` | - | [components/Video.ts:9](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L9) |
52
+ | `options.loop` | `boolean` | - | [components/Video.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L10) |
53
+ | `options.volume` | `number` | - | [components/Video.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L11) |
54
+ | `options.width` | `number` | - | [components/Video.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L12) |
55
+ | `options.height` | `number` | - | [components/Video.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L13) |
56
+ | `options.isGreenScreen` | `boolean` | - | [components/Video.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L14) |
57
+ | `options.backgroundColor` | `string` | - | [components/Video.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L15) |
58
+ | `options.similarity` | `number` | - | [components/Video.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L16) |
59
+ | `options.smoothness` | `number` | - | [components/Video.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L17) |
60
+ | `options.spill` | `number` | - | [components/Video.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L18) |
61
+ | `options.positional` | `boolean` | When `true`, the video's audio stream is spatialized using the entity's transform. | [components/Video.ts:20](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L20) |
62
+ | `options.refDistance` | `number` | Distance at which volume is unattenuated (positional only). | [components/Video.ts:22](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L22) |
63
+ | `options.distanceModel` | `string` | WebAudio distance model (`linear`, `inverse`, `exponential`). Positional only. | [components/Video.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L24) |
64
+ | `options.rolloffFactor` | `number` | How quickly volume falls off past `refDistance`. Positional only. | [components/Video.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L26) |
65
+ | <a id="object"></a> `object` | `Object3D`\<`Object3DEventMap`\> \| `null` | Live three.js object hosting the video quad. `null` until built. | [components/Video.ts:62](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L62) |
66
+ | <a id="videoelement"></a> `videoElement` | `HTMLVideoElement` \| `null` | Underlying HTML video element. `null` until built. | [components/Video.ts:64](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L64) |
67
+ | <a id="texture"></a> `texture` | `VideoTexture`\<`HTMLVideoElement`\> \| `null` | Three.js texture sampling the video element. `null` until built. | [components/Video.ts:66](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L66) |
68
+ | <a id="material"></a> `material` | `Material`\<`MaterialEventMap`\> \| `null` | Material rendering the video texture (with green-screen shader when enabled). `null` until built. | [components/Video.ts:68](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L68) |
69
+ | <a id="audionode"></a> `audioNode` | `Audio`\<`GainNode`\> \| `PositionalAudio` \| `null` | THREE.js audio node connected to this video's audio stream via `setMediaElementSource`. Present only in preview when the camera listener is available. `null` in editor mode. | [components/Video.ts:74](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L74) |
70
+ | <a id="isplaying"></a> `isPlaying` | `boolean` | Whether the video should be playing. Managed by `VideoSystem` in preview. Non-enumerable — not persisted to snapshots or save data. Set via [play](#play) / [stop](#stop). | [components/Video.ts:81](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L81) |
71
+ | <a id="ispaused"></a> `isPaused` | `boolean` | Whether the video is paused mid-playback (position is preserved). Non-enumerable — not persisted to snapshots or save data. Set via [pause](#pause) / [play](#play) / [stop](#stop). | [components/Video.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L88) |
72
72
 
73
73
  ## Methods
74
74
 
@@ -78,7 +78,7 @@ Defined in: [components/Video.ts:90](https://github.com/Relu-Interactives/relu-s
78
78
  play(): void;
79
79
  ```
80
80
 
81
- Defined in: [components/Video.ts:127](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L127)
81
+ Defined in: [components/Video.ts:127](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L127)
82
82
 
83
83
  Signals `VideoSystem` to start (or resume) playback.
84
84
  Has no direct effect in the editor — `VideoSystem` drives the actual
@@ -96,7 +96,7 @@ HTML video element call in preview.
96
96
  pause(): void;
97
97
  ```
98
98
 
99
- Defined in: [components/Video.ts:137](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L137)
99
+ Defined in: [components/Video.ts:137](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L137)
100
100
 
101
101
  Signals `VideoSystem` to pause playback, preserving the current position.
102
102
  Calling [play](#play) afterwards resumes from where it paused.
@@ -114,7 +114,7 @@ No-op if not currently playing.
114
114
  stop(): void;
115
115
  ```
116
116
 
117
- Defined in: [components/Video.ts:146](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/Video.ts#L146)
117
+ Defined in: [components/Video.ts:146](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/Video.ts#L146)
118
118
 
119
119
  Signals `VideoSystem` to stop playback and reset the playback position.
120
120
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: XRAnchorComponent
8
8
 
9
- Defined in: [components/XRAnchor.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRAnchor.ts#L33)
9
+ Defined in: [components/XRAnchor.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRAnchor.ts#L33)
10
10
 
11
11
  Pins an entity to a real-world position.
12
12
 
@@ -41,7 +41,7 @@ supported here.
41
41
  new XRAnchorComponent(options?): XRAnchorComponent;
42
42
  ```
43
43
 
44
- Defined in: [components/XRAnchor.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRAnchor.ts#L37)
44
+ Defined in: [components/XRAnchor.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRAnchor.ts#L37)
45
45
 
46
46
  #### Parameters
47
47
 
@@ -61,4 +61,4 @@ Defined in: [components/XRAnchor.ts:37](https://github.com/Relu-Interactives/rel
61
61
 
62
62
  | Property | Type | Description | Defined in |
63
63
  | ------ | ------ | ------ | ------ |
64
- | <a id="enabled"></a> `enabled` | `boolean` | Whether the entity should anchor. Turning this off releases the anchor. | [components/XRAnchor.ts:35](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRAnchor.ts#L35) |
64
+ | <a id="enabled"></a> `enabled` | `boolean` | Whether the entity should anchor. Turning this off releases the anchor. | [components/XRAnchor.ts:35](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRAnchor.ts#L35) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: XREnvironmentComponent
8
8
 
9
- Defined in: [components/XREnvironment.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XREnvironment.ts#L26)
9
+ Defined in: [components/XREnvironment.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XREnvironment.ts#L26)
10
10
 
11
11
  Marks an entity as a piece of the user's REAL room, detected at runtime.
12
12
 
@@ -37,7 +37,7 @@ new XREnvironmentComponent(
37
37
  orientation?): XREnvironmentComponent;
38
38
  ```
39
39
 
40
- Defined in: [components/XREnvironment.ts:34](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XREnvironment.ts#L34)
40
+ Defined in: [components/XREnvironment.ts:34](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XREnvironment.ts#L34)
41
41
 
42
42
  #### Parameters
43
43
 
@@ -59,6 +59,6 @@ Defined in: [components/XREnvironment.ts:34](https://github.com/Relu-Interactive
59
59
 
60
60
  | Property | Type | Description | Defined in |
61
61
  | ------ | ------ | ------ | ------ |
62
- | <a id="kind"></a> `kind` | [`XrEnvironmentKind`](../type-aliases/XrEnvironmentKind.md) | Whether this came from plane detection or the room mesh. | [components/XREnvironment.ts:28](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XREnvironment.ts#L28) |
63
- | <a id="semanticlabel"></a> `semanticLabel` | `string` \| `null` | The runtime's classification, or `null` when it did not provide one. | [components/XREnvironment.ts:30](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XREnvironment.ts#L30) |
64
- | <a id="orientation"></a> `orientation` | \| [`XrEnvironmentOrientation`](../type-aliases/XrEnvironmentOrientation.md) \| `null` | Plane orientation, or `null` for mesh geometry and unclassified planes. | [components/XREnvironment.ts:32](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XREnvironment.ts#L32) |
62
+ | <a id="kind"></a> `kind` | [`XrEnvironmentKind`](../type-aliases/XrEnvironmentKind.md) | Whether this came from plane detection or the room mesh. | [components/XREnvironment.ts:28](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XREnvironment.ts#L28) |
63
+ | <a id="semanticlabel"></a> `semanticLabel` | `string` \| `null` | The runtime's classification, or `null` when it did not provide one. | [components/XREnvironment.ts:30](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XREnvironment.ts#L30) |
64
+ | <a id="orientation"></a> `orientation` | \| [`XrEnvironmentOrientation`](../type-aliases/XrEnvironmentOrientation.md) \| `null` | Plane orientation, or `null` for mesh geometry and unclassified planes. | [components/XREnvironment.ts:32](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XREnvironment.ts#L32) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: XRHandPoseComponent
8
8
 
9
- Defined in: [components/XRHandPose.ts:135](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRHandPose.ts#L135)
9
+ Defined in: [components/XRHandPose.ts:135](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRHandPose.ts#L135)
10
10
 
11
11
  Listens for hand poses and reports them to the entity's Behaviours.
12
12
 
@@ -26,7 +26,7 @@ rather than a property of the object itself.
26
26
  new XRHandPoseComponent(options?): XRHandPoseComponent;
27
27
  ```
28
28
 
29
- Defined in: [components/XRHandPose.ts:139](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRHandPose.ts#L139)
29
+ Defined in: [components/XRHandPose.ts:139](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRHandPose.ts#L139)
30
30
 
31
31
  #### Parameters
32
32
 
@@ -46,5 +46,5 @@ Defined in: [components/XRHandPose.ts:139](https://github.com/Relu-Interactives/
46
46
 
47
47
  | Property | Type | Defined in |
48
48
  | ------ | ------ | ------ |
49
- | <a id="enabled"></a> `enabled` | `boolean` | [components/XRHandPose.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRHandPose.ts#L136) |
50
- | <a id="poses"></a> `poses` | [`XrHandPoseEntry`](../type-aliases/XrHandPoseEntry.md)[] | [components/XRHandPose.ts:137](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRHandPose.ts#L137) |
49
+ | <a id="enabled"></a> `enabled` | `boolean` | [components/XRHandPose.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRHandPose.ts#L136) |
50
+ | <a id="poses"></a> `poses` | [`XrHandPoseEntry`](../type-aliases/XrHandPoseEntry.md)[] | [components/XRHandPose.ts:137](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRHandPose.ts#L137) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: XRInteractableComponent
8
8
 
9
- Defined in: [components/XRInteractable.ts:123](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L123)
9
+ Defined in: [components/XRInteractable.ts:123](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L123)
10
10
 
11
11
  Makes an entity respond to XR pointers and hands.
12
12
 
@@ -26,7 +26,7 @@ liftable, while a physics prop should be both.
26
26
  new XRInteractableComponent(options?): XRInteractableComponent;
27
27
  ```
28
28
 
29
- Defined in: [components/XRInteractable.ts:168](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L168)
29
+ Defined in: [components/XRInteractable.ts:168](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L168)
30
30
 
31
31
  #### Parameters
32
32
 
@@ -46,29 +46,29 @@ Defined in: [components/XRInteractable.ts:168](https://github.com/Relu-Interacti
46
46
 
47
47
  | Property | Type | Description | Defined in |
48
48
  | ------ | ------ | ------ | ------ |
49
- | <a id="enabled"></a> `enabled` | `boolean` | - | [components/XRInteractable.ts:124](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L124) |
50
- | <a id="grabbable"></a> `grabbable` | `boolean` | - | [components/XRInteractable.ts:125](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L125) |
51
- | <a id="pointable"></a> `pointable` | `boolean` | - | [components/XRInteractable.ts:126](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L126) |
52
- | <a id="grabreach"></a> `grabReach` | [`XrGrabReach`](../type-aliases/XrGrabReach.md) | Whether the object can be grabbed up close, at range, or either. | [components/XRInteractable.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L128) |
53
- | <a id="distancebehavior"></a> `distanceBehavior` | [`XrDistanceGrabBehavior`](../type-aliases/XrDistanceGrabBehavior.md) | What a distance grab does — bring it here, or manipulate it in place. | [components/XRInteractable.ts:130](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L130) |
54
- | <a id="grabgesture"></a> `grabGesture` | [`XrGrabGesture`](../type-aliases/XrGrabGesture.md) | Which gesture grabs it. | [components/XRInteractable.ts:132](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L132) |
55
- | <a id="grabradius"></a> `grabRadius` | `number` | Metres within which a physical grab registers. | [components/XRInteractable.ts:134](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L134) |
56
- | <a id="graboffsetposition"></a> `grabOffsetPosition` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Position offset from the hand while held. | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L136) |
57
- | `grabOffsetPosition.x` | `number` | - | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L136) |
58
- | `grabOffsetPosition.y` | `number` | - | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L136) |
59
- | `grabOffsetPosition.z` | `number` | - | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L136) |
60
- | <a id="graboffsetrotation"></a> `grabOffsetRotation` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Rotation offset (radians) while held. | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L138) |
61
- | `grabOffsetRotation.x` | `number` | - | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L138) |
62
- | `grabOffsetRotation.y` | `number` | - | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L138) |
63
- | `grabOffsetRotation.z` | `number` | - | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L138) |
64
- | <a id="grabhands"></a> `grabHands` | [`XrGrabHands`](../type-aliases/XrGrabHands.md) | How many hands may hold it, and whether a second grab transfers it. | [components/XRInteractable.ts:140](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L140) |
65
- | <a id="twohandrotation"></a> `twoHandRotation` | [`XrTwoHandRotation`](../type-aliases/XrTwoHandRotation.md) | Whether the second hand aims the object or only scales it. | [components/XRInteractable.ts:142](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L142) |
66
- | <a id="allowtwohandscale"></a> `allowTwoHandScale` | `boolean` | Whether a two-hand grab may resize the object. | [components/XRInteractable.ts:144](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L144) |
67
- | <a id="minscale"></a> `minScale` | `number` | Scale floor for one gesture, as a fraction of the size at grab time. | [components/XRInteractable.ts:146](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L146) |
68
- | <a id="maxscale"></a> `maxScale` | `number` | Scale ceiling for one gesture, as a multiple of the size at grab time. | [components/XRInteractable.ts:148](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L148) |
69
- | <a id="attachpoints"></a> `attachPoints` | [`XrAttachPoint`](../type-aliases/XrAttachPoint.md)[] | Authored hand-holds; empty means grab anywhere. | [components/XRInteractable.ts:150](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L150) |
70
- | <a id="applyvelocityonrelease"></a> `applyVelocityOnRelease` | `boolean` | Hand the object the velocity it was moving with when released. Applies to every release, not just a deliberate throw — letting go while your hand drifts should nudge the object, which is why this is not called "throw". | [components/XRInteractable.ts:158](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L158) |
71
- | <a id="velocityscale"></a> `velocityScale` | `number` | Multiplier on released velocity. | [components/XRInteractable.ts:160](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L160) |
72
- | <a id="hoverbehavior"></a> `hoverBehavior` | `XrHoverBehavior` | Feedback shown while a pointer is on the object. | [components/XRInteractable.ts:162](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L162) |
73
- | <a id="hovercolor"></a> `hoverColor` | `string` | Outline colour for the `color` and `both` behaviours. | [components/XRInteractable.ts:164](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L164) |
74
- | <a id="hoverscale"></a> `hoverScale` | `number` | Size multiplier for the `scale` and `both` behaviours. | [components/XRInteractable.ts:166](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractable.ts#L166) |
49
+ | <a id="enabled"></a> `enabled` | `boolean` | - | [components/XRInteractable.ts:124](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L124) |
50
+ | <a id="grabbable"></a> `grabbable` | `boolean` | - | [components/XRInteractable.ts:125](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L125) |
51
+ | <a id="pointable"></a> `pointable` | `boolean` | - | [components/XRInteractable.ts:126](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L126) |
52
+ | <a id="grabreach"></a> `grabReach` | [`XrGrabReach`](../type-aliases/XrGrabReach.md) | Whether the object can be grabbed up close, at range, or either. | [components/XRInteractable.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L128) |
53
+ | <a id="distancebehavior"></a> `distanceBehavior` | [`XrDistanceGrabBehavior`](../type-aliases/XrDistanceGrabBehavior.md) | What a distance grab does — bring it here, or manipulate it in place. | [components/XRInteractable.ts:130](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L130) |
54
+ | <a id="grabgesture"></a> `grabGesture` | [`XrGrabGesture`](../type-aliases/XrGrabGesture.md) | Which gesture grabs it. | [components/XRInteractable.ts:132](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L132) |
55
+ | <a id="grabradius"></a> `grabRadius` | `number` | Metres within which a physical grab registers. | [components/XRInteractable.ts:134](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L134) |
56
+ | <a id="graboffsetposition"></a> `grabOffsetPosition` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Position offset from the hand while held. | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L136) |
57
+ | `grabOffsetPosition.x` | `number` | - | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L136) |
58
+ | `grabOffsetPosition.y` | `number` | - | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L136) |
59
+ | `grabOffsetPosition.z` | `number` | - | [components/XRInteractable.ts:136](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L136) |
60
+ | <a id="graboffsetrotation"></a> `grabOffsetRotation` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Rotation offset (radians) while held. | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L138) |
61
+ | `grabOffsetRotation.x` | `number` | - | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L138) |
62
+ | `grabOffsetRotation.y` | `number` | - | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L138) |
63
+ | `grabOffsetRotation.z` | `number` | - | [components/XRInteractable.ts:138](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L138) |
64
+ | <a id="grabhands"></a> `grabHands` | [`XrGrabHands`](../type-aliases/XrGrabHands.md) | How many hands may hold it, and whether a second grab transfers it. | [components/XRInteractable.ts:140](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L140) |
65
+ | <a id="twohandrotation"></a> `twoHandRotation` | [`XrTwoHandRotation`](../type-aliases/XrTwoHandRotation.md) | Whether the second hand aims the object or only scales it. | [components/XRInteractable.ts:142](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L142) |
66
+ | <a id="allowtwohandscale"></a> `allowTwoHandScale` | `boolean` | Whether a two-hand grab may resize the object. | [components/XRInteractable.ts:144](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L144) |
67
+ | <a id="minscale"></a> `minScale` | `number` | Scale floor for one gesture, as a fraction of the size at grab time. | [components/XRInteractable.ts:146](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L146) |
68
+ | <a id="maxscale"></a> `maxScale` | `number` | Scale ceiling for one gesture, as a multiple of the size at grab time. | [components/XRInteractable.ts:148](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L148) |
69
+ | <a id="attachpoints"></a> `attachPoints` | [`XrAttachPoint`](../type-aliases/XrAttachPoint.md)[] | Authored hand-holds; empty means grab anywhere. | [components/XRInteractable.ts:150](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L150) |
70
+ | <a id="applyvelocityonrelease"></a> `applyVelocityOnRelease` | `boolean` | Hand the object the velocity it was moving with when released. Applies to every release, not just a deliberate throw — letting go while your hand drifts should nudge the object, which is why this is not called "throw". | [components/XRInteractable.ts:158](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L158) |
71
+ | <a id="velocityscale"></a> `velocityScale` | `number` | Multiplier on released velocity. | [components/XRInteractable.ts:160](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L160) |
72
+ | <a id="hoverbehavior"></a> `hoverBehavior` | `XrHoverBehavior` | Feedback shown while a pointer is on the object. | [components/XRInteractable.ts:162](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L162) |
73
+ | <a id="hovercolor"></a> `hoverColor` | `string` | Outline colour for the `color` and `both` behaviours. | [components/XRInteractable.ts:164](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L164) |
74
+ | <a id="hoverscale"></a> `hoverScale` | `number` | Size multiplier for the `scale` and `both` behaviours. | [components/XRInteractable.ts:166](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractable.ts#L166) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: XRInteractorComponent
8
8
 
9
- Defined in: [components/XRInteractor.ts:71](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L71)
9
+ Defined in: [components/XRInteractor.ts:71](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L71)
10
10
 
11
11
  Configures what the user sees as their hands, and hosts custom hand content.
12
12
 
@@ -27,7 +27,7 @@ tools, gloves, or held props are built without any scripting.
27
27
  new XRInteractorComponent(options?): XRInteractorComponent;
28
28
  ```
29
29
 
30
- Defined in: [components/XRInteractor.ts:90](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L90)
30
+ Defined in: [components/XRInteractor.ts:90](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L90)
31
31
 
32
32
  #### Parameters
33
33
 
@@ -47,11 +47,11 @@ Defined in: [components/XRInteractor.ts:90](https://github.com/Relu-Interactives
47
47
 
48
48
  | Property | Type | Description | Defined in |
49
49
  | ------ | ------ | ------ | ------ |
50
- | <a id="interactortype"></a> `interactorType` | [`XrInteractorType`](../type-aliases/XrInteractorType.md) | What to render at the hands. | [components/XRInteractor.ts:73](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L73) |
51
- | <a id="handpreset"></a> `handPreset` | [`XrHandPreset`](../type-aliases/XrHandPreset.md) | Look for tracked-hand meshes. | [components/XRInteractor.ts:75](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L75) |
52
- | <a id="handcolor"></a> `handColor` | `string` | Tint applied by the preset. | [components/XRInteractor.ts:77](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L77) |
53
- | <a id="handopacity"></a> `handOpacity` | `number` | 0-1 opacity for translucent presets. | [components/XRInteractor.ts:79](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L79) |
54
- | <a id="handemissiveintensity"></a> `handEmissiveIntensity` | `number` | Emissive strength for glowing presets. | [components/XRInteractor.ts:81](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L81) |
55
- | <a id="rayvisibility"></a> `rayVisibility` | `XrRayVisibility` | When the pointer ray is drawn. | [components/XRInteractor.ts:84](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L84) |
56
- | <a id="raycolor"></a> `rayColor` | `string` | Pointer ray colour. | [components/XRInteractor.ts:86](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L86) |
57
- | <a id="raythickness"></a> `rayThickness` | `number` | Pointer ray thickness (diameter), metres. | [components/XRInteractor.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L88) |
50
+ | <a id="interactortype"></a> `interactorType` | [`XrInteractorType`](../type-aliases/XrInteractorType.md) | What to render at the hands. | [components/XRInteractor.ts:73](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L73) |
51
+ | <a id="handpreset"></a> `handPreset` | [`XrHandPreset`](../type-aliases/XrHandPreset.md) | Look for tracked-hand meshes. | [components/XRInteractor.ts:75](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L75) |
52
+ | <a id="handcolor"></a> `handColor` | `string` | Tint applied by the preset. | [components/XRInteractor.ts:77](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L77) |
53
+ | <a id="handopacity"></a> `handOpacity` | `number` | 0-1 opacity for translucent presets. | [components/XRInteractor.ts:79](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L79) |
54
+ | <a id="handemissiveintensity"></a> `handEmissiveIntensity` | `number` | Emissive strength for glowing presets. | [components/XRInteractor.ts:81](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L81) |
55
+ | <a id="rayvisibility"></a> `rayVisibility` | `XrRayVisibility` | When the pointer ray is drawn. | [components/XRInteractor.ts:84](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L84) |
56
+ | <a id="raycolor"></a> `rayColor` | `string` | Pointer ray colour. | [components/XRInteractor.ts:86](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L86) |
57
+ | <a id="raythickness"></a> `rayThickness` | `number` | Pointer ray thickness (diameter), metres. | [components/XRInteractor.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L88) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: XRInteractorSideComponent
8
8
 
9
- Defined in: [components/XRInteractor.ts:114](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L114)
9
+ Defined in: [components/XRInteractor.ts:114](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L114)
10
10
 
11
11
  Marks an entity as the left or right hand slot of an [XRInteractorComponent](XRInteractorComponent.md).
12
12
 
@@ -26,7 +26,7 @@ creates both slots.
26
26
  new XRInteractorSideComponent(options?): XRInteractorSideComponent;
27
27
  ```
28
28
 
29
- Defined in: [components/XRInteractor.ts:118](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L118)
29
+ Defined in: [components/XRInteractor.ts:118](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L118)
30
30
 
31
31
  #### Parameters
32
32
 
@@ -47,4 +47,4 @@ Defined in: [components/XRInteractor.ts:118](https://github.com/Relu-Interactive
47
47
 
48
48
  | Property | Type | Description | Defined in |
49
49
  | ------ | ------ | ------ | ------ |
50
- | <a id="side"></a> `side` | [`XrInteractorSide`](../type-aliases/XrInteractorSide.md) | Which hand this slot follows. | [components/XRInteractor.ts:116](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/72f129a02ec4b2f93ff337d16361a731efd8cc5d/core/components/XRInteractor.ts#L116) |
50
+ | <a id="side"></a> `side` | [`XrInteractorSide`](../type-aliases/XrInteractorSide.md) | Which hand this slot follows. | [components/XRInteractor.ts:116](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/1f58a477b3cb6564276f2cb1b267d20fd5344345/core/components/XRInteractor.ts#L116) |