@relu-interactives/spatial-ecs 0.2.13 → 0.2.15

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 (189) hide show
  1. package/dist/{System-CTTwEGn1.d.cts → System-BeuJ1xt5.d.cts} +2 -0
  2. package/dist/{System-CTTwEGn1.d.ts → System-BeuJ1xt5.d.ts} +2 -0
  3. package/dist/{Video-CV1-u6hL.d.ts → Video-Cym2C52L.d.ts} +1 -1
  4. package/dist/{Video-BMWPYc3q.d.cts → Video-D4B-z74P.d.cts} +1 -1
  5. package/dist/{chunk-KDZ6VBRO.js → chunk-D3AKP6QQ.js} +33 -6
  6. package/dist/chunk-D3AKP6QQ.js.map +1 -0
  7. package/dist/components/index.d.cts +2 -2
  8. package/dist/components/index.d.ts +2 -2
  9. package/dist/docs/api/Behaviour/classes/Behaviour.md +29 -29
  10. package/dist/docs/api/Component/classes/Component.md +1 -1
  11. package/dist/docs/api/components/classes/AnimationComponent.md +26 -26
  12. package/dist/docs/api/components/classes/AudioComponent.md +19 -19
  13. package/dist/docs/api/components/classes/CameraComponent.md +14 -14
  14. package/dist/docs/api/components/classes/EntityType.md +3 -3
  15. package/dist/docs/api/components/classes/Environment.md +3 -3
  16. package/dist/docs/api/components/classes/ImageComponent.md +7 -7
  17. package/dist/docs/api/components/classes/ImageTarget.md +7 -7
  18. package/dist/docs/api/components/classes/ImageTargetAnchor.md +4 -4
  19. package/dist/docs/api/components/classes/InstanceSlotComponent.md +4 -4
  20. package/dist/docs/api/components/classes/InstancedMeshComponent.md +10 -10
  21. package/dist/docs/api/components/classes/LightComponent.md +6 -6
  22. package/dist/docs/api/components/classes/MaterialComponent.md +11 -11
  23. package/dist/docs/api/components/classes/MeshComponent.md +3 -3
  24. package/dist/docs/api/components/classes/MeshGeometryComponent.md +9 -9
  25. package/dist/docs/api/components/classes/ModelComponent.md +4 -4
  26. package/dist/docs/api/components/classes/Name.md +3 -3
  27. package/dist/docs/api/components/classes/Object3DRef.md +4 -4
  28. package/dist/docs/api/components/classes/ParentId.md +3 -3
  29. package/dist/docs/api/components/classes/PhysicsComponent.md +6 -6
  30. package/dist/docs/api/components/classes/Postprocessing.md +3 -3
  31. package/dist/docs/api/components/classes/ScriptComponent.md +5 -5
  32. package/dist/docs/api/components/classes/Selectable.md +3 -3
  33. package/dist/docs/api/components/classes/SelectionTransformState.md +5 -5
  34. package/dist/docs/api/components/classes/SpriteComponent.md +7 -7
  35. package/dist/docs/api/components/classes/TransformComponent.md +12 -12
  36. package/dist/docs/api/components/classes/VideoComponent.md +28 -28
  37. package/dist/docs/api/components/functions/normalizePhysicsState.md +1 -1
  38. package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +9 -9
  39. package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +13 -13
  40. package/dist/docs/api/components/type-aliases/CameraProjection.md +1 -1
  41. package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +1 -1
  42. package/dist/docs/api/components/type-aliases/ColliderShape.md +1 -1
  43. package/dist/docs/api/components/type-aliases/ColliderState.md +20 -20
  44. package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +4 -4
  45. package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +1 -1
  46. package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +8 -8
  47. package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +1 -1
  48. package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +1 -1
  49. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +7 -7
  50. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +1 -1
  51. package/dist/docs/api/components/type-aliases/EnvironmentState.md +5 -5
  52. package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +3 -3
  53. package/dist/docs/api/components/type-aliases/ImageTargetReference.md +7 -7
  54. package/dist/docs/api/components/type-aliases/InstanceTransform.md +13 -13
  55. package/dist/docs/api/components/type-aliases/InstancedMeshKind.md +1 -1
  56. package/dist/docs/api/components/type-aliases/LightValueState.md +11 -11
  57. package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +1 -1
  58. package/dist/docs/api/components/type-aliases/MaterialValueState.md +28 -28
  59. package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +1 -1
  60. package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +7 -7
  61. package/dist/docs/api/components/type-aliases/PhysicsState.md +3 -3
  62. package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +3 -3
  63. package/dist/docs/api/components/type-aliases/PostprocessingState.md +62 -62
  64. package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +3 -3
  65. package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +2 -2
  66. package/dist/docs/api/components/type-aliases/RigidbodyState.md +17 -17
  67. package/dist/docs/api/components/type-aliases/RigidbodyType.md +1 -1
  68. package/dist/docs/api/components/type-aliases/ScriptEntry.md +9 -9
  69. package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +1 -1
  70. package/dist/docs/api/components/type-aliases/TransformData.md +4 -4
  71. package/dist/docs/api/components/type-aliases/TransformModeValue.md +1 -1
  72. package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +1 -1
  73. package/dist/docs/api/components/type-aliases/Vec3.md +4 -4
  74. package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +1 -1
  75. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +1 -1
  76. package/dist/docs/api/components/variables/DEFAULT_INSTANCED_MESH_PARAMETERS.md +1 -1
  77. package/dist/docs/api/components/variables/DEFAULT_INSTANCE_TRANSFORM.md +1 -1
  78. package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +1 -1
  79. package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +1 -1
  80. package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +1 -1
  81. package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +1 -1
  82. package/dist/docs/api/index/classes/AnimationStateMachine.md +16 -16
  83. package/dist/docs/api/index/classes/AnimationStateManager.md +13 -13
  84. package/dist/docs/api/index/classes/AnimationSystem.md +3 -3
  85. package/dist/docs/api/index/classes/AudioSystem.md +4 -4
  86. package/dist/docs/api/index/classes/CameraSyncSystem.md +2 -2
  87. package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +4 -4
  88. package/dist/docs/api/index/classes/InputSystem.md +33 -33
  89. package/dist/docs/api/index/classes/InstancedMeshSystem.md +2 -2
  90. package/dist/docs/api/index/classes/LightSyncSystem.md +2 -2
  91. package/dist/docs/api/index/classes/MaterialSyncSystem.md +3 -3
  92. package/dist/docs/api/index/classes/MeshGeometrySystem.md +2 -2
  93. package/dist/docs/api/index/classes/ObjectManagementSystem.md +14 -14
  94. package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +2 -2
  95. package/dist/docs/api/index/classes/PhysicsSyncSystem.md +4 -4
  96. package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +4 -4
  97. package/dist/docs/api/index/classes/RenderSystem.md +3 -3
  98. package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +4 -4
  99. package/dist/docs/api/index/classes/TransformSyncSystem.md +2 -2
  100. package/dist/docs/api/index/classes/VideoSystem.md +4 -4
  101. package/dist/docs/api/index/classes/World.md +124 -84
  102. package/dist/docs/api/index/functions/createAnimationComponent.md +1 -1
  103. package/dist/docs/api/index/functions/createAudioComponent.md +1 -1
  104. package/dist/docs/api/index/functions/createCameraComponent.md +1 -1
  105. package/dist/docs/api/index/functions/createEntityTypeComponent.md +1 -1
  106. package/dist/docs/api/index/functions/createEnvironmentComponent.md +1 -1
  107. package/dist/docs/api/index/functions/createImageComponent.md +1 -1
  108. package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +1 -1
  109. package/dist/docs/api/index/functions/createImageTargetComponent.md +1 -1
  110. package/dist/docs/api/index/functions/createInstanceSlotComponent.md +1 -1
  111. package/dist/docs/api/index/functions/createInstancedMeshComponent.md +1 -1
  112. package/dist/docs/api/index/functions/createLightComponent.md +1 -1
  113. package/dist/docs/api/index/functions/createMaterialComponent.md +1 -1
  114. package/dist/docs/api/index/functions/createMeshComponent.md +1 -1
  115. package/dist/docs/api/index/functions/createMeshGeometryComponent.md +1 -1
  116. package/dist/docs/api/index/functions/createModelComponent.md +1 -1
  117. package/dist/docs/api/index/functions/createNameComponent.md +1 -1
  118. package/dist/docs/api/index/functions/createObject3DRefComponent.md +1 -1
  119. package/dist/docs/api/index/functions/createParentIdComponent.md +1 -1
  120. package/dist/docs/api/index/functions/createPhysicsComponent.md +1 -1
  121. package/dist/docs/api/index/functions/createPostprocessingComponent.md +1 -1
  122. package/dist/docs/api/index/functions/createScriptComponent.md +1 -1
  123. package/dist/docs/api/index/functions/createSelectableComponent.md +1 -1
  124. package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +1 -1
  125. package/dist/docs/api/index/functions/createSpriteComponent.md +1 -1
  126. package/dist/docs/api/index/functions/createTransformComponent.md +1 -1
  127. package/dist/docs/api/index/functions/createVideoComponent.md +1 -1
  128. package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +1 -1
  129. package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +1 -1
  130. package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +1 -1
  131. package/dist/docs/api/index/functions/registerDefaultFactories.md +1 -1
  132. package/dist/docs/api/index/interfaces/EcsSystem.md +3 -3
  133. package/dist/docs/api/index/interfaces/StateMachine.md +13 -13
  134. package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +4 -4
  135. package/dist/docs/api/index/type-aliases/ComponentFactory.md +1 -1
  136. package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +1 -1
  137. package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +3 -3
  138. package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +4 -4
  139. package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +3 -3
  140. package/dist/docs/api/index/type-aliases/KeyboardKey.md +1 -1
  141. package/dist/docs/api/index/type-aliases/MouseButton.md +1 -1
  142. package/dist/docs/api/index/type-aliases/SelectionContext.md +4 -4
  143. package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +1 -1
  144. package/dist/docs/api/index/variables/KeyboardKeys.md +89 -89
  145. package/dist/docs/api/types/type-aliases/AssetInput.md +3 -3
  146. package/dist/docs/api/types/type-aliases/CheckboxInput.md +3 -3
  147. package/dist/docs/api/types/type-aliases/ColorInput.md +1 -1
  148. package/dist/docs/api/types/type-aliases/ComponentInput.md +4 -4
  149. package/dist/docs/api/types/type-aliases/ComponentKind.md +1 -1
  150. package/dist/docs/api/types/type-aliases/DropdownInput.md +3 -3
  151. package/dist/docs/api/types/type-aliases/DropdownOption.md +3 -3
  152. package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +1 -1
  153. package/dist/docs/api/types/type-aliases/EcsEntityKind.md +1 -1
  154. package/dist/docs/api/types/type-aliases/EntityId.md +1 -1
  155. package/dist/docs/api/types/type-aliases/EntityInput.md +3 -3
  156. package/dist/docs/api/types/type-aliases/FloatInput.md +1 -1
  157. package/dist/docs/api/types/type-aliases/IntersectionResult.md +3 -3
  158. package/dist/docs/api/types/type-aliases/ParentLookup.md +3 -3
  159. package/dist/docs/api/types/type-aliases/SelectionListener.md +1 -1
  160. package/dist/docs/api/types/type-aliases/SliderInput.md +5 -5
  161. package/dist/docs/api/types/type-aliases/TextInput.md +1 -1
  162. package/dist/docs/api/types/type-aliases/ToggleInput.md +1 -1
  163. package/dist/docs/api/types/type-aliases/Vec3.md +1 -1
  164. package/dist/docs/api/types/type-aliases/Vector2Input.md +3 -3
  165. package/dist/docs/api/types/type-aliases/Vector3Input.md +4 -4
  166. package/dist/docs/api/types/type-aliases/WorldEntityView.md +1 -1
  167. package/dist/docs/guide/components/parent-id.md +25 -0
  168. package/dist/docs/guide/world-api.md +34 -0
  169. package/dist/factories/index.d.cts +2 -2
  170. package/dist/factories/index.d.ts +2 -2
  171. package/dist/{index-D7q4SRCp.d.cts → index-BfoOC2CG.d.cts} +2 -2
  172. package/dist/{index-ByX7502C.d.ts → index-BoJ3_6a3.d.ts} +2 -2
  173. package/dist/index.cjs +49 -4
  174. package/dist/index.cjs.map +1 -1
  175. package/dist/index.d.cts +5 -5
  176. package/dist/index.d.ts +5 -5
  177. package/dist/index.js +21 -3
  178. package/dist/index.js.map +1 -1
  179. package/dist/systems/index.cjs +31 -4
  180. package/dist/systems/index.cjs.map +1 -1
  181. package/dist/systems/index.d.cts +6 -2
  182. package/dist/systems/index.d.ts +6 -2
  183. package/dist/systems/index.js +1 -1
  184. package/dist/types.d.cts +1 -1
  185. package/dist/types.d.ts +1 -1
  186. package/dist/worldSnapshotUtils.d.cts +1 -1
  187. package/dist/worldSnapshotUtils.d.ts +1 -1
  188. package/package.json +1 -1
  189. package/dist/chunk-KDZ6VBRO.js.map +0 -1
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: ScriptComponent
8
8
 
