@iwsdk/core 0.4.2 → 0.5.0

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 (314) hide show
  1. package/README.md +4 -7
  2. package/dist/asset/asset-manager.d.ts +136 -8
  3. package/dist/asset/asset-manager.d.ts.map +1 -1
  4. package/dist/asset/asset-manager.js +491 -47
  5. package/dist/asset/asset-manager.js.map +1 -1
  6. package/dist/asset/cache-manager.d.ts +4 -2
  7. package/dist/asset/cache-manager.d.ts.map +1 -1
  8. package/dist/asset/cache-manager.js +10 -3
  9. package/dist/asset/cache-manager.js.map +1 -1
  10. package/dist/asset/loaders/audio-loader.d.ts +1 -1
  11. package/dist/asset/loaders/audio-loader.d.ts.map +1 -1
  12. package/dist/asset/loaders/audio-loader.js +8 -26
  13. package/dist/asset/loaders/audio-loader.js.map +1 -1
  14. package/dist/asset/loaders/cached-asset-load.d.ts +35 -0
  15. package/dist/asset/loaders/cached-asset-load.d.ts.map +1 -0
  16. package/dist/asset/loaders/cached-asset-load.js +100 -0
  17. package/dist/asset/loaders/cached-asset-load.js.map +1 -0
  18. package/dist/asset/loaders/gltf-loader.d.ts +28 -1
  19. package/dist/asset/loaders/gltf-loader.d.ts.map +1 -1
  20. package/dist/asset/loaders/gltf-loader.js +254 -33
  21. package/dist/asset/loaders/gltf-loader.js.map +1 -1
  22. package/dist/asset/loaders/hdr-texture-loader.d.ts +1 -1
  23. package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -1
  24. package/dist/asset/loaders/hdr-texture-loader.js +19 -29
  25. package/dist/asset/loaders/hdr-texture-loader.js.map +1 -1
  26. package/dist/asset/loaders/texture-loader.d.ts +1 -1
  27. package/dist/asset/loaders/texture-loader.d.ts.map +1 -1
  28. package/dist/asset/loaders/texture-loader.js +9 -26
  29. package/dist/asset/loaders/texture-loader.js.map +1 -1
  30. package/dist/asset/loaders/uikitml-loader.d.ts +12 -0
  31. package/dist/asset/loaders/uikitml-loader.d.ts.map +1 -0
  32. package/dist/asset/loaders/uikitml-loader.js +44 -0
  33. package/dist/asset/loaders/uikitml-loader.js.map +1 -0
  34. package/dist/audio/audio-pool.d.ts +7 -0
  35. package/dist/audio/audio-pool.d.ts.map +1 -1
  36. package/dist/audio/audio-pool.js.map +1 -1
  37. package/dist/audio/audio-system.d.ts +1 -0
  38. package/dist/audio/audio-system.d.ts.map +1 -1
  39. package/dist/audio/audio-system.js +16 -2
  40. package/dist/audio/audio-system.js.map +1 -1
  41. package/dist/camera/camera-system.d.ts.map +1 -1
  42. package/dist/camera/camera-system.js +5 -3
  43. package/dist/camera/camera-system.js.map +1 -1
  44. package/dist/depth/depth-sensing-system.d.ts.map +1 -1
  45. package/dist/depth/depth-sensing-system.js +31 -10
  46. package/dist/depth/depth-sensing-system.js.map +1 -1
  47. package/dist/ecs/builtin-components.d.ts +1239 -0
  48. package/dist/ecs/builtin-components.d.ts.map +1 -0
  49. package/dist/ecs/builtin-components.js +87 -0
  50. package/dist/ecs/builtin-components.js.map +1 -0
  51. package/dist/ecs/component-editor-metadata.d.ts +19 -0
  52. package/dist/ecs/component-editor-metadata.d.ts.map +1 -0
  53. package/dist/ecs/component-editor-metadata.js +19 -0
  54. package/dist/ecs/component-editor-metadata.js.map +1 -0
  55. package/dist/ecs/component-manifest.d.ts +24 -0
  56. package/dist/ecs/component-manifest.d.ts.map +1 -0
  57. package/dist/ecs/component-manifest.js +121 -0
  58. package/dist/ecs/component-manifest.js.map +1 -0
  59. package/dist/ecs/component.d.ts +1 -0
  60. package/dist/ecs/component.d.ts.map +1 -1
  61. package/dist/ecs/entity.d.ts +20 -2
  62. package/dist/ecs/entity.d.ts.map +1 -1
  63. package/dist/ecs/entity.js +59 -3
  64. package/dist/ecs/entity.js.map +1 -1
  65. package/dist/ecs/index.d.ts +3 -1
  66. package/dist/ecs/index.d.ts.map +1 -1
  67. package/dist/ecs/system.d.ts +9 -0
  68. package/dist/ecs/system.d.ts.map +1 -1
  69. package/dist/ecs/system.js.map +1 -1
  70. package/dist/ecs/world.d.ts +158 -4
  71. package/dist/ecs/world.d.ts.map +1 -1
  72. package/dist/ecs/world.js +304 -5
  73. package/dist/ecs/world.js.map +1 -1
  74. package/dist/environment/dome-gradient.d.ts +2 -1
  75. package/dist/environment/dome-gradient.d.ts.map +1 -1
  76. package/dist/environment/dome-gradient.js +2 -1
  77. package/dist/environment/dome-gradient.js.map +1 -1
  78. package/dist/environment/environment-system.d.ts +19 -3
  79. package/dist/environment/environment-system.d.ts.map +1 -1
  80. package/dist/environment/environment-system.js +78 -48
  81. package/dist/environment/environment-system.js.map +1 -1
  82. package/dist/environment/gradient-environment.d.ts.map +1 -1
  83. package/dist/environment/gradient-environment.js +13 -7
  84. package/dist/environment/gradient-environment.js.map +1 -1
  85. package/dist/environment/scene-ar-environment.d.ts +39 -0
  86. package/dist/environment/scene-ar-environment.d.ts.map +1 -0
  87. package/dist/environment/scene-ar-environment.js +93 -0
  88. package/dist/environment/scene-ar-environment.js.map +1 -0
  89. package/dist/grab/grab-helpers.d.ts +39 -0
  90. package/dist/grab/grab-helpers.d.ts.map +1 -0
  91. package/dist/grab/grab-helpers.js +59 -0
  92. package/dist/grab/grab-helpers.js.map +1 -0
  93. package/dist/grab/grab-system.d.ts +45 -0
  94. package/dist/grab/grab-system.d.ts.map +1 -1
  95. package/dist/grab/grab-system.js +67 -5
  96. package/dist/grab/grab-system.js.map +1 -1
  97. package/dist/grab/grab-warnings.d.ts +14 -0
  98. package/dist/grab/grab-warnings.d.ts.map +1 -0
  99. package/dist/grab/grab-warnings.js +53 -0
  100. package/dist/grab/grab-warnings.js.map +1 -0
  101. package/dist/grab/handles.d.ts.map +1 -1
  102. package/dist/grab/handles.js +8 -3
  103. package/dist/grab/handles.js.map +1 -1
  104. package/dist/index.d.ts +4 -0
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +42 -16
  107. package/dist/index.js.map +1 -1
  108. package/dist/init/world-initializer.d.ts +11 -7
  109. package/dist/init/world-initializer.d.ts.map +1 -1
  110. package/dist/init/world-initializer.js +118 -57
  111. package/dist/init/world-initializer.js.map +1 -1
  112. package/dist/init/xr.d.ts +0 -1
  113. package/dist/init/xr.d.ts.map +1 -1
  114. package/dist/init/xr.js +12 -3
  115. package/dist/init/xr.js.map +1 -1
  116. package/dist/input/input-system.d.ts.map +1 -1
  117. package/dist/input/input-system.js +26 -11
  118. package/dist/input/input-system.js.map +1 -1
  119. package/dist/layers/xr-layer-state.d.ts +47 -0
  120. package/dist/layers/xr-layer-state.d.ts.map +1 -0
  121. package/dist/layers/xr-layer-state.js +23 -0
  122. package/dist/layers/xr-layer-state.js.map +1 -0
  123. package/dist/layers/xr-layer-system.d.ts +45 -93
  124. package/dist/layers/xr-layer-system.d.ts.map +1 -1
  125. package/dist/layers/xr-layer-system.js +4 -25
  126. package/dist/layers/xr-layer-system.js.map +1 -1
  127. package/dist/level/index.d.ts +6 -2
  128. package/dist/level/index.d.ts.map +1 -1
  129. package/dist/level/level-component-applier.d.ts +24 -0
  130. package/dist/level/level-component-applier.d.ts.map +1 -0
  131. package/dist/level/level-component-applier.js +199 -0
  132. package/dist/level/level-component-applier.js.map +1 -0
  133. package/dist/level/level-player-rig.d.ts +17 -0
  134. package/dist/level/level-player-rig.d.ts.map +1 -0
  135. package/dist/level/level-player-rig.js +113 -0
  136. package/dist/level/level-player-rig.js.map +1 -0
  137. package/dist/level/level-scene-environment.d.ts +28 -0
  138. package/dist/level/level-scene-environment.d.ts.map +1 -0
  139. package/dist/level/level-scene-environment.js +121 -0
  140. package/dist/level/level-scene-environment.js.map +1 -0
  141. package/dist/level/level-scene-json-importer.d.ts +53 -0
  142. package/dist/level/level-scene-json-importer.d.ts.map +1 -0
  143. package/dist/level/level-scene-json-importer.js +256 -0
  144. package/dist/level/level-scene-json-importer.js.map +1 -0
  145. package/dist/level/level-scene-material.d.ts +22 -0
  146. package/dist/level/level-scene-material.d.ts.map +1 -0
  147. package/dist/level/level-scene-material.js +231 -0
  148. package/dist/level/level-scene-material.js.map +1 -0
  149. package/dist/level/level-scene-object.d.ts +49 -0
  150. package/dist/level/level-scene-object.d.ts.map +1 -0
  151. package/dist/level/level-scene-object.js +396 -0
  152. package/dist/level/level-scene-object.js.map +1 -0
  153. package/dist/level/level-scene-primitive.d.ts +21 -0
  154. package/dist/level/level-scene-primitive.d.ts.map +1 -0
  155. package/dist/level/level-scene-primitive.js +159 -0
  156. package/dist/level/level-scene-primitive.js.map +1 -0
  157. package/dist/level/level-system.d.ts +14 -20
  158. package/dist/level/level-system.d.ts.map +1 -1
  159. package/dist/level/level-system.js +114 -49
  160. package/dist/level/level-system.js.map +1 -1
  161. package/dist/lighting/index.d.ts +10 -0
  162. package/dist/lighting/index.d.ts.map +1 -0
  163. package/dist/lighting/index.js +4 -0
  164. package/dist/lighting/index.js.map +1 -0
  165. package/dist/lighting/light-binding.d.ts +76 -0
  166. package/dist/lighting/light-binding.d.ts.map +1 -0
  167. package/dist/lighting/light-binding.js +229 -0
  168. package/dist/lighting/light-binding.js.map +1 -0
  169. package/dist/lighting/light-components.d.ts +885 -0
  170. package/dist/lighting/light-components.d.ts.map +1 -0
  171. package/dist/lighting/light-components.js +146 -0
  172. package/dist/lighting/light-components.js.map +1 -0
  173. package/dist/lighting/light-system.d.ts +919 -0
  174. package/dist/lighting/light-system.d.ts.map +1 -0
  175. package/dist/lighting/light-system.js +244 -0
  176. package/dist/lighting/light-system.js.map +1 -0
  177. package/dist/locomotion/locomotion-environment.d.ts +27 -0
  178. package/dist/locomotion/locomotion-environment.d.ts.map +1 -0
  179. package/dist/locomotion/locomotion-environment.js +22 -0
  180. package/dist/locomotion/locomotion-environment.js.map +1 -0
  181. package/dist/locomotion/locomotion.d.ts +5 -34
  182. package/dist/locomotion/locomotion.d.ts.map +1 -1
  183. package/dist/locomotion/locomotion.js +33 -31
  184. package/dist/locomotion/locomotion.js.map +1 -1
  185. package/dist/locomotion/materials/line.js +1 -1
  186. package/dist/locomotion/slide.d.ts.map +1 -1
  187. package/dist/locomotion/slide.js +2 -2
  188. package/dist/locomotion/slide.js.map +1 -1
  189. package/dist/mcp/ecs-debug-tools.d.ts.map +1 -1
  190. package/dist/mcp/ecs-debug-tools.js +10 -2
  191. package/dist/mcp/ecs-debug-tools.js.map +1 -1
  192. package/dist/mcp/mcp-runtime.d.ts.map +1 -1
  193. package/dist/mcp/mcp-runtime.js +4 -1
  194. package/dist/mcp/mcp-runtime.js.map +1 -1
  195. package/dist/mcp/scene-tools.d.ts +152 -1
  196. package/dist/mcp/scene-tools.d.ts.map +1 -1
  197. package/dist/mcp/scene-tools.js +538 -8
  198. package/dist/mcp/scene-tools.js.map +1 -1
  199. package/dist/physics/index.js +11 -4
  200. package/dist/physics/index.js.map +1 -1
  201. package/dist/physics/physics-system.d.ts +704 -11
  202. package/dist/physics/physics-system.d.ts.map +1 -1
  203. package/dist/physics/physics-system.js +307 -25
  204. package/dist/physics/physics-system.js.map +1 -1
  205. package/dist/physics/physicsBody.d.ts +40 -1
  206. package/dist/physics/physicsBody.d.ts.map +1 -1
  207. package/dist/physics/physicsBody.js +39 -0
  208. package/dist/physics/physicsBody.js.map +1 -1
  209. package/dist/physics/physicsManipulation.d.ts +1 -1
  210. package/dist/physics/physicsManipulation.d.ts.map +1 -1
  211. package/dist/physics/physicsShape.d.ts +5 -3
  212. package/dist/physics/physicsShape.d.ts.map +1 -1
  213. package/dist/physics/physicsShape.js +2 -1
  214. package/dist/physics/physicsShape.js.map +1 -1
  215. package/dist/physics/utils.d.ts +10 -0
  216. package/dist/physics/utils.d.ts.map +1 -1
  217. package/dist/physics/utils.js +82 -48
  218. package/dist/physics/utils.js.map +1 -1
  219. package/dist/project/index.d.ts +11 -0
  220. package/dist/project/index.d.ts.map +1 -0
  221. package/dist/project/index.js +5 -0
  222. package/dist/project/index.js.map +1 -0
  223. package/dist/project/normalize.d.ts +19 -0
  224. package/dist/project/normalize.d.ts.map +1 -0
  225. package/dist/project/normalize.js +206 -0
  226. package/dist/project/normalize.js.map +1 -0
  227. package/dist/project/paths.d.ts +21 -0
  228. package/dist/project/paths.d.ts.map +1 -0
  229. package/dist/project/paths.js +75 -0
  230. package/dist/project/paths.js.map +1 -0
  231. package/dist/project/types.d.ts +159 -0
  232. package/dist/project/types.d.ts.map +1 -0
  233. package/dist/project/types.js +11 -0
  234. package/dist/project/types.js.map +1 -0
  235. package/dist/project/validation.d.ts +17 -0
  236. package/dist/project/validation.d.ts.map +1 -0
  237. package/dist/project/validation.js +501 -0
  238. package/dist/project/validation.js.map +1 -0
  239. package/dist/scene-understanding/scene-understanding-system.d.ts +23 -2
  240. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
  241. package/dist/scene-understanding/scene-understanding-system.js +76 -54
  242. package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
  243. package/dist/schemas/iwsdk-project.v1.schema.json +305 -0
  244. package/dist/transform/transform-component.d.ts +32 -0
  245. package/dist/transform/transform-component.d.ts.map +1 -0
  246. package/dist/transform/transform-component.js +24 -0
  247. package/dist/transform/transform-component.js.map +1 -0
  248. package/dist/transform/transform.d.ts +9 -42
  249. package/dist/transform/transform.d.ts.map +1 -1
  250. package/dist/transform/transform.js +8 -25
  251. package/dist/transform/transform.js.map +1 -1
  252. package/dist/ui/document.d.ts +9 -2
  253. package/dist/ui/document.d.ts.map +1 -1
  254. package/dist/ui/document.js +30 -5
  255. package/dist/ui/document.js.map +1 -1
  256. package/dist/ui/follow-component.d.ts +57 -0
  257. package/dist/ui/follow-component.d.ts.map +1 -0
  258. package/dist/ui/follow-component.js +38 -0
  259. package/dist/ui/follow-component.js.map +1 -0
  260. package/dist/ui/follow.d.ts +28 -102
  261. package/dist/ui/follow.d.ts.map +1 -1
  262. package/dist/ui/follow.js +10 -48
  263. package/dist/ui/follow.js.map +1 -1
  264. package/dist/ui/index.d.ts +3 -0
  265. package/dist/ui/index.d.ts.map +1 -1
  266. package/dist/ui/panel-components.d.ts +29 -0
  267. package/dist/ui/panel-components.d.ts.map +1 -0
  268. package/dist/ui/panel-components.js +22 -0
  269. package/dist/ui/panel-components.js.map +1 -0
  270. package/dist/ui/screenspace-component.d.ts +39 -0
  271. package/dist/ui/screenspace-component.d.ts.map +1 -0
  272. package/dist/ui/screenspace-component.js +21 -0
  273. package/dist/ui/screenspace-component.js.map +1 -0
  274. package/dist/ui/screenspace.d.ts +47 -135
  275. package/dist/ui/screenspace.d.ts.map +1 -1
  276. package/dist/ui/screenspace.js +127 -65
  277. package/dist/ui/screenspace.js.map +1 -1
  278. package/dist/ui/ui.d.ts +20 -122
  279. package/dist/ui/ui.d.ts.map +1 -1
  280. package/dist/ui/ui.js +44 -107
  281. package/dist/ui/ui.js.map +1 -1
  282. package/dist/ui/uikitml-asset.d.ts +25 -0
  283. package/dist/ui/uikitml-asset.d.ts.map +1 -0
  284. package/dist/ui/uikitml-asset.js +56 -0
  285. package/dist/ui/uikitml-asset.js.map +1 -0
  286. package/dist/ui/uikitml.d.ts +41 -0
  287. package/dist/ui/uikitml.d.ts.map +1 -0
  288. package/dist/ui/uikitml.js +119 -0
  289. package/dist/ui/uikitml.js.map +1 -0
  290. package/dist/vendor/draco/gltf/draco_encoder.js +0 -0
  291. package/dist/version.d.ts +1 -1
  292. package/dist/version.js +1 -1
  293. package/dist/visibility/visibility-component.d.ts +14 -0
  294. package/dist/visibility/visibility-component.d.ts.map +1 -0
  295. package/dist/visibility/visibility-component.js +15 -0
  296. package/dist/visibility/visibility-component.js.map +1 -0
  297. package/dist/visibility/visibility.d.ts +3 -10
  298. package/dist/visibility/visibility.d.ts.map +1 -1
  299. package/dist/visibility/visibility.js +9 -12
  300. package/dist/visibility/visibility.js.map +1 -1
  301. package/package.json +48 -19
  302. package/LICENSE +0 -21
  303. package/dist/ecs/component-registry.d.ts +0 -54
  304. package/dist/ecs/component-registry.d.ts.map +0 -1
  305. package/dist/ecs/component-registry.js +0 -86
  306. package/dist/ecs/component-registry.js.map +0 -1
  307. package/dist/level/level-entity-creator.d.ts +0 -27
  308. package/dist/level/level-entity-creator.d.ts.map +0 -1
  309. package/dist/level/level-entity-creator.js +0 -108
  310. package/dist/level/level-entity-creator.js.map +0 -1
  311. package/dist/level/level-glxf-importer.d.ts +0 -23
  312. package/dist/level/level-glxf-importer.d.ts.map +0 -1
  313. package/dist/level/level-glxf-importer.js +0 -40
  314. package/dist/level/level-glxf-importer.js.map +0 -1
