@adobe/data 0.7.4 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/dist/blob/blob-handle.d.ts +2 -2
  2. package/dist/blob/blob-meta.d.ts +2 -2
  3. package/dist/cache/blob-store.d.ts +2 -2
  4. package/dist/cache/data-cache.d.ts +1 -1
  5. package/dist/cache/functions/memoize.d.ts +1 -3
  6. package/dist/cache/functions/memoize.js +1 -3
  7. package/dist/cache/functions/memoize.js.map +1 -1
  8. package/dist/cache/managed-array.d.ts +2 -2
  9. package/dist/cache/managed-array.js.map +1 -1
  10. package/dist/cache/memory-allocator.d.ts +1 -1
  11. package/dist/cache/memory-allocator.js +2 -2
  12. package/dist/cache/memory-allocator.js.map +1 -1
  13. package/dist/ecs/archetype/create-archetype.d.ts +2 -2
  14. package/dist/ecs/archetype/create-archetype.js.map +1 -1
  15. package/dist/ecs/archetype/create-archetype.test.js +9 -9
  16. package/dist/ecs/archetype/create-archetype.test.js.map +1 -1
  17. package/dist/ecs/archetype/delete-row.test.js +4 -4
  18. package/dist/ecs/archetype/delete-row.test.js.map +1 -1
  19. package/dist/ecs/component-schemas.d.ts +1 -1
  20. package/dist/ecs/database/create-database.test.js +6 -6
  21. package/dist/ecs/database/create-database.test.js.map +1 -1
  22. package/dist/ecs/database/database-schema/create-database-schema.d.ts +1 -1
  23. package/dist/ecs/database/database-schema/database-schema.d.ts +1 -1
  24. package/dist/ecs/database/index.d.ts +1 -0
  25. package/dist/ecs/database/observe-dependent-value.js +3 -3
  26. package/dist/ecs/database/observe-dependent-value.js.map +1 -1
  27. package/dist/ecs/database/observe-select-entities.js +2 -2
  28. package/dist/ecs/database/observe-select-entities.js.map +1 -1
  29. package/dist/ecs/database/observe-select-entities.performance.test.js +6 -6
  30. package/dist/ecs/database/observe-select-entities.performance.test.js.map +1 -1
  31. package/dist/ecs/database/observe-select-entities.test.js +6 -6
  32. package/dist/ecs/database/observe-select-entities.test.js.map +1 -1
  33. package/dist/ecs/database/observed/create-observed-database.js +2 -2
  34. package/dist/ecs/database/observed/create-observed-database.js.map +1 -1
  35. package/dist/ecs/database/transactional-store/create-transactional-store.test.js +6 -6
  36. package/dist/ecs/database/transactional-store/create-transactional-store.test.js.map +1 -1
  37. package/dist/ecs/entity-location-table/entity-location.d.ts +2 -2
  38. package/dist/ecs/entity-location-table/entity-location.js +3 -3
  39. package/dist/ecs/entity-location-table/entity-location.js.map +1 -1
  40. package/dist/ecs/entity.d.ts +2 -2
  41. package/dist/ecs/entity.js +2 -2
  42. package/dist/ecs/entity.js.map +1 -1
  43. package/dist/ecs/index.d.ts +3 -0
  44. package/dist/ecs/index.js.map +1 -1
  45. package/dist/ecs/resource-schemas.d.ts +1 -1
  46. package/dist/ecs/store/core/core.d.ts +1 -1
  47. package/dist/ecs/store/core/create-core.d.ts +2 -2
  48. package/dist/ecs/store/core/create-core.js +2 -2
  49. package/dist/ecs/store/core/create-core.js.map +1 -1
  50. package/dist/ecs/store/core/create-core.test.js +6 -6
  51. package/dist/ecs/store/core/create-core.test.js.map +1 -1
  52. package/dist/ecs/store/core/select-entities.test.js +3 -3
  53. package/dist/ecs/store/core/select-entities.test.js.map +1 -1
  54. package/dist/ecs/store/create-store.d.ts +1 -1
  55. package/dist/ecs/store/create-store.js.map +1 -1
  56. package/dist/ecs/store/create-store.test.js +8 -8
  57. package/dist/ecs/store/create-store.test.js.map +1 -1
  58. package/dist/ecs/store/index.d.ts +2 -0
  59. package/dist/ecs/store/store.d.ts +1 -1
  60. package/dist/ecs/undo-redo-service/create-undo-redo-service.js +5 -7
  61. package/dist/ecs/undo-redo-service/create-undo-redo-service.js.map +1 -1
  62. package/dist/ecs/undo-redo-service/create-undo-redo-service.test.js +4 -4
  63. package/dist/ecs/undo-redo-service/create-undo-redo-service.test.js.map +1 -1
  64. package/dist/ecs/undo-redo-service/undo-redo-service.d.ts +1 -1
  65. package/dist/index.d.ts +2 -2
  66. package/dist/is-data.d.ts +3 -4
  67. package/dist/lit/hooks/use-drag-observe.d.ts +2 -1
  68. package/dist/lit/hooks/use-drag-observe.js +2 -2
  69. package/dist/lit/hooks/use-drag-observe.js.map +1 -1
  70. package/dist/lit/hooks/use-drag-transaction.js +3 -3
  71. package/dist/lit/hooks/use-drag-transaction.js.map +1 -1
  72. package/dist/lit/hooks/use-draggable.d.ts +1 -1
  73. package/dist/lit/hooks/use-draggable.js +1 -1
  74. package/dist/lit/hooks/use-draggable.js.map +1 -1
  75. package/dist/lit/hooks/use-observable-values.js +2 -2
  76. package/dist/lit/hooks/use-observable-values.js.map +1 -1
  77. package/dist/lit/index.d.ts +1 -0
  78. package/dist/math/aabb/center.d.ts +3 -0
  79. package/dist/math/aabb/center.js +6 -0
  80. package/dist/math/aabb/center.js.map +1 -0
  81. package/dist/math/aabb/face/aabb-face.test.js +55 -0
  82. package/dist/math/aabb/face/aabb-face.test.js.map +1 -0
  83. package/dist/math/aabb/face/functions.d.ts +47 -0
  84. package/dist/math/{face/face.js → aabb/face/functions.js} +66 -28
  85. package/dist/math/aabb/face/functions.js.map +1 -0
  86. package/dist/math/aabb/face/index.d.ts +4 -0
  87. package/dist/{ecs/world/world-schema/world-schema.js → math/aabb/face/index.js} +2 -2
  88. package/dist/math/aabb/face/index.js.map +1 -0
  89. package/dist/math/aabb/face/public.d.ts +2 -0
  90. package/dist/{ecs/entity/u32.js → math/aabb/face/public.js} +3 -3
  91. package/dist/math/aabb/face/public.js.map +1 -0
  92. package/dist/math/aabb/face/schema.d.ts +5 -0
  93. package/dist/math/aabb/face/schema.js +27 -0
  94. package/dist/math/aabb/face/schema.js.map +1 -0
  95. package/dist/math/aabb/index.d.ts +4 -0
  96. package/dist/{ecs/world/world-schema → math/aabb}/index.js +1 -2
  97. package/dist/math/aabb/index.js.map +1 -0
  98. package/dist/math/aabb/layout.d.ts +1 -0
  99. package/dist/math/aabb/layout.js +25 -0
  100. package/dist/math/aabb/layout.js.map +1 -0
  101. package/dist/math/aabb/line-intersection.d.ts +10 -0
  102. package/dist/math/aabb/line-intersection.js +42 -0
  103. package/dist/math/aabb/line-intersection.js.map +1 -0
  104. package/dist/math/aabb/line-intersection.test.js +1 -1
  105. package/dist/math/aabb/line-intersection.test.js.map +1 -1
  106. package/dist/math/aabb/public.d.ts +6 -0
  107. package/dist/math/aabb/public.js +28 -0
  108. package/dist/math/aabb/public.js.map +1 -0
  109. package/dist/math/aabb/schema.d.ts +33 -0
  110. package/dist/math/aabb/schema.js +36 -0
  111. package/dist/math/aabb/schema.js.map +1 -0
  112. package/dist/math/aabb/unit.d.ts +5 -0
  113. package/dist/math/aabb/unit.js +8 -0
  114. package/dist/math/aabb/unit.js.map +1 -0
  115. package/dist/math/f32/index.d.ts +4 -0
  116. package/dist/math/f32/index.js +23 -0
  117. package/dist/math/f32/index.js.map +1 -0
  118. package/dist/math/f32/public.d.ts +1 -0
  119. package/dist/math/{picking/pick-result.js → f32/public.js} +2 -2
  120. package/dist/math/f32/public.js.map +1 -0
  121. package/dist/math/f32/schema.d.ts +5 -0
  122. package/dist/math/f32/schema.js +27 -0
  123. package/dist/math/f32/schema.js.map +1 -0
  124. package/dist/math/f64/index.d.ts +4 -0
  125. package/dist/math/f64/index.js +2 -0
  126. package/dist/math/f64/index.js.map +1 -0
  127. package/dist/math/f64/public.d.ts +1 -0
  128. package/dist/math/f64/public.js +23 -0
  129. package/dist/math/f64/public.js.map +1 -0
  130. package/dist/math/f64/schema.d.ts +5 -0
  131. package/dist/math/f64/schema.js +6 -0
  132. package/dist/math/f64/schema.js.map +1 -0
  133. package/dist/math/i32/index.d.ts +4 -0
  134. package/dist/math/i32/index.js +23 -0
  135. package/dist/math/i32/index.js.map +1 -0
  136. package/dist/math/i32/public.d.ts +1 -0
  137. package/dist/math/i32/public.js +23 -0
  138. package/dist/math/i32/public.js.map +1 -0
  139. package/dist/math/i32/schema.d.ts +6 -0
  140. package/dist/math/i32/schema.js +28 -0
  141. package/dist/math/i32/schema.js.map +1 -0
  142. package/dist/math/index.d.ts +14 -13
  143. package/dist/math/index.js +14 -13
  144. package/dist/math/index.js.map +1 -1
  145. package/dist/math/line2/functions.d.ts +5 -0
  146. package/dist/math/line2/functions.js +61 -0
  147. package/dist/math/line2/functions.js.map +1 -0
  148. package/dist/math/line2/index.d.ts +4 -0
  149. package/dist/math/line2/index.js +23 -0
  150. package/dist/math/line2/index.js.map +1 -0
  151. package/dist/math/line2/layout.d.ts +1 -0
  152. package/dist/math/line2/layout.js +25 -0
  153. package/dist/math/line2/layout.js.map +1 -0
  154. package/dist/math/line2/public.d.ts +3 -0
  155. package/dist/math/line2/public.js +25 -0
  156. package/dist/math/line2/public.js.map +1 -0
  157. package/dist/math/line2/schema.d.ts +33 -0
  158. package/dist/math/line2/schema.js +37 -0
  159. package/dist/math/line2/schema.js.map +1 -0
  160. package/dist/math/line3/functions.d.ts +17 -0
  161. package/dist/math/line3/functions.js +70 -0
  162. package/dist/math/line3/functions.js.map +1 -0
  163. package/dist/math/line3/index.d.ts +4 -0
  164. package/dist/math/line3/index.js +23 -0
  165. package/dist/math/line3/index.js.map +1 -0
  166. package/dist/math/line3/layout.d.ts +1 -0
  167. package/dist/math/line3/layout.js +25 -0
  168. package/dist/math/line3/layout.js.map +1 -0
  169. package/dist/math/line3/public.d.ts +3 -0
  170. package/dist/math/line3/public.js +25 -0
  171. package/dist/math/line3/public.js.map +1 -0
  172. package/dist/math/line3/schema.d.ts +33 -0
  173. package/dist/math/line3/schema.js +37 -0
  174. package/dist/math/line3/schema.js.map +1 -0
  175. package/dist/math/mat4x4/functions.d.ts +23 -0
  176. package/dist/math/mat4x4/functions.js +236 -0
  177. package/dist/math/mat4x4/functions.js.map +1 -0
  178. package/dist/math/mat4x4/index.d.ts +26 -0
  179. package/dist/math/{picking → mat4x4}/index.js +23 -5
  180. package/dist/math/mat4x4/index.js.map +1 -0
  181. package/dist/math/mat4x4/layout.d.ts +1 -0
  182. package/dist/math/mat4x4/layout.js +25 -0
  183. package/dist/math/mat4x4/layout.js.map +1 -0
  184. package/dist/math/mat4x4/public.d.ts +3 -0
  185. package/dist/math/mat4x4/public.js +25 -0
  186. package/dist/math/mat4x4/public.js.map +1 -0
  187. package/dist/math/mat4x4/schema.d.ts +11 -0
  188. package/dist/math/mat4x4/schema.js +30 -0
  189. package/dist/math/mat4x4/schema.js.map +1 -0
  190. package/dist/math/plane/functions.d.ts +16 -0
  191. package/dist/math/plane/functions.js +55 -0
  192. package/dist/math/plane/functions.js.map +1 -0
  193. package/dist/math/plane/index.d.ts +4 -0
  194. package/dist/math/plane/index.js +23 -0
  195. package/dist/math/plane/index.js.map +1 -0
  196. package/dist/math/plane/layout.d.ts +1 -0
  197. package/dist/math/plane/layout.js +25 -0
  198. package/dist/math/plane/layout.js.map +1 -0
  199. package/dist/math/plane/public.d.ts +3 -0
  200. package/dist/math/plane/public.js +25 -0
  201. package/dist/math/plane/public.js.map +1 -0
  202. package/dist/math/plane/schema.d.ts +24 -0
  203. package/dist/math/plane/schema.js +34 -0
  204. package/dist/math/plane/schema.js.map +1 -0
  205. package/dist/math/quat/constants/functions.d.ts +43 -0
  206. package/dist/math/quat/constants/functions.js +258 -0
  207. package/dist/math/quat/constants/functions.js.map +1 -0
  208. package/dist/math/quat/functions.d.ts +43 -0
  209. package/dist/math/quat/functions.js +258 -0
  210. package/dist/math/quat/functions.js.map +1 -0
  211. package/dist/math/quat/index.d.ts +4 -0
  212. package/dist/math/quat/index.js +23 -0
  213. package/dist/math/quat/index.js.map +1 -0
  214. package/dist/math/quat/layout.d.ts +1 -0
  215. package/dist/math/quat/layout.js +25 -0
  216. package/dist/math/quat/layout.js.map +1 -0
  217. package/dist/math/quat/public.d.ts +3 -0
  218. package/dist/math/quat/public.js +25 -0
  219. package/dist/math/quat/public.js.map +1 -0
  220. package/dist/math/quat/schema.d.ts +11 -0
  221. package/dist/math/quat/schema.js +30 -0
  222. package/dist/math/quat/schema.js.map +1 -0
  223. package/dist/math/u32/index.d.ts +4 -0
  224. package/dist/math/u32/index.js +23 -0
  225. package/dist/math/u32/index.js.map +1 -0
  226. package/dist/math/u32/public.d.ts +1 -0
  227. package/dist/math/u32/public.js +23 -0
  228. package/dist/math/u32/public.js.map +1 -0
  229. package/dist/{ecs/entity/u32.d.ts → math/u32/schema.d.ts} +0 -2
  230. package/dist/math/u32/schema.js +28 -0
  231. package/dist/math/u32/schema.js.map +1 -0
  232. package/dist/math/vec2/functions.d.ts +48 -0
  233. package/dist/math/vec2/functions.js +104 -0
  234. package/dist/math/vec2/functions.js.map +1 -0
  235. package/dist/math/vec2/index.d.ts +4 -0
  236. package/dist/math/vec2/index.js +23 -0
  237. package/dist/math/vec2/index.js.map +1 -0
  238. package/dist/math/vec2/layout.d.ts +1 -0
  239. package/dist/math/vec2/layout.js +25 -0
  240. package/dist/math/vec2/layout.js.map +1 -0
  241. package/dist/math/vec2/public.d.ts +3 -0
  242. package/dist/math/vec2/public.js +25 -0
  243. package/dist/math/vec2/public.js.map +1 -0
  244. package/dist/math/vec2/schema.d.ts +11 -0
  245. package/dist/math/vec2/schema.js +30 -0
  246. package/dist/math/vec2/schema.js.map +1 -0
  247. package/dist/math/vec3/functions.d.ts +59 -0
  248. package/dist/math/vec3/functions.js +159 -0
  249. package/dist/math/vec3/functions.js.map +1 -0
  250. package/dist/math/vec3/index.d.ts +4 -0
  251. package/dist/math/vec3/index.js +23 -0
  252. package/dist/math/vec3/index.js.map +1 -0
  253. package/dist/math/vec3/layout.d.ts +1 -0
  254. package/dist/math/vec3/layout.js +25 -0
  255. package/dist/math/vec3/layout.js.map +1 -0
  256. package/dist/math/vec3/public.d.ts +3 -0
  257. package/dist/math/vec3/public.js +25 -0
  258. package/dist/math/vec3/public.js.map +1 -0
  259. package/dist/math/vec3/schema.d.ts +11 -0
  260. package/dist/math/vec3/schema.js +30 -0
  261. package/dist/math/vec3/schema.js.map +1 -0
  262. package/dist/math/vec4/functions.d.ts +49 -0
  263. package/dist/math/vec4/functions.js +150 -0
  264. package/dist/math/vec4/functions.js.map +1 -0
  265. package/dist/math/vec4/index.d.ts +4 -0
  266. package/dist/math/vec4/index.js +23 -0
  267. package/dist/math/vec4/index.js.map +1 -0
  268. package/dist/math/vec4/layout.d.ts +1 -0
  269. package/dist/math/vec4/layout.js +25 -0
  270. package/dist/math/vec4/layout.js.map +1 -0
  271. package/dist/math/vec4/public.d.ts +3 -0
  272. package/dist/math/vec4/public.js +25 -0
  273. package/dist/math/vec4/public.js.map +1 -0
  274. package/dist/math/vec4/schema.d.ts +11 -0
  275. package/dist/{ecs/world/index.js → math/vec4/schema.js} +9 -6
  276. package/dist/math/vec4/schema.js.map +1 -0
  277. package/dist/mutable.d.ts +3 -4
  278. package/dist/observe/create-event.d.ts +10 -0
  279. package/dist/observe/create-event.js +22 -0
  280. package/dist/observe/create-event.js.map +1 -0
  281. package/dist/observe/create-persisted-state.d.ts +1 -1
  282. package/dist/observe/create-persisted-state.js +2 -2
  283. package/dist/observe/create-persisted-state.js.map +1 -1
  284. package/dist/observe/create-query-state.d.ts +2 -3
  285. package/dist/observe/create-query-state.js +2 -2
  286. package/dist/observe/create-query-state.js.map +1 -1
  287. package/dist/observe/create-state.d.ts +7 -0
  288. package/dist/observe/create-state.js +27 -0
  289. package/dist/observe/create-state.js.map +1 -0
  290. package/dist/observe/from-array.d.ts +1 -1
  291. package/dist/observe/from-constant.d.ts +1 -1
  292. package/dist/observe/from-element-id.d.ts +1 -1
  293. package/dist/observe/from-element-properties-and-events.d.ts +1 -1
  294. package/dist/observe/from-element-property.d.ts +1 -1
  295. package/dist/observe/from-promise-with-error.d.ts +1 -1
  296. package/dist/observe/from-promise.d.ts +1 -1
  297. package/dist/observe/from-properties.d.ts +1 -1
  298. package/dist/observe/index.d.ts +16 -30
  299. package/dist/observe/index.js +1 -32
  300. package/dist/observe/index.js.map +1 -1
  301. package/dist/observe/observe.test.js +4 -4
  302. package/dist/observe/observe.test.js.map +1 -1
  303. package/dist/observe/public.d.ts +28 -0
  304. package/dist/{ecs/store/store-schema/create-store-schema-test.js → observe/public.js} +29 -12
  305. package/dist/observe/public.js.map +1 -0
  306. package/dist/observe/to-async-generator.d.ts +1 -1
  307. package/dist/observe/to-promise.d.ts +2 -2
  308. package/dist/observe/to-promise.js +1 -1
  309. package/dist/observe/to-properties.d.ts +1 -1
  310. package/dist/observe/with-async-map.d.ts +1 -1
  311. package/dist/observe/with-batch.d.ts +1 -1
  312. package/dist/observe/with-batch.test.js +5 -5
  313. package/dist/observe/with-batch.test.js.map +1 -1
  314. package/dist/observe/with-cache.d.ts +1 -1
  315. package/dist/observe/with-copy.d.ts +1 -1
  316. package/dist/observe/with-deduplicate-data.d.ts +1 -1
  317. package/dist/observe/with-deduplicate.d.ts +1 -1
  318. package/dist/observe/with-default.d.ts +1 -1
  319. package/dist/observe/with-filter.d.ts +1 -1
  320. package/dist/observe/with-lazy.d.ts +1 -1
  321. package/dist/observe/with-lazy.test.js +3 -3
  322. package/dist/observe/with-lazy.test.js.map +1 -1
  323. package/dist/observe/with-map-data.d.ts +1 -1
  324. package/dist/observe/with-map.d.ts +1 -1
  325. package/dist/observe/with-optional.d.ts +1 -1
  326. package/dist/observe/with-unwrap.d.ts +1 -1
  327. package/dist/old-ecs/action-ecs/action-ecs.js +2 -2
  328. package/dist/old-ecs/action-ecs/action-ecs.js.map +1 -1
  329. package/dist/old-ecs/action-ecs/action-ecs.test.js +3 -3
  330. package/dist/old-ecs/action-ecs/action-ecs.test.js.map +1 -1
  331. package/dist/old-ecs/action-ecs/action-types.d.ts +4 -4
  332. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js +3 -3
  333. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js.map +1 -1
  334. package/dist/old-ecs/core-ecs/core-ecs-types.d.ts +3 -3
  335. package/dist/old-ecs/core-ecs/core-ecs.js +2 -2
  336. package/dist/old-ecs/core-ecs/core-ecs.js.map +1 -1
  337. package/dist/old-ecs/core-ecs/core-ecs.test.js +2 -2
  338. package/dist/old-ecs/core-ecs/core-ecs.test.js.map +1 -1
  339. package/dist/old-ecs/ecs/ecs-types.d.ts +3 -3
  340. package/dist/old-ecs/ecs/ecs.test.js +3 -3
  341. package/dist/old-ecs/ecs/ecs.test.js.map +1 -1
  342. package/dist/old-ecs/entity.d.ts +2 -2
  343. package/dist/old-ecs/entity.js +2 -2
  344. package/dist/old-ecs/entity.js.map +1 -1
  345. package/dist/old-ecs/transaction-ecs/transaction-types.d.ts +4 -4
  346. package/dist/perftest/ecs-perf.js +11 -11
  347. package/dist/perftest/ecs-perf.js.map +1 -1
  348. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.js +3 -3
  349. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.js.map +1 -1
  350. package/dist/samples/todo/services/dependent-state-service/create-dependent-state-service.d.ts +3 -3
  351. package/dist/samples/todo/services/dependent-state-service/dependent-state/all-todos.d.ts +1 -1
  352. package/dist/samples/todo/services/dependent-state-service/dependent-state/complete-todos.d.ts +1 -1
  353. package/dist/samples/todo/services/dependent-state-service/dependent-state/incomplete-todos.d.ts +1 -1
  354. package/dist/samples/todo/services/state-service/create-todo-database.d.ts +2 -2
  355. package/dist/samples/todo/services/state-service/create-todo-store.d.ts +2 -2
  356. package/dist/samples/todo/services/state-service/create-todo-store.js +5 -4
  357. package/dist/samples/todo/services/state-service/create-todo-store.js.map +1 -1
  358. package/dist/schema/FromSchemas.d.ts +4 -0
  359. package/dist/schema/FromSchemas.js +2 -0
  360. package/dist/schema/FromSchemas.js.map +1 -0
  361. package/dist/schema/boolean/index.d.ts +4 -0
  362. package/dist/schema/boolean/index.js +23 -0
  363. package/dist/schema/boolean/index.js.map +1 -0
  364. package/dist/schema/boolean/public.d.ts +1 -0
  365. package/dist/schema/boolean/public.js +23 -0
  366. package/dist/schema/boolean/public.js.map +1 -0
  367. package/dist/schema/boolean/schema.d.ts +3 -0
  368. package/dist/schema/boolean/schema.js +4 -0
  369. package/dist/schema/boolean/schema.js.map +1 -0
  370. package/dist/schema/from-schemas.d.ts +5 -0
  371. package/dist/schema/from-schemas.js +2 -0
  372. package/dist/schema/from-schemas.js.map +1 -0
  373. package/dist/schema/index.d.ts +9 -8
  374. package/dist/schema/index.js +6 -7
  375. package/dist/schema/index.js.map +1 -1
  376. package/dist/schema/public.d.ts +4 -0
  377. package/dist/schema/public.js +26 -0
  378. package/dist/schema/public.js.map +1 -0
  379. package/dist/schema/schema copy.d.ts +147 -0
  380. package/dist/schema/schema copy.js +34 -0
  381. package/dist/schema/schema copy.js.map +1 -0
  382. package/dist/schema/schema.d.ts +2 -80
  383. package/dist/schema/schema.js +0 -10
  384. package/dist/schema/schema.js.map +1 -1
  385. package/dist/schema/time/index.d.ts +4 -0
  386. package/dist/schema/time/index.js +23 -0
  387. package/dist/schema/time/index.js.map +1 -0
  388. package/dist/schema/time/public.d.ts +1 -0
  389. package/dist/schema/time/public.js +23 -0
  390. package/dist/schema/time/public.js.map +1 -0
  391. package/dist/schema/time/schema.d.ts +5 -0
  392. package/dist/schema/time/schema.js +24 -0
  393. package/dist/schema/time/schema.js.map +1 -0
  394. package/dist/schema/to-type.d.ts +77 -0
  395. package/dist/schema/to-type.js +33 -0
  396. package/dist/schema/to-type.js.map +1 -0
  397. package/dist/schema/to-vertex-buffer-layout.d.ts +2 -2
  398. package/dist/schema/to-vertex-buffer-layout.js +28 -14
  399. package/dist/schema/to-vertex-buffer-layout.js.map +1 -1
  400. package/dist/schema/to-vertex-buffer-layout.test.js +18 -18
  401. package/dist/schema/to-vertex-buffer-layout.test.js.map +1 -1
  402. package/dist/schema/true/index.d.ts +4 -0
  403. package/dist/schema/true/index.js +23 -0
  404. package/dist/schema/true/index.js.map +1 -0
  405. package/dist/schema/true/public.d.ts +1 -0
  406. package/dist/schema/true/public.js +23 -0
  407. package/dist/schema/true/public.js.map +1 -0
  408. package/dist/schema/true/schema.d.ts +5 -0
  409. package/dist/schema/true/schema.js +2 -0
  410. package/dist/schema/true/schema.js.map +1 -0
  411. package/dist/schema/type.d.ts +76 -0
  412. package/dist/schema/type.js +33 -0
  413. package/dist/schema/type.js.map +1 -0
  414. package/dist/schema/validation/with-validation.d.ts +2 -2
  415. package/dist/schema/validation/with-validation.js.map +1 -1
  416. package/dist/schema/validation/with-validation.test.js.map +1 -1
  417. package/dist/service/add-observable-actions.d.ts +5 -5
  418. package/dist/service/add-observable-actions.js +2 -2
  419. package/dist/service/add-observable-actions.js.map +1 -1
  420. package/dist/service/index.d.ts +1 -1
  421. package/dist/service/index.js.map +1 -1
  422. package/dist/service/progressive-result.d.ts +2 -3
  423. package/dist/table/add-row.d.ts +2 -2
  424. package/dist/table/add-row.js +2 -2
  425. package/dist/table/create-table.d.ts +2 -2
  426. package/dist/table/create-table.js.map +1 -1
  427. package/dist/table/delete-row.d.ts +2 -2
  428. package/dist/table/delete-row.js +2 -2
  429. package/dist/table/row-index.d.ts +2 -2
  430. package/dist/table/row-index.js +2 -2
  431. package/dist/table/row-index.js.map +1 -1
  432. package/dist/table/table-compact.test.js +9 -9
  433. package/dist/table/table-compact.test.js.map +1 -1
  434. package/dist/table/update-row.d.ts +4 -3
  435. package/dist/table/update-row.js +4 -3
  436. package/dist/table/update-row.js.map +1 -1
  437. package/dist/tsconfig.tsbuildinfo +1 -1
  438. package/dist/typed-buffer/create-array-buffer.d.ts +2 -2
  439. package/dist/typed-buffer/create-const-buffer.d.ts +1 -1
  440. package/dist/typed-buffer/create-number-buffer.d.ts +1 -1
  441. package/dist/typed-buffer/create-number-buffer.js +4 -4
  442. package/dist/typed-buffer/create-number-buffer.js.map +1 -1
  443. package/dist/typed-buffer/create-number-buffer.test.js +2 -2
  444. package/dist/typed-buffer/create-number-buffer.test.js.map +1 -1
  445. package/dist/typed-buffer/create-struct-buffer.d.ts +3 -3
  446. package/dist/typed-buffer/create-struct-buffer.js.map +1 -1
  447. package/dist/typed-buffer/create-struct-buffer.test.js +10 -10
  448. package/dist/typed-buffer/create-struct-buffer.test.js.map +1 -1
  449. package/dist/typed-buffer/create-typed-buffer.d.ts +3 -3
  450. package/dist/typed-buffer/create-typed-buffer.js.map +1 -1
  451. package/dist/typed-buffer/index.d.ts +1 -0
  452. package/dist/typed-buffer/structs/assert-struct.d.ts +1 -1
  453. package/dist/typed-buffer/structs/get-struct-layout.d.ts +1 -1
  454. package/dist/typed-buffer/structs/get-struct-layout.js +4 -4
  455. package/dist/typed-buffer/structs/get-struct-layout.js.map +1 -1
  456. package/dist/typed-buffer/structs/get-struct-layout.test.js +12 -12
  457. package/dist/typed-buffer/structs/get-struct-layout.test.js.map +1 -1
  458. package/dist/typed-buffer/structs/struct-layout.d.ts +1 -1
  459. package/dist/typed-buffer/typed-buffer.d.ts +1 -1
  460. package/dist/types/index.d.ts +1 -0
  461. package/dist/types/types.d.ts +1 -2
  462. package/package.json +2 -3
  463. package/dist/blob/download-handle.d.ts +0 -4
  464. package/dist/blob/download-handle.js +0 -2
  465. package/dist/blob/download-handle.js.map +0 -1
  466. package/dist/blob/upload-handle.d.ts +0 -4
  467. package/dist/blob/upload-handle.js +0 -2
  468. package/dist/blob/upload-handle.js.map +0 -1
  469. package/dist/ecs/database/transactional-store/entity-id-preservation.test.js +0 -106
  470. package/dist/ecs/database/transactional-store/entity-id-preservation.test.js.map +0 -1
  471. package/dist/ecs/entity/entity.d.ts +0 -8
  472. package/dist/ecs/entity/entity.js +0 -3
  473. package/dist/ecs/entity/entity.js.map +0 -1
  474. package/dist/ecs/entity/u32.js.map +0 -1
  475. package/dist/ecs/store/store-schema/create-store-schema-test.d.ts +0 -1
  476. package/dist/ecs/store/store-schema/create-store-schema-test.js.map +0 -1
  477. package/dist/ecs/store/store-schema/create-store-schema.d.ts +0 -1
  478. package/dist/ecs/store/store-schema/create-store-schema.js +0 -45
  479. package/dist/ecs/store/store-schema/create-store-schema.js.map +0 -1
  480. package/dist/ecs/store/store-schema/index.d.ts +0 -1
  481. package/dist/ecs/store/store-schema/index.js +0 -21
  482. package/dist/ecs/store/store-schema/index.js.map +0 -1
  483. package/dist/ecs/store/store-schema/store-schema.d.ts +0 -1
  484. package/dist/ecs/store/store-schema/store-schema.js +0 -57
  485. package/dist/ecs/store/store-schema/store-schema.js.map +0 -1
  486. package/dist/ecs/world/create-world.d.ts +0 -7
  487. package/dist/ecs/world/create-world.js +0 -113
  488. package/dist/ecs/world/create-world.js.map +0 -1
  489. package/dist/ecs/world/create-world.test.d.ts +0 -1
  490. package/dist/ecs/world/create-world.test.js +0 -499
  491. package/dist/ecs/world/create-world.test.js.map +0 -1
  492. package/dist/ecs/world/index.d.ts +0 -5
  493. package/dist/ecs/world/index.js.map +0 -1
  494. package/dist/ecs/world/system-phase.d.ts +0 -5
  495. package/dist/ecs/world/system-phase.js +0 -14
  496. package/dist/ecs/world/system-phase.js.map +0 -1
  497. package/dist/ecs/world/system.d.ts +0 -25
  498. package/dist/ecs/world/system.js +0 -2
  499. package/dist/ecs/world/system.js.map +0 -1
  500. package/dist/ecs/world/world-schema/create-world-schema-test.d.ts +0 -1
  501. package/dist/ecs/world/world-schema/create-world-schema-test.js +0 -55
  502. package/dist/ecs/world/world-schema/create-world-schema-test.js.map +0 -1
  503. package/dist/ecs/world/world-schema/create-world-schema.d.ts +0 -19
  504. package/dist/ecs/world/world-schema/create-world-schema.js +0 -33
  505. package/dist/ecs/world/world-schema/create-world-schema.js.map +0 -1
  506. package/dist/ecs/world/world-schema/index.d.ts +0 -2
  507. package/dist/ecs/world/world-schema/index.js.map +0 -1
  508. package/dist/ecs/world/world-schema/world-schema.d.ts +0 -18
  509. package/dist/ecs/world/world-schema/world-schema.js.map +0 -1
  510. package/dist/ecs/world/world.d.ts +0 -11
  511. package/dist/ecs/world/world.js +0 -2
  512. package/dist/ecs/world/world.js.map +0 -1
  513. package/dist/graphics/camera/camera.d.ts +0 -62
  514. package/dist/graphics/camera/camera.js +0 -17
  515. package/dist/graphics/camera/camera.js.map +0 -1
  516. package/dist/graphics/camera/index.d.ts +0 -4
  517. package/dist/graphics/camera/index.js +0 -5
  518. package/dist/graphics/camera/index.js.map +0 -1
  519. package/dist/graphics/camera/screen-to-world-ray.d.ts +0 -12
  520. package/dist/graphics/camera/screen-to-world-ray.js +0 -49
  521. package/dist/graphics/camera/screen-to-world-ray.js.map +0 -1
  522. package/dist/graphics/camera/screen-to-world-ray.test.d.ts +0 -1
  523. package/dist/graphics/camera/screen-to-world-ray.test.js +0 -171
  524. package/dist/graphics/camera/screen-to-world-ray.test.js.map +0 -1
  525. package/dist/graphics/camera/to-view-projection.d.ts +0 -3
  526. package/dist/graphics/camera/to-view-projection.js +0 -8
  527. package/dist/graphics/camera/to-view-projection.js.map +0 -1
  528. package/dist/graphics/camera/world-to-screen.d.ts +0 -12
  529. package/dist/graphics/camera/world-to-screen.js +0 -38
  530. package/dist/graphics/camera/world-to-screen.js.map +0 -1
  531. package/dist/graphics/camera/world-to-screen.test.d.ts +0 -1
  532. package/dist/graphics/camera/world-to-screen.test.js +0 -124
  533. package/dist/graphics/camera/world-to-screen.test.js.map +0 -1
  534. package/dist/graphics/create-struct-gpu-buffer.d.ts +0 -7
  535. package/dist/graphics/create-struct-gpu-buffer.js +0 -17
  536. package/dist/graphics/create-struct-gpu-buffer.js.map +0 -1
  537. package/dist/graphics/extract-wgsl-bindings.d.ts +0 -5
  538. package/dist/graphics/extract-wgsl-bindings.js +0 -10
  539. package/dist/graphics/extract-wgsl-bindings.js.map +0 -1
  540. package/dist/graphics/frame.d.ts +0 -1
  541. package/dist/graphics/frame.js +0 -15
  542. package/dist/graphics/frame.js.map +0 -1
  543. package/dist/graphics/get-web-gpu-device-and-context.d.ts +0 -1
  544. package/dist/graphics/get-web-gpu-device-and-context.js +0 -24
  545. package/dist/graphics/get-web-gpu-device-and-context.js.map +0 -1
  546. package/dist/graphics/graphics-context.d.ts +0 -1
  547. package/dist/graphics/graphics-context.js +0 -7
  548. package/dist/graphics/graphics-context.js.map +0 -1
  549. package/dist/graphics/index.d.ts +0 -5
  550. package/dist/graphics/index.js +0 -5
  551. package/dist/graphics/index.js.map +0 -1
  552. package/dist/graphics/to-gpu-buffer.d.ts +0 -2
  553. package/dist/graphics/to-gpu-buffer.js +0 -14
  554. package/dist/graphics/to-gpu-buffer.js.map +0 -1
  555. package/dist/internal/array-buffer-like/grow.d.ts +0 -1
  556. package/dist/internal/array-buffer-like/grow.js +0 -9
  557. package/dist/internal/array-buffer-like/grow.js.map +0 -1
  558. package/dist/math/aabb-face/face.d.ts +0 -51
  559. package/dist/math/aabb-face/face.js +0 -110
  560. package/dist/math/aabb-face/face.js.map +0 -1
  561. package/dist/math/aabb-face/face.test.d.ts +0 -1
  562. package/dist/math/aabb-face/face.test.js +0 -94
  563. package/dist/math/aabb-face/face.test.js.map +0 -1
  564. package/dist/math/box/box.d.ts +0 -50
  565. package/dist/math/box/box.js +0 -23
  566. package/dist/math/box/box.js.map +0 -1
  567. package/dist/math/face/face.d.ts +0 -51
  568. package/dist/math/face/face.js.map +0 -1
  569. package/dist/math/face/face.test.d.ts +0 -1
  570. package/dist/math/face/face.test.js +0 -94
  571. package/dist/math/face/face.test.js.map +0 -1
  572. package/dist/math/picking/face.d.ts +0 -1
  573. package/dist/math/picking/face.js +0 -2
  574. package/dist/math/picking/face.js.map +0 -1
  575. package/dist/math/picking/get-closest-entity-to-line.d.ts +0 -4
  576. package/dist/math/picking/get-closest-entity-to-line.js +0 -30
  577. package/dist/math/picking/get-closest-entity-to-line.js.map +0 -1
  578. package/dist/math/picking/get-closest-entity-to-point.d.ts +0 -4
  579. package/dist/math/picking/get-closest-entity-to-point.js +0 -27
  580. package/dist/math/picking/get-closest-entity-to-point.js.map +0 -1
  581. package/dist/math/picking/get-intersecting-entities.d.ts +0 -12
  582. package/dist/math/picking/get-intersecting-entities.js +0 -15
  583. package/dist/math/picking/get-intersecting-entities.js.map +0 -1
  584. package/dist/math/picking/getClosestEntityToLine.d.ts +0 -4
  585. package/dist/math/picking/getClosestEntityToLine.js +0 -29
  586. package/dist/math/picking/getClosestEntityToLine.js.map +0 -1
  587. package/dist/math/picking/getClosestEntityToPoint.d.ts +0 -4
  588. package/dist/math/picking/getClosestEntityToPoint.js +0 -27
  589. package/dist/math/picking/getClosestEntityToPoint.js.map +0 -1
  590. package/dist/math/picking/getIntersectingEntities.d.ts +0 -12
  591. package/dist/math/picking/getIntersectingEntities.js +0 -15
  592. package/dist/math/picking/getIntersectingEntities.js.map +0 -1
  593. package/dist/math/picking/index.d.ts +0 -5
  594. package/dist/math/picking/index.js.map +0 -1
  595. package/dist/math/picking/pick-from-tables.d.ts +0 -19
  596. package/dist/math/picking/pick-from-tables.js +0 -63
  597. package/dist/math/picking/pick-from-tables.js.map +0 -1
  598. package/dist/math/picking/pick-result.d.ts +0 -12
  599. package/dist/math/picking/pick-result.js.map +0 -1
  600. package/dist/math/transform/debug-inverse.d.ts +0 -1
  601. package/dist/math/transform/debug-inverse.js +0 -28
  602. package/dist/math/transform/debug-inverse.js.map +0 -1
  603. package/dist/math/transform/debug-quat.d.ts +0 -1
  604. package/dist/math/transform/debug-quat.js +0 -23
  605. package/dist/math/transform/debug-quat.js.map +0 -1
  606. package/dist/math/transform/debug-test.d.ts +0 -1
  607. package/dist/math/transform/debug-test.js +0 -34
  608. package/dist/math/transform/debug-test.js.map +0 -1
  609. package/dist/math/transform/transform.d.ts +0 -58
  610. package/dist/math/transform/transform.js +0 -101
  611. package/dist/math/transform/transform.js.map +0 -1
  612. package/dist/math/transform/transform.test.d.ts +0 -1
  613. package/dist/math/transform/transform.test.js +0 -309
  614. package/dist/math/transform/transform.test.js.map +0 -1
  615. package/dist/old-ecs/privacy/helper-functions.d.ts +0 -43
  616. package/dist/old-ecs/privacy/helper-functions.js +0 -76
  617. package/dist/old-ecs/privacy/helper-functions.js.map +0 -1
  618. package/dist/old-ecs/privacy/helper-functions.test.d.ts +0 -1
  619. package/dist/old-ecs/privacy/helper-functions.test.js +0 -173
  620. package/dist/old-ecs/privacy/helper-functions.test.js.map +0 -1
  621. /package/dist/{ecs/database/transactional-store/entity-id-preservation.test.d.ts → math/aabb/face/aabb-face.test.d.ts} +0 -0
