@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,186 @@
1
+ import { tgdEasingFunctionOutQuad } from "./../../utils/index.js";
2
+ import { clamp } from "./../../utils/math.js";
3
+ import { TgdEvent } from "./../../event/index.js";
4
+ export class TgdControllerCameraOrbit {
5
+ context;
6
+ eventChange = new TgdEvent();
7
+ minZoom = 1e-3;
8
+ maxZoom = Infinity;
9
+ /**
10
+ * The camera will only move if `enabled === true`.
11
+ */
12
+ enabled = true;
13
+ speedZoom = 1;
14
+ speedOrbit = 1;
15
+ speedPanning = 1;
16
+ inertiaZoom = 0;
17
+ inertiaOrbit = 0;
18
+ inertiaPanning = 0;
19
+ /**
20
+ * If `true`, pannig will only act on `camera.shift`,
21
+ * not on `camera.target`.
22
+ */
23
+ fixedTarget = false;
24
+ /**
25
+ * Zooming can be done by the mouse wheel.
26
+ * In this case, we may want to prevent it when the
27
+ * canvas is not in fullscreen, to let the rest of
28
+ * the page to scroll.
29
+ *
30
+ * This function, if defined, will be called just
31
+ * before the zoom event. If it returns `false`,
32
+ * the event is not dispatched.
33
+ */
34
+ onZoomRequest;
35
+ animOrbit = null;
36
+ constructor(context, { minZoom = 1e-3, maxZoom = Infinity, speedZoom = 1, speedOrbit = 1, speedPanning = 1, inertiaZoom = 0, inertiaOrbit = 0, inertiaPanning = 0, fixedTarget = false, onZoomRequest = alwaysTrue, } = {}) {
37
+ this.context = context;
38
+ const { inputs } = context;
39
+ inputs.pointer.eventMoveStart.addListener(this.handleMoveStart);
40
+ inputs.pointer.eventMoveEnd.addListener(this.handleMoveEnd);
41
+ inputs.pointer.eventMove.addListener(this.handleMove);
42
+ inputs.pointer.eventZoom.addListener(this.handleZoom);
43
+ this.speedOrbit = speedOrbit;
44
+ this.speedZoom = speedZoom;
45
+ this.speedPanning = speedPanning;
46
+ this.inertiaOrbit = inertiaOrbit;
47
+ this.inertiaZoom = inertiaZoom;
48
+ this.inertiaPanning = inertiaPanning;
49
+ this.fixedTarget = fixedTarget;
50
+ this.minZoom = minZoom;
51
+ this.maxZoom = maxZoom;
52
+ this.onZoomRequest = onZoomRequest;
53
+ }
54
+ detach() {
55
+ const { inputs } = this.context;
56
+ inputs.pointer.eventMove.removeListener(this.handleMove);
57
+ inputs.pointer.eventZoom.removeListener(this.handleZoom);
58
+ }
59
+ handleMove = (evt) => {
60
+ if (!this.enabled)
61
+ return;
62
+ const dt = evt.current.t - evt.previous.t;
63
+ if (dt <= 0)
64
+ return;
65
+ const { context } = this;
66
+ const { keyboard } = context.inputs;
67
+ if (evt.altKey || evt.current.fingersCount === 2)
68
+ return this.handlePan(evt);
69
+ if (keyboard.isDown("z"))
70
+ return this.handleRotateAroundZ(evt);
71
+ this.orbit(evt.current.x - evt.previous.x, evt.current.y - evt.previous.y, evt.shiftKey);
72
+ };
73
+ orbit(deltaX, deltaY, slowDown) {
74
+ const { context } = this;
75
+ const { camera } = context;
76
+ const { keyboard } = context.inputs;
77
+ const speed = 3 * (slowDown ? 0.1 : 1) * this.speedOrbit;
78
+ const dx = deltaX * speed;
79
+ const dy = deltaY * speed;
80
+ if (!keyboard.isDown("x"))
81
+ camera.orbitAroundY(-dx);
82
+ if (!keyboard.isDown("y"))
83
+ camera.orbitAroundX(dy);
84
+ this.fireOrbitChange();
85
+ }
86
+ handleMoveStart = () => {
87
+ if (!this.enabled)
88
+ return;
89
+ const { animOrbit, context } = this;
90
+ if (animOrbit)
91
+ context.animCancel(animOrbit);
92
+ };
93
+ handleMoveEnd = (evt) => {
94
+ if (!this.enabled)
95
+ return;
96
+ const { context, inertiaOrbit } = this;
97
+ if (inertiaOrbit > 0) {
98
+ const inverseDeltaTime = inertiaOrbit / (evt.current.t - evt.previous.t);
99
+ const slowDown = evt.shiftKey;
100
+ const dx = inverseDeltaTime * (evt.current.x - evt.previous.x);
101
+ const dy = inverseDeltaTime * (evt.current.y - evt.previous.y);
102
+ let previousAlpha = 0;
103
+ this.animOrbit = {
104
+ duration: inertiaOrbit,
105
+ action: alpha => {
106
+ const t = alpha - previousAlpha;
107
+ previousAlpha = alpha;
108
+ this.orbit(dx * t, dy * t, slowDown);
109
+ },
110
+ easingFunction: tgdEasingFunctionOutQuad,
111
+ };
112
+ context.animSchedule(this.animOrbit);
113
+ }
114
+ };
115
+ handlePan(evt) {
116
+ const { fixedTarget, speedPanning, context } = this;
117
+ const { camera } = context;
118
+ const inverseZoom = 1 / camera.zoom;
119
+ const panSpeed = 0.5 * speedPanning * inverseZoom;
120
+ const dx = (evt.current.x - evt.previous.x) *
121
+ panSpeed *
122
+ camera.spaceWidthAtTarget;
123
+ const dy = (evt.current.y - evt.previous.y) *
124
+ panSpeed *
125
+ camera.spaceHeightAtTarget;
126
+ if (fixedTarget) {
127
+ camera.moveShift(-dx, -dy, 0);
128
+ }
129
+ else {
130
+ camera.moveTarget(-dx, -dy, 0);
131
+ }
132
+ this.fireOrbitChange();
133
+ return;
134
+ }
135
+ handleRotateAroundZ(evt) {
136
+ const { camera } = this.context;
137
+ const x1 = evt.previous.x;
138
+ const y1 = evt.previous.y;
139
+ if (Math.abs(x1) + Math.abs(y1) === 0)
140
+ return;
141
+ const x2 = evt.current.x;
142
+ const y2 = evt.current.y;
143
+ if (Math.abs(x2) + Math.abs(y2) === 0)
144
+ return;
145
+ const x = x1 * x2 + y1 * y2;
146
+ const y = x1 * y2 - y1 * x2;
147
+ const ang = Math.atan2(y, x) * this.speedOrbit;
148
+ camera.orbitAroundZ(-ang);
149
+ this.fireOrbitChange();
150
+ return;
151
+ }
152
+ fireOrbitChange() {
153
+ this.context.paint();
154
+ this.eventChange.dispatch(this.context.camera);
155
+ }
156
+ handleZoom = (evt) => {
157
+ if (!this.enabled ||
158
+ this.speedZoom === 0 ||
159
+ !this.onZoomRequest({
160
+ altKey: evt.altKey,
161
+ ctrlKey: evt.ctrlKey,
162
+ metaKey: evt.metaKey,
163
+ shiftKey: evt.shiftKey,
164
+ x: evt.current.x,
165
+ y: evt.current.y,
166
+ }))
167
+ return;
168
+ const { context } = this;
169
+ const { camera } = context;
170
+ let speed = 0.1 * this.speedZoom;
171
+ if (this.context.inputs.keyboard.isDown("Shift"))
172
+ speed *= 0.1;
173
+ const dz = -evt.direction * speed;
174
+ camera.zoom = clamp(camera.zoom * (1 + dz), this.minZoom, this.maxZoom);
175
+ evt.preventDefault();
176
+ this.fireZoomChange();
177
+ };
178
+ fireZoomChange() {
179
+ this.context.paint();
180
+ }
181
+ }
182
+ /**
183
+ * Default function for `onZoomRequest`.
184
+ */
185
+ const alwaysTrue = () => true;
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJvbGxlci9jYW1lcmEvb3JiaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQU92QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBc0RyQyxNQUFNLE9BQU8sd0JBQXdCO0lBcUNaO0lBcENMLFdBQVcsR0FBRyxJQUFJLFFBQVEsRUFBYSxDQUFBO0lBQ2hELE9BQU8sR0FBRyxJQUFJLENBQUE7SUFDZCxPQUFPLEdBQUcsUUFBUSxDQUFBO0lBQ3pCOztPQUVHO0lBQ0ksT0FBTyxHQUFHLElBQUksQ0FBQTtJQUNkLFNBQVMsR0FBRyxDQUFDLENBQUE7SUFDYixVQUFVLEdBQUcsQ0FBQyxDQUFBO0lBQ2QsWUFBWSxHQUFHLENBQUMsQ0FBQTtJQUNoQixXQUFXLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsWUFBWSxHQUFHLENBQUMsQ0FBQTtJQUNoQixjQUFjLEdBQUcsQ0FBQyxDQUFBO0lBQ3pCOzs7T0FHRztJQUNJLFdBQVcsR0FBRyxLQUFLLENBQUE7SUFDMUI7Ozs7Ozs7OztPQVNHO0lBQ0ksYUFBYSxDQUdSO0lBRUosU0FBUyxHQUF3QixJQUFJLENBQUE7SUFFN0MsWUFDcUIsT0FBNEIsRUFDN0MsRUFDSSxPQUFPLEdBQUcsSUFBSSxFQUNkLE9BQU8sR0FBRyxRQUFRLEVBQ2xCLFNBQVMsR0FBRyxDQUFDLEVBQ2IsVUFBVSxHQUFHLENBQUMsRUFDZCxZQUFZLEdBQUcsQ0FBQyxFQUNoQixXQUFXLEdBQUcsQ0FBQyxFQUNmLFlBQVksR0FBRyxDQUFDLEVBQ2hCLGNBQWMsR0FBRyxDQUFDLEVBQ2xCLFdBQVcsR0FBRyxLQUFLLEVBQ25CLGFBQWEsR0FBRyxVQUFVLE1BQ2dCLEVBQUU7UUFaL0Is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
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export * from "./camera/index.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQSJ9
@@ -6,18 +6,86 @@ export interface TgdDatasetOptions {
6
6
  target: TgdBufferOptionTarget;
7
7
  usage: TgdBufferOptionUsage;
8
8
  }
