@adobe/data 0.5.23 → 0.6.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 (307) hide show
  1. package/README.md +96 -110
  2. package/dist/blob/blob-handle.d.ts +53 -2
  3. package/dist/blob/blob-handle.js +48 -4
  4. package/dist/blob/blob-handle.js.map +1 -1
  5. package/dist/blob/blob-meta.d.ts +26 -1
  6. package/dist/blob/blob-meta.js +14 -1
  7. package/dist/blob/blob-meta.js.map +1 -1
  8. package/dist/blob/index.d.ts +0 -2
  9. package/dist/blob/index.js +21 -2
  10. package/dist/blob/index.js.map +1 -1
  11. package/dist/cache/functions/hashing/blob-to-hash.js +7 -5
  12. package/dist/cache/functions/hashing/blob-to-hash.js.map +1 -1
  13. package/dist/ecs/database/create-database.js +56 -50
  14. package/dist/ecs/database/create-database.js.map +1 -1
  15. package/dist/ecs/database/create-database.test.js +2 -1
  16. package/dist/ecs/database/create-database.test.js.map +1 -1
  17. package/dist/ecs/database/database-schema/create-database-schema-test.js +1 -1
  18. package/dist/ecs/database/database-schema/create-database-schema-test.js.map +1 -1
  19. package/dist/ecs/database/database-schema/create-database-schema.js +0 -2
  20. package/dist/ecs/database/database-schema/create-database-schema.js.map +1 -1
  21. package/dist/ecs/database/transactional-store/apply-operations.js.map +1 -1
  22. package/dist/ecs/database/transactional-store/coalesce-transactions.js +2 -2
  23. package/dist/ecs/database/transactional-store/coalesce-transactions.js.map +1 -1
  24. package/dist/ecs/database/transactional-store/patch-entity-values.js.map +1 -1
  25. package/dist/ecs/store/core/select-entities.js +2 -2
  26. package/dist/ecs/store/core/select-entities.js.map +1 -1
  27. package/dist/ecs/store/store-schema/create-store-schema-test.js +2 -2
  28. package/dist/ecs/store/store-schema/create-store-schema-test.js.map +1 -1
  29. package/dist/ecs/store/store-schema/create-store-schema.d.ts +11 -1
  30. package/dist/ecs/store/store-schema/create-store-schema.js +30 -44
  31. package/dist/ecs/store/store-schema/create-store-schema.js.map +1 -1
  32. package/dist/ecs/store/store-schema/index.d.ts +2 -1
  33. package/dist/ecs/store/store-schema/index.js +23 -20
  34. package/dist/ecs/store/store-schema/index.js.map +1 -1
  35. package/dist/ecs/store/store-schema/store-schema.d.ts +12 -1
  36. package/dist/ecs/store/store-schema/store-schema.js +21 -55
  37. package/dist/ecs/store/store-schema/store-schema.js.map +1 -1
  38. package/dist/ecs/store/store.js +2 -2
  39. package/dist/ecs/store/store.js.map +1 -1
  40. package/dist/functions/merge-patch.js.map +1 -1
  41. package/dist/functions/merge-patch.test.js +21 -0
  42. package/dist/functions/merge-patch.test.js.map +1 -1
  43. package/dist/functions/serialization/index.js +21 -0
  44. package/dist/functions/serialization/index.js.map +1 -1
  45. package/dist/functions/serialization/register-blob-codecs.js.map +1 -1
  46. package/dist/functions/serialization/register-typed-array-codecs.js.map +1 -1
  47. package/dist/functions/serialization/serialize-to-blobs.js +21 -0
  48. package/dist/functions/serialization/serialize-to-blobs.js.map +1 -1
  49. package/dist/functions/serialization/serialize-to-blobs.test.js +21 -0
  50. package/dist/functions/serialization/serialize-to-blobs.test.js.map +1 -1
  51. package/dist/functions/serialization/serialize-to-storage.js +21 -0
  52. package/dist/functions/serialization/serialize-to-storage.js.map +1 -1
  53. package/dist/functions/serialization/serialize-to-storage.test.js +21 -0
  54. package/dist/functions/serialization/serialize-to-storage.test.js.map +1 -1
  55. package/dist/functions/serialization/serialize.js +21 -0
  56. package/dist/functions/serialization/serialize.js.map +1 -1
  57. package/dist/graphics/frame.d.ts +22 -1
  58. package/dist/graphics/frame.js +11 -14
  59. package/dist/graphics/frame.js.map +1 -1
  60. package/dist/graphics/get-web-gpu-device-and-context.d.ts +2 -1
  61. package/dist/graphics/get-web-gpu-device-and-context.js +20 -23
  62. package/dist/graphics/get-web-gpu-device-and-context.js.map +1 -1
  63. package/dist/graphics/graphics-context.d.ts +5 -1
  64. package/dist/graphics/graphics-context.js +0 -5
  65. package/dist/graphics/graphics-context.js.map +1 -1
  66. package/dist/internal/array-buffer-like/copy.js +0 -420
  67. package/dist/internal/array-buffer-like/copy.js.map +1 -1
  68. package/dist/internal/array-buffer-like/is-array-buffer.js +0 -420
  69. package/dist/internal/array-buffer-like/is-array-buffer.js.map +1 -1
  70. package/dist/internal/array-buffer-like/is-shared-array-buffer.js +0 -420
  71. package/dist/internal/array-buffer-like/is-shared-array-buffer.js.map +1 -1
  72. package/dist/internal/data-view-32/data-view-32.js +0 -21
  73. package/dist/internal/data-view-32/data-view-32.js.map +1 -1
  74. package/dist/lit/elements/service-application.d.ts +9 -0
  75. package/dist/lit/elements/service-application.js +55 -0
  76. package/dist/lit/elements/service-application.js.map +1 -0
  77. package/dist/lit/elements/service-context.d.ts +1 -0
  78. package/dist/{ecs/entity/u32.js → lit/elements/service-context.js} +3 -3
  79. package/dist/lit/elements/service-context.js.map +1 -0
  80. package/dist/lit/elements/service-element.d.ts +6 -0
  81. package/dist/lit/elements/service-element.js +43 -0
  82. package/dist/lit/elements/service-element.js.map +1 -0
  83. package/dist/lit/hooks/index.d.ts +1 -0
  84. package/dist/lit/hooks/index.js +1 -0
  85. package/dist/lit/hooks/index.js.map +1 -1
  86. package/dist/lit/hooks/use-debounce.d.ts +8 -0
  87. package/dist/lit/hooks/use-debounce.js +41 -0
  88. package/dist/lit/hooks/use-debounce.js.map +1 -0
  89. package/dist/lit/hooks/use-drag-observe.d.ts +6 -5
  90. package/dist/lit/hooks/use-drag-observe.js +2 -2
  91. package/dist/lit/hooks/use-drag-observe.js.map +1 -1
  92. package/dist/lit/hooks/use-drag-transaction.d.ts +1 -1
  93. package/dist/lit/hooks/use-drag-transaction.js +1 -2
  94. package/dist/lit/hooks/use-drag-transaction.js.map +1 -1
  95. package/dist/lit/hooks/use-draggable.d.ts +5 -6
  96. package/dist/lit/hooks/use-draggable.js +23 -31
  97. package/dist/lit/hooks/use-draggable.js.map +1 -1
  98. package/dist/lit/hooks/use-effect.js +1 -1
  99. package/dist/lit/hooks/use-effect.js.map +1 -1
  100. package/dist/lit/hooks/use-resize-observer.d.ts +2 -0
  101. package/dist/lit/hooks/use-resize-observer.js +2 -0
  102. package/dist/lit/hooks/use-resize-observer.js.map +1 -1
  103. package/dist/lit/hooks/use-updated.js +21 -0
  104. package/dist/lit/hooks/use-updated.js.map +1 -1
  105. package/dist/math/aabb/aabb.js +1 -0
  106. package/dist/math/aabb/aabb.js.map +1 -1
  107. package/dist/math/aabb-face/aabb-face.d.ts +14 -19
  108. package/dist/math/aabb-face/aabb-face.js +31 -19
  109. package/dist/math/aabb-face/aabb-face.js.map +1 -1
  110. package/dist/math/f32/f32.js +1 -0
  111. package/dist/math/f32/f32.js.map +1 -1
  112. package/dist/math/i32/i32.js +1 -0
  113. package/dist/math/i32/i32.js.map +1 -1
  114. package/dist/math/line2/line2.js +1 -0
  115. package/dist/math/line2/line2.js.map +1 -1
  116. package/dist/math/line3/line3.js +1 -0
  117. package/dist/math/line3/line3.js.map +1 -1
  118. package/dist/math/mat4x4/mat4x4.js +1 -0
  119. package/dist/math/mat4x4/mat4x4.js.map +1 -1
  120. package/dist/math/picking/get-closest-entity-to-line.js +1 -1
  121. package/dist/math/picking/get-closest-entity-to-line.js.map +1 -1
  122. package/dist/math/picking/get-closest-entity-to-point.js +1 -1
  123. package/dist/math/picking/get-closest-entity-to-point.js.map +1 -1
  124. package/dist/math/picking/pick-from-tables.js +1 -1
  125. package/dist/math/picking/pick-from-tables.js.map +1 -1
  126. package/dist/math/picking/pick-result.d.ts +2 -4
  127. package/dist/math/plane/plane.js +1 -0
  128. package/dist/math/plane/plane.js.map +1 -1
  129. package/dist/math/quat/quat.js +1 -0
  130. package/dist/math/quat/quat.js.map +1 -1
  131. package/dist/math/u32/u32.js +1 -0
  132. package/dist/math/u32/u32.js.map +1 -1
  133. package/dist/math/vec2/vec2.js +1 -0
  134. package/dist/math/vec2/vec2.js.map +1 -1
  135. package/dist/math/vec3/vec3.d.ts +1 -0
  136. package/dist/math/vec3/vec3.js +2 -0
  137. package/dist/math/vec3/vec3.js.map +1 -1
  138. package/dist/math/vec4/vec4.d.ts +1 -0
  139. package/dist/math/vec4/vec4.js +7 -0
  140. package/dist/math/vec4/vec4.js.map +1 -1
  141. package/dist/observe/to-async-generator.test.js +5 -8
  142. package/dist/observe/to-async-generator.test.js.map +1 -1
  143. package/dist/observe/with-default.js +0 -1
  144. package/dist/observe/with-default.js.map +1 -1
  145. package/dist/old-ecs/action-ecs/action-ecs.test.js +1 -1
  146. package/dist/old-ecs/action-ecs/action-ecs.test.js.map +1 -1
  147. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js +4 -208
  148. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js.map +1 -1
  149. package/dist/old-ecs/core-ecs/core-ecs-types.d.ts +1 -4
  150. package/dist/old-ecs/core-ecs/core-ecs.d.ts +0 -2
  151. package/dist/old-ecs/core-ecs/core-ecs.js +9 -13
  152. package/dist/old-ecs/core-ecs/core-ecs.js.map +1 -1
  153. package/dist/old-ecs/ecs/ecs.test.js +1 -1
  154. package/dist/old-ecs/ecs/ecs.test.js.map +1 -1
  155. package/dist/old-ecs/transaction-ecs/transaction-ecs.test.js +1 -1
  156. package/dist/old-ecs/transaction-ecs/transaction-ecs.test.js.map +1 -1
  157. package/dist/samples/todo/elements/todo-list/todo-list-presentation.d.ts +0 -17
  158. package/dist/samples/todo/elements/todo-list/todo-list-presentation.js.map +1 -1
  159. package/dist/samples/todo/elements/todo-list/todo-list.css.d.ts +0 -17
  160. package/dist/samples/todo/elements/todo-list/todo-list.css.js +21 -17
  161. package/dist/samples/todo/elements/todo-list/todo-list.css.js.map +1 -1
  162. package/dist/samples/todo/elements/todo-list/todo-list.js +21 -17
  163. package/dist/samples/todo/elements/todo-list/todo-list.js.map +1 -1
  164. package/dist/samples/todo/elements/todo-row/index.d.ts +0 -17
  165. package/dist/samples/todo/elements/todo-row/index.js +21 -17
  166. package/dist/samples/todo/elements/todo-row/index.js.map +1 -1
  167. package/dist/samples/todo/elements/todo-row/todo-row-presentation.js +23 -19
  168. package/dist/samples/todo/elements/todo-row/todo-row-presentation.js.map +1 -1
  169. package/dist/samples/todo/elements/todo-row/todo-row.css.js +21 -17
  170. package/dist/samples/todo/elements/todo-row/todo-row.css.js.map +1 -1
  171. package/dist/samples/todo/elements/todo-row/todo-row.js +21 -17
  172. package/dist/samples/todo/elements/todo-row/todo-row.js.map +1 -1
  173. package/dist/samples/todo/elements/todo-toolbar/index.d.ts +0 -17
  174. package/dist/samples/todo/elements/todo-toolbar/index.js +21 -17
  175. package/dist/samples/todo/elements/todo-toolbar/index.js.map +1 -1
  176. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar-presentation.js +21 -17
  177. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar-presentation.js.map +1 -1
  178. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.css.js +21 -17
  179. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.css.js.map +1 -1
  180. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.js +21 -17
  181. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.js.map +1 -1
  182. package/dist/samples/todo/elements/todo-undo-redo/index.d.ts +0 -17
  183. package/dist/samples/todo/elements/todo-undo-redo/index.js +21 -17
  184. package/dist/samples/todo/elements/todo-undo-redo/index.js.map +1 -1
  185. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo-presentation.js +21 -17
  186. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo-presentation.js.map +1 -1
  187. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo.css.js +21 -17
  188. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo.css.js.map +1 -1
  189. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo.js +21 -17
  190. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo.js.map +1 -1
  191. package/dist/samples/todo/services/dependent-state-service/create-dependent-state-service.js +21 -17
  192. package/dist/samples/todo/services/dependent-state-service/create-dependent-state-service.js.map +1 -1
  193. package/dist/samples/todo/services/dependent-state-service/dependent-state/all-todos.d.ts +0 -17
  194. package/dist/samples/todo/services/dependent-state-service/dependent-state/all-todos.js.map +1 -1
  195. package/dist/samples/todo/services/dependent-state-service/dependent-state/complete-todos.d.ts +0 -17
  196. package/dist/samples/todo/services/dependent-state-service/dependent-state/complete-todos.js.map +1 -1
  197. package/dist/samples/todo/services/dependent-state-service/dependent-state/incomplete-todos.d.ts +0 -17
  198. package/dist/samples/todo/services/dependent-state-service/dependent-state/incomplete-todos.js.map +1 -1
  199. package/dist/samples/todo/services/dependent-state-service/dependent-state/index.d.ts +0 -17
  200. package/dist/samples/todo/services/dependent-state-service/dependent-state/index.js +21 -17
  201. package/dist/samples/todo/services/dependent-state-service/dependent-state/index.js.map +1 -1
  202. package/dist/samples/todo/services/dependent-state-service/dependent-state-service.d.ts +0 -17
  203. package/dist/samples/todo/services/main-service/create-main-service.d.ts +0 -17
  204. package/dist/samples/todo/services/main-service/create-main-service.js.map +1 -1
  205. package/dist/samples/todo/services/main-service/todo-main-service.d.ts +0 -17
  206. package/dist/samples/todo/services/state-service/create-todo-database.js +21 -17
  207. package/dist/samples/todo/services/state-service/create-todo-database.js.map +1 -1
  208. package/dist/samples/todo/services/state-service/create-todo-store.js +21 -17
  209. package/dist/samples/todo/services/state-service/create-todo-store.js.map +1 -1
  210. package/dist/samples/todo/services/state-service/todo-state-service.d.ts +0 -17
  211. package/dist/samples/todo/services/state-service/transactions/create-bulk-todos.js +21 -17
  212. package/dist/samples/todo/services/state-service/transactions/create-bulk-todos.js.map +1 -1
  213. package/dist/samples/todo/services/state-service/transactions/create-todo.d.ts +0 -17
  214. package/dist/samples/todo/services/state-service/transactions/create-todo.js.map +1 -1
  215. package/dist/samples/todo/services/state-service/transactions/create-todo.test.js +21 -17
  216. package/dist/samples/todo/services/state-service/transactions/create-todo.test.js.map +1 -1
  217. package/dist/samples/todo/services/state-service/transactions/delete-all-todos.d.ts +0 -17
  218. package/dist/samples/todo/services/state-service/transactions/delete-all-todos.js.map +1 -1
  219. package/dist/samples/todo/services/state-service/transactions/delete-todo.js +21 -17
  220. package/dist/samples/todo/services/state-service/transactions/delete-todo.js.map +1 -1
  221. package/dist/samples/todo/services/state-service/transactions/delete-todo.test.js +21 -17
  222. package/dist/samples/todo/services/state-service/transactions/delete-todo.test.js.map +1 -1
  223. package/dist/samples/todo/services/state-service/transactions/drag-todo.js +21 -17
  224. package/dist/samples/todo/services/state-service/transactions/drag-todo.js.map +1 -1
  225. package/dist/samples/todo/services/state-service/transactions/index.d.ts +0 -17
  226. package/dist/samples/todo/services/state-service/transactions/index.js +21 -17
  227. package/dist/samples/todo/services/state-service/transactions/index.js.map +1 -1
  228. package/dist/samples/todo/services/state-service/transactions/reorder-todos.d.ts +0 -17
  229. package/dist/samples/todo/services/state-service/transactions/reorder-todos.js.map +1 -1
  230. package/dist/samples/todo/services/state-service/transactions/toggle-complete.d.ts +0 -17
  231. package/dist/samples/todo/services/state-service/transactions/toggle-complete.js.map +1 -1
  232. package/dist/samples/todo/services/state-service/transactions/toggle-complete.test.js +21 -17
  233. package/dist/samples/todo/services/state-service/transactions/toggle-complete.test.js.map +1 -1
  234. package/dist/samples/todo/todo-element.d.ts +0 -17
  235. package/dist/samples/todo/todo-element.js.map +1 -1
  236. package/dist/samples/todo/todo-main-element.d.ts +0 -17
  237. package/dist/samples/todo/todo-main-element.js +21 -17
  238. package/dist/samples/todo/todo-main-element.js.map +1 -1
  239. package/dist/schema/schema.d.ts +12 -15
  240. package/dist/schema/schema.js +2 -5
  241. package/dist/schema/schema.js.map +1 -1
  242. package/dist/service/index.d.ts +1 -1
  243. package/dist/service/index.js +1 -1
  244. package/dist/service/index.js.map +1 -1
  245. package/dist/table/table.js +1 -0
  246. package/dist/table/table.js.map +1 -1
  247. package/dist/tsconfig.tsbuildinfo +1 -1
  248. package/dist/typed-buffer/create-struct-buffer.js +0 -1
  249. package/dist/typed-buffer/create-struct-buffer.js.map +1 -1
  250. package/dist/typed-buffer/create-struct-buffer.test.js +5 -3
  251. package/dist/typed-buffer/create-struct-buffer.test.js.map +1 -1
  252. package/dist/typed-buffer/is-typed-buffer.js +21 -0
  253. package/dist/typed-buffer/is-typed-buffer.js.map +1 -1
  254. package/dist/typed-buffer/is-typed-buffer.test.js +21 -0
  255. package/dist/typed-buffer/is-typed-buffer.test.js.map +1 -1
  256. package/dist/typed-buffer/typed-buffer-equals.js +21 -0
  257. package/dist/typed-buffer/typed-buffer-equals.js.map +1 -1
  258. package/dist/types/replace.d.ts +0 -4
  259. package/dist/types/replace.js.map +1 -1
  260. package/package.json +1 -1
  261. package/dist/ecs/entity/entity.d.ts +0 -8
  262. package/dist/ecs/entity/entity.js +0 -3
  263. package/dist/ecs/entity/entity.js.map +0 -1
  264. package/dist/ecs/entity/u32.d.ts +0 -8
  265. package/dist/ecs/entity/u32.js.map +0 -1
  266. package/dist/math/aabb-face/face.d.ts +0 -51
  267. package/dist/math/aabb-face/face.js +0 -110
  268. package/dist/math/aabb-face/face.js.map +0 -1
  269. package/dist/math/aabb-face/face.test.d.ts +0 -1
  270. package/dist/math/aabb-face/face.test.js +0 -94
  271. package/dist/math/aabb-face/face.test.js.map +0 -1
  272. package/dist/math/box/box.d.ts +0 -50
  273. package/dist/math/box/box.js +0 -23
  274. package/dist/math/box/box.js.map +0 -1
  275. package/dist/math/face/face.d.ts +0 -51
  276. package/dist/math/face/face.js +0 -110
  277. package/dist/math/face/face.js.map +0 -1
  278. package/dist/math/face/face.test.d.ts +0 -1
  279. package/dist/math/face/face.test.js +0 -94
  280. package/dist/math/face/face.test.js.map +0 -1
  281. package/dist/math/picking/face.d.ts +0 -1
  282. package/dist/math/picking/face.js +0 -2
  283. package/dist/math/picking/face.js.map +0 -1
  284. package/dist/math/picking/getClosestEntityToLine.d.ts +0 -4
  285. package/dist/math/picking/getClosestEntityToLine.js +0 -29
  286. package/dist/math/picking/getClosestEntityToLine.js.map +0 -1
  287. package/dist/math/picking/getClosestEntityToPoint.d.ts +0 -4
  288. package/dist/math/picking/getClosestEntityToPoint.js +0 -27
  289. package/dist/math/picking/getClosestEntityToPoint.js.map +0 -1
  290. package/dist/math/picking/getIntersectingEntities.d.ts +0 -12
  291. package/dist/math/picking/getIntersectingEntities.js +0 -15
  292. package/dist/math/picking/getIntersectingEntities.js.map +0 -1
  293. package/dist/math/transform/debug-inverse.d.ts +0 -1
  294. package/dist/math/transform/debug-inverse.js +0 -28
  295. package/dist/math/transform/debug-inverse.js.map +0 -1
  296. package/dist/math/transform/debug-quat.d.ts +0 -1
  297. package/dist/math/transform/debug-quat.js +0 -23
  298. package/dist/math/transform/debug-quat.js.map +0 -1
  299. package/dist/math/transform/debug-test.d.ts +0 -1
  300. package/dist/math/transform/debug-test.js +0 -34
  301. package/dist/math/transform/debug-test.js.map +0 -1
  302. package/dist/math/transform/transform.d.ts +0 -58
  303. package/dist/math/transform/transform.js +0 -101
  304. package/dist/math/transform/transform.js.map +0 -1
  305. package/dist/math/transform/transform.test.d.ts +0 -1
  306. package/dist/math/transform/transform.test.js +0 -309
  307. package/dist/math/transform/transform.test.js.map +0 -1