@@ -4,56 +4,24 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { Types } from '../ecs/component.js';
8
- /**
9
- * 3D transform component that binds an entity to a Three.js Object3D.
10
- *
11
- * @remarks
12
- * - The {@link TransformSystem} wires Object3D.position/quaternion/scale to
13
- * component views for zero‑copy updates and parenting.
14
- * - Default values are `NaN` so an existing Object3D keeps its initial transform
15
- * unless a value is explicitly written by code or GLXF.
16
- * - Set `parent` to reparent under another entity. When unset, entities are
17
- * automatically parented under the active level root (or scene if persistent).
18
- *
19
- * @category Scene
20
- * @hideineditor
21
- */
22
- export declare const Transform: import("elics").Component<{
23
- position: {
24
- type: Types.Vec3;
25
- default: [number, number, number];
26
- };
27
- orientation: {
28
- type: Types.Vec4;
29
- default: [number, number, number, number];
30
- };
31
- scale: {
32
- type: Types.Vec3;
33
- default: [number, number, number];
34
- };
35
- parent: {
36
- type: Types.Entity;
37
- default: any;
38
- };
39
- }>;
7
+ export { Transform } from './transform-component.js';
40
8
  declare const TransformSystem_base: import("elics").SystemConstructor<import("elics").SystemSchema, {
41
9
  transform: {
42
10
  required: import("elics").Component<{
43
11
  position: {
44
- type: Types.Vec3;
12
+ type: import("elics").Types.Vec3;
45
13
  default: [number, number, number];
46
14
  };
47
15
  orientation: {
48
- type: Types.Vec4;
16
+ type: import("elics").Types.Vec4;
49
17
  default: [number, number, number, number];
50
18
  };
51
19
  scale: {
52
- type: Types.Vec3;
20
+ type: import("elics").Types.Vec3;
53
21
  default: [number, number, number];
54
22
  };
55
23
  parent: {
56
- type: Types.Entity;
24
+ type: import("elics").Types.Entity;
57
25
  default: any;
58
26
  };
59
27
  }>[];
@@ -62,19 +30,19 @@ declare const TransformSystem_base: import("elics").SystemConstructor<import("el
62
30
  transform: {
63
31
  required: import("elics").Component<{
64
32
  position: {
65
- type: Types.Vec3;
33
+ type: import("elics").Types.Vec3;
66
34
  default: [number, number, number];
67
35
  };
68
36
  orientation: {
69
- type: Types.Vec4;
37
+ type: import("elics").Types.Vec4;
70
38
  default: [number, number, number, number];
71
39
  };
72
40
  scale: {
73
- type: Types.Vec3;
41
+ type: import("elics").Types.Vec3;
74
42
  default: [number, number, number];
75
43
  };
76
44
  parent: {
77
- type: Types.Entity;
45
+ type: import("elics").Types.Entity;
78
46
  default: any;
79
47
  };
80
48
  }>[];
@@ -96,5 +64,4 @@ export declare class TransformSystem extends TransformSystem_base {
96
64
  init(): void;
97
65
  update(): void;
98
66
  }
99
- export {};
100
67
  //# sourceMappingURL=transform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/transform/transform.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,qBAAqB,CAAC;AAS7D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;iBAMkC,GAAG;;EAG1D,CAAC;;;;;;;;;;;;;;;;;;yBAHsD,GAAG;;;;;;;;;;;;;;;;;;;;;yBAAH,GAAG;;;;;AAyI3D;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,SAAQ,oBAEnC;IACA,IAAI,IAAI,IAAI;IAKZ,MAAM,IAAI,IAAI;CA+Bf"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/transform/transform.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsIrD;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,SAAQ,oBAEnC;IACA,IAAI,IAAI,IAAI;IAKZ,MAAM,IAAI,IAAI;CA+Bf"}
@@ -1,22 +1,25 @@
1
- import { createComponent, Types } from 'elics';
2
1
  import { NullEntity } from '../ecs/entity.js';
3
2
  import { createSystem } from '../ecs/system.js';
4
3
  import '../level/level-system.js';
5
4
  import { LevelTag } from '../level/level-tag.js';
6
- import '@iwsdk/glxf';
7
- import '../asset/asset-manager.js';
8
- import '../asset/cache-manager.js';
5
+ import 'elics';
9
6
  import '@pmndrs/uikit';
10
7
  import '@preact/signals-core';
11
8
  import { Vector3, Quaternion, Euler } from 'three';
9
+ import '../runtime/three.js';
12
10
  import '../ui/ui.js';
11
+ import '@drawcall/uikitml';
12
+ import '../asset/asset-manager.js';
13
+ import '../asset/cache-manager.js';
13
14
  import '../ui/follow.js';
14
15
  import '../ui/screenspace.js';
16
+ import '@iwsdk/scene-composition';
17
+ import 'three/examples/jsm/geometries/RoundedBoxGeometry.js';
15
18
  import '../level/level-root.js';
16
- import '../runtime/three.js';
17
19
  import { SyncedEuler } from './synced-euler.js';
18
20
  import { SyncedQuaternion } from './synced-quaternion.js';
19
21
  import { SyncedVector3 } from './synced-vector3.js';
22
+ import { Transform } from './transform-component.js';
20
23
 
21
24
  /**
22
25
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -24,26 +27,6 @@ import { SyncedVector3 } from './synced-vector3.js';
24
27
  * This source code is licensed under the MIT license found in the
25
28
  * LICENSE file in the root directory of this source tree.
26
29
  */
27
- /**
28
- * 3D transform component that binds an entity to a Three.js Object3D.
29
- *
30
- * @remarks
31
- * - The {@link TransformSystem} wires Object3D.position/quaternion/scale to
32
- * component views for zero‑copy updates and parenting.
33
- * - Default values are `NaN` so an existing Object3D keeps its initial transform
34
- * unless a value is explicitly written by code or GLXF.
35
- * - Set `parent` to reparent under another entity. When unset, entities are
36
- * automatically parented under the active level root (or scene if persistent).
37
- *
38
- * @category Scene
39
- * @hideineditor
40
- */
41
- const Transform = createComponent('Transform', {
42
- position: { type: Types.Vec3, default: [NaN, NaN, NaN] }, // Local position [x,y,z]; NaN preserves Object3D value
43
- orientation: { type: Types.Vec4, default: [NaN, NaN, NaN, NaN] }, // Local rotation quaternion [x,y,z,w]; NaN preserves
44
- scale: { type: Types.Vec3, default: [NaN, NaN, NaN] }, // Local scale [x,y,z]; NaN preserves
45
- parent: { type: Types.Entity, default: undefined }, // Parent entity for hierarchy (defaults to level root)
46
- }, 'Component for 3D transformation (position, rotation, scale)');
47
30
  function attachToEntity(entity) {
48
31
  const object3D = entity.object3D;
49
32
  if (!object3D) {
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sources":["../../src/transform/transform.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAWH;;;;;;;;;;;;;AAaG;AACI,MAAM,SAAS,GAAG,eAAe,CACtC,WAAW,EACX;AACE,IAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;IACxD,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;AAChE,IAAA,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;AACrD,IAAA,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,SAAgB,EAAE;CAC1D,EACD,6DAA6D;AAG/D,SAAS,cAAc,CAAC,MAAc,EAAA;AACpC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;IAChC,IAAI,CAAC,QAAQ,EAAE;QACb;IACF;AACA,IAAA,IAAK,QAAgB,CAAC,mBAAmB,EAAE;QACzC;IACF;AACC,IAAA,QAAgB,CAAC,mBAAmB,GAAG,IAAI;AAE5C,IAAA,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK;IACjC,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAC1C,SAAS,EACT,UAAU,CACK;IACjB,QAAQ,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAC5C,SAAS,EACT,aAAa,CACE;IACjB,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAiB;;IAG7E,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC5C,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAClD;IACA,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC9C,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IACtD;IACA,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACzC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC5C;AAEA,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC1C,KAAK,EAAE,IAAI,aAAa,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC3D,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC;AAEF,IAAA,MAAM,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;AAE5E,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE;AAC5C,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC;;AAGF,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC1C,KAAK,EAAE,IAAI,WAAW;AACnB,aAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ;aACtB,mBAAmB,CAAC,UAAU,CAAC;AAClC,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE;QACvC,KAAK,EAAE,IAAI,aAAa,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AACxD,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC;IAEF,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;AACnC,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE;QACxC,GAAG,EAAE,MAAK;YACR,OAAO,QAAQ,CAAC,OAAO;QACzB,CAAC;AACD,QAAA,GAAG,EAAE,CAAC,KAAK,KAAI;;AACb,YAAA,QAAQ,CAAC,OAAO,GAAG,KAAK;YACxB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,UAAU;QACtE,CAAC;AACD,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC;AACJ;AAEA,SAAS,gBAAgB,CAAC,MAAc,EAAA;AACtC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;IAChC,IAAI,CAAC,QAAQ,EAAE;QACb;IACF;AACA,IAAA,IAAI,CAAE,QAAgB,CAAC,mBAAmB,EAAE;QAC1C;IACF;IAEA,OAAO,QAAQ,CAAC,SAAS;IACzB,OAAO,QAAQ,CAAC,YAAY;IAC5B,OAAO,QAAQ,CAAC,cAAc;IAC9B,OAAO,QAAQ,CAAC,SAAS;AAEzB,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC1C,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC5C,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE;QAC5C,KAAK,EAAE,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjD,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC1C,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC1C,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE;QACvC,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzC,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE;QACxC,KAAK,EAAE,QAAQ,CAAC,OAAO;AACvB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,UAAU,EAAE,IAAI;AACjB,KAAA,CAAC;IAEF,OAAO,QAAQ,CAAC,OAAO;IACvB,OAAQ,QAAgB,CAAC,mBAAmB;AAC9C;AAEA;;;;;;;;;;;AAWG;AACG,MAAO,eAAgB,SAAQ,YAAY,CAAC;AAChD,IAAA,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE;CACrC,CAAC,CAAA;IACA,IAAI,GAAA;QACF,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAClE;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;;AACjD,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ;YAC9B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC1C;YACF;YACA,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;YACzD,MAAM,YAAY,GAAG,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,MAAA,GAAA,MAAA,GAAZ,YAAY,CAAE,QAAQ;YAE3C,IAAI,CAAC,YAAY,EAAE;;gBAEjB,IAAI,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,0CAAE,SAAS,MAAK,SAAS,EAAE;;AAE1C,oBAAA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS;gBAC/D;qBAAO;;AAEL,oBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ;AAC/C,0BAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AACzB,0BAAE,IAAI,CAAC,KAAK,CAAC,WAAW;oBAC1B,OAAO,CAAC,IAAI,CACV,CAAA,OAAA,EAAU,MAAM,CAAC,KAAK,CAAA,yBAAA,EAA4B,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,mBAAmB,GAAG,YAAY,CAAA,0DAAA,CAA4D,CACjL;AACD,oBAAA,YAAY,CAAC,QAAS,CAAC,GAAG,CAAC,MAAM,CAAC;oBAClC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC;gBACpD;YACF;AAAO,iBAAA,IAAI,YAAY,KAAK,MAAM,CAAC,MAAM,EAAE;;AAEzC,gBAAA,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;YAC1B;AACF,QAAA,CAAC,CAAC;IACJ;AACD;;;;"}
1
+ {"version":3,"file":"transform.js","sources":["../../src/transform/transform.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -24,20 +24,23 @@ export declare class UIKitDocument extends Group {
24
24
  private classMap;
25
25
  private _rootElement;
26
26
  private _abortController;
27
+ private _disposed;
27
28
  /** Reactive target width in meters. Set via {@link setTargetDimensions}. */
28
29
  readonly targetWidth: Signal<number>;
29
30
  /** Reactive target height in meters. Set via {@link setTargetDimensions}. */
30
31
  readonly targetHeight: Signal<number>;
31
32
  /**
32
33
  * Create a document backed by a UIKit root component.
33
- * @param rootComponent The root `Component` produced by `@pmndrs/uikitml` `interpret()`.
34
+ * @param rootComponent The root `Component` produced from a UIKitML document.
34
35
  */
35
36
  constructor(rootComponent: Component<any>);
36
37
  /**
37
38
  * Return the first element with a matching `id` (UIKit property).
38
39
  * @param id The element identifier without the `#` prefix.
39
40
  */
40
- getElementById(id: string): Component<any> | null;
41
+ getElementById<T extends Component<any> = Component<any>>(id: string): T | null;
42
+ /** Return a typed element or throw a source-oriented lookup error. */
43
+ requireElementById<T extends Component<any> = Component<any>>(id: string): T;
41
44
  /**
42
45
  * Return all elements that include `className` in their class list.
43
46
  * @param className The class without the preceding dot.
@@ -85,6 +88,8 @@ export declare class UIKitDocument extends Group {
85
88
  * @param height Target height in meters.
86
89
  */
87
90
  setTargetDimensions(width: number, height: number): void;
91
+ /** Restore intrinsic UIKit size so the parent entity transform owns scaling. */
92
+ clearTargetDimensions(): void;
88
93
  /**
89
94
  * Current intrinsic size of the UIKit root component (in UIKit units, centimeters),
90
95
  * if available from the underlying component's `size` signal.
@@ -100,6 +105,8 @@ export declare class UIKitDocument extends Group {
100
105
  };
101
106
  /** The root UIKit component for this document. */
102
107
  get rootElement(): Component<any>;
108
+ /** Whether this document has released its UIKit resources. */
109
+ get disposed(): boolean;
103
110
  /**
104
111
  * Dispose of internal resources and detach children. Safe to call multiple times.
105
112
  */
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/ui/document.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAU,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAY,MAAM,OAAO,CAAC;AAExC;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAa;IACjD,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAa;IAElD;;;OAGG;gBACS,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC;IAUzC;;;OAGG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAIjD;;;OAGG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE;IAI3D;;;;;;;;OAQG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAKtD;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE;IAkBpD,wDAAwD;IACxD,OAAO,CAAC,uBAAuB;IA4B/B,8DAA8D;IAC9D,OAAO,CAAC,eAAe;IASvB,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB;IAgBzB,0EAA0E;IAC1E,OAAO,CAAC,eAAe;IAsBvB;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO;IAW1E,gEAAgE;IAChE,sBAAsB,CACpB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,SAAS,CAAC,GAAG,CAAC,EAAE;IAGnB,mEAAmE;IACnE,mBAAmB,CACjB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAGxB,6EAA6E;IAC7E,OAAO,CAAC,qBAAqB;IAqB7B,0FAA0F;IAC1F,OAAO,CAAC,aAAa;IAiCrB;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKxD;;;OAGG;IACH,IAAI,YAAY,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAS3D;IAED,gEAAgE;IAChE,IAAI,UAAU,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAKlD;IAED,kDAAkD;IAClD,IAAI,WAAW,IAAI,SAAS,CAAC,GAAG,CAAC,CAEhC;IAED;;OAEG;IACH,OAAO,IAAI,IAAI;IAiBf,2CAA2C;IAC3C,QAAQ,IAAI,MAAM;IAQlB,kDAAkD;IAClD,OAAO,CAAC,aAAa;CA+BtB"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/ui/document.ts"],"names":[],"mappings":"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"}
@@ -23,13 +23,14 @@ import { Group } from 'three';
23
23
  class UIKitDocument extends Group {
24
24
  /**
25
25
  * Create a document backed by a UIKit root component.
26
- * @param rootComponent The root `Component` produced by `@pmndrs/uikitml` `interpret()`.
26
+ * @param rootComponent The root `Component` produced from a UIKitML document.
27
27
  */
28
28
  constructor(rootComponent) {
29
29
  super();
30
30
  this.elementMap = new Map();
31
31
  this.classMap = new Map();
32
32
  this._abortController = new AbortController();
33
+ this._disposed = false;
33
34
  /** Reactive target width in meters. Set via {@link setTargetDimensions}. */
34
35
  this.targetWidth = signal(0);
35
36
  /** Reactive target height in meters. Set via {@link setTargetDimensions}. */
@@ -44,7 +45,16 @@ class UIKitDocument extends Group {
44
45
  * @param id The element identifier without the `#` prefix.
45
46
  */
46
47
  getElementById(id) {
47
- return this.elementMap.get(id) || null;
48
+ var _a;
49
+ return (_a = this.elementMap.get(id)) !== null && _a !== void 0 ? _a : null;
50
+ }
51
+ /** Return a typed element or throw a source-oriented lookup error. */
52
+ requireElementById(id) {
53
+ const element = this.getElementById(id);
54
+ if (!element) {
55
+ throw new Error(`UIKitML element "#${id}" was not found`);
56
+ }
57
+ return element;
48
58
  }
49
59
  /**
50
60
  * Return all elements that include `className` in their class list.
@@ -183,9 +193,11 @@ class UIKitDocument extends Group {
183
193
  const targetWorldWidth = this.targetWidth.value;
184
194
  const targetWorldHeight = this.targetHeight.value;
185
195
  const uiNaturalSize = (_a = this._rootElement.size) === null || _a === void 0 ? void 0 : _a.value;
186
- if (targetWorldWidth > 0 &&
187
- targetWorldHeight > 0 &&
188
- uiNaturalSize &&
196
+ if (targetWorldWidth <= 0 || targetWorldHeight <= 0) {
197
+ this.scale.setScalar(1);
198
+ return;
199
+ }
200
+ if (uiNaturalSize &&
189
201
  Array.isArray(uiNaturalSize) &&
190
202
  uiNaturalSize.length >= 2) {
191
203
  const [uiWidth, uiHeight] = uiNaturalSize;
@@ -214,6 +226,11 @@ class UIKitDocument extends Group {
214
226
  this.targetWidth.value = width;
215
227
  this.targetHeight.value = height;
216
228
  }
229
+ /** Restore intrinsic UIKit size so the parent entity transform owns scaling. */
230
+ clearTargetDimensions() {
231
+ this.targetWidth.value = 0;
232
+ this.targetHeight.value = 0;
233
+ }
217
234
  /**
218
235
  * Current intrinsic size of the UIKit root component (in UIKit units, centimeters),
219
236
  * if available from the underlying component's `size` signal.
@@ -240,10 +257,18 @@ class UIKitDocument extends Group {
240
257
  get rootElement() {
241
258
  return this._rootElement;
242
259
  }
260
+ /** Whether this document has released its UIKit resources. */
261
+ get disposed() {
262
+ return this._disposed;
263
+ }
243
264
  /**
244
265
  * Dispose of internal resources and detach children. Safe to call multiple times.
245
266
  */
246
267
  dispose() {
268
+ if (this._disposed) {
269
+ return;
270
+ }
271
+ this._disposed = true;
247
272
  // Abort all effects to clean up signal subscriptions
248
273
  this._abortController.abort();
249
274
  // Dispose of the root UIKit Component which will clean up all resources
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sources":["../../src/ui/document.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;;;;;AAKG;AAMH;;;;;;;;;;;AAWG;AACG,MAAO,aAAc,SAAQ,KAAK,CAAA;AAWtC;;;AAGG;AACH,IAAA,WAAA,CAAY,aAA6B,EAAA;AACvC,QAAA,KAAK,EAAE;AAfD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,GAAG,EAA0B;AAC9C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAA4B;AAE9C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,EAAE;;AAGvC,QAAA,IAAA,CAAA,WAAW,GAAmB,MAAM,CAAC,CAAC,CAAC;;AAEvC,QAAA,IAAA,CAAA,YAAY,GAAmB,MAAM,CAAC,CAAC,CAAC;AAS/C,QAAA,IAAI,CAAC,YAAY,GAAG,aAAa;AACjC,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;QAEjC,IAAI,CAAC,qBAAqB,EAAE;IAC9B;AAEA;;;AAGG;AACH,IAAA,cAAc,CAAC,EAAU,EAAA;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI;IACxC;AAEA;;;AAGG;AACH,IAAA,sBAAsB,CAAC,SAAiB,EAAA;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE;IAC3C;AAEA;;;;;;;;AAQG;AACH,IAAA,aAAa,CAAC,QAAgB,EAAA;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC/C,QAAA,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAC/C;AAEA;;AAEG;AACH,IAAA,gBAAgB,CAAC,QAAgB,EAAA;;AAE/B,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;QAC/C;;AAGA,QAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC5B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1D,OAAO,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;QACjC;AACA,QAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3D;AAEA,QAAA,OAAO,EAAE;IACX;;AAGQ,IAAA,uBAAuB,CAAC,QAAgB,EAAA;QAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,OAAO,EAAE;QACX;;QAGA,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;AAGrD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC;YAC7B,MAAM,WAAW,GAAqB,EAAE;AAExC,YAAA,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE;gBACpC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC;AAC/D,gBAAA,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YACnC;YAEA,eAAe,GAAG,WAAW;AAC7B,YAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC;YACF;QACF;AAEA,QAAA,OAAO,eAAe;IACxB;;IAGQ,eAAe,CACrB,MAAsB,EACtB,QAAgB,EAAA;QAEhB,MAAM,OAAO,GAAqB,EAAE;QACpC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;AACjD,QAAA,OAAO,OAAO;IAChB;;AAGQ,IAAA,iBAAiB,CACvB,MAAgB,EAChB,QAAgB,EAChB,OAAyB,EAAA;AAEzB,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnC,YAAA,IAAI,KAAK,YAAY,SAAS,EAAE;gBAC9B,IAAI,IAAI,CAAC,eAAe,CAAC,KAAuB,EAAE,QAAQ,CAAC,EAAE;AAC3D,oBAAA,OAAO,CAAC,IAAI,CAAC,KAAY,CAAC;gBAC5B;YACF;;YAEA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;QAClD;IACF;;IAGQ,eAAe,CACrB,SAAyB,EACzB,QAAgB,EAAA;;AAEhB,QAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC5B,YAAA,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,SAAS,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK;YAClD,OAAO,EAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACrC;AAEA,QAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACvC,YAAA,MAAM,SAAS,GAAG,SAAS,CAAC;kBACxB,CAAC,CAAA,EAAA,GAAC,SAAS,CAAC,SAAiB,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,CACxC,CAAC,CAAM,KAAK,OAAO,CAAC,KAAK,QAAQ,CACrB,KAAI;kBAClB,EAAE;AACN,YAAA,OAAO,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtC;AAEA,QAAA,OAAO,KAAK;IACd;AAEA;;;AAGG;IACH,cAAc,CAAC,OAAuB,EAAE,QAAwB,EAAA;AAC9D,QAAA,IAAI,OAAO,GAAG,OAAO,CAAC,MAAM;QAC5B,OAAO,OAAO,EAAE;AACd,YAAA,IAAI,OAAO,KAAK,QAAQ,EAAE;AACxB,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,OAAO,GAAG,OAAO,CAAC,MAAM;QAC1B;AACA,QAAA,OAAO,KAAK;IACd;;IAGA,sBAAsB,CACpB,cAAsB,EACtB,aAAqB,EAAA;QAErB,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAA,EAAG,cAAc,CAAA,CAAA,EAAI,aAAa,CAAA,CAAE,CAAC;IACpE;;IAEA,mBAAmB,CACjB,cAAsB,EACtB,aAAqB,EAAA;QAErB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAA,EAAG,cAAc,CAAA,CAAA,EAAI,aAAa,CAAA,CAAE,CAAC;IACjE;;IAEQ,qBAAqB,GAAA;;AAC3B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM;;AAGhD,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MACxD,IAAI,CAAC,aAAa,EAAE,CACrB;AACD,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAC1D,IAAI,CAAC,aAAa,EAAE,CACrB;AACD,QAAA,MAAM,eAAe,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS,CAAC,MACxD,IAAI,CAAC,aAAa,EAAE,CACrB;AAED,QAAA,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;AACzC,YAAA,sBAAsB,EAAE;AACxB,YAAA,uBAAuB,EAAE;AACzB,YAAA,eAAe,KAAA,IAAA,IAAf,eAAe,KAAA,MAAA,GAAA,MAAA,GAAf,eAAe,EAAI;AACrB,QAAA,CAAC,CAAC;IACJ;;IAGQ,aAAa,GAAA;;AACnB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;AAC/C,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK;QACjD,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK;QAEnD,IACE,gBAAgB,GAAG,CAAC;AACpB,YAAA,iBAAiB,GAAG,CAAC;YACrB,aAAa;AACb,YAAA,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;AAC5B,YAAA,aAAa,CAAC,MAAM,IAAI,CAAC,EACzB;AACA,YAAA,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,aAAa;YACzC,IACE,OAAO,OAAO,KAAK,QAAQ;gBAC3B,OAAO,QAAQ,KAAK,QAAQ;AAC5B,gBAAA,OAAO,GAAG,CAAC;gBACX,QAAQ,GAAG,CAAC,EACZ;;AAEA,gBAAA,MAAM,mBAAmB,GAAG,OAAO,GAAG,GAAG;AACzC,gBAAA,MAAM,oBAAoB,GAAG,QAAQ,GAAG,GAAG;AAE3C,gBAAA,MAAM,MAAM,GAAG,gBAAgB,GAAG,mBAAmB;AACrD,gBAAA,MAAM,MAAM,GAAG,iBAAiB,GAAG,oBAAoB;gBACvD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;;AAG7C,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;YACpC;QACF;IACF;AAEA;;;;;AAKG;IACH,mBAAmB,CAAC,KAAa,EAAE,MAAc,EAAA;AAC/C,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK;AAC9B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,MAAM;IAClC;AAEA;;;AAGG;AACH,IAAA,IAAI,YAAY,GAAA;;QACd,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK;AAC/C,QAAA,IAAI,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;AAClE,YAAA,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS;YACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC3D,gBAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;YAC1B;QACF;AACA,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO;AACL,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;AAC7B,YAAA,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SAChC;IACH;;AAGA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA;;AAEG;IACH,OAAO,GAAA;;AAEL,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;;AAG7B,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,KAAK,UAAU,EAAE;AACxE,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QAC7B;;AAGA,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;;AAG9B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;IACvB;;IAGA,QAAQ,GAAA;AACN,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;AACzC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;AACrC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY;AAClC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU;AAC9B,QAAA,OAAO,CAAA,0BAAA,EAA6B,YAAY,CAAA,WAAA,EAAc,UAAU,CAAA,YAAA,EAAe,QAAQ,GAAG,CAAA,EAAG,QAAQ,CAAC,KAAK,CAAA,CAAA,EAAI,QAAQ,CAAC,MAAM,CAAA,CAAE,GAAG,MAAM,CAAA,UAAA,EAAa,MAAM,CAAC,KAAK,CAAA,CAAA,EAAI,MAAM,CAAC,MAAM,IAAI;IACjM;;AAGQ,IAAA,aAAa,CAAC,MAAgB,EAAA;;;AAEpC,QAAA,IAAI,MAAM,YAAY,SAAS,EAAE;;AAE/B,YAAA,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,MAAM,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK;;AAE/C,YAAA,MAAM,SAAS,GAAG,MAAM,CAAC;kBACrB,CAAC,CAAA,EAAA,GAAC,MAAM,CAAC,SAAiB,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,CACrC,CAAC,CAAM,KAAK,OAAO,CAAC,KAAK,QAAQ,CACrB,KAAI;kBAClB,EAAE;;YAGN,IAAI,EAAE,EAAE;gBACN,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAa,CAAC;YACxC;;AAGA,YAAA,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE;gBACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;gBAClC;AACA,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,MAAa,CAAC;YACnD;QACF;;AAGA,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnC,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAC3B;IACF;AACD;;;;"}
1
+ {"version":3,"file":"document.js","sources":["../../src/ui/document.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { Types } from '../ecs/component.js';
8
+ /** Behavior modes for {@link Follower}. @category UI */
9
+ export declare const FollowBehavior: {
10
+ FaceTarget: string;
11
+ PivotY: string;
12
+ NoRotation: string;
13
+ };
14
+ /** Makes an entity follow a target Object3D. */
15
+ export declare const Follower: import("elics").Component<{
16
+ target: {
17
+ type: Types.Object;
18
+ default: undefined;
19
+ widget: string;
20
+ required: boolean;
21
+ help: string;
22
+ };
23
+ offsetPosition: {
24
+ type: Types.Vec3;
25
+ default: [number, number, number];
26
+ };
27
+ behavior: {
28
+ type: Types.Enum;
29
+ enum: {
30
+ FaceTarget: string;
31
+ PivotY: string;
32
+ NoRotation: string;
33
+ };
34
+ default: string;
35
+ };
36
+ maxAngle: {
37
+ type: Types.Float32;
38
+ default: number;
39
+ };
40
+ tolerance: {
41
+ type: Types.Float32;
42
+ default: number;
43
+ };
44
+ speed: {
45
+ type: Types.Float32;
46
+ default: number;
47
+ };
48
+ needsPositionSync: {
49
+ type: Types.Boolean;
50
+ default: true;
51
+ };
52
+ _followTarget: {
53
+ type: Types.Vec3;
54
+ default: [number, number, number];
55
+ };
56
+ }>;
57
+ //# sourceMappingURL=follow-component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-component.d.ts","sourceRoot":"","sources":["../../src/ui/follow-component.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,qBAAqB,CAAC;AAE7D,wDAAwD;AACxD,eAAO,MAAM,cAAc;;;;CAI1B,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBpB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { createComponent, Types } from 'elics';
2
+
3
+ /**
4
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ /** Behavior modes for {@link Follower}. @category UI */
10
+ const FollowBehavior = {
11
+ FaceTarget: 'face-target',
12
+ PivotY: 'pivot-y',
13
+ NoRotation: 'no-rotation',
14
+ };
15
+ /** Makes an entity follow a target Object3D. */
16
+ const Follower = createComponent('Follower', {
17
+ target: {
18
+ type: Types.Object,
19
+ default: undefined,
20
+ widget: 'entity',
21
+ required: true,
22
+ help: 'Drag an authored or built-in scene entity here',
23
+ },
24
+ offsetPosition: { type: Types.Vec3, default: [0, 0, 0] },
25
+ behavior: {
26
+ type: Types.Enum,
27
+ enum: FollowBehavior,
28
+ default: FollowBehavior.PivotY,
29
+ },
30
+ maxAngle: { type: Types.Float32, default: 30 },
31
+ tolerance: { type: Types.Float32, default: 0.4 },
32
+ speed: { type: Types.Float32, default: 1 },
33
+ needsPositionSync: { type: Types.Boolean, default: true },
34
+ _followTarget: { type: Types.Vec3, default: [0, 0, 0] },
35
+ }, 'Component for following another object');
36
+
37
+ export { FollowBehavior, Follower };
38
+ //# sourceMappingURL=follow-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-component.js","sources":["../../src/ui/follow-component.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;AAKG;AAIH;AACO,MAAM,cAAc,GAAG;AAC5B,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,UAAU,EAAE,aAAa;;AAG3B;AACO,MAAM,QAAQ,GAAG,eAAe,CACrC,UAAU,EACV;AACE,IAAA,MAAM,EAAE;QACN,IAAI,EAAE,KAAK,CAAC,MAAM;AAClB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE,gDAAgD;AACvD,KAAA;AACD,IAAA,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACxD,IAAA,QAAQ,EAAE;QACR,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,QAAA,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,cAAc,CAAC,MAAM;AAC/B,KAAA;IACD,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAC9C,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;IAChD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE;IAC1C,iBAAiB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzD,IAAA,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;CACxD,EACD,wCAAwC;;;;"}