@@ -0,0 +1,236 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ import { Vec3 as Vec3Namespace } from "../vec3/index.js";
23
+ // Basic Matrix Operations
24
+ export const identity = [
25
+ 1, 0, 0, 0,
26
+ 0, 1, 0, 0,
27
+ 0, 0, 1, 0,
28
+ 0, 0, 0, 1
29
+ ];
30
+ export const zero = [
31
+ 0, 0, 0, 0,
32
+ 0, 0, 0, 0,
33
+ 0, 0, 0, 0,
34
+ 0, 0, 0, 0
35
+ ];
36
+ // Matrix-Matrix Operations
37
+ export const add = (a, b) => [
38
+ a[0] + b[0], a[1] + b[1], a[2] + b[2], a[3] + b[3],
39
+ a[4] + b[4], a[5] + b[5], a[6] + b[6], a[7] + b[7],
40
+ a[8] + b[8], a[9] + b[9], a[10] + b[10], a[11] + b[11],
41
+ a[12] + b[12], a[13] + b[13], a[14] + b[14], a[15] + b[15]
42
+ ];
43
+ export const subtract = (a, b) => [
44
+ a[0] - b[0], a[1] - b[1], a[2] - b[2], a[3] - b[3],
45
+ a[4] - b[4], a[5] - b[5], a[6] - b[6], a[7] - b[7],
46
+ a[8] - b[8], a[9] - b[9], a[10] - b[10], a[11] - b[11],
47
+ a[12] - b[12], a[13] - b[13], a[14] - b[14], a[15] - b[15]
48
+ ];
49
+ export const multiply = (a, b) => {
50
+ const result = new Array(16);
51
+ for (let i = 0; i < 4; i++) {
52
+ for (let j = 0; j < 4; j++) {
53
+ let sum = 0;
54
+ for (let k = 0; k < 4; k++) {
55
+ sum += a[k * 4 + i] * b[j * 4 + k];
56
+ }
57
+ result[j * 4 + i] = sum;
58
+ }
59
+ }
60
+ return result;
61
+ };
62
+ // Matrix-Scalar Operations
63
+ export const scale = (m, s) => [
64
+ m[0] * s, m[1] * s, m[2] * s, m[3] * s,
65
+ m[4] * s, m[5] * s, m[6] * s, m[7] * s,
66
+ m[8] * s, m[9] * s, m[10] * s, m[11] * s,
67
+ m[12] * s, m[13] * s, m[14] * s, m[15] * s
68
+ ];
69
+ // Matrix-Vector Operations
70
+ export const multiplyVec4 = (m, v) => [
71
+ m[0] * v[0] + m[4] * v[1] + m[8] * v[2] + m[12] * v[3],
72
+ m[1] * v[0] + m[5] * v[1] + m[9] * v[2] + m[13] * v[3],
73
+ m[2] * v[0] + m[6] * v[1] + m[10] * v[2] + m[14] * v[3],
74
+ m[3] * v[0] + m[7] * v[1] + m[11] * v[2] + m[15] * v[3]
75
+ ];
76
+ export const multiplyVec3 = (m, v) => [
77
+ m[0] * v[0] + m[4] * v[1] + m[8] * v[2] + m[12],
78
+ m[1] * v[0] + m[5] * v[1] + m[9] * v[2] + m[13],
79
+ m[2] * v[0] + m[6] * v[1] + m[10] * v[2] + m[14]
80
+ ];
81
+ // Matrix Properties
82
+ export const determinant = (m) => {
83
+ const [m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33] = m;
84
+ const b00 = m00 * m11 - m01 * m10;
85
+ const b01 = m00 * m12 - m02 * m10;
86
+ const b02 = m00 * m13 - m03 * m10;
87
+ const b03 = m01 * m12 - m02 * m11;
88
+ const b04 = m01 * m13 - m03 * m11;
89
+ const b05 = m02 * m13 - m03 * m12;
90
+ const b06 = m20 * m31 - m21 * m30;
91
+ const b07 = m20 * m32 - m22 * m30;
92
+ const b08 = m20 * m33 - m23 * m30;
93
+ const b09 = m21 * m32 - m22 * m31;
94
+ const b10 = m21 * m33 - m23 * m31;
95
+ const b11 = m22 * m33 - m23 * m32;
96
+ return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
97
+ };
98
+ export const inverse = (m) => {
99
+ const det = determinant(m);
100
+ if (det === 0) {
101
+ throw new Error('Matrix is not invertible');
102
+ }
103
+ const [m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33] = m;
104
+ const b00 = m00 * m11 - m01 * m10;
105
+ const b01 = m00 * m12 - m02 * m10;
106
+ const b02 = m00 * m13 - m03 * m10;
107
+ const b03 = m01 * m12 - m02 * m11;
108
+ const b04 = m01 * m13 - m03 * m11;
109
+ const b05 = m02 * m13 - m03 * m12;
110
+ const b06 = m20 * m31 - m21 * m30;
111
+ const b07 = m20 * m32 - m22 * m30;
112
+ const b08 = m20 * m33 - m23 * m30;
113
+ const b09 = m21 * m32 - m22 * m31;
114
+ const b10 = m21 * m33 - m23 * m31;
115
+ const b11 = m22 * m33 - m23 * m32;
116
+ const invDet = 1.0 / det;
117
+ return [
118
+ (m11 * b11 - m12 * b10 + m13 * b09) * invDet,
119
+ (m02 * b10 - m01 * b11 - m03 * b09) * invDet,
120
+ (m31 * b05 - m32 * b04 + m33 * b03) * invDet,
121
+ (m22 * b04 - m21 * b05 - m23 * b03) * invDet,
122
+ (m12 * b08 - m10 * b11 - m13 * b07) * invDet,
123
+ (m00 * b11 - m02 * b08 + m03 * b07) * invDet,
124
+ (m32 * b02 - m30 * b05 - m33 * b01) * invDet,
125
+ (m20 * b05 - m22 * b02 + m23 * b01) * invDet,
126
+ (m10 * b10 - m11 * b08 + m13 * b06) * invDet,
127
+ (m01 * b08 - m00 * b10 - m03 * b06) * invDet,
128
+ (m30 * b04 - m31 * b02 + m33 * b00) * invDet,
129
+ (m21 * b02 - m20 * b04 - m23 * b00) * invDet,
130
+ (m11 * b07 - m10 * b09 - m12 * b06) * invDet,
131
+ (m00 * b09 - m01 * b07 + m02 * b06) * invDet,
132
+ (m31 * b01 - m30 * b03 - m32 * b00) * invDet,
133
+ (m20 * b03 - m21 * b01 + m22 * b00) * invDet
134
+ ];
135
+ };
136
+ export const transpose = (m) => [
137
+ m[0], m[4], m[8], m[12],
138
+ m[1], m[5], m[9], m[13],
139
+ m[2], m[6], m[10], m[14],
140
+ m[3], m[7], m[11], m[15]
141
+ ];
142
+ // Transformation Matrices
143
+ export const translation = (x, y, z) => [
144
+ 1, 0, 0, 0,
145
+ 0, 1, 0, 0,
146
+ 0, 0, 1, 0,
147
+ x, y, z, 1
148
+ ];
149
+ export const scaling = (x, y, z) => [
150
+ x, 0, 0, 0,
151
+ 0, y, 0, 0,
152
+ 0, 0, z, 0,
153
+ 0, 0, 0, 1
154
+ ];
155
+ export const rotationX = (angle) => {
156
+ const c = Math.cos(angle);
157
+ const s = Math.sin(angle);
158
+ return [
159
+ 1, 0, 0, 0,
160
+ 0, c, s, 0,
161
+ 0, -s, c, 0,
162
+ 0, 0, 0, 1
163
+ ];
164
+ };
165
+ export const rotationY = (angle) => {
166
+ const c = Math.cos(angle);
167
+ const s = Math.sin(angle);
168
+ return [
169
+ c, 0, s, 0,
170
+ 0, 1, 0, 0,
171
+ -s, 0, c, 0,
172
+ 0, 0, 0, 1
173
+ ];
174
+ };
175
+ export const rotationZ = (angle) => {
176
+ const c = Math.cos(angle);
177
+ const s = Math.sin(angle);
178
+ return [
179
+ c, -s, 0, 0,
180
+ s, c, 0, 0,
181
+ 0, 0, 1, 0,
182
+ 0, 0, 0, 1
183
+ ];
184
+ };
185
+ // Projection Matrices
186
+ export const perspective = (fovy, aspect, near, far) => {
187
+ if (fovy <= 0)
188
+ throw new Error('Field of view must be greater than 0');
189
+ if (aspect <= 0)
190
+ throw new Error('Aspect ratio must be greater than 0');
191
+ if (near <= 0)
192
+ throw new Error('Near plane must be greater than 0');
193
+ if (far <= near)
194
+ throw new Error('Far plane must be greater than near plane');
195
+ const f = 1.0 / Math.tan(fovy / 2);
196
+ const nf = near / (near - far);
197
+ return [
198
+ f / aspect, 0, 0, 0,
199
+ 0, f, 0, 0,
200
+ 0, 0, nf, -1,
201
+ 0, 0, near * nf, 0
202
+ ];
203
+ };
204
+ export const orthographic = (left, right, bottom, top, near, far) => {
205
+ const lr = 1 / (left - right);
206
+ const bt = 1 / (bottom - top);
207
+ const nf = 1 / (near - far);
208
+ return [
209
+ -2 * lr, 0, 0, 0,
210
+ 0, -2 * bt, 0, 0,
211
+ 0, 0, 2 * nf, 0,
212
+ (left + right) * lr, (bottom + top) * bt, (far + near) * nf, 1
213
+ ];
214
+ };
215
+ // View Matrix
216
+ export const lookAt = (eye, center, up) => {
217
+ // Validate inputs
218
+ if (Vec3Namespace.length(up) === 0)
219
+ throw new Error('Up vector cannot be zero');
220
+ const forward = Vec3Namespace.subtract(center, eye);
221
+ if (Vec3Namespace.length(forward) === 0)
222
+ throw new Error('Eye and center cannot be the same position');
223
+ const f = Vec3Namespace.normalize(forward);
224
+ const s = Vec3Namespace.normalize(Vec3Namespace.cross(f, up));
225
+ // Check if up vector is parallel to view direction
226
+ if (Vec3Namespace.length(s) === 0)
227
+ throw new Error('Up vector cannot be parallel to view direction');
228
+ const u = Vec3Namespace.normalize(Vec3Namespace.cross(s, f));
229
+ return [
230
+ s[0], u[0], -f[0], 0,
231
+ s[1], u[1], -f[1], 0,
232
+ s[2], u[2], -f[2], 0,
233
+ -Vec3Namespace.dot(s, eye), -Vec3Namespace.dot(u, eye), Vec3Namespace.dot(f, eye), 1
234
+ ];
235
+ };
236
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/math/mat4x4/functions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAKX,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIzD,0BAA0B;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAW;IAC5B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAW;IACxB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;CACb,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;IACrD,MAAM,MAAM,GAAa,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAU,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC5B,CAAC;IACL,CAAC;IACD,OAAO,MAA2B,CAAC;AACvC,CAAC,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;CAC7C,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,CAAO,EAAQ,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,CAAO,EAAQ,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;CACnD,CAAC;AAEF,oBAAoB;AACpB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE;IAC7C,MAAM,CACF,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAClB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAClB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAClB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CACrB,GAAG,CAAC,CAAC;IAEN,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAElC,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACjF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE;IACzC,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CACF,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAClB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAClB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAClB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CACrB,GAAG,CAAC,CAAC;IAEN,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAElC,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;IACzB,OAAO;QACH,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;KAC/C,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;CAC3B,CAAC;AAEF,0BAA0B;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC;IACpE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC;IAChE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO;QACH,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACV,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACX,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACb,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO;QACH,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACV,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACX,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACb,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO;QACH,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACX,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACb,CAAC;AACN,CAAC,CAAC;AAEF,sBAAsB;AACtB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,IAAY,EAAE,GAAW,EAAU,EAAE;IAC3F,IAAI,IAAI,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACvE,IAAI,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACxE,IAAI,IAAI,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACpE,IAAI,GAAG,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAE9E,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAC/B,OAAO;QACH,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACnB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACV,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACZ,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;KACrB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CACxB,IAAY,EACZ,KAAa,EACb,MAAc,EACd,GAAW,EACX,IAAY,EACZ,GAAW,EACL,EAAE;IACR,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAC5B,OAAO;QACH,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAChB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;QAChB,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QACf,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;KACjE,CAAC;AACN,CAAC,CAAC;AAEF,cAAc;AACd,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAS,EAAE,MAAY,EAAE,EAAQ,EAAU,EAAE;IAChE,kBAAkB;IAClB,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEhF,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAEvG,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAE9D,mDAAmD;IACnD,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAErG,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7D,OAAO;QACH,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;KACvF,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Schema } from "../../schema/index.js";
2
+ import { schema } from "./schema.js";
3
+ export type Mat4x4 = Schema.ToType<typeof schema>;
4
+ /**
5
+ * 4x4 Matrix operations using column-major order (WebGPU standard).
6
+ *
7
+ * Matrix Layout:
8
+ * Matrices are stored in column-major order as flat arrays of 16 elements.
9
+ * This matches WebGPU's memory layout and shader expectations.
10
+ *
11
+ * Layout: [m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15]
12
+ *
13
+ * Which represents:
14
+ * ┌ ┐
15
+ * │ m0 m4 m8 m12 │ (Column 0, 1, 2, 3)
16
+ * │ m1 m5 m9 m13 │
17
+ * │ m2 m6 m10 m14 │
18
+ * │ m3 m7 m11 m15 │
19
+ * └ ┘
20
+ *
21
+ * For transformation matrices (position, rotation, scale):
22
+ * - Columns 0-2 (m0-m2, m4-m6, m8-m10): Rotation/scale basis vectors (right, up, forward)
23
+ * - Column 3 (m12, m13, m14): Translation (x, y, z)
24
+ * - Row 3 (m3, m7, m11, m15): Perspective (usually 0, 0, 0, 1)
25
+ */
26
+ export * as Mat4x4 from "./public.js";
@@ -19,9 +19,27 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.*/
22
- export * from "./pick-from-tables.js";
23
- export * from "./pick-result.js";
24
- export * from "./get-closest-entity-to-point.js";
25
- export * from "./get-closest-entity-to-line.js";
26
- export * from "./get-intersecting-entities.js";
22
+ /**
23
+ * 4x4 Matrix operations using column-major order (WebGPU standard).
24
+ *
25
+ * Matrix Layout:
26
+ * Matrices are stored in column-major order as flat arrays of 16 elements.
27
+ * This matches WebGPU's memory layout and shader expectations.
28
+ *
29
+ * Layout: [m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15]
30
+ *
31
+ * Which represents:
32
+ * ┌ ┐
33
+ * │ m0 m4 m8 m12 │ (Column 0, 1, 2, 3)
34
+ * │ m1 m5 m9 m13 │
35
+ * │ m2 m6 m10 m14 │
36
+ * │ m3 m7 m11 m15 │
37
+ * └ ┘
38
+ *
39
+ * For transformation matrices (position, rotation, scale):
40
+ * - Columns 0-2 (m0-m2, m4-m6, m8-m10): Rotation/scale basis vectors (right, up, forward)
41
+ * - Column 3 (m12, m13, m14): Translation (x, y, z)
42
+ * - Row 3 (m3, m7, m11, m15): Perspective (usually 0, 0, 0, 1)
43
+ */
44
+ export * as Mat4x4 from "./public.js";
27
45
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/math/mat4x4/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAOX;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const layout: import("../../typed-buffer/index.js").StructLayout;
@@ -0,0 +1,25 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ import { getStructLayout } from "../../typed-buffer/index.js";
23
+ import { schema } from "./schema.js";
24
+ export const layout = getStructLayout(schema);
25
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/math/mat4x4/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./functions.js";
2
+ export * from "./layout.js";
3
+ export * from "./schema.js";
@@ -0,0 +1,25 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ export * from "./functions.js";
23
+ export * from "./layout.js";
24
+ export * from "./schema.js";
25
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/math/mat4x4/public.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const schema: {
2
+ readonly type: "array";
3
+ readonly items: {
4
+ readonly type: "number";
5
+ readonly precision: 1;
6
+ readonly default: number;
7
+ };
8
+ readonly minItems: 16;
9
+ readonly maxItems: 16;
10
+ readonly default: readonly [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
11
+ };
@@ -0,0 +1,30 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ import { F32 } from "../f32/index.js";
23
+ export const schema = {
24
+ type: 'array',
25
+ items: F32.schema,
26
+ minItems: 16,
27
+ maxItems: 16,
28
+ default: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], // identity matrix
29
+ };
30
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/math/mat4x4/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAGtC,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,GAAG,CAAC,MAAM;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB;CACtD,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Plane } from "./index.js";
2
+ import type { Vec3 } from "../vec3/index.js";
3
+ import type { Line3 } from "../line3/index.js";
4
+ export declare function is(value: any): value is Plane;
5
+ export declare const signedDistance: (plane: Plane, point: Vec3) => number;
6
+ export declare const distance: (plane: Plane, point: Vec3) => number;
7
+ export declare const containsPoint: (plane: Plane, point: Vec3) => boolean;
8
+ export declare const isPointInFront: (plane: Plane, point: Vec3) => boolean;
9
+ export declare const isPointBehind: (plane: Plane, point: Vec3) => boolean;
10
+ /**
11
+ * Find the intersection alpha between a line and a plane.
12
+ * @param plane The plane to intersect with
13
+ * @param line The line to intersect
14
+ * @returns The alpha parameter (0-1 = within segment, <0 or >1 = outside segment), or null if line is parallel to plane
15
+ */
16
+ export declare const lineIntersection: (plane: Plane, line: Line3) => number | null;
@@ -0,0 +1,55 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ import { Vec3 as Vec3Namespace } from "../vec3/index.js";
23
+ import { epsilon } from "../constants.js";
24
+ export function is(value) {
25
+ return value && typeof value === 'object' && 'normal' in value && 'distance' in value;
26
+ }
27
+ // Plane utility functions
28
+ export const signedDistance = (plane, point) => Vec3Namespace.dot(plane.normal, point) - plane.distance;
29
+ export const distance = (plane, point) => Math.abs(signedDistance(plane, point));
30
+ export const containsPoint = (plane, point) => Math.abs(signedDistance(plane, point)) < epsilon;
31
+ export const isPointInFront = (plane, point) => signedDistance(plane, point) > 0;
32
+ export const isPointBehind = (plane, point) => signedDistance(plane, point) < 0;
33
+ /**
34
+ * Find the intersection alpha between a line and a plane.
35
+ * @param plane The plane to intersect with
36
+ * @param line The line to intersect
37
+ * @returns The alpha parameter (0-1 = within segment, <0 or >1 = outside segment), or null if line is parallel to plane
38
+ */
39
+ export const lineIntersection = (plane, line) => {
40
+ const { a, b } = line;
41
+ // Calculate line direction vector
42
+ const direction = Vec3Namespace.subtract(b, a);
43
+ // Calculate denominator: dot(normal, direction)
44
+ const denominator = Vec3Namespace.dot(plane.normal, direction);
45
+ // If denominator is close to zero, line is parallel to plane
46
+ if (Math.abs(denominator) < epsilon) {
47
+ return null;
48
+ }
49
+ // Calculate numerator: dot(normal, a) - distance
50
+ const numerator = Vec3Namespace.dot(plane.normal, a) - plane.distance;
51
+ // Calculate parameter t (alpha)
52
+ const alpha = -numerator / denominator;
53
+ return alpha;
54
+ };
55
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/math/plane/functions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAKX,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,UAAU,EAAE,CAAC,KAAU;IACzB,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC;AAC1F,CAAC;AAED,0BAA0B;AAC1B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,KAAW,EAAU,EAAE,CAChE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;AAE5D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,KAAW,EAAU,EAAE,CAC1D,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,KAAW,EAAW,EAAE,CAChE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,KAAW,EAAW,EAAE,CACjE,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,KAAW,EAAW,EAAE,CAChE,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,IAAW,EAAiB,EAAE;IACzE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IAEtB,kCAAkC;IAClC,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/C,gDAAgD;IAChD,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAE/D,6DAA6D;IAC7D,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iDAAiD;IACjD,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEtE,gCAAgC;IAChC,MAAM,KAAK,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC;IAEvC,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Schema } from "../../schema/index.js";
2
+ import { schema } from "./schema.js";
3
+ export type Plane = Schema.ToType<typeof schema>;
4
+ export * as Plane from "./public.js";
@@ -0,0 +1,23 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ export * as Plane from "./public.js";
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/math/plane/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAOX,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const layout: import("../../typed-buffer/index.js").StructLayout;
@@ -0,0 +1,25 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ import { getStructLayout } from "../../typed-buffer/index.js";
23
+ import { schema } from "./schema.js";
24
+ export const layout = getStructLayout(schema);
25
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/math/plane/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./functions.js";
2
+ export * from "./layout.js";
3
+ export * from "./schema.js";
@@ -0,0 +1,25 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ export * from "./functions.js";
23
+ export * from "./layout.js";
24
+ export * from "./schema.js";
25
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/math/plane/public.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,24 @@
1
+ export declare const schema: {
2
+ readonly type: "object";
3
+ readonly properties: {
4
+ readonly normal: {
5
+ readonly type: "array";
6
+ readonly items: {
7
+ readonly type: "number";
8
+ readonly precision: 1;
9
+ readonly default: number;
10
+ };
11
+ readonly minItems: 3;
12
+ readonly maxItems: 3;
13
+ readonly default: readonly [0, 0, 0];
14
+ };
15
+ readonly distance: {
16
+ readonly type: "number";
17
+ readonly precision: 1;
18
+ readonly default: number;
19
+ };
20
+ };
21
+ readonly layout: "std140";
22
+ readonly required: readonly ["normal", "distance"];
23
+ readonly additionalProperties: false;
24
+ };