9
- export declare class TgdDataset<T extends Record<string, TgdDatasetType>> {
10
- private readonly stride;
11
- private readonly dataPerAttribute;
12
- private readonly definitions;
13
- private data;
14
- count: number;
9
+ export type TgdDatasetTypeRecord = Record<string, TgdDatasetType>;
10
+ export declare class TgdDataset {
11
+ private readonly attributesDefinition;
12
+ private readonly options;
13
+ private stride;
14
+ private definitions;
15
+ private _data;
16
+ private _count;
15
17
  target: TgdBufferOptionTarget;
16
18
  usage: TgdBufferOptionUsage;
17
- constructor(attributesDefinition: T, options?: Partial<TgdDatasetOptions>);
18
- set(attribName: keyof T, value: ArrayBuffer): void;
19
- get(attribName: keyof T): ArrayBuffer;
20
- get dataView(): DataView;
19
+ constructor(attributesDefinition: TgdDatasetTypeRecord, options?: Partial<TgdDatasetOptions>);
20
+ private initialize;
21
+ addAttributes(attributesDefinition: TgdDatasetTypeRecord): void;
22
+ clone(): TgdDataset;
23
+ /**
24
+ * Warning!
25
+ *
26
+ * This ArrayBuffer will be detached as soon as its
27
+ * size is changed!
28
+ */
29
+ get data(): Readonly<ArrayBuffer>;
30
+ /** Get number of attributes. */
31
+ get count(): number;
32
+ /** Set number of attributes (reallocate data accordingly) */
33
+ set count(count: number);
34
+ get attributesNames(): string[];
35
+ getAttribAccessor(attribName: string): {
36
+ get: (index: number, dimension?: number) => number;
37
+ set: (value: number, index: number, dimension?: number) => void;
38
+ };
39
+ /**
40
+ * Set the data for one attribute.
41
+ *
42
+ * If you try to set more element that the current buffer
43
+ * can hold, the buffer will be expanded.
44
+ * And the property `count` will change accordingly.
45
+ *
46
+ * @param attribName If the attribute does not exist,
47
+ * you will get an exception.
48
+ * @param value The ArrayBuffer holding the data you
49
+ * want to set to this attribute
50
+ * @param param2
51
+ */
52
+ set(attribName: string, value: ArrayBuffer | Float32Array | {
53
+ buffer: ArrayBuffer;
54
+ }, { byteOffset, byteStride, first, count, targetFirst, }?: Partial<{
55
+ /**
56
+ * First byte of meaningful data in this buffer.
57
+ */
58
+ byteOffset: number;
59
+ /**
60
+ * Number of bytes between two elements.
61
+ * If data is packed, you can leave it undefined.
62
+ */
63
+ byteStride: number;
64
+ /**
65
+ * Index if the first source element.
66
+ * Default to 0.
67
+ */
68
+ first: number;
69
+ /**
70
+ * Maximum number of elements to store.
71
+ * Default to Infinity.
72
+ */
73
+ count: number;
74
+ /**
75
+ * Index if the first destination element.
76
+ * Default to 0.
77
+ */
78
+ targetFirst: number;
79
+ }>): void;
80
+ private getDef;
81
+ /**
82
+ * Enable the vertex attrib array, and set
83
+ * the vertex attrib pointer for every declared
84
+ * attribute.
85
+ */
21
86
  defineAttributes(gl: WebGL2RenderingContext, prg: TgdProgram): void;
87
+ toCode({ indent }?: Partial<{
88
+ indent: string;
89
+ }>): string;
22
90
  }
23
91
  //# sourceMappingURL=dataset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/dataset/dataset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAe;AACpC,OAAO,EACH,qBAAqB,EACrB,oBAAoB,EAEvB,kBAAgB;AAEjB,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE/D,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,qBAAqB,CAAA;IAC7B,KAAK,EAAE,oBAAoB,CAAA;CAC9B;AAED,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAG3B;IACD,OAAO,CAAC,IAAI,CAAwB;IAE7B,KAAK,SAAI;IACT,MAAM,EAAE,qBAAqB,CAAA;IAC7B,KAAK,EAAE,oBAAoB,CAAA;gBAG9B,oBAAoB,EAAE,CAAC,EACvB,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAqC5C,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW;IAe3C,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,WAAW;IAIrC,IAAI,QAAQ,IAAI,QAAQ,CA2BvB;IAOD,gBAAgB,CAAC,EAAE,EAAE,sBAAsB,EAAE,GAAG,EAAE,UAAU;CAoB/D"}
1
+ {"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/dataset/dataset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEzE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE/D,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,qBAAqB,CAAA;IAC7B,KAAK,EAAE,oBAAoB,CAAA;CAC9B;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAEjE,qBAAa,UAAU;IAUf,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV5B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAAsD;IACzE,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAI;IAEX,MAAM,EAAE,qBAAqB,CAAA;IAC7B,KAAK,EAAE,oBAAoB,CAAA;gBAGb,oBAAoB,EAAE,oBAAoB,EAC1C,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAO7D,OAAO,CAAC,UAAU;IAgClB,aAAa,CAAC,oBAAoB,EAAE,oBAAoB;IAiCxD,KAAK,IAAI,UAAU;IAWnB;;;;;OAKG;IACH,IAAI,IAAI,IAAI,QAAQ,CAAC,WAAW,CAAC,CAEhC;IAED,gCAAgC;IAChC,IAAI,KAAK,IAIQ,MAAM,CAFtB;IACD,6DAA6D;IAC7D,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAKtB;IAED,IAAI,eAAe,IAAI,MAAM,EAAE,CAE9B;IAED,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG;QACnC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;QAClD,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAClE;IAsBD;;;;;;;;;;;;OAYG;IACH,GAAG,CACC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,GAAG,YAAY,GAAG;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,EAC3D,EACI,UAAc,EACd,UAAU,EACV,KAAS,EACT,KAAgB,EAChB,WAAe,GAClB,GAAE,OAAO,CAAC;QACP;;WAEG;QACH,UAAU,EAAE,MAAM,CAAA;QAClB;;;WAGG;QACH,UAAU,EAAE,MAAM,CAAA;QAClB;;;WAGG;QACH,KAAK,EAAE,MAAM,CAAA;QACb;;;WAGG;QACH,KAAK,EAAE,MAAM,CAAA;QACb;;;WAGG;QACH,WAAW,EAAE,MAAM,CAAA;KACtB,CAAM;IAoCX,OAAO,CAAC,MAAM;IAed;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,EAAE,sBAAsB,EAAE,GAAG,EAAE,UAAU;IAuB5D,MAAM,CAAC,EAAE,MAAW,EAAE,GAAE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAM;CAyB3D"}
@@ -0,0 +1,217 @@
1
+ export class TgdDataset {
2
+ attributesDefinition;
3
+ options;
4
+ stride = 0;
5
+ definitions = {};
6
+ _data = new ArrayBuffer(0);
7
+ _count = 0;
8
+ target;
9
+ usage;
10
+ constructor(attributesDefinition, options = {}) {
11
+ this.attributesDefinition = attributesDefinition;
12
+ this.options = options;
13
+ this.target = options.target ?? "ARRAY_BUFFER";
14
+ this.usage = options.usage ?? "STATIC_DRAW";
15
+ this.initialize(attributesDefinition, options);
16
+ }
17
+ initialize(attributesDefinition, options = {}) {
18
+ const divisor = options.divisor ?? 0;
19
+ let stride = 0;
20
+ const data = {};
21
+ const definitions = {};
22
+ for (const name of Object.keys(attributesDefinition)) {
23
+ data[name] = new ArrayBuffer(0);
24
+ const def = {
25
+ dimension: DIMS[attributesDefinition[name]],
26
+ byteOffset: stride,
27
+ bytesPerElement: Float32Array.BYTES_PER_ELEMENT,
28
+ divisor,
29
+ getter(view, byteOffset) {
30
+ if (byteOffset >= view.byteLength) {
31
+ byteOffset %= view.byteLength;
32
+ }
33
+ return view.getFloat32(byteOffset, true);
34
+ },
35
+ setter(view, byteOffset, value) {
36
+ view.setFloat32(byteOffset, value, true);
37
+ },
38
+ };
39
+ definitions[name] = def;
40
+ stride += def.bytesPerElement * def.dimension;
41
+ }
42
+ this.definitions = definitions;
43
+ this.stride = stride;
44
+ }
45
+ addAttributes(attributesDefinition) {
46
+ const oldDataset = this.clone();
47
+ for (const key of Object.keys(attributesDefinition)) {
48
+ const oldType = this.attributesDefinition[key];
49
+ const newType = attributesDefinition[key];
50
+ if (oldType && oldType !== newType) {
51
+ throw Error(`It is not allowed to change the type of attribute "${key}" from "${oldType}" to "${newType}"! Prefer removing the attribute first.`);
52
+ }
53
+ }
54
+ this.initialize({
55
+ ...this.attributesDefinition,
56
+ ...attributesDefinition,
57
+ }, this.options);
58
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
59
+ const newDataset = this;
60
+ newDataset.count = oldDataset.count;
61
+ for (const attribName of oldDataset.attributesNames) {
62
+ const { get } = oldDataset.getAttribAccessor(attribName);
63
+ const { set } = newDataset.getAttribAccessor(attribName);
64
+ for (let idx = 0; idx < oldDataset.count; idx++) {
65
+ const def = this.getDef(attribName);
66
+ for (let dim = 0; dim < def.dimension; dim++) {
67
+ set(get(idx, dim), idx, dim);
68
+ }
69
+ }
70
+ }
71
+ }
72
+ clone() {
73
+ const ds = new TgdDataset(this.attributesDefinition, this.options);
74
+ ds.count = this.count;
75
+ const src = new DataView(this._data);
76
+ const dst = new DataView(ds._data);
77
+ for (let offset = 0; offset < src.byteLength; offset++) {
78
+ dst.setUint8(offset, src.getUint8(offset));
79
+ }
80
+ return ds;
81
+ }
82
+ /**
83
+ * Warning!
84
+ *
85
+ * This ArrayBuffer will be detached as soon as its
86
+ * size is changed!
87
+ */
88
+ get data() {
89
+ return this._data;
90
+ }
91
+ /** Get number of attributes. */
92
+ get count() {
93
+ return this._count;
94
+ }
95
+ /** Set number of attributes (reallocate data accordingly) */
96
+ set count(count) {
97
+ if (this._count === count)
98
+ return;
99
+ this._count = count;
100
+ this._data = resize(this._data, count * this.stride);
101
+ }
102
+ get attributesNames() {
103
+ return Object.keys(this.attributesDefinition);
104
+ }
105
+ getAttribAccessor(attribName) {
106
+ const def = this.getDef(attribName);
107
+ const view = new DataView(this.data);
108
+ const stride = this.stride;
109
+ return {
110
+ get(index, dimension = 0) {
111
+ const byteOffset = def.byteOffset +
112
+ stride * index +
113
+ dimension * def.bytesPerElement;
114
+ return def.getter(view, byteOffset);
115
+ },
116
+ set(value, index, dimension = 0) {
117
+ const byteOffset = def.byteOffset +
118
+ stride * index +
119
+ dimension * def.bytesPerElement;
120
+ def.setter(view, byteOffset, value);
121
+ },
122
+ };
123
+ }
124
+ /**
125
+ * Set the data for one attribute.
126
+ *
127
+ * If you try to set more element that the current buffer
128
+ * can hold, the buffer will be expanded.
129
+ * And the property `count` will change accordingly.
130
+ *
131
+ * @param attribName If the attribute does not exist,
132
+ * you will get an exception.
133
+ * @param value The ArrayBuffer holding the data you
134
+ * want to set to this attribute
135
+ * @param param2
136
+ */
137
+ set(attribName, value, { byteOffset = 0, byteStride, first = 0, count = Infinity, targetFirst = 0, } = {}) {
138
+ const { bytesPerElement, dimension, byteOffset: attribByteOffset, } = this.getDef(attribName);
139
+ const buffer = value instanceof ArrayBuffer ? value : value.buffer;
140
+ const chunkLength = bytesPerElement * dimension;
141
+ const srcStride = byteStride ?? chunkLength;
142
+ let srcOffset = byteOffset + srcStride * first;
143
+ const dstStride = this.stride;
144
+ let dstOffset = targetFirst * dstStride + attribByteOffset;
145
+ this.count = Math.max(this.count, Math.min(count, Math.floor((buffer.byteLength - srcOffset) / srcStride)));
146
+ const srcStop = buffer.byteLength - srcStride + 1;
147
+ const dstStop = this._data.byteLength + attribByteOffset - dstStride + 1;
148
+ const srcBuffer = new Uint8Array(buffer);
149
+ const dstBuffer = new Uint8Array(this._data);
150
+ let index = 0;
151
+ while (index < count && srcOffset < srcStop && dstOffset < dstStop) {
152
+ dstBuffer.set(srcBuffer.subarray(srcOffset, srcOffset + chunkLength), dstOffset);
153
+ index++;
154
+ srcOffset += srcStride;
155
+ dstOffset += dstStride;
156
+ }
157
+ }
158
+ getDef(attribName) {
159
+ const def = this.definitions[attribName];
160
+ if (!def)
161
+ throw Error(`[TgdDataset] Attribute "${String(attribName)}" not found in this DataSet!\nAvailable names are: ${Object.keys(this.definitions)
162
+ .map(name => JSON.stringify(name))
163
+ .join(", ")}.`);
164
+ return def;
165
+ }
166
+ /**
167
+ * Enable the vertex attrib array, and set
168
+ * the vertex attrib pointer for every declared
169
+ * attribute.
170
+ */
171
+ defineAttributes(gl, prg) {
172
+ let offsetDestination = 0;
173
+ const { definitions } = this;
174
+ for (const name of Object.keys(definitions)) {
175
+ const def = definitions[name];
176
+ if (prg.hasAttribute(name)) {
177
+ const att = prg.getAttribLocation(name);
178
+ gl.enableVertexAttribArray(att);
179
+ gl.vertexAttribPointer(att, def.dimension, gl.FLOAT, false, this.stride, offsetDestination);
180
+ gl.vertexAttribDivisor(att, def.divisor);
181
+ }
182
+ const bytes = def.dimension * def.bytesPerElement;
183
+ offsetDestination += bytes;
184
+ }
185
+ }
186
+ toCode({ indent = "" } = {}) {
187
+ const lines = [];
188
+ let offsetDestination = 0;
189
+ const { definitions } = this;
190
+ for (const name of Object.keys(definitions)) {
191
+ const def = definitions[name];
192
+ const att = `$${name}`;
193
+ lines.push(`const ${att} = gl.getAttribLocation(prg, "${name}")`, `gl.enableVertexAttribArray(${att})`, `gl.vertexAttribPointer(`, ` ${att},`, ` ${def.dimension}, // Dimension`, ` gl.FLOAT,`, ` false,`, ` ${this.stride}, // Stride`, ` ${offsetDestination} // Offset`, `)`, `gl.vertexAttribDivisor(${att}, ${def.divisor})`);
194
+ const bytes = def.dimension * def.bytesPerElement;
195
+ offsetDestination += bytes;
196
+ }
197
+ return lines.map(line => `${indent}${line}`).join("\n");
198
+ }
199
+ }
200
+ const DIMS = {
201
+ float: 1,
202
+ vec2: 2,
203
+ vec3: 3,
204
+ vec4: 4,
205
+ };
206
+ function resizeFast(buff, newSize) {
207
+ return buff.transfer(newSize);
208
+ }
209
+ function resizeSlow(inBuff, newSize) {
210
+ const outBuff = new ArrayBuffer(newSize ?? inBuff.byteLength);
211
+ new Uint8Array(outBuff).set(new Uint8Array(inBuff));
212
+ return outBuff;
213
+ }
214
+ const resize = typeof ArrayBuffer.prototype.transfer === "function"
215
+ ? resizeFast
216
+ : resizeSlow;
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhc2V0L2RhdGFzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxPQUFPLFVBQVU7SUFVRTtJQUNBO0lBVmIsTUFBTSxHQUFXLENBQUMsQ0FBQTtJQUNsQixXQUFXLEdBQW9ELEVBQUUsQ0FBQTtJQUNqRSxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDMUIsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUVYLE1BQU0sQ0FBdUI7SUFDN0IsS0FBSyxDQUFzQjtJQUVsQyxZQUNxQixvQkFBMEMsRUFDMUMsVUFBc0MsRUFBRTtRQUR4Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLFlBQU8sR0FBUCxPQUFPLENBQWlDO1FBRXpELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxjQUFjLENBQUE7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQTtRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFTyxVQUFVLENBQ2Qsb0JBQTBDLEVBQzFDLFVBQXNDLEVBQUU7UUFFeEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUE7UUFDcEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ2QsTUFBTSxJQUFJLEdBQW1DLEVBQUUsQ0FBQTtRQUMvQyxNQUFNLFdBQVcsR0FBb0QsRUFBRSxDQUFBO1FBQ3ZFLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQy9CLE1BQU0sR0FB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
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export * from "./dataset.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YXNldC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFdBQVcsQ0FBQSJ9
File without changes
File without changes
@@ -0,0 +1,13 @@
1
+ export function padColOfNumbers(values, decimals = 6) {
2
+ const p = Math.pow(10, decimals);
3
+ const out = [];
4
+ let max = 0;
5
+ for (const val of values) {
6
+ const n = Math.round(val * p) / p;
7
+ const txt = n.toFixed(decimals);
8
+ max = Math.max(max, txt.length);
9
+ out.push(txt);
10
+ }
11
+ return out.map(txt => txt.padStart(max, " "));
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFnQixFQUFFLFFBQVEsR0FBRyxDQUFDO0lBQzFELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQTtJQUN4QixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUE7SUFDWCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNqQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQy9CLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDL0IsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNqQixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtBQUNqRCxDQUFDIn0=
File without changes
File without changes
@@ -0,0 +1,13 @@
1
+ export class TgdEvent {
2
+ listeners = new Set();
3
+ addListener(listener) {
4
+ this.listeners.add(listener);
5
+ }
6
+ removeListener(listener) {
7
+ this.listeners.delete(listener);
8
+ }
9
+ dispatch(value) {
10
+ this.listeners.forEach(listener => listener(value));
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnQvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFFBQVE7SUFDQSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQTtJQUVuRCxXQUFXLENBQUMsUUFBcUI7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFxQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVE7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7Q0FDSiJ9
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export * from "./event.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUEifQ==
@@ -0,0 +1,10 @@
1
+ import { TgdVec2 } from "../math";
2
+ import { TgdFilter } from "./filter";
3
+ export interface TgdFilterBlurOptions {
4
+ size: number;
5
+ direction: Readonly<TgdVec2>;
6
+ }
7
+ export declare class TgdFilterBlur extends TgdFilter {
8
+ constructor(options?: Partial<TgdFilterBlurOptions>);
9
+ }
10
+ //# sourceMappingURL=blur.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blur.d.ts","sourceRoot":"","sources":["../../src/filter/blur.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CAC/B;AAID,qBAAa,aAAc,SAAQ,SAAS;gBAC5B,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM;CA+C1D"}