@tolokoban/tgd 2.0.1 → 2.0.3

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 (420) hide show
  1. package/lib/dist/buffer/buffer.d.ts +0 -0
  2. package/lib/dist/buffer/buffer.d.ts.map +0 -0
  3. package/lib/dist/buffer/buffer.js +37 -0
  4. package/lib/dist/buffer/index.d.ts +0 -0
  5. package/lib/dist/buffer/index.d.ts.map +0 -0
  6. package/lib/dist/buffer/index.js +2 -0
  7. package/lib/dist/camera/camera-orthographic.d.ts +13 -5
  8. package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
  9. package/lib/dist/camera/camera-orthographic.js +97 -0
  10. package/lib/dist/camera/camera-perspective.d.ts +19 -9
  11. package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
  12. package/lib/dist/camera/camera-perspective.js +94 -0
  13. package/lib/dist/camera/camera.d.ts +84 -18
  14. package/lib/dist/camera/camera.d.ts.map +1 -1
  15. package/lib/dist/camera/camera.js +368 -0
  16. package/lib/dist/camera/index.d.ts +3 -3
  17. package/lib/dist/camera/index.d.ts.map +1 -1
  18. package/lib/dist/camera/index.js +4 -0
  19. package/lib/dist/canvas/gizmo/gizmo.d.ts +42 -0
  20. package/lib/dist/canvas/gizmo/gizmo.d.ts.map +1 -0
  21. package/lib/dist/canvas/gizmo/gizmo.js +183 -0
  22. package/lib/dist/canvas/gizmo/index.d.ts +2 -0
  23. package/lib/dist/canvas/gizmo/index.d.ts.map +1 -0
  24. package/lib/dist/canvas/gizmo/index.js +2 -0
  25. package/lib/dist/canvas/gizmo/painter/shader.frag +17 -0
  26. package/lib/dist/canvas/gizmo/painter/shader.vert +24 -0
  27. package/lib/dist/canvas/gizmo/painter/tips.d.ts +13 -0
  28. package/lib/dist/canvas/gizmo/painter/tips.d.ts.map +1 -0
  29. package/lib/dist/canvas/gizmo/painter/tips.js +96 -0
  30. package/lib/dist/canvas/index.d.ts +3 -0
  31. package/lib/dist/canvas/index.d.ts.map +1 -0
  32. package/lib/dist/canvas/index.js +3 -0
  33. package/lib/dist/canvas/landscape/index.d.ts +2 -0
  34. package/lib/dist/canvas/landscape/index.d.ts.map +1 -0
  35. package/lib/dist/canvas/landscape/index.js +2 -0
  36. package/lib/dist/canvas/landscape/landscape.d.ts +18 -0
  37. package/lib/dist/canvas/landscape/landscape.d.ts.map +1 -0
  38. package/lib/dist/canvas/landscape/landscape.js +40 -0
  39. package/lib/dist/color/color.d.ts +22 -0
  40. package/lib/dist/color/color.d.ts.map +1 -0
  41. package/lib/dist/color/color.js +160 -0
  42. package/lib/dist/color/index.d.ts +2 -0
  43. package/lib/dist/color/index.d.ts.map +1 -0
  44. package/lib/dist/color/index.js +2 -0
  45. package/lib/dist/context/animation/animation-manager.d.ts +8 -0
  46. package/lib/dist/context/animation/animation-manager.d.ts.map +1 -0
  47. package/lib/dist/context/animation/animation-manager.js +41 -0
  48. package/lib/dist/context/context.d.ts +95 -8
  49. package/lib/dist/context/context.d.ts.map +1 -1
  50. package/lib/dist/context/context.js +297 -0
  51. package/lib/dist/context/index.d.ts +0 -0
  52. package/lib/dist/context/index.d.ts.map +0 -0
  53. package/lib/dist/context/index.js +2 -0
  54. package/lib/dist/controller/camera/index.d.ts +0 -0
  55. package/lib/dist/controller/camera/index.d.ts.map +0 -0
  56. package/lib/dist/controller/camera/index.js +2 -0
  57. package/lib/dist/controller/camera/orbit.d.ts +79 -4
  58. package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
  59. package/lib/dist/controller/camera/orbit.js +186 -0
  60. package/lib/dist/controller/index.d.ts +0 -0
  61. package/lib/dist/controller/index.d.ts.map +0 -0
  62. package/lib/dist/controller/index.js +2 -0
  63. package/lib/dist/dataset/dataset.d.ts +78 -10
  64. package/lib/dist/dataset/dataset.d.ts.map +1 -1
  65. package/lib/dist/dataset/dataset.js +217 -0
  66. package/lib/dist/dataset/index.d.ts +0 -0
  67. package/lib/dist/dataset/index.d.ts.map +0 -0
  68. package/lib/dist/dataset/index.js +2 -0
  69. package/lib/dist/debug.d.ts +0 -0
  70. package/lib/dist/debug.d.ts.map +0 -0
  71. package/lib/dist/debug.js +13 -0
  72. package/lib/dist/event/event.d.ts +0 -0
  73. package/lib/dist/event/event.d.ts.map +0 -0
  74. package/lib/dist/event/event.js +13 -0
  75. package/lib/dist/event/index.d.ts +0 -0
  76. package/lib/dist/event/index.d.ts.map +0 -0
  77. package/lib/dist/event/index.js +2 -0
  78. package/lib/dist/filter/blur.d.ts +10 -0
  79. package/lib/dist/filter/blur.d.ts.map +1 -0
  80. package/lib/dist/filter/blur.js +42 -0
  81. package/lib/dist/filter/filter.d.ts +39 -0
  82. package/lib/dist/filter/filter.d.ts.map +1 -0
  83. package/lib/dist/filter/filter.js +43 -0
  84. package/lib/dist/filter/hue-rotation.d.ts +12 -0
  85. package/lib/dist/filter/hue-rotation.d.ts.map +1 -0
  86. package/lib/dist/filter/hue-rotation.js +41 -0
  87. package/lib/dist/filter/index.d.ts +4 -0
  88. package/lib/dist/filter/index.d.ts.map +1 -0
  89. package/lib/dist/filter/index.js +4 -0
  90. package/lib/dist/geometry/box.d.ts +10 -0
  91. package/lib/dist/geometry/box.d.ts.map +1 -0
  92. package/lib/dist/geometry/box.js +136 -0
  93. package/lib/dist/geometry/geometry.d.ts +47 -0
  94. package/lib/dist/geometry/geometry.d.ts.map +1 -0
  95. package/lib/dist/geometry/geometry.js +190 -0
  96. package/lib/dist/geometry/index.d.ts +3 -0
  97. package/lib/dist/geometry/index.d.ts.map +1 -0
  98. package/lib/dist/geometry/index.js +3 -0
  99. package/lib/dist/index.d.ts +7 -0
  100. package/lib/dist/index.d.ts.map +1 -1
  101. package/lib/dist/index.js +21 -2
  102. package/lib/dist/input/index.d.ts +0 -0
  103. package/lib/dist/input/index.d.ts.map +0 -0
  104. package/lib/dist/input/index.js +4 -0
  105. package/lib/dist/input/inputs.d.ts +0 -0
  106. package/lib/dist/input/inputs.d.ts.map +1 -1
  107. package/lib/dist/input/inputs.js +23 -0
  108. package/lib/dist/input/keyboard.d.ts +3 -0
  109. package/lib/dist/input/keyboard.d.ts.map +1 -1
  110. package/lib/dist/input/keyboard.js +46 -0
  111. package/lib/dist/input/pointer.d.ts +17 -33
  112. package/lib/dist/input/pointer.d.ts.map +1 -1
  113. package/lib/dist/input/pointer.js +138 -0
  114. package/lib/dist/light/index.d.ts +2 -0
  115. package/lib/dist/light/index.d.ts.map +1 -0
  116. package/lib/dist/light/index.js +2 -0
  117. package/lib/dist/light/light.d.ts +16 -0
  118. package/lib/dist/light/light.d.ts.map +1 -0
  119. package/lib/dist/light/light.js +19 -0
  120. package/lib/dist/loader/image.d.ts +4 -0
  121. package/lib/dist/loader/image.d.ts.map +1 -1
  122. package/lib/dist/loader/image.js +31 -0
  123. package/lib/dist/loader/index.d.ts +0 -0
  124. package/lib/dist/loader/index.d.ts.map +0 -0
  125. package/lib/dist/loader/index.js +2 -0
  126. package/lib/dist/material/diffuse.d.ts +28 -0
  127. package/lib/dist/material/diffuse.d.ts.map +1 -0
  128. package/lib/dist/material/diffuse.js +68 -0
  129. package/lib/dist/material/ghost.d.ts +19 -0
  130. package/lib/dist/material/ghost.d.ts.map +1 -0
  131. package/lib/dist/material/ghost.js +25 -0
  132. package/lib/dist/material/index.d.ts +5 -0
  133. package/lib/dist/material/index.d.ts.map +1 -0
  134. package/lib/dist/material/index.js +5 -0
  135. package/lib/dist/material/material.d.ts +29 -0
  136. package/lib/dist/material/material.d.ts.map +1 -0
  137. package/lib/dist/material/material.js +14 -0
  138. package/lib/dist/material/normals.d.ts +13 -0
  139. package/lib/dist/material/normals.d.ts.map +1 -0
  140. package/lib/dist/material/normals.js +20 -0
  141. package/lib/dist/math/index.d.ts +3 -0
  142. package/lib/dist/math/index.d.ts.map +1 -1
  143. package/lib/dist/math/index.js +8 -0
  144. package/lib/dist/math/mat3.d.ts +8 -0
  145. package/lib/dist/math/mat3.d.ts.map +1 -1
  146. package/lib/dist/math/mat3.js +154 -0
  147. package/lib/dist/math/mat4.d.ts +111 -2
  148. package/lib/dist/math/mat4.d.ts.map +1 -1
  149. package/lib/dist/math/mat4.js +402 -0
  150. package/lib/dist/math/mat4.test.d.ts +0 -0
  151. package/lib/dist/math/mat4.test.d.ts.map +0 -0
  152. package/lib/dist/math/mat4.test.js +57 -0
  153. package/lib/dist/math/quat.d.ts +1 -0
  154. package/lib/dist/math/quat.d.ts.map +1 -1
  155. package/lib/dist/math/quat.js +184 -0
  156. package/lib/dist/math/quat.test.d.ts +0 -0
  157. package/lib/dist/math/quat.test.d.ts.map +0 -0
  158. package/lib/dist/math/quat.test.js +45 -0
  159. package/lib/dist/math/transfo.d.ts +27 -0
  160. package/lib/dist/math/transfo.d.ts.map +1 -0
  161. package/lib/dist/math/transfo.js +86 -0
  162. package/lib/dist/math/vec2.d.ts +34 -0
  163. package/lib/dist/math/vec2.d.ts.map +1 -0
  164. package/lib/dist/math/vec2.js +119 -0
  165. package/lib/dist/math/vec3.d.ts +24 -13
  166. package/lib/dist/math/vec3.d.ts.map +1 -1
  167. package/lib/dist/math/vec3.js +187 -0
  168. package/lib/dist/math/vec3.test.d.ts +2 -0
  169. package/lib/dist/math/vec3.test.d.ts.map +1 -0
  170. package/lib/dist/math/vec3.test.js +22 -0
  171. package/lib/dist/math/vec4.d.ts +8 -4
  172. package/lib/dist/math/vec4.d.ts.map +1 -1
  173. package/lib/dist/math/vec4.js +152 -0
  174. package/lib/dist/math/vec4.test.d.ts +0 -0
  175. package/lib/dist/math/vec4.test.d.ts.map +0 -0
  176. package/lib/dist/math/vec4.test.js +15 -0
  177. package/lib/dist/painter/axis/axis.d.ts +1 -1
  178. package/lib/dist/painter/axis/axis.d.ts.map +1 -1
  179. package/lib/dist/painter/axis/axis.frag +11 -0
  180. package/lib/dist/painter/axis/axis.js +84 -0
  181. package/lib/dist/painter/axis/axis.vert +21 -0
  182. package/lib/dist/painter/axis/index.d.ts +0 -0
  183. package/lib/dist/painter/axis/index.d.ts.map +0 -0
  184. package/lib/dist/painter/axis/index.js +2 -0
  185. package/lib/dist/painter/background/background.d.ts +5 -1
  186. package/lib/dist/painter/background/background.d.ts.map +1 -1
  187. package/lib/dist/painter/background/background.frag +11 -0
  188. package/lib/dist/painter/background/background.js +63 -0
  189. package/lib/dist/painter/background/background.vert +16 -0
  190. package/lib/dist/painter/background/index.d.ts +0 -0
  191. package/lib/dist/painter/background/index.d.ts.map +0 -0
  192. package/lib/dist/painter/background/index.js +2 -0
  193. package/lib/dist/painter/clear.d.ts +11 -6
  194. package/lib/dist/painter/clear.d.ts.map +1 -1
  195. package/lib/dist/painter/clear.js +51 -0
  196. package/lib/dist/painter/depth.d.ts +0 -0
  197. package/lib/dist/painter/depth.d.ts.map +1 -1
  198. package/lib/dist/painter/depth.js +34 -0
  199. package/lib/dist/painter/filter/filter.d.ts +23 -0
  200. package/lib/dist/painter/filter/filter.d.ts.map +1 -0
  201. package/lib/dist/painter/filter/filter.frag +15 -0
  202. package/lib/dist/painter/filter/filter.js +76 -0
  203. package/lib/dist/painter/filter/filter.vert +11 -0
  204. package/lib/dist/painter/filter/index.d.ts +2 -0
  205. package/lib/dist/painter/filter/index.d.ts.map +1 -0
  206. package/lib/dist/painter/filter/index.js +2 -0
  207. package/lib/dist/painter/framebuffer.d.ts +38 -0
  208. package/lib/dist/painter/framebuffer.d.ts.map +1 -0
  209. package/lib/dist/painter/framebuffer.js +102 -0
  210. package/lib/dist/painter/group.d.ts +4 -0
  211. package/lib/dist/painter/group.d.ts.map +1 -1
  212. package/lib/dist/painter/group.js +59 -0
  213. package/lib/dist/painter/index.d.ts +3 -1
  214. package/lib/dist/painter/index.d.ts.map +1 -1
  215. package/lib/dist/painter/index.js +12 -0
  216. package/lib/dist/painter/logic.d.ts +3 -0
  217. package/lib/dist/painter/logic.d.ts.map +1 -1
  218. package/lib/dist/painter/logic.js +16 -0
  219. package/lib/dist/painter/mesh/gltf/gltf.d.ts +14 -0
  220. package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -0
  221. package/lib/dist/painter/mesh/gltf/gltf.js +93 -0
  222. package/lib/dist/painter/mesh/gltf/index.d.ts +2 -0
  223. package/lib/dist/painter/mesh/gltf/index.d.ts.map +1 -0
  224. package/lib/dist/painter/mesh/gltf/index.js +2 -0
  225. package/lib/dist/painter/mesh/index.d.ts +4 -0
  226. package/lib/dist/painter/mesh/index.d.ts.map +1 -0
  227. package/lib/dist/painter/mesh/index.js +4 -0
  228. package/lib/dist/painter/mesh/mesh/index.d.ts +2 -0
  229. package/lib/dist/painter/mesh/mesh/index.d.ts.map +1 -0
  230. package/lib/dist/painter/mesh/mesh/index.js +2 -0
  231. package/lib/dist/painter/mesh/mesh/mesh.d.ts +32 -0
  232. package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -0
  233. package/lib/dist/painter/mesh/mesh/mesh.js +128 -0
  234. package/lib/dist/painter/mesh/normals/index.d.ts +2 -0
  235. package/lib/dist/painter/mesh/normals/index.d.ts.map +1 -0
  236. package/lib/dist/painter/mesh/normals/index.js +2 -0
  237. package/lib/dist/painter/mesh/normals/normals.d.ts +18 -0
  238. package/lib/dist/painter/mesh/normals/normals.d.ts.map +1 -0
  239. package/lib/dist/painter/mesh/normals/normals.js +53 -0
  240. package/lib/dist/painter/mesh/normals/shader.frag +14 -0
  241. package/lib/dist/painter/mesh/normals/shader.vert +18 -0
  242. package/lib/dist/painter/node.d.ts +26 -0
  243. package/lib/dist/painter/node.d.ts.map +1 -0
  244. package/lib/dist/painter/node.js +67 -0
  245. package/lib/dist/painter/painter.d.ts +1 -0
  246. package/lib/dist/painter/painter.d.ts.map +1 -1
  247. package/lib/dist/painter/painter.js +4 -0
  248. package/lib/dist/painter/segments/index.d.ts +0 -0
  249. package/lib/dist/painter/segments/index.d.ts.map +0 -0
  250. package/lib/dist/painter/segments/index.js +2 -0
  251. package/lib/dist/painter/segments/segments.d.ts +56 -17
  252. package/lib/dist/painter/segments/segments.d.ts.map +1 -1
  253. package/lib/dist/painter/segments/segments.frag +12 -0
  254. package/lib/dist/painter/segments/segments.js +196 -0
  255. package/lib/dist/painter/segments/segments.vert +114 -0
  256. package/lib/dist/painter/skybox/index.d.ts +0 -0
  257. package/lib/dist/painter/skybox/index.d.ts.map +0 -0
  258. package/lib/dist/painter/skybox/index.js +2 -0
  259. package/lib/dist/painter/skybox/skybox.d.ts +2 -2
  260. package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
  261. package/lib/dist/painter/skybox/skybox.frag +15 -0
  262. package/lib/dist/painter/skybox/skybox.js +59 -0
  263. package/lib/dist/painter/skybox/skybox.vert +10 -0
  264. package/lib/dist/parser/for-each-line.d.ts +3 -0
  265. package/lib/dist/parser/for-each-line.d.ts.map +1 -1
  266. package/lib/dist/parser/for-each-line.js +17 -0
  267. package/lib/dist/parser/gltf/gltf.d.ts +34 -0
  268. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -0
  269. package/lib/dist/parser/gltf/gltf.js +164 -0
  270. package/lib/dist/parser/gltf/index.d.ts +2 -0
  271. package/lib/dist/parser/gltf/index.d.ts.map +1 -0
  272. package/lib/dist/parser/gltf/index.js +2 -0
  273. package/lib/dist/parser/gltf/parser.d.ts +9 -0
  274. package/lib/dist/parser/gltf/parser.d.ts.map +1 -0
  275. package/lib/dist/parser/gltf/parser.js +53 -0
  276. package/lib/dist/parser/index.d.ts +1 -0
  277. package/lib/dist/parser/index.d.ts.map +1 -1
  278. package/lib/dist/parser/index.js +3 -0
  279. package/lib/dist/parser/mesh/wavefront.d.ts +70 -12
  280. package/lib/dist/parser/mesh/wavefront.d.ts.map +1 -1
  281. package/lib/dist/parser/mesh/wavefront.js +246 -0
  282. package/lib/dist/program/index.d.ts +0 -0
  283. package/lib/dist/program/index.d.ts.map +0 -0
  284. package/lib/dist/program/index.js +2 -0
  285. package/lib/dist/program/program.d.ts +15 -0
  286. package/lib/dist/program/program.d.ts.map +1 -1
  287. package/lib/dist/program/program.js +220 -0
  288. package/lib/dist/ref-map.d.ts +15 -0
  289. package/lib/dist/ref-map.d.ts.map +1 -1
  290. package/lib/dist/ref-map.js +48 -0
  291. package/lib/dist/resource/index.d.ts +0 -0
  292. package/lib/dist/resource/index.d.ts.map +0 -0
  293. package/lib/dist/resource/index.js +5 -0
  294. package/lib/dist/resource/program.d.ts +0 -0
  295. package/lib/dist/resource/program.d.ts.map +1 -1
  296. package/lib/dist/resource/program.js +20 -0
  297. package/lib/dist/resource/resource.d.ts +7 -1
  298. package/lib/dist/resource/resource.d.ts.map +1 -1
  299. package/lib/dist/resource/resource.js +48 -0
  300. package/lib/dist/resource/texture2d.d.ts +1 -0
  301. package/lib/dist/resource/texture2d.d.ts.map +1 -1
  302. package/lib/dist/resource/texture2d.js +20 -0
  303. package/lib/dist/resource/textureCube.d.ts +0 -0
  304. package/lib/dist/resource/textureCube.d.ts.map +1 -1
  305. package/lib/dist/resource/textureCube.js +17 -0
  306. package/lib/dist/shader/code.d.ts +12 -0
  307. package/lib/dist/shader/code.d.ts.map +1 -0
  308. package/lib/dist/shader/code.js +32 -0
  309. package/lib/dist/shader/fragment.d.ts +23 -0
  310. package/lib/dist/shader/fragment.d.ts.map +1 -0
  311. package/lib/dist/shader/fragment.js +37 -0
  312. package/lib/dist/shader/vertex.d.ts +23 -0
  313. package/lib/dist/shader/vertex.d.ts.map +1 -0
  314. package/lib/dist/shader/vertex.js +35 -0
  315. package/lib/dist/texture/index.d.ts +0 -0
  316. package/lib/dist/texture/index.d.ts.map +0 -0
  317. package/lib/dist/texture/index.js +3 -0
  318. package/lib/dist/texture/texture2d.d.ts +4 -3
  319. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  320. package/lib/dist/texture/texture2d.js +132 -0
  321. package/lib/dist/texture/textureCube.d.ts +0 -0
  322. package/lib/dist/texture/textureCube.d.ts.map +1 -1
  323. package/lib/dist/texture/textureCube.js +87 -0
  324. package/lib/dist/types/animation.d.ts +20 -0
  325. package/lib/dist/types/animation.d.ts.map +1 -0
  326. package/lib/dist/types/animation.js +2 -0
  327. package/lib/dist/types/arrays.d.ts +33 -0
  328. package/lib/dist/types/arrays.d.ts.map +1 -0
  329. package/lib/dist/types/arrays.js +2 -0
  330. package/lib/dist/types/context.d.ts +7 -2
  331. package/lib/dist/types/context.d.ts.map +1 -1
  332. package/lib/dist/types/context.js +2 -0
  333. package/lib/dist/types/gltf.d.ts +200 -0
  334. package/lib/dist/types/gltf.d.ts.map +1 -0
  335. package/lib/dist/types/gltf.js +117 -0
  336. package/lib/dist/types/guards.d.ts +25 -0
  337. package/lib/dist/types/guards.d.ts.map +1 -0
  338. package/lib/dist/types/guards.js +218 -0
  339. package/lib/dist/types/index.d.ts +2 -0
  340. package/lib/dist/types/index.d.ts.map +1 -1
  341. package/lib/dist/types/index.js +10 -0
  342. package/lib/dist/types/input-keyboard.d.ts +3 -0
  343. package/lib/dist/types/input-keyboard.d.ts.map +1 -1
  344. package/lib/dist/types/input-keyboard.js +2 -0
  345. package/lib/dist/types/input-pointer.d.ts +33 -20
  346. package/lib/dist/types/input-pointer.d.ts.map +1 -1
  347. package/lib/dist/types/input-pointer.js +2 -0
  348. package/lib/dist/types/mesh.d.ts +10 -0
  349. package/lib/dist/types/mesh.d.ts.map +1 -0
  350. package/lib/dist/types/mesh.js +2 -0
  351. package/lib/dist/types/painter.d.ts +0 -0
  352. package/lib/dist/types/painter.d.ts.map +0 -0
  353. package/lib/dist/types/painter.js +2 -0
  354. package/lib/dist/types/program.d.ts +15 -0
  355. package/lib/dist/types/program.d.ts.map +1 -1
  356. package/lib/dist/types/program.js +2 -0
  357. package/lib/dist/types/texture2d.d.ts +14 -6
  358. package/lib/dist/types/texture2d.d.ts.map +1 -1
  359. package/lib/dist/types/texture2d.js +2 -0
  360. package/lib/dist/types/textureCube.d.ts +39 -0
  361. package/lib/dist/types/textureCube.d.ts.map +1 -1
  362. package/lib/dist/types/textureCube.js +2 -0
  363. package/lib/dist/types/webgl.d.ts +28 -1
  364. package/lib/dist/types/webgl.d.ts.map +1 -1
  365. package/lib/dist/types/webgl.js +2 -0
  366. package/lib/dist/utils/action/camera.d.ts +13 -0
  367. package/lib/dist/utils/action/camera.d.ts.map +1 -0
  368. package/lib/dist/utils/action/camera.js +30 -0
  369. package/lib/dist/utils/action/index.d.ts +2 -0
  370. package/lib/dist/utils/action/index.d.ts.map +1 -0
  371. package/lib/dist/utils/action/index.js +2 -0
  372. package/lib/dist/utils/canvas.d.ts +9 -1
  373. package/lib/dist/utils/canvas.d.ts.map +1 -1
  374. package/lib/dist/utils/canvas.js +23 -0
  375. package/lib/dist/utils/ease-func/ease-func.d.ts +32 -0
  376. package/lib/dist/utils/ease-func/ease-func.d.ts.map +1 -0
  377. package/lib/dist/utils/ease-func/ease-func.js +142 -0
  378. package/lib/dist/utils/ease-func/index.d.ts +2 -0
  379. package/lib/dist/utils/ease-func/index.d.ts.map +1 -0
  380. package/lib/dist/utils/ease-func/index.js +2 -0
  381. package/lib/dist/utils/fetch/fetch.d.ts +2 -0
  382. package/lib/dist/utils/fetch/fetch.d.ts.map +1 -0
  383. package/lib/dist/utils/fetch/fetch.js +5 -0
  384. package/lib/dist/utils/fetch/index.d.ts +2 -0
  385. package/lib/dist/utils/fetch/index.d.ts.map +1 -0
  386. package/lib/dist/utils/fetch/index.js +2 -0
  387. package/lib/dist/utils/fullscreen.d.ts +21 -0
  388. package/lib/dist/utils/fullscreen.d.ts.map +1 -0
  389. package/lib/dist/utils/fullscreen.js +64 -0
  390. package/lib/dist/utils/index.d.ts +4 -0
  391. package/lib/dist/utils/index.d.ts.map +1 -1
  392. package/lib/dist/utils/index.js +6 -0
  393. package/lib/dist/utils/math.d.ts +3 -0
  394. package/lib/dist/utils/math.d.ts.map +1 -0
  395. package/lib/dist/utils/math.js +11 -0
  396. package/lib/dist/utils/ref-map.d.ts +22 -0
  397. package/lib/dist/utils/ref-map.d.ts.map +1 -0
  398. package/lib/dist/utils/ref-map.js +48 -0
  399. package/lib/dist/vao/index.d.ts +0 -0
  400. package/lib/dist/vao/index.d.ts.map +0 -0
  401. package/lib/dist/vao/index.js +2 -0
  402. package/lib/dist/vao/vao.d.ts +5 -1
  403. package/lib/dist/vao/vao.d.ts.map +1 -1
  404. package/lib/dist/vao/vao.js +67 -0
  405. package/package.json +2 -4
  406. package/lib/dist/index.js.map +0 -1
  407. package/lib/dist/mesh/mesh.d.ts +0 -11
  408. package/lib/dist/mesh/mesh.d.ts.map +0 -1
  409. package/lib/dist/painter/isometric/isometric.frag.d.ts +0 -3
  410. package/lib/dist/painter/isometric/isometric.frag.d.ts.map +0 -1
  411. package/lib/dist/painter/isometric/isometric.vert.d.ts +0 -3
  412. package/lib/dist/painter/isometric/isometric.vert.d.ts.map +0 -1
  413. package/lib/dist/painter/primitive/primitive.frag.d.ts +0 -3
  414. package/lib/dist/painter/primitive/primitive.frag.d.ts.map +0 -1
  415. package/lib/dist/painter/primitive/primitive.vert.d.ts +0 -3
  416. package/lib/dist/painter/primitive/primitive.vert.d.ts.map +0 -1
  417. package/lib/dist/painter/sprites/sprites-painter.frag.d.ts +0 -3
  418. package/lib/dist/painter/sprites/sprites-painter.frag.d.ts.map +0 -1
  419. package/lib/dist/painter/sprites/sprites-painter.vert.d.ts +0 -3
  420. package/lib/dist/painter/sprites/sprites-painter.vert.d.ts.map +0 -1