9
- Defined in: [components/ScriptComponent.ts:42](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/ScriptComponent.ts#L42)
9
+ Defined in: [components/ScriptComponent.ts:42](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/ScriptComponent.ts#L42)
10
10
 
11
11
  Component holding the list of [scripts](../type-aliases/ScriptEntry.md) attached to an
12
12
  entity. Loaded from the saved project; the runtime-side fields
@@ -29,7 +29,7 @@ Authored scripts subclass [Behaviour](../../Behaviour/index.md).
29
29
  new ScriptComponent(entries?): ScriptComponent;
30
30
  ```
31
31
 
32
- Defined in: [components/ScriptComponent.ts:50](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/ScriptComponent.ts#L50)
32
+ Defined in: [components/ScriptComponent.ts:50](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/ScriptComponent.ts#L50)
33
33
 
34
34
  #### Parameters
35
35
 
@@ -49,6 +49,6 @@ Defined in: [components/ScriptComponent.ts:50](https://github.com/Relu-Interacti
49
49
 
50
50
  | Property | Type | Description | Defined in |
51
51
  | ------ | ------ | ------ | ------ |
52
- | <a id="entries"></a> `entries` | [`ScriptEntry`](../type-aliases/ScriptEntry.md)[] | Authored script entries attached to the entity. Each entry references a class by name plus its inspector field overrides. Saved with the project. | [components/ScriptComponent.ts:44](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/ScriptComponent.ts#L44) |
53
- | <a id="scriptinstance"></a> `scriptInstance` | `unknown` | First live behaviour instance after compile/load. Non-enumerable, so it does not appear in save data. `null` when no script is loaded. | [components/ScriptComponent.ts:46](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/ScriptComponent.ts#L46) |
54
- | <a id="scriptinstances"></a> `scriptInstances` | `Map`\<`number`, `unknown`\> | Map of `entityId` to its compiled behaviour instance (one entry per script bound to the entity). Non-enumerable, so it does not appear in save data. | [components/ScriptComponent.ts:48](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/ScriptComponent.ts#L48) |
52
+ | <a id="entries"></a> `entries` | [`ScriptEntry`](../type-aliases/ScriptEntry.md)[] | Authored script entries attached to the entity. Each entry references a class by name plus its inspector field overrides. Saved with the project. | [components/ScriptComponent.ts:44](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/ScriptComponent.ts#L44) |
53
+ | <a id="scriptinstance"></a> `scriptInstance` | `unknown` | First live behaviour instance after compile/load. Non-enumerable, so it does not appear in save data. `null` when no script is loaded. | [components/ScriptComponent.ts:46](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/ScriptComponent.ts#L46) |
54
+ | <a id="scriptinstances"></a> `scriptInstances` | `Map`\<`number`, `unknown`\> | Map of `entityId` to its compiled behaviour instance (one entry per script bound to the entity). Non-enumerable, so it does not appear in save data. | [components/ScriptComponent.ts:48](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/ScriptComponent.ts#L48) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: Selectable
8
8
 
9
- Defined in: [components/Selectable.ts:9](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Selectable.ts#L9)
9
+ Defined in: [components/Selectable.ts:9](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Selectable.ts#L9)
10
10
 
11
11
  Toggles whether the editor selection system can pick this entity. When
12
12
  `enabled` is `false`, the entity is excluded from raycast hit tests.
@@ -23,7 +23,7 @@ Toggles whether the editor selection system can pick this entity. When
23
23
  new Selectable(enabled?): Selectable;
24
24
  ```
25
25
 
26
- Defined in: [components/Selectable.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Selectable.ts#L13)
26
+ Defined in: [components/Selectable.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Selectable.ts#L13)
27
27
 
28
28
  #### Parameters
29
29
 
@@ -43,4 +43,4 @@ Defined in: [components/Selectable.ts:13](https://github.com/Relu-Interactives/r
43
43
 
44
44
  | Property | Type | Description | Defined in |
45
45
  | ------ | ------ | ------ | ------ |
46
- | <a id="enabled"></a> `enabled` | `boolean` | When `false`, the editor selection raycaster ignores this entity. | [components/Selectable.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Selectable.ts#L11) |
46
+ | <a id="enabled"></a> `enabled` | `boolean` | When `false`, the editor selection raycaster ignores this entity. | [components/Selectable.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Selectable.ts#L11) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: SelectionTransformState
8
8
 
9
- Defined in: [components/SelectionTransformState.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/SelectionTransformState.ts#L16)
9
+ Defined in: [components/SelectionTransformState.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/SelectionTransformState.ts#L16)
10
10
 
11
11
  Singleton-style component (attached once to a system entity) that mirrors
12
12
  the editor's current transform-gizmo state into the ECS world. Persisted in
@@ -27,7 +27,7 @@ new SelectionTransformState(
27
27
  selectedEntityId?): SelectionTransformState;
28
28
  ```
29
29
 
30
- Defined in: [components/SelectionTransformState.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/SelectionTransformState.ts#L24)
30
+ Defined in: [components/SelectionTransformState.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/SelectionTransformState.ts#L24)
31
31
 
32
32
  #### Parameters
33
33
 
@@ -49,6 +49,6 @@ Defined in: [components/SelectionTransformState.ts:24](https://github.com/Relu-I
49
49
 
50
50
  | Property | Type | Description | Defined in |
51
51
  | ------ | ------ | ------ | ------ |
52
- | <a id="transform"></a> `transform` | [`TransformModeValue`](../type-aliases/TransformModeValue.md) | Active gizmo mode (`translate`, `rotate`, or `scale`). | [components/SelectionTransformState.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/SelectionTransformState.ts#L18) |
53
- | <a id="space"></a> `space` | [`TransformSpaceValue`](../type-aliases/TransformSpaceValue.md) | Reference frame for the gizmo (`world` or `local`). | [components/SelectionTransformState.ts:20](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/SelectionTransformState.ts#L20) |
54
- | <a id="selectedentityid"></a> `selectedEntityId` | `number` \| `null` | Currently selected entity id, or `null` if nothing is selected. | [components/SelectionTransformState.ts:22](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/SelectionTransformState.ts#L22) |
52
+ | <a id="transform"></a> `transform` | [`TransformModeValue`](../type-aliases/TransformModeValue.md) | Active gizmo mode (`translate`, `rotate`, or `scale`). | [components/SelectionTransformState.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/SelectionTransformState.ts#L18) |
53
+ | <a id="space"></a> `space` | [`TransformSpaceValue`](../type-aliases/TransformSpaceValue.md) | Reference frame for the gizmo (`world` or `local`). | [components/SelectionTransformState.ts:20](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/SelectionTransformState.ts#L20) |
54
+ | <a id="selectedentityid"></a> `selectedEntityId` | `number` \| `null` | Currently selected entity id, or `null` if nothing is selected. | [components/SelectionTransformState.ts:22](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/SelectionTransformState.ts#L22) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: SpriteComponent
8
8
 
9
- Defined in: [components/Sprite.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Sprite.ts#L11)
9
+ Defined in: [components/Sprite.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Sprite.ts#L11)
10
10
 
11
11
  Camera-facing 2D sprite. Unlike [ImageComponent](ImageComponent.md), sprites use
12
12
  `THREE.Sprite` and always render as billboards.
@@ -26,7 +26,7 @@ new SpriteComponent(
26
26
  height?): SpriteComponent;
27
27
  ```
28
28
 
29
- Defined in: [components/Sprite.ts:23](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Sprite.ts#L23)
29
+ Defined in: [components/Sprite.ts:23](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Sprite.ts#L23)
30
30
 
31
31
  #### Parameters
32
32
 
@@ -48,8 +48,8 @@ Defined in: [components/Sprite.ts:23](https://github.com/Relu-Interactives/relu-
48
48
 
49
49
  | Property | Type | Description | Defined in |
50
50
  | ------ | ------ | ------ | ------ |
51
- | <a id="path"></a> `path` | `string` | Source URL or `localasset://` path of the sprite image. | [components/Sprite.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Sprite.ts#L13) |
52
- | <a id="width"></a> `width` | `number` | Width of the sprite in world units. | [components/Sprite.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Sprite.ts#L15) |
53
- | <a id="height"></a> `height` | `number` | Height of the sprite in world units. | [components/Sprite.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Sprite.ts#L17) |
54
- | <a id="texture"></a> `texture` | `Texture` \| `null` | Loaded texture, populated asynchronously. `null` until loaded. | [components/Sprite.ts:19](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Sprite.ts#L19) |
55
- | <a id="object"></a> `object` | `Sprite`\<`Object3DEventMap`\> \| `null` | Live `THREE.Sprite` placed in the scene. `null` until built. | [components/Sprite.ts:21](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Sprite.ts#L21) |
51
+ | <a id="path"></a> `path` | `string` | Source URL or `localasset://` path of the sprite image. | [components/Sprite.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Sprite.ts#L13) |
52
+ | <a id="width"></a> `width` | `number` | Width of the sprite in world units. | [components/Sprite.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Sprite.ts#L15) |
53
+ | <a id="height"></a> `height` | `number` | Height of the sprite in world units. | [components/Sprite.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Sprite.ts#L17) |
54
+ | <a id="texture"></a> `texture` | `Texture` \| `null` | Loaded texture, populated asynchronously. `null` until loaded. | [components/Sprite.ts:19](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Sprite.ts#L19) |
55
+ | <a id="object"></a> `object` | `Sprite`\<`Object3DEventMap`\> \| `null` | Live `THREE.Sprite` placed in the scene. `null` until built. | [components/Sprite.ts:21](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Sprite.ts#L21) |
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: TransformComponent
8
8
 
9
- Defined in: [components/Transform.ts:50](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L50)
9
+ Defined in: [components/Transform.ts:50](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L50)
10
10
 
11
11
  Position, rotation, and scale of an entity in its parent's local space.
12
12
 
@@ -29,7 +29,7 @@ helpers so dependent systems pick up the change.
29
29
  new TransformComponent(data?): TransformComponent;
30
30
  ```
31
31
 
32
- Defined in: [components/Transform.ts:58](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L58)
32
+ Defined in: [components/Transform.ts:58](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L58)
33
33
 
34
34
  #### Parameters
35
35
 
@@ -49,9 +49,9 @@ Defined in: [components/Transform.ts:58](https://github.com/Relu-Interactives/re
49
49
 
50
50
  | Property | Type | Description | Defined in |
51
51
  | ------ | ------ | ------ | ------ |
52
- | <a id="position"></a> `position` | [`Vec3`](../type-aliases/Vec3.md) | Local position relative to the parent (or world if no parent). | [components/Transform.ts:52](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L52) |
53
- | <a id="rotation"></a> `rotation` | [`Vec3`](../type-aliases/Vec3.md) | Local rotation as Euler XYZ in **radians**. | [components/Transform.ts:54](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L54) |
54
- | <a id="scale"></a> `scale` | [`Vec3`](../type-aliases/Vec3.md) | Local scale factors per axis (`1` = identity). | [components/Transform.ts:56](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L56) |
52
+ | <a id="position"></a> `position` | [`Vec3`](../type-aliases/Vec3.md) | Local position relative to the parent (or world if no parent). | [components/Transform.ts:52](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L52) |
53
+ | <a id="rotation"></a> `rotation` | [`Vec3`](../type-aliases/Vec3.md) | Local rotation as Euler XYZ in **radians**. | [components/Transform.ts:54](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L54) |
54
+ | <a id="scale"></a> `scale` | [`Vec3`](../type-aliases/Vec3.md) | Local scale factors per axis (`1` = identity). | [components/Transform.ts:56](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L56) |
55
55
 
56
56
  ## Methods
57
57
 
@@ -61,7 +61,7 @@ Defined in: [components/Transform.ts:58](https://github.com/Relu-Interactives/re
61
61
  toPositionVector3(target?): Vector3;
62
62
  ```
63
63
 
64
- Defined in: [components/Transform.ts:84](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L84)
64
+ Defined in: [components/Transform.ts:84](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L84)
65
65
 
66
66
  #### Parameters
67
67
 
@@ -81,7 +81,7 @@ Defined in: [components/Transform.ts:84](https://github.com/Relu-Interactives/re
81
81
  toRotationEuler(target?, order?): Euler;
82
82
  ```
83
83
 
84
- Defined in: [components/Transform.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L88)
84
+ Defined in: [components/Transform.ts:88](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L88)
85
85
 
86
86
  #### Parameters
87
87
 
@@ -102,7 +102,7 @@ Defined in: [components/Transform.ts:88](https://github.com/Relu-Interactives/re
102
102
  toRotationQuaternion(target?, order?): Quaternion;
103
103
  ```
104
104
 
105
- Defined in: [components/Transform.ts:95](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L95)
105
+ Defined in: [components/Transform.ts:95](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L95)
106
106
 
107
107
  #### Parameters
108
108
 
@@ -123,7 +123,7 @@ Defined in: [components/Transform.ts:95](https://github.com/Relu-Interactives/re
123
123
  toScaleVector3(target?): Vector3;
124
124
  ```
125
125
 
126
- Defined in: [components/Transform.ts:108](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L108)
126
+ Defined in: [components/Transform.ts:108](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L108)
127
127
 
128
128
  #### Parameters
129
129
 
@@ -143,7 +143,7 @@ Defined in: [components/Transform.ts:108](https://github.com/Relu-Interactives/r
143
143
  setPosition(input): this;
144
144
  ```
145
145
 
146
- Defined in: [components/Transform.ts:112](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L112)
146
+ Defined in: [components/Transform.ts:112](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L112)
147
147
 
148
148
  #### Parameters
149
149
 
@@ -163,7 +163,7 @@ Defined in: [components/Transform.ts:112](https://github.com/Relu-Interactives/r
163
163
  setScale(input): this;
164
164
  ```
165
165
 
166
- Defined in: [components/Transform.ts:120](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L120)
166
+ Defined in: [components/Transform.ts:120](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L120)
167
167
 
168
168
  #### Parameters
169
169
 
@@ -183,7 +183,7 @@ Defined in: [components/Transform.ts:120](https://github.com/Relu-Interactives/r
183
183
  setRotation(input, order?): this;
184
184
  ```
185
185
 
186
- Defined in: [components/Transform.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Transform.ts#L128)
186
+ Defined in: [components/Transform.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Transform.ts#L128)
187
187
 
188
188
  #### Parameters
189
189
 
@@ -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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L37)
9
+ Defined in: [components/Video.ts:37](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L90)
28
+ Defined in: [components/Video.ts:90](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L60) |
51
- | `options.autoplay` | `boolean` | - | [components/Video.ts:9](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L9) |
52
- | `options.loop` | `boolean` | - | [components/Video.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L10) |
53
- | `options.volume` | `number` | - | [components/Video.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L11) |
54
- | `options.width` | `number` | - | [components/Video.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L12) |
55
- | `options.height` | `number` | - | [components/Video.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L13) |
56
- | `options.isGreenScreen` | `boolean` | - | [components/Video.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L14) |
57
- | `options.backgroundColor` | `string` | - | [components/Video.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L15) |
58
- | `options.similarity` | `number` | - | [components/Video.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L16) |
59
- | `options.smoothness` | `number` | - | [components/Video.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L17) |
60
- | `options.spill` | `number` | - | [components/Video.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L64) |
67
- | <a id="texture"></a> `texture` | `VideoTexture` \| `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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L66) |
68
- | <a id="material"></a> `material` | `Material` \| `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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L60) |
51
+ | `options.autoplay` | `boolean` | - | [components/Video.ts:9](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L9) |
52
+ | `options.loop` | `boolean` | - | [components/Video.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L10) |
53
+ | `options.volume` | `number` | - | [components/Video.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L11) |
54
+ | `options.width` | `number` | - | [components/Video.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L12) |
55
+ | `options.height` | `number` | - | [components/Video.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L13) |
56
+ | `options.isGreenScreen` | `boolean` | - | [components/Video.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L14) |
57
+ | `options.backgroundColor` | `string` | - | [components/Video.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L15) |
58
+ | `options.similarity` | `number` | - | [components/Video.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L16) |
59
+ | `options.smoothness` | `number` | - | [components/Video.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L17) |
60
+ | `options.spill` | `number` | - | [components/Video.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L64) |
67
+ | <a id="texture"></a> `texture` | `VideoTexture` \| `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/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L66) |
68
+ | <a id="material"></a> `material` | `Material` \| `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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/f4080487315dc2ea88332b3160fc071e7828b385/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L127)
81
+ Defined in: [components/Video.ts:127](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L137)
99
+ Defined in: [components/Video.ts:137](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/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/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Video.ts#L146)
117
+ Defined in: [components/Video.ts:146](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Video.ts#L146)
118
118
 
119
119
  Signals `VideoSystem` to stop playback and reset the playback position.
120
120
 
@@ -10,7 +10,7 @@
10
10
  function normalizePhysicsState(value): PhysicsState;
11
11
  ```
12
12
 
13
- Defined in: [components/Physics.ts:319](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L319)
13
+ Defined in: [components/Physics.ts:319](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L319)
14
14
 
15
15
  ## Parameters
16
16
 
@@ -24,7 +24,7 @@ type AnimationComponentOptions = {
24
24
  };
25
25
  ```
26
26
 
27
- Defined in: [components/Animation.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Animation.ts#L10)
27
+ Defined in: [components/Animation.ts:10](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L10)
28
28
 
29
29
  Initializer for [AnimationComponent](../classes/AnimationComponent.md).
30
30
 
@@ -32,11 +32,11 @@ Initializer for [AnimationComponent](../classes/AnimationComponent.md).
32
32
 
33
33
  | Property | Type | Description | Defined in |
34
34
  | ------ | ------ | ------ | ------ |
35
- | <a id="clips"></a> `clips?` | `THREE.AnimationClip`[] | Initial set of clips imported from the entity's model. | [components/Animation.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Animation.ts#L12) |
36
- | <a id="externalclipsources"></a> `externalClipSources?` | `string`[] | URLs (or `localasset://` paths) of clips to load asynchronously and merge into the catalog. | [components/Animation.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Animation.ts#L14) |
37
- | <a id="activestate"></a> `activeState?` | `string` \| `null` | Name of the state to activate after construction. | [components/Animation.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Animation.ts#L16) |
38
- | <a id="paused"></a> `paused?` | `boolean` | Whether playback starts paused. | [components/Animation.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Animation.ts#L18) |
39
- | <a id="reverse"></a> `reverse?` | `boolean` | Play the active clip in reverse. | [components/Animation.ts:20](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Animation.ts#L20) |
40
- | <a id="timescale"></a> `timeScale?` | `number` | Time-scale multiplier (`1` = real-time). | [components/Animation.ts:22](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Animation.ts#L22) |
41
- | <a id="crossfadeduration"></a> `crossFadeDuration?` | `number` | Default cross-fade duration in seconds when switching states. | [components/Animation.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Animation.ts#L24) |
42
- | <a id="states"></a> `states?` | \{ `name`: `string`; `clip`: `string`; `clipId?`: `string`; `loop?`: `boolean`; \}[] | Predefined state machine entries (`name` -> clip binding). | [components/Animation.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Animation.ts#L26) |
35
+ | <a id="clips"></a> `clips?` | `THREE.AnimationClip`[] | Initial set of clips imported from the entity's model. | [components/Animation.ts:12](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L12) |
36
+ | <a id="externalclipsources"></a> `externalClipSources?` | `string`[] | URLs (or `localasset://` paths) of clips to load asynchronously and merge into the catalog. | [components/Animation.ts:14](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L14) |
37
+ | <a id="activestate"></a> `activeState?` | `string` \| `null` | Name of the state to activate after construction. | [components/Animation.ts:16](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L16) |
38
+ | <a id="paused"></a> `paused?` | `boolean` | Whether playback starts paused. | [components/Animation.ts:18](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L18) |
39
+ | <a id="reverse"></a> `reverse?` | `boolean` | Play the active clip in reverse. | [components/Animation.ts:20](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L20) |
40
+ | <a id="timescale"></a> `timeScale?` | `number` | Time-scale multiplier (`1` = real-time). | [components/Animation.ts:22](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L22) |
41
+ | <a id="crossfadeduration"></a> `crossFadeDuration?` | `number` | Default cross-fade duration in seconds when switching states. | [components/Animation.ts:24](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L24) |
42
+ | <a id="states"></a> `states?` | \{ `name`: `string`; `clip`: `string`; `clipId?`: `string`; `loop?`: `boolean`; \}[] | Predefined state machine entries (`name` -> clip binding). | [components/Animation.ts:26](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Animation.ts#L26) |
@@ -23,7 +23,7 @@ type CameraComponentOptions = {
23
23
  };
24
24
  ```
25
25
 
26
- Defined in: [components/Camera.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L11)
26
+ Defined in: [components/Camera.ts:11](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L11)
27
27
 
28
28
  Optional initializer for [CameraComponent](../classes/CameraComponent.md). Any field omitted falls back to the defaults documented on the component.
29
29
 
@@ -31,15 +31,15 @@ Optional initializer for [CameraComponent](../classes/CameraComponent.md). Any f
31
31
 
32
32
  | Property | Type | Description | Defined in |
33
33
  | ------ | ------ | ------ | ------ |
34
- | <a id="camera"></a> `camera?` | `THREE.Camera` | Pre-built three.js camera. When omitted the component creates one from [projection](#projection). | [components/Camera.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L13) |
35
- | <a id="type"></a> `type?` | [`CameraRuntimeType`](CameraRuntimeType.md) | Runtime camera mode. | [components/Camera.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L15) |
36
- | <a id="isdefault"></a> `isDefault?` | `boolean` | Mark this camera as the default camera the renderer uses. | [components/Camera.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L17) |
37
- | <a id="projection"></a> `projection?` | [`CameraProjection`](CameraProjection.md) | Projection model. | [components/Camera.ts:19](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L19) |
38
- | <a id="fov"></a> `fov?` | `number` | Vertical field of view in **degrees** (perspective only). | [components/Camera.ts:21](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L21) |
39
- | <a id="near"></a> `near?` | `number` | Near clip plane in world units. | [components/Camera.ts:23](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L23) |
40
- | <a id="far"></a> `far?` | `number` | Far clip plane in world units. | [components/Camera.ts:25](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L25) |
41
- | <a id="left"></a> `left?` | `number` | Left edge of the orthographic frustum in world units. | [components/Camera.ts:27](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L27) |
42
- | <a id="right"></a> `right?` | `number` | Right edge of the orthographic frustum in world units. | [components/Camera.ts:29](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L29) |
43
- | <a id="top"></a> `top?` | `number` | Top edge of the orthographic frustum in world units. | [components/Camera.ts:31](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L31) |
44
- | <a id="bottom"></a> `bottom?` | `number` | Bottom edge of the orthographic frustum in world units. | [components/Camera.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L33) |
45
- | <a id="zoom"></a> `zoom?` | `number` | Zoom multiplier (`1` = no zoom). | [components/Camera.ts:35](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L35) |
34
+ | <a id="camera"></a> `camera?` | `THREE.Camera` | Pre-built three.js camera. When omitted the component creates one from [projection](#projection). | [components/Camera.ts:13](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L13) |
35
+ | <a id="type"></a> `type?` | [`CameraRuntimeType`](CameraRuntimeType.md) | Runtime camera mode. | [components/Camera.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L15) |
36
+ | <a id="isdefault"></a> `isDefault?` | `boolean` | Mark this camera as the default camera the renderer uses. | [components/Camera.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L17) |
37
+ | <a id="projection"></a> `projection?` | [`CameraProjection`](CameraProjection.md) | Projection model. | [components/Camera.ts:19](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L19) |
38
+ | <a id="fov"></a> `fov?` | `number` | Vertical field of view in **degrees** (perspective only). | [components/Camera.ts:21](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L21) |
39
+ | <a id="near"></a> `near?` | `number` | Near clip plane in world units. | [components/Camera.ts:23](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L23) |
40
+ | <a id="far"></a> `far?` | `number` | Far clip plane in world units. | [components/Camera.ts:25](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L25) |
41
+ | <a id="left"></a> `left?` | `number` | Left edge of the orthographic frustum in world units. | [components/Camera.ts:27](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L27) |
42
+ | <a id="right"></a> `right?` | `number` | Right edge of the orthographic frustum in world units. | [components/Camera.ts:29](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L29) |
43
+ | <a id="top"></a> `top?` | `number` | Top edge of the orthographic frustum in world units. | [components/Camera.ts:31](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L31) |
44
+ | <a id="bottom"></a> `bottom?` | `number` | Bottom edge of the orthographic frustum in world units. | [components/Camera.ts:33](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L33) |
45
+ | <a id="zoom"></a> `zoom?` | `number` | Zoom multiplier (`1` = no zoom). | [components/Camera.ts:35](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L35) |
@@ -10,6 +10,6 @@
10
10
  type CameraProjection = "perspective" | "orthographic";
11
11
  ```
12
12
 
13
- Defined in: [components/Camera.ts:8](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L8)
13
+ Defined in: [components/Camera.ts:8](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L8)
14
14
 
15
15
  Projection model.
@@ -10,6 +10,6 @@
10
10
  type CameraRuntimeType = "3d" | "ar";
11
11
  ```
12
12
 
13
- Defined in: [components/Camera.ts:6](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Camera.ts#L6)
13
+ Defined in: [components/Camera.ts:6](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Camera.ts#L6)
14
14
 
15
15
  Runtime camera mode. `3d` is a free camera; `ar` is composited over a tracked image/face feed.
@@ -10,6 +10,6 @@
10
10
  type ColliderShape = "cuboid" | "ball" | "capsule" | "cylinder" | "trimesh";
11
11
  ```
12
12
 
13
- Defined in: [components/Physics.ts:83](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L83)
13
+ Defined in: [components/Physics.ts:83](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L83)
14
14
 
15
15
  Collider primitive shape. `trimesh` derives geometry from the entity's mesh.
@@ -33,7 +33,7 @@ type ColliderState = {
33
33
  };
34
34
  ```
35
35
 
36
- Defined in: [components/Physics.ts:91](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L91)
36
+ Defined in: [components/Physics.ts:91](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L91)
37
37
 
38
38
  Authoring state for the collider half of [PhysicsComponent](../classes/PhysicsComponent.md). Only the size fields relevant to [ColliderState.shape](#shape) are read at simulation time.
39
39
 
@@ -41,22 +41,22 @@ Authoring state for the collider half of [PhysicsComponent](../classes/PhysicsCo
41
41
 
42
42
  | Property | Type | Description | Defined in |
43
43
  | ------ | ------ | ------ | ------ |
44
- | <a id="enabled"></a> `enabled` | `boolean` | When `false`, the collider is removed from physics simulation but kept in state. | [components/Physics.ts:93](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L93) |
45
- | <a id="shape"></a> `shape` | [`ColliderShape`](ColliderShape.md) | Collider primitive shape. | [components/Physics.ts:95](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L95) |
46
- | <a id="offsetposition"></a> `offsetPosition` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Local offset of the collider relative to the entity's transform, in world units. | [components/Physics.ts:97](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L97) |
47
- | `offsetPosition.x` | `number` | Offset along local X. | [components/Physics.ts:99](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L99) |
48
- | `offsetPosition.y` | `number` | Offset along local Y. | [components/Physics.ts:101](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L101) |
49
- | `offsetPosition.z` | `number` | Offset along local Z. | [components/Physics.ts:103](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L103) |
50
- | <a id="offsetrotation"></a> `offsetRotation` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Local rotation offset in **radians** (Euler XYZ). | [components/Physics.ts:106](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L106) |
51
- | `offsetRotation.x` | `number` | Rotation around local X (radians). | [components/Physics.ts:108](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L108) |
52
- | `offsetRotation.y` | `number` | Rotation around local Y (radians). | [components/Physics.ts:110](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L110) |
53
- | `offsetRotation.z` | `number` | Rotation around local Z (radians). | [components/Physics.ts:112](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L112) |
54
- | <a id="size"></a> `size` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Half-extents for `cuboid` shape, in world units. | [components/Physics.ts:115](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L115) |
55
- | `size.x` | `number` | Half-extent along X. | [components/Physics.ts:117](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L117) |
56
- | `size.y` | `number` | Half-extent along Y. | [components/Physics.ts:119](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L119) |
57
- | `size.z` | `number` | Half-extent along Z. | [components/Physics.ts:121](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L121) |
58
- | <a id="radius"></a> `radius` | `number` | Radius for `ball`, `capsule`, and `cylinder` shapes. | [components/Physics.ts:124](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L124) |
59
- | <a id="height"></a> `height` | `number` | Height for `capsule` (segment length between caps) and `cylinder`. | [components/Physics.ts:126](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L126) |
60
- | <a id="restitution"></a> `restitution` | `number` | Bounciness in `[0, 1]`. `0` is no bounce; `1` is perfectly elastic. | [components/Physics.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L128) |
61
- | <a id="friction"></a> `friction` | `number` | Surface friction coefficient. `0` is frictionless. | [components/Physics.ts:130](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L130) |
62
- | <a id="issensor"></a> `isSensor` | `boolean` | When `true`, the collider reports overlaps but does not generate contact responses. | [components/Physics.ts:132](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/Physics.ts#L132) |
44
+ | <a id="enabled"></a> `enabled` | `boolean` | When `false`, the collider is removed from physics simulation but kept in state. | [components/Physics.ts:93](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L93) |
45
+ | <a id="shape"></a> `shape` | [`ColliderShape`](ColliderShape.md) | Collider primitive shape. | [components/Physics.ts:95](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L95) |
46
+ | <a id="offsetposition"></a> `offsetPosition` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Local offset of the collider relative to the entity's transform, in world units. | [components/Physics.ts:97](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L97) |
47
+ | `offsetPosition.x` | `number` | Offset along local X. | [components/Physics.ts:99](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L99) |
48
+ | `offsetPosition.y` | `number` | Offset along local Y. | [components/Physics.ts:101](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L101) |
49
+ | `offsetPosition.z` | `number` | Offset along local Z. | [components/Physics.ts:103](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L103) |
50
+ | <a id="offsetrotation"></a> `offsetRotation` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Local rotation offset in **radians** (Euler XYZ). | [components/Physics.ts:106](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L106) |
51
+ | `offsetRotation.x` | `number` | Rotation around local X (radians). | [components/Physics.ts:108](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L108) |
52
+ | `offsetRotation.y` | `number` | Rotation around local Y (radians). | [components/Physics.ts:110](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L110) |
53
+ | `offsetRotation.z` | `number` | Rotation around local Z (radians). | [components/Physics.ts:112](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L112) |
54
+ | <a id="size"></a> `size` | \{ `x`: `number`; `y`: `number`; `z`: `number`; \} | Half-extents for `cuboid` shape, in world units. | [components/Physics.ts:115](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L115) |
55
+ | `size.x` | `number` | Half-extent along X. | [components/Physics.ts:117](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L117) |
56
+ | `size.y` | `number` | Half-extent along Y. | [components/Physics.ts:119](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L119) |
57
+ | `size.z` | `number` | Half-extent along Z. | [components/Physics.ts:121](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L121) |
58
+ | <a id="radius"></a> `radius` | `number` | Radius for `ball`, `capsule`, and `cylinder` shapes. | [components/Physics.ts:124](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L124) |
59
+ | <a id="height"></a> `height` | `number` | Height for `capsule` (segment length between caps) and `cylinder`. | [components/Physics.ts:126](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L126) |
60
+ | <a id="restitution"></a> `restitution` | `number` | Bounciness in `[0, 1]`. `0` is no bounce; `1` is perfectly elastic. | [components/Physics.ts:128](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L128) |
61
+ | <a id="friction"></a> `friction` | `number` | Surface friction coefficient. `0` is frictionless. | [components/Physics.ts:130](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L130) |
62
+ | <a id="issensor"></a> `isSensor` | `boolean` | When `true`, the collider reports overlaps but does not generate contact responses. | [components/Physics.ts:132](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/Physics.ts#L132) |
@@ -14,7 +14,7 @@ type CubeMeshParameters = {
14
14
  };
15
15
  ```
16
16
 
17
- Defined in: [components/MeshGeometry.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/MeshGeometry.ts#L15)
17
+ Defined in: [components/MeshGeometry.ts:15](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/MeshGeometry.ts#L15)
18
18
 
19
19
  Box geometry parameters in world units.
20
20
 
@@ -22,6 +22,6 @@ Box geometry parameters in world units.
22
22
 
23
23
  | Property | Type | Description | Defined in |
24
24
  | ------ | ------ | ------ | ------ |
25
- | <a id="width"></a> `width` | `number` | Box width along X. | [components/MeshGeometry.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/MeshGeometry.ts#L17) |
26
- | <a id="height"></a> `height` | `number` | Box height along Y. | [components/MeshGeometry.ts:19](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/MeshGeometry.ts#L19) |
27
- | <a id="depth"></a> `depth` | `number` | Box depth along Z. | [components/MeshGeometry.ts:21](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/MeshGeometry.ts#L21) |
25
+ | <a id="width"></a> `width` | `number` | Box width along X. | [components/MeshGeometry.ts:17](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/MeshGeometry.ts#L17) |
26
+ | <a id="height"></a> `height` | `number` | Box height along Y. | [components/MeshGeometry.ts:19](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/MeshGeometry.ts#L19) |
27
+ | <a id="depth"></a> `depth` | `number` | Box depth along Z. | [components/MeshGeometry.ts:21](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/MeshGeometry.ts#L21) |
@@ -10,6 +10,6 @@
10
10
  type EditableMeshObjectKind = "capsule" | "cube" | "cylinder" | "model" | "plane" | "sphere";
11
11
  ```
12
12
 
13
- Defined in: [components/MeshGeometry.ts:6](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/375a01d80bdda3cdfa41b844bb575dcfc06ec96b/core/components/MeshGeometry.ts#L6)
13
+ Defined in: [components/MeshGeometry.ts:6](https://github.com/Relu-Interactives/relu-spatial-ecs-engine/blob/f4080487315dc2ea88332b3160fc071e7828b385/core/components/MeshGeometry.ts#L6)
14
14
 
15
15
  Editable primitive kinds the mesh-geometry system can rebuild on the fly. `model` is a passthrough placeholder for entities that own a loaded GLTF/GLB instead.