@@ -1,309 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { Transform } from "./transform.js";
3
- import { Vec3 } from "../vec3/vec3.js";
4
- import { Quat } from "../quat/quat.js";
5
- import { Mat4x4 } from "../mat4x4/mat4x4.js";
6
- const EPSILON = 1e-6;
7
- const expectVec3Close = (a, b, epsilon = EPSILON) => {
8
- expect(Math.abs(a[0] - b[0])).toBeLessThan(epsilon);
9
- expect(Math.abs(a[1] - b[1])).toBeLessThan(epsilon);
10
- expect(Math.abs(a[2] - b[2])).toBeLessThan(epsilon);
11
- };
12
- describe("Transform", () => {
13
- describe("identity transform", () => {
14
- it("should not change a point when applying identity transform", () => {
15
- const point = [1, 2, 3];
16
- const result = Transform.transform(Transform.identity, point);
17
- expectVec3Close(result, point);
18
- });
19
- it("should match matrix transformation for identity", () => {
20
- const point = [1, 2, 3];
21
- const matrix = Transform.toMatrix(Transform.identity);
22
- const matrixResult = Mat4x4.multiplyVec3(matrix, point);
23
- const directResult = Transform.transform(Transform.identity, point);
24
- expectVec3Close(directResult, matrixResult);
25
- });
26
- });
27
- describe("translation only", () => {
28
- it("should translate a point correctly", () => {
29
- const transform = {
30
- position: [5, -3, 2],
31
- rotation: Quat.identity,
32
- scale: Vec3.one,
33
- };
34
- const point = [1, 2, 3];
35
- const result = Transform.transform(transform, point);
36
- expectVec3Close(result, [6, -1, 5]);
37
- });
38
- it("should match matrix transformation for translation", () => {
39
- const transform = {
40
- position: [5, -3, 2],
41
- rotation: Quat.identity,
42
- scale: Vec3.one,
43
- };
44
- const point = [1, 2, 3];
45
- const matrix = Transform.toMatrix(transform);
46
- const matrixResult = Mat4x4.multiplyVec3(matrix, point);
47
- const directResult = Transform.transform(transform, point);
48
- expectVec3Close(directResult, matrixResult);
49
- });
50
- });
51
- describe("scale only", () => {
52
- it("should scale a point correctly", () => {
53
- const transform = {
54
- position: Vec3.zero,
55
- rotation: Quat.identity,
56
- scale: [2, 3, 0.5],
57
- };
58
- const point = [1, 2, 4];
59
- const result = Transform.transform(transform, point);
60
- expectVec3Close(result, [2, 6, 2]);
61
- });
62
- it("should match matrix transformation for scale", () => {
63
- const transform = {
64
- position: Vec3.zero,
65
- rotation: Quat.identity,
66
- scale: [2, 3, 0.5],
67
- };
68
- const point = [1, 2, 4];
69
- const matrix = Transform.toMatrix(transform);
70
- const matrixResult = Mat4x4.multiplyVec3(matrix, point);
71
- const directResult = Transform.transform(transform, point);
72
- expectVec3Close(directResult, matrixResult);
73
- });
74
- });
75
- describe("rotation only", () => {
76
- it("should rotate a point 90 degrees around Z axis", () => {
77
- const transform = {
78
- position: Vec3.zero,
79
- rotation: Quat.fromAxisAngle([0, 0, 1], Math.PI / 2),
80
- scale: Vec3.one,
81
- };
82
- const point = [1, 0, 0];
83
- const result = Transform.transform(transform, point);
84
- expectVec3Close(result, [0, 1, 0]);
85
- });
86
- it("should rotate a point 90 degrees around Y axis", () => {
87
- const transform = {
88
- position: Vec3.zero,
89
- rotation: Quat.fromAxisAngle([0, 1, 0], Math.PI / 2),
90
- scale: Vec3.one,
91
- };
92
- const point = [1, 0, 0];
93
- const result = Transform.transform(transform, point);
94
- expectVec3Close(result, [0, 0, -1]);
95
- });
96
- it("should match matrix transformation for rotation", () => {
97
- const transform = {
98
- position: Vec3.zero,
99
- rotation: Quat.fromAxisAngle([0, 0, 1], Math.PI / 2),
100
- scale: Vec3.one,
101
- };
102
- const point = [1, 2, 3];
103
- const matrix = Transform.toMatrix(transform);
104
- const matrixResult = Mat4x4.multiplyVec3(matrix, point);
105
- const directResult = Transform.transform(transform, point);
106
- expectVec3Close(directResult, matrixResult);
107
- });
108
- });
109
- describe("combined transformations", () => {
110
- it("should apply scale, rotation, and translation in correct order", () => {
111
- const transform = {
112
- position: [10, 20, 30],
113
- rotation: Quat.fromAxisAngle([0, 0, 1], Math.PI / 2),
114
- scale: [2, 2, 2],
115
- };
116
- const point = [1, 0, 0];
117
- const result = Transform.transform(transform, point);
118
- // Scale: [2, 0, 0]
119
- // Rotate 90° around Z: [0, 2, 0]
120
- // Translate: [10, 22, 30]
121
- expectVec3Close(result, [10, 22, 30]);
122
- });
123
- it("should match matrix transformation for complex transform", () => {
124
- const transform = {
125
- position: [5, -3, 7],
126
- rotation: Quat.fromAxisAngle([1, 1, 0], Math.PI / 4),
127
- scale: [2, 0.5, 3],
128
- };
129
- const point = [1, 2, 3];
130
- const matrix = Transform.toMatrix(transform);
131
- const matrixResult = Mat4x4.multiplyVec3(matrix, point);
132
- const directResult = Transform.transform(transform, point);
133
- expectVec3Close(directResult, matrixResult);
134
- });
135
- it("should match matrix transformation with arbitrary rotation", () => {
136
- const transform = {
137
- position: [-2, 4, -1],
138
- rotation: Quat.fromEuler(0.5, 1.2, -0.3),
139
- scale: [1.5, 0.8, 2.2],
140
- };
141
- const point = [3, -1, 2];
142
- const matrix = Transform.toMatrix(transform);
143
- const matrixResult = Mat4x4.multiplyVec3(matrix, point);
144
- const directResult = Transform.transform(transform, point);
145
- expectVec3Close(directResult, matrixResult);
146
- });
147
- });
148
- describe("multiple points consistency", () => {
149
- it("should consistently match matrix transformation for various points", () => {
150
- const transform = {
151
- position: [1, 2, 3],
152
- rotation: Quat.fromAxisAngle([1, 0.5, 0.3], 1.5),
153
- scale: [2, 1.5, 0.75],
154
- };
155
- const testPoints = [
156
- [0, 0, 0],
157
- [1, 0, 0],
158
- [0, 1, 0],
159
- [0, 0, 1],
160
- [1, 1, 1],
161
- [-1, -1, -1],
162
- [5, -3, 2],
163
- [0.1, 0.2, 0.3],
164
- ];
165
- const matrix = Transform.toMatrix(transform);
166
- for (const point of testPoints) {
167
- const matrixResult = Mat4x4.multiplyVec3(matrix, point);
168
- const directResult = Transform.transform(transform, point);
169
- expectVec3Close(directResult, matrixResult);
170
- }
171
- });
172
- });
173
- describe("edge cases", () => {
174
- it("should handle zero point", () => {
175
- const transform = {
176
- position: [1, 2, 3],
177
- rotation: Quat.fromAxisAngle([0, 1, 0], Math.PI / 4),
178
- scale: [2, 3, 4],
179
- };
180
- const point = [0, 0, 0];
181
- const matrix = Transform.toMatrix(transform);
182
- const matrixResult = Mat4x4.multiplyVec3(matrix, point);
183
- const directResult = Transform.transform(transform, point);
184
- expectVec3Close(directResult, matrixResult);
185
- });
186
- it("should handle zero scale components", () => {
187
- const transform = {
188
- position: [1, 2, 3],
189
- rotation: Quat.fromAxisAngle([0, 1, 0], Math.PI / 4),
190
- scale: [0, 1, 1],
191
- };
192
- const point = [5, 5, 5];
193
- const matrix = Transform.toMatrix(transform);
194
- const matrixResult = Mat4x4.multiplyVec3(matrix, point);
195
- const directResult = Transform.transform(transform, point);
196
- expectVec3Close(directResult, matrixResult);
197
- });
198
- it("should handle negative scale", () => {
199
- const transform = {
200
- position: [0, 0, 0],
201
- rotation: Quat.identity,
202
- scale: [-1, 1, -1],
203
- };
204
- const point = [1, 2, 3];
205
- const matrix = Transform.toMatrix(transform);
206
- const matrixResult = Mat4x4.multiplyVec3(matrix, point);
207
- const directResult = Transform.transform(transform, point);
208
- expectVec3Close(directResult, matrixResult);
209
- });
210
- });
211
- describe("transformInverse", () => {
212
- it("should be the inverse of transform for identity", () => {
213
- const point = [1, 2, 3];
214
- const transformed = Transform.transform(Transform.identity, point);
215
- const result = Transform.transformInverse(Transform.identity, transformed);
216
- expectVec3Close(result, point);
217
- });
218
- it("should be the inverse of transform for translation only", () => {
219
- const transform = {
220
- position: [5, -3, 2],
221
- rotation: Quat.identity,
222
- scale: Vec3.one,
223
- };
224
- const point = [1, 2, 3];
225
- const transformed = Transform.transform(transform, point);
226
- const result = Transform.transformInverse(transform, transformed);
227
- expectVec3Close(result, point);
228
- });
229
- it("should be the inverse of transform for scale only", () => {
230
- const transform = {
231
- position: Vec3.zero,
232
- rotation: Quat.identity,
233
- scale: [2, 3, 0.5],
234
- };
235
- const point = [1, 2, 4];
236
- const transformed = Transform.transform(transform, point);
237
- const result = Transform.transformInverse(transform, transformed);
238
- expectVec3Close(result, point);
239
- });
240
- it("should be the inverse of transform for rotation only", () => {
241
- const transform = {
242
- position: Vec3.zero,
243
- rotation: Quat.fromAxisAngle([0, 0, 1], Math.PI / 2),
244
- scale: Vec3.one,
245
- };
246
- const point = [1, 2, 3];
247
- const transformed = Transform.transform(transform, point);
248
- const result = Transform.transformInverse(transform, transformed);
249
- expectVec3Close(result, point);
250
- });
251
- it("should be the inverse of transform for combined transformations", () => {
252
- const transform = {
253
- position: [5, -3, 7],
254
- rotation: Quat.fromAxisAngle([1, 1, 0], Math.PI / 4),
255
- scale: [2, 0.5, 3],
256
- };
257
- const point = [1, 2, 3];
258
- const transformed = Transform.transform(transform, point);
259
- const result = Transform.transformInverse(transform, transformed);
260
- expectVec3Close(result, point);
261
- });
262
- it("should handle multiple points correctly", () => {
263
- const transform = {
264
- position: [1, 2, 3],
265
- rotation: Quat.fromEuler(0.5, 1.2, -0.3),
266
- scale: [2, 1.5, 0.75],
267
- };
268
- const testPoints = [
269
- [0, 0, 0],
270
- [1, 0, 0],
271
- [0, 1, 0],
272
- [0, 0, 1],
273
- [1, 1, 1],
274
- [-1, -1, -1],
275
- [5, -3, 2],
276
- ];
277
- for (const point of testPoints) {
278
- const transformed = Transform.transform(transform, point);
279
- const result = Transform.transformInverse(transform, transformed);
280
- expectVec3Close(result, point);
281
- }
282
- });
283
- it("should match inverse matrix transformation", () => {
284
- const transform = {
285
- position: [2, -1, 3],
286
- rotation: Quat.fromAxisAngle([1, 0, 1], 0.8),
287
- scale: [1.5, 2, 0.8],
288
- };
289
- const point = [3, -1, 2];
290
- const matrix = Transform.toMatrix(transform);
291
- const inverseMatrix = Mat4x4.inverse(matrix);
292
- const matrixResult = Mat4x4.multiplyVec3(inverseMatrix, point);
293
- const directResult = Transform.transformInverse(transform, point);
294
- expectVec3Close(directResult, matrixResult);
295
- });
296
- it("should handle negative scale", () => {
297
- const transform = {
298
- position: [1, 2, 3],
299
- rotation: Quat.fromAxisAngle([0, 1, 0], Math.PI / 6),
300
- scale: [-2, 1, -1],
301
- };
302
- const point = [4, 5, 6];
303
- const transformed = Transform.transform(transform, point);
304
- const result = Transform.transformInverse(transform, transformed);
305
- expectVec3Close(result, point);
306
- });
307
- });
308
- });
309
- //# sourceMappingURL=transform.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.test.js","sourceRoot":"","sources":["../../../src/math/transform/transform.test.ts"],"names":[],"mappings":"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"}