@@ -0,0 +1,184 @@
1
+ import { TgdVec4 } from "./vec4.js";
2
+ export class TgdQuat extends TgdVec4 {
3
+ constructor(x = 0, y = 0, z = 0, w = 1) {
4
+ if (typeof x === "number")
5
+ super(x, y, z, w);
6
+ else
7
+ super(x);
8
+ }
9
+ clone() {
10
+ return new TgdQuat(this);
11
+ }
12
+ multiply(quat) {
13
+ const [qx, qy, qz, qw] = this;
14
+ const [rx, ry, rz, rw] = quat;
15
+ this[0] = rw * qx + rx * qw - ry * qz + rz * qy;
16
+ this[1] = rw * qy + rx * qz + ry * qw - rz * qx;
17
+ this[2] = rw * qz - rx * qy + ry * qx + rz * qw;
18
+ this[3] = rw * qw - rx * qx - ry * qy - rz * qz;
19
+ return this;
20
+ }
21
+ fromSlerp(a, b, t) {
22
+ const EPSILON = 1e-6;
23
+ const [ax, ay, az, aw] = a;
24
+ let [bx, by, bz, bw] = b;
25
+ let scale0, scale1;
26
+ // calc cosine
27
+ let cosom = ax * bx + ay * by + az * bz + aw * bw;
28
+ // adjust signs (if necessary)
29
+ if (cosom < 0.0) {
30
+ cosom = -cosom;
31
+ bx = -bx;
32
+ by = -by;
33
+ bz = -bz;
34
+ bw = -bw;
35
+ }
36
+ // calculate coefficients
37
+ if (1.0 - cosom > EPSILON) {
38
+ // standard case (slerp)
39
+ const omega = Math.acos(cosom);
40
+ const sinom = Math.sin(omega);
41
+ const inverseSinom = 1 / sinom;
42
+ scale0 = Math.sin((1.0 - t) * omega) * inverseSinom;
43
+ scale1 = Math.sin(t * omega) * inverseSinom;
44
+ }
45
+ else {
46
+ // "from" and "to" quaternions are very close
47
+ // ... so we can do a linear interpolation
48
+ scale0 = 1.0 - t;
49
+ scale1 = t;
50
+ }
51
+ // calculate final values
52
+ this.x = scale0 * ax + scale1 * bx;
53
+ this.y = scale0 * ay + scale1 * by;
54
+ this.z = scale0 * az + scale1 * bz;
55
+ this.w = scale0 * aw + scale1 * bw;
56
+ return this;
57
+ }
58
+ fromAxis(X, Y, Z) {
59
+ // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes
60
+ // article "Quaternion Calculus and Fast Animation".
61
+ const fTrace = X.x + Y.y + Z.z;
62
+ if (fTrace > 0.0) {
63
+ // |w| > 1/2, may as well choose w > 1/2
64
+ const fRoot = Math.sqrt(fTrace + 1.0); // 2w
65
+ this.w = 0.5 * fRoot;
66
+ const halfRoot = 0.5 / fRoot; // 1/(4w)
67
+ this.x = (Y.z - Z.y) * halfRoot;
68
+ this.y = (Z.x - X.z) * halfRoot;
69
+ this.z = (X.y - Y.x) * halfRoot;
70
+ }
71
+ else {
72
+ // |w| <= 1/2
73
+ const axis = [X, Y, Z];
74
+ let i = 0;
75
+ if (Y.y > X.x)
76
+ i = 1;
77
+ if (Z.z > axis[i][i])
78
+ i = 2;
79
+ const j = (i + 1) % 3;
80
+ const k = (i + 2) % 3;
81
+ let fRoot = Math.sqrt(axis[i][i] - axis[j][j] - axis[k][k] + 1.0);
82
+ this[i] = 0.5 * fRoot;
83
+ fRoot = 0.5 / fRoot;
84
+ this[3] = (axis[j][k] - axis[k][j]) * fRoot;
85
+ this[j] = (axis[j][i] + axis[i][j]) * fRoot;
86
+ this[k] = (axis[k][i] + axis[i][k]) * fRoot;
87
+ }
88
+ return this.normalize();
89
+ }
90
+ rotateAroundX(angleInRadians) {
91
+ const rad = angleInRadians * 0.5;
92
+ const ax = this[0];
93
+ const ay = this[1];
94
+ const az = this[2];
95
+ const aw = this[3];
96
+ const bx = Math.sin(rad);
97
+ const bw = Math.cos(rad);
98
+ this[0] = ax * bw + aw * bx;
99
+ this[1] = ay * bw + az * bx;
100
+ this[2] = az * bw - ay * bx;
101
+ this[3] = aw * bw - ax * bx;
102
+ return this;
103
+ }
104
+ rotateAroundY(angleInRadians) {
105
+ const rad = angleInRadians * 0.5;
106
+ const ax = this[0];
107
+ const ay = this[1];
108
+ const az = this[2];
109
+ const aw = this[3];
110
+ const by = Math.sin(rad);
111
+ const bw = Math.cos(rad);
112
+ this[0] = ax * bw - az * by;
113
+ this[1] = ay * bw + aw * by;
114
+ this[2] = az * bw + ax * by;
115
+ this[3] = aw * bw - ay * by;
116
+ return this;
117
+ }
118
+ rotateAroundZ(angleInRadians) {
119
+ const rad = angleInRadians * 0.5;
120
+ const ax = this[0];
121
+ const ay = this[1];
122
+ const az = this[2];
123
+ const aw = this[3];
124
+ const bz = Math.sin(rad);
125
+ const bw = Math.cos(rad);
126
+ this[0] = ax * bw + ay * bz;
127
+ this[1] = ay * bw - ax * bz;
128
+ this[2] = az * bw + aw * bz;
129
+ this[3] = aw * bw - az * bz;
130
+ return this;
131
+ }
132
+ toAxisZ(vec) {
133
+ const { x, y, z, w } = this;
134
+ const x2 = x + x;
135
+ const y2 = y + y;
136
+ const xx = x * x2;
137
+ const yy = y * y2;
138
+ const zx = z * x2;
139
+ const zy = z * y2;
140
+ const wx = w * x2;
141
+ const wy = w * y2;
142
+ vec.x = zx + wy;
143
+ vec.y = zy - wx;
144
+ vec.z = 1 - xx - yy;
145
+ return vec;
146
+ }
147
+ face(face = "+X+Y+Z") {
148
+ const [x, y, z, w] = FACES[face];
149
+ this.x = x;
150
+ this.y = y;
151
+ this.z = z;
152
+ this.w = w;
153
+ return this;
154
+ }
155
+ }
156
+ const A = Math.sqrt(2) / 2;
157
+ const H = 0.5;
158
+ const FACES = {
159
+ "+X+Y+Z": [+0, +0, +0, +1],
160
+ "-Z+Y+X": [+0, +A, +0, +A],
161
+ "-X+Y-Z": [+0, +1, +0, +0],
162
+ "+Z+Y-X": [+0, -A, +0, +A],
163
+ "+X+Z-Y": [+A, +0, +0, +A],
164
+ "+Y+Z+X": [+H, +H, +H, +H],
165
+ "-X+Z+Y": [+0, +A, +A, +0],
166
+ "-Y+Z-X": [+H, -H, -H, +H],
167
+ "+X-Y-Z": [+1, +0, +0, +0],
168
+ "+X-Z+Y": [-A, +0, +0, +A],
169
+ "-X-Y+Z": [+0, +0, +1, +0],
170
+ "-X-Z-Y": [+0, +A, -A, +0],
171
+ "+Y+X-Z": [+A, +A, +0, +0],
172
+ "+Y-X+Z": [+0, +0, +A, +A],
173
+ "+Y-Z-X": [+H, +H, -H, -H],
174
+ "-Y+X+Z": [+0, +0, -A, +A],
175
+ "-Y-X-Z": [+A, -A, +0, +0],
176
+ "-Y-Z+X": [+H, -H, +H, -H],
177
+ "+Z+X+Y": [+H, +H, +H, -H],
178
+ "+Z-X-Y": [+H, -H, +H, +H],
179
+ "+Z-Y+X": [+A, +0, +A, +0],
180
+ "-Z+X-Y": [+H, +H, -H, +H],
181
+ "-Z-X+Y": [+H, -H, -H, -H],
182
+ "-Z-Y-X": [+A, +0, -A, +0],
183
+ };
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRoL3F1YXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUloQyxNQUFNLE9BQU8sT0FBUSxTQUFRLE9BQU87SUFRaEMsWUFDSSxJQUFzQixDQUFDLEVBQ3ZCLElBQVksQ0FBQyxFQUNiLElBQVksQ0FBQyxFQUNiLElBQVksQ0FBQztRQUViLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUTtZQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTs7WUFDdkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxLQUFLO1FBQ0QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWE7UUFDbEIsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQTtRQUM3QixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFBO1FBQzdCLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBQy9DLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBQy9DLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxH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YixNQUFNLEtBQUssR0FBRztJQUNWLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0NBQzdCLENBQUEifQ==
File without changes
File without changes
@@ -0,0 +1,45 @@
1
+ import { TgdQuat, TgdVec3 } from ".//index.js";
2
+ describe("math/quat.ts", () => {
3
+ describe("TgdQuat.fromAxis()", () => {
4
+ const cases = [
5
+ [
6
+ [1, 0, 0],
7
+ [0, 1, 0],
8
+ [0, 0, 1],
9
+ [0, 0, 0, 1],
10
+ ],
11
+ [
12
+ [1, 0, 0],
13
+ [0, 0, -1],
14
+ [0, 1, 0],
15
+ [-0.707106, 0, 0, 0.707106],
16
+ ],
17
+ [
18
+ [1.0, 0.0, 0.0],
19
+ [0.0, -0.504863, -0.863199],
20
+ [0.0, 0.863199, -0.504863],
21
+ [0.867428, 0, 0, -0.497562],
22
+ ],
23
+ ];
24
+ const quat = new TgdQuat(0, 0, 0, 0);
25
+ for (const [X, Y, Z, Q] of cases) {
26
+ it(`should get ${str(Q)} from ${str(X)}, ${str(Y)} and ${str(Z)}`, () => {
27
+ const axisX = new TgdVec3(...X);
28
+ const axisY = new TgdVec3(...Y);
29
+ const axisZ = new TgdVec3(...Z);
30
+ quat.fromAxis(axisX, axisY, axisZ);
31
+ const got = [quat.x, quat.y, quat.z, quat.w];
32
+ const exp = [...Q];
33
+ expect(got[0]).toBeCloseTo(exp[0], 5);
34
+ expect(got[1]).toBeCloseTo(exp[1], 5);
35
+ expect(got[2]).toBeCloseTo(exp[2], 5);
36
+ expect(got[3]).toBeCloseTo(exp[3], 5);
37
+ });
38
+ }
39
+ });
40
+ });
41
+ function str(input) {
42
+ const arr = Array.from(input);
43
+ return `[${arr.map(n => `${n}`).join(", ")}]`;
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhdC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hdGgvcXVhdC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRTVDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzFCLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7UUFDaEMsTUFBTSxLQUFLLEdBT1A7WUFDQTtnQkFDSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNULENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDVCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNmO1lBQ0Q7Z0JBQ0ksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDVCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ1YsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDVCxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDO2FBQzlCO1lBRUQ7Z0JBQ0ksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztnQkFDZixDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFDM0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUMxQixDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQzlCO1NBQ0osQ0FBQTtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3BDLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQy9CLEVBQUUsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FDeEQsQ0FBQyxDQUNKLEVBQUUsRUFBRSxHQUFHLEVBQUU7Z0JBQ04sTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO2dCQUNsQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDNUMsTUFBTSxHQUFHLEdBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO2dCQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtnQkFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO2dCQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUN6QyxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFBO0FBRUYsU0FBUyxHQUFHLENBQUMsS0FBdUI7SUFDaEMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM3QixPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQTtBQUNqRCxDQUFDIn0=
@@ -0,0 +1,27 @@
1
+ import { ArrayNumber16, ArrayNumber3, ArrayNumber4 } from "../types";
2
+ import { TgdMat4 } from "./mat4";
3
+ import { TgdQuat } from "./quat";
4
+ import { TgdVec3 } from "./vec3";
5
+ import { TgdVec4 } from "./vec4";
6
+ export declare class TgdTransfo {
7
+ private readonly _matrix;
8
+ private readonly _position;
9
+ private readonly _orientation;
10
+ private readonly _scale;
11
+ private dirty;
12
+ private _updateCount;
13
+ get updateCount(): number;
14
+ get matrix(): Readonly<TgdMat4>;
15
+ set matrix(value: Readonly<TgdMat4> | ArrayNumber16);
16
+ get position(): Readonly<TgdVec3>;
17
+ set position(value: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>);
18
+ setPosition(x: number, y: number, z: number): this;
19
+ get scale(): Readonly<TgdVec3>;
20
+ set scale(value: Readonly<TgdVec3 | ArrayNumber3>);
21
+ setScale(x: number, y: number, z: number): this;
22
+ get orientation(): Readonly<TgdQuat>;
23
+ set orientation(quat: Readonly<TgdQuat | ArrayNumber4>);
24
+ setOrientation(x: number, y: number, z: number, w: number): void;
25
+ private setDirty;
26
+ }
27
+ //# sourceMappingURL=transfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfo.d.ts","sourceRoot":"","sources":["../../src/math/transfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAKvB;IACD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAE9C,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAI;IAExB,IAAI,WAAW,WAEd;IAED,IAAI,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,CAyB9B;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,aAAa,EAIlD;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAEhC;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,EAG7D;IACD,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlD,IAAI,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,CAE7B;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC,EAGhD;IACD,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAM/C,IAAI,WAAW,IAAI,QAAQ,CAAC,OAAO,CAAC,CAEnC;IACD,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC,EAGrD;IACD,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKzD,OAAO,CAAC,QAAQ;CAInB"}
@@ -0,0 +1,86 @@
1
+ import { TgdMat4 } from "./mat4.js";
2
+ import { TgdQuat } from "./quat.js";
3
+ import { TgdVec3 } from "./vec3.js";
4
+ export class TgdTransfo {
5
+ // prettier-ignore
6
+ _matrix = new TgdMat4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
7
+ _position = new TgdVec3(0, 0, 0);
8
+ _orientation = new TgdQuat(0, 0, 0, 1);
9
+ _scale = new TgdVec3(1, 1, 1);
10
+ dirty = false;
11
+ _updateCount = 0;
12
+ get updateCount() {
13
+ return this._updateCount;
14
+ }
15
+ get matrix() {
16
+ if (this.dirty) {
17
+ const m = this._matrix;
18
+ m.m03 = 0;
19
+ m.m13 = 0;
20
+ m.m23 = 0;
21
+ m.m33 = 1;
22
+ const [tx, ty, tz] = this._position;
23
+ m.m30 = tx;
24
+ m.m31 = ty;
25
+ m.m32 = tz;
26
+ m.fromQuat(this._orientation);
27
+ const [sx, sy, sz] = this._scale;
28
+ m.m00 *= sx;
29
+ m.m01 *= sx;
30
+ m.m03 *= sx;
31
+ m.m10 *= sy;
32
+ m.m11 *= sy;
33
+ m.m13 *= sy;
34
+ m.m20 *= sz;
35
+ m.m21 *= sz;
36
+ m.m23 *= sz;
37
+ this.dirty = false;
38
+ }
39
+ return this._matrix;
40
+ }
41
+ set matrix(value) {
42
+ this._matrix.from(value);
43
+ this._updateCount++;
44
+ this.dirty = false;
45
+ }
46
+ get position() {
47
+ return this._position;
48
+ }
49
+ set position(value) {
50
+ this.setDirty();
51
+ this._position.from(value);
52
+ }
53
+ setPosition(x, y, z) {
54
+ this.setDirty();
55
+ this._position.reset(x, y, z);
56
+ return this;
57
+ }
58
+ get scale() {
59
+ return this._scale;
60
+ }
61
+ set scale(value) {
62
+ this.setDirty();
63
+ this._scale.from(value);
64
+ }
65
+ setScale(x, y, z) {
66
+ this.setDirty();
67
+ this._scale.reset(x, y, z);
68
+ return this;
69
+ }
70
+ get orientation() {
71
+ return this._orientation;
72
+ }
73
+ set orientation(quat) {
74
+ this.setDirty();
75
+ this._orientation.from(quat);
76
+ }
77
+ setOrientation(x, y, z, w) {
78
+ this.setDirty();
79
+ this._orientation.reset(x, y, z, w);
80
+ }
81
+ setDirty() {
82
+ this._updateCount++;
83
+ this.dirty = true;
84
+ }
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRoL3RyYW5zZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFHaEMsTUFBTSxPQUFPLFVBQVU7SUFDbkIsa0JBQWtCO0lBQ0QsT0FBTyxHQUFHLElBQUksT0FBTyxDQUNsQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ1YsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUNWLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDVixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ2IsQ0FBQTtJQUNnQixTQUFTLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNoQyxZQUFZLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdEMsTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFdEMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNiLFlBQVksR0FBRyxDQUFDLENBQUE7SUFFeEIsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBO0lBQzVCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUE7WUFDdEIsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFD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
@@ -0,0 +1,34 @@
1
+ import { ArrayNumber2 } from "..";
2
+ import { TgdVec3 } from "./vec3";
3
+ import { TgdVec4 } from "./vec4";
4
+ export declare class TgdVec2 extends Float32Array {
5
+ static fromMix(v1: TgdVec2 | TgdVec3 | TgdVec4, v2: TgdVec2 | TgdVec3 | TgdVec4, a?: number): TgdVec2;
6
+ static distance(from: TgdVec2 | TgdVec3 | TgdVec4, to: TgdVec2 | TgdVec3 | TgdVec4): number;
7
+ constructor();
8
+ constructor(x: Readonly<TgdVec2 | ArrayNumber2>);
9
+ constructor(x: number);
10
+ constructor(x: number, y: number);
11
+ clone(): TgdVec2;
12
+ isEqual(vec: Readonly<TgdVec2 | ArrayNumber2>): boolean;
13
+ isClose(vec: Readonly<TgdVec2 | ArrayNumber2>, epsilon?: number): boolean;
14
+ from(vec: Readonly<TgdVec2 | TgdVec4 | ArrayNumber2>): this;
15
+ fromMix(a: TgdVec2 | TgdVec3 | TgdVec4, b: TgdVec2 | TgdVec3 | TgdVec4, t: number): this;
16
+ reset(x: number, y: number): this;
17
+ get x(): number;
18
+ set x(value: number);
19
+ get y(): number;
20
+ set y(value: number);
21
+ add(...vectors: (TgdVec2 | TgdVec3 | TgdVec4)[]): this;
22
+ addWithScale(vec: TgdVec2 | TgdVec3 | TgdVec4, scale: number): this;
23
+ subtract(vec: Readonly<TgdVec2 | TgdVec3 | TgdVec4 | ArrayNumber2>): this;
24
+ scale(factor: number): this;
25
+ dot(vec: Readonly<TgdVec2 | TgdVec3 | TgdVec4 | ArrayNumber2>): number;
26
+ get size(): number;
27
+ normalize(): this;
28
+ /**
29
+ * Set random values between -0.5 and +0.5 to each coordinate.
30
+ */
31
+ random(): this;
32
+ debug(caption?: string): void;
33
+ }
34
+ //# sourceMappingURL=vec2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vec2.d.ts","sourceRoot":"","sources":["../../src/math/vec2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,qBAAa,OAAQ,SAAQ,YAAY;IACrC,MAAM,CAAC,OAAO,CACV,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,EAC/B,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,EAC/B,CAAC,SAAM,GACR,OAAO;IAOV,MAAM,CAAC,QAAQ,CACX,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,EACjC,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAChC,MAAM;;gBAOG,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC;gBACnC,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAehC,KAAK;IAIL,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC;IAO7C,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,OAAO,SAAO;IAO7D,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG,IAAI;IAO3D,OAAO,CACH,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,EAC9B,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,EAC9B,CAAC,EAAE,MAAM,GACV,IAAI;IAMP,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAMjC,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,IAAI;IAQtD,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMnE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG,IAAI;IAMzE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3B,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG,MAAM;IAItE,IAAI,IAAI,WAEP;IAED,SAAS,IAAI,IAAI;IAOjB;;OAEG;IACH,MAAM,IAAI,IAAI;IAMd,KAAK,CAAC,OAAO,SAAS;CAUzB"}
@@ -0,0 +1,119 @@
1
+ import { mix } from "../utils/math.js";
2
+ export class TgdVec2 extends Float32Array {
3
+ static fromMix(v1, v2, a = 0.5) {
4
+ const b = 1 - a;
5
+ const x = b * v1.x + a * v2.x;
6
+ const y = b * v1.y + a * v2.y;
7
+ return new TgdVec2(x, y);
8
+ }
9
+ static distance(from, to) {
10
+ const x = to.x - from.x;
11
+ const y = to.y - from.y;
12
+ return Math.sqrt(x * x + y * y);
13
+ }
14
+ constructor(x = 0, y = 0) {
15
+ super(2);
16
+ if (typeof x !== "number") {
17
+ this.x = x[0];
18
+ this.y = x[1];
19
+ return;
20
+ }
21
+ this.x = x;
22
+ this.y = y;
23
+ }
24
+ clone() {
25
+ return new TgdVec2(this);
26
+ }
27
+ isEqual(vec) {
28
+ const [x, y] = vec;
29
+ if (x !== this.x)
30
+ return false;
31
+ if (y !== this.y)
32
+ return false;
33
+ return true;
34
+ }
35
+ isClose(vec, epsilon = 1e-6) {
36
+ const [x, y] = vec;
37
+ if (Math.abs(x - this.x) > epsilon)
38
+ return false;
39
+ if (Math.abs(y - this.y) > epsilon)
40
+ return false;
41
+ return true;
42
+ }
43
+ from(vec) {
44
+ const [x, y] = vec;
45
+ this.x = x;
46
+ this.y = y;
47
+ return this;
48
+ }
49
+ fromMix(a, b, t) {
50
+ const [ax, ay] = a;
51
+ const [bx, by] = b;
52
+ return this.reset(mix(ax, bx, t), mix(ay, by, t));
53
+ }
54
+ reset(x, y) {
55
+ this[0] = x;
56
+ this[1] = y;
57
+ return this;
58
+ }
59
+ get x() {
60
+ return this[0];
61
+ }
62
+ set x(value) {
63
+ this[0] = value;
64
+ }
65
+ get y() {
66
+ return this[1];
67
+ }
68
+ set y(value) {
69
+ this[1] = value;
70
+ }
71
+ add(...vectors) {
72
+ for (const vec of vectors) {
73
+ this[0] += vec.x;
74
+ this[1] += vec.y;
75
+ }
76
+ return this;
77
+ }
78
+ addWithScale(vec, scale) {
79
+ this[0] += vec.x * scale;
80
+ this[1] += vec.y * scale;
81
+ return this;
82
+ }
83
+ subtract(vec) {
84
+ this[0] -= vec[0];
85
+ this[1] -= vec[1];
86
+ return this;
87
+ }
88
+ scale(factor) {
89
+ this[0] *= factor;
90
+ this[1] *= factor;
91
+ return this;
92
+ }
93
+ dot(vec) {
94
+ return this[0] * vec[0] + this[1] * vec[1];
95
+ }
96
+ get size() {
97
+ return Math.sqrt(this[0] * this[0] + this[1] * this[1]);
98
+ }
99
+ normalize() {
100
+ const squareLength = this[0] * this[0] + this[1] * this[1];
101
+ if (squareLength === 0)
102
+ return this;
103
+ return this.scale(1 / Math.sqrt(squareLength));
104
+ }
105
+ /**
106
+ * Set random values between -0.5 and +0.5 to each coordinate.
107
+ */
108
+ random() {
109
+ this[0] = Math.random() - 0.5;
110
+ this[1] = Math.random() - 0.5;
111
+ return this;
112
+ }
113
+ debug(caption = "vec2") {
114
+ const { x, y } = this;
115
+ const out = [x, y].map(n => n.toFixed(6));
116
+ console.log(`${caption}: `, out.join(" | "), " length:", Math.sqrt(x * x + y * y));
117
+ }
118
+ }
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRoL3ZlYzIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUluQyxNQUFNLE9BQU8sT0FBUSxTQUFRLFlBQVk7SUFDckMsTUFBTSxDQUFDLE9BQU8sQ0FDVixFQUErQixFQUMvQixFQUErQixFQUMvQixDQUFDLEdBQUcsR0FBRztRQUVQLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDZixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM3QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM3QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FDWCxJQUFpQyxFQUNqQyxFQUErQjtRQUUvQixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDdkIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBTUQsWUFDSSxJQUErQyxDQUFDLEVBQ2hELElBQVksQ0FBQztRQUViLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNSLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMs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
@@ -1,34 +1,45 @@
1
+ import { ArrayNumber3 } from "..";
1
2
  import { TgdMat3 } from "./mat3";
2
3
  import { TgdMat4 } from "./mat4";
3
- type Arr3 = TgdVec3 | [x: number, y: number, z: number];
4
+ import { TgdVec4 } from "./vec4";
4
5
  export declare class TgdVec3 extends Float32Array {
6
+ static newFromMix(v1: TgdVec3 | TgdVec4, v2: TgdVec3 | TgdVec4, a?: number): TgdVec3;
7
+ static distance(from: TgdVec3 | TgdVec4, to: TgdVec3 | TgdVec4): number;
5
8
  constructor();
6
- constructor(x: Arr3);
9
+ constructor(x: Readonly<TgdVec3 | ArrayNumber3>);
7
10
  constructor(x: number);
8
11
  constructor(x: number, y: number);
9
12
  constructor(x: number, y: number, z: number);
10
13
  clone(): TgdVec3;
11
- isEqual([x, y, z]: Arr3): boolean;
12
- isClose([x, y, z]: Arr3, epsilon?: number): boolean;
13
- rotateAround(axis: Arr3, angleInRadians: number): this;
14
- applyMatrix(mat: TgdMat3 | TgdMat4): this;
15
- from([x, y, z]: Arr3): this;
14
+ isEqual(vec: Readonly<TgdVec3 | ArrayNumber3>): boolean;
15
+ isClose(vec: Readonly<TgdVec3 | ArrayNumber3>, epsilon?: number): boolean;
16
+ rotateAround(axis: Readonly<TgdVec3 | ArrayNumber3>, angleInRadians: number): this;
17
+ /**
18
+ * V := M×V
19
+ */
20
+ applyMatrix(mat: Readonly<TgdMat3 | TgdMat4>): this;
21
+ from(vec: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>): this;
22
+ fromMix(a: TgdVec3 | TgdVec4, b: TgdVec3 | TgdVec4, t: number): this;
23
+ reset(x: number, y: number, z: number): this;
24
+ distanceToLineSquared(origin: TgdVec3, normalizedDirection: TgdVec3): number;
16
25
  get x(): number;
17
26
  set x(value: number);
18
27
  get y(): number;
19
28
  set y(value: number);
20
29
  get z(): number;
21
30
  set z(value: number);
22
- add(...vectors: Arr3[]): this;
23
- addWithScale([x, y, z]: Arr3, scale?: number): this;
24
- subtract(vec: Arr3): this;
31
+ add(...vectors: (TgdVec3 | TgdVec4)[]): this;
32
+ addWithScale(vec: TgdVec3 | TgdVec4, scale: number): this;
33
+ subtract(vec: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>): this;
25
34
  scale(factor: number): this;
26
- dot(vec: Arr3): number;
35
+ dot(vec: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>): number;
27
36
  get size(): number;
28
37
  normalize(): this;
29
- cross([x2, y2, z2]: Arr3): void;
38
+ cross(vec: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>): this;
39
+ /**
40
+ * Set random values between -0.5 and +0.5 to each coordinate.
41
+ */
30
42
  random(): this;
31
43
  debug(caption?: string): void;
32
44
  }
33
- export {};
34
45
  //# sourceMappingURL=vec3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vec3.d.ts","sourceRoot":"","sources":["../../src/math/vec3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAGhC,KAAK,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;AACvD,qBAAa,OAAQ,SAAQ,YAAY;;gBAEzB,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;gBACpB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAc3C,KAAK;IAIL,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI;IAOvB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,SAAO;IAOvC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM;IAoB/C,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAQzC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI;IAO3B,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,GAAG,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI;IAS7B,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,SAAI,GAAG,IAAI;IAO9C,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI;IAOzB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO3B,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM;IAItB,IAAI,IAAI,WAIP;IAED,SAAS,IAAI,IAAI;IAQjB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI;IAUxB,MAAM,IAAI,IAAI;IAOd,KAAK,CAAC,OAAO,SAAS;CAUzB"}
1
+ {"version":3,"file":"vec3.d.ts","sourceRoot":"","sources":["../../src/math/vec3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,qBAAa,OAAQ,SAAQ,YAAY;IACrC,MAAM,CAAC,UAAU,CACb,EAAE,EAAE,OAAO,GAAG,OAAO,EACrB,EAAE,EAAE,OAAO,GAAG,OAAO,EACrB,CAAC,SAAM,GACR,OAAO;IAQV,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM;;gBAQ3D,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC;gBACnC,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;gBACpB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAkB3C,KAAK;IAIL,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC;IAQ7C,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,OAAO,SAAO;IAQ7D,YAAY,CACR,IAAI,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC,EACtC,cAAc,EAAE,MAAM;IAkB1B;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI;IAQnD,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG,IAAI;IAQ3D,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAMpE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAO5C,qBAAqB,CACjB,MAAM,EAAE,OAAO,EACf,mBAAmB,EAAE,OAAO,GAC7B,MAAM;IAcT,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,IAAI;IAS5C,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOzD,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG,IAAI;IAO/D,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO3B,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG,MAAM;IAI5D,IAAI,IAAI,WAIP;IAED,SAAS,IAAI,IAAI;IAQjB,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG,IAAI;IAS5D;;OAEG;IACH,MAAM,IAAI,IAAI;IAOd,KAAK,CAAC,OAAO,SAAS;CAUzB"}