@tolokoban/tgd 2.0.1 → 2.0.4

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 (367) hide show
  1. package/lib/dist/buffer/buffer.js +37 -0
  2. package/lib/dist/buffer/index.js +2 -0
  3. package/lib/dist/camera/camera-orthographic.d.ts +13 -5
  4. package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
  5. package/lib/dist/camera/camera-orthographic.js +97 -0
  6. package/lib/dist/camera/camera-perspective.d.ts +19 -9
  7. package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
  8. package/lib/dist/camera/camera-perspective.js +94 -0
  9. package/lib/dist/camera/camera.d.ts +84 -18
  10. package/lib/dist/camera/camera.d.ts.map +1 -1
  11. package/lib/dist/camera/camera.js +368 -0
  12. package/lib/dist/camera/index.d.ts +3 -3
  13. package/lib/dist/camera/index.d.ts.map +1 -1
  14. package/lib/dist/camera/index.js +4 -0
  15. package/lib/dist/canvas/gizmo/gizmo.d.ts +42 -0
  16. package/lib/dist/canvas/gizmo/gizmo.d.ts.map +1 -0
  17. package/lib/dist/canvas/gizmo/gizmo.js +183 -0
  18. package/lib/dist/canvas/gizmo/index.d.ts +2 -0
  19. package/lib/dist/canvas/gizmo/index.d.ts.map +1 -0
  20. package/lib/dist/canvas/gizmo/index.js +2 -0
  21. package/lib/dist/canvas/gizmo/painter/shader.frag +17 -0
  22. package/lib/dist/canvas/gizmo/painter/shader.vert +24 -0
  23. package/lib/dist/canvas/gizmo/painter/tips.d.ts +13 -0
  24. package/lib/dist/canvas/gizmo/painter/tips.d.ts.map +1 -0
  25. package/lib/dist/canvas/gizmo/painter/tips.js +96 -0
  26. package/lib/dist/canvas/index.d.ts +3 -0
  27. package/lib/dist/canvas/index.d.ts.map +1 -0
  28. package/lib/dist/canvas/index.js +3 -0
  29. package/lib/dist/canvas/landscape/index.d.ts +2 -0
  30. package/lib/dist/canvas/landscape/index.d.ts.map +1 -0
  31. package/lib/dist/canvas/landscape/index.js +2 -0
  32. package/lib/dist/canvas/landscape/landscape.d.ts +18 -0
  33. package/lib/dist/canvas/landscape/landscape.d.ts.map +1 -0
  34. package/lib/dist/canvas/landscape/landscape.js +40 -0
  35. package/lib/dist/color/color.d.ts +22 -0
  36. package/lib/dist/color/color.d.ts.map +1 -0
  37. package/lib/dist/color/color.js +160 -0
  38. package/lib/dist/color/index.d.ts +2 -0
  39. package/lib/dist/color/index.d.ts.map +1 -0
  40. package/lib/dist/color/index.js +2 -0
  41. package/lib/dist/context/animation/animation-manager.d.ts +8 -0
  42. package/lib/dist/context/animation/animation-manager.d.ts.map +1 -0
  43. package/lib/dist/context/animation/animation-manager.js +41 -0
  44. package/lib/dist/context/context.d.ts +95 -8
  45. package/lib/dist/context/context.d.ts.map +1 -1
  46. package/lib/dist/context/context.js +297 -0
  47. package/lib/dist/context/index.js +2 -0
  48. package/lib/dist/controller/camera/index.js +2 -0
  49. package/lib/dist/controller/camera/orbit.d.ts +79 -4
  50. package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
  51. package/lib/dist/controller/camera/orbit.js +186 -0
  52. package/lib/dist/controller/index.js +2 -0
  53. package/lib/dist/dataset/dataset.d.ts +78 -10
  54. package/lib/dist/dataset/dataset.d.ts.map +1 -1
  55. package/lib/dist/dataset/dataset.js +217 -0
  56. package/lib/dist/dataset/index.js +2 -0
  57. package/lib/dist/debug.js +13 -0
  58. package/lib/dist/event/event.js +13 -0
  59. package/lib/dist/event/index.js +2 -0
  60. package/lib/dist/filter/blur.d.ts +10 -0
  61. package/lib/dist/filter/blur.d.ts.map +1 -0
  62. package/lib/dist/filter/blur.js +42 -0
  63. package/lib/dist/filter/filter.d.ts +39 -0
  64. package/lib/dist/filter/filter.d.ts.map +1 -0
  65. package/lib/dist/filter/filter.js +43 -0
  66. package/lib/dist/filter/hue-rotation.d.ts +12 -0
  67. package/lib/dist/filter/hue-rotation.d.ts.map +1 -0
  68. package/lib/dist/filter/hue-rotation.js +41 -0
  69. package/lib/dist/filter/index.d.ts +4 -0
  70. package/lib/dist/filter/index.d.ts.map +1 -0
  71. package/lib/dist/filter/index.js +4 -0
  72. package/lib/dist/geometry/box.d.ts +10 -0
  73. package/lib/dist/geometry/box.d.ts.map +1 -0
  74. package/lib/dist/geometry/box.js +136 -0
  75. package/lib/dist/geometry/geometry.d.ts +47 -0
  76. package/lib/dist/geometry/geometry.d.ts.map +1 -0
  77. package/lib/dist/geometry/geometry.js +190 -0
  78. package/lib/dist/geometry/index.d.ts +3 -0
  79. package/lib/dist/geometry/index.d.ts.map +1 -0
  80. package/lib/dist/geometry/index.js +3 -0
  81. package/lib/dist/index.d.ts +7 -0
  82. package/lib/dist/index.d.ts.map +1 -1
  83. package/lib/dist/index.js +21 -2
  84. package/lib/dist/input/index.js +4 -0
  85. package/lib/dist/input/inputs.d.ts.map +1 -1
  86. package/lib/dist/input/inputs.js +23 -0
  87. package/lib/dist/input/keyboard.d.ts +3 -0
  88. package/lib/dist/input/keyboard.d.ts.map +1 -1
  89. package/lib/dist/input/keyboard.js +46 -0
  90. package/lib/dist/input/pointer.d.ts +17 -33
  91. package/lib/dist/input/pointer.d.ts.map +1 -1
  92. package/lib/dist/input/pointer.js +138 -0
  93. package/lib/dist/light/index.d.ts +2 -0
  94. package/lib/dist/light/index.d.ts.map +1 -0
  95. package/lib/dist/light/index.js +2 -0
  96. package/lib/dist/light/light.d.ts +16 -0
  97. package/lib/dist/light/light.d.ts.map +1 -0
  98. package/lib/dist/light/light.js +19 -0
  99. package/lib/dist/loader/image.d.ts +4 -0
  100. package/lib/dist/loader/image.d.ts.map +1 -1
  101. package/lib/dist/loader/image.js +31 -0
  102. package/lib/dist/loader/index.js +2 -0
  103. package/lib/dist/material/diffuse.d.ts +28 -0
  104. package/lib/dist/material/diffuse.d.ts.map +1 -0
  105. package/lib/dist/material/diffuse.js +68 -0
  106. package/lib/dist/material/ghost.d.ts +19 -0
  107. package/lib/dist/material/ghost.d.ts.map +1 -0
  108. package/lib/dist/material/ghost.js +25 -0
  109. package/lib/dist/material/index.d.ts +5 -0
  110. package/lib/dist/material/index.d.ts.map +1 -0
  111. package/lib/dist/material/index.js +5 -0
  112. package/lib/dist/material/material.d.ts +29 -0
  113. package/lib/dist/material/material.d.ts.map +1 -0
  114. package/lib/dist/material/material.js +14 -0
  115. package/lib/dist/material/normals.d.ts +13 -0
  116. package/lib/dist/material/normals.d.ts.map +1 -0
  117. package/lib/dist/material/normals.js +20 -0
  118. package/lib/dist/math/index.d.ts +3 -0
  119. package/lib/dist/math/index.d.ts.map +1 -1
  120. package/lib/dist/math/index.js +8 -0
  121. package/lib/dist/math/mat3.d.ts +8 -0
  122. package/lib/dist/math/mat3.d.ts.map +1 -1
  123. package/lib/dist/math/mat3.js +154 -0
  124. package/lib/dist/math/mat4.d.ts +111 -2
  125. package/lib/dist/math/mat4.d.ts.map +1 -1
  126. package/lib/dist/math/mat4.js +402 -0
  127. package/lib/dist/math/mat4.test.js +57 -0
  128. package/lib/dist/math/quat.d.ts +1 -0
  129. package/lib/dist/math/quat.d.ts.map +1 -1
  130. package/lib/dist/math/quat.js +184 -0
  131. package/lib/dist/math/quat.test.js +45 -0
  132. package/lib/dist/math/transfo.d.ts +27 -0
  133. package/lib/dist/math/transfo.d.ts.map +1 -0
  134. package/lib/dist/math/transfo.js +86 -0
  135. package/lib/dist/math/vec2.d.ts +34 -0
  136. package/lib/dist/math/vec2.d.ts.map +1 -0
  137. package/lib/dist/math/vec2.js +119 -0
  138. package/lib/dist/math/vec3.d.ts +24 -13
  139. package/lib/dist/math/vec3.d.ts.map +1 -1
  140. package/lib/dist/math/vec3.js +187 -0
  141. package/lib/dist/math/vec3.test.d.ts +2 -0
  142. package/lib/dist/math/vec3.test.d.ts.map +1 -0
  143. package/lib/dist/math/vec3.test.js +22 -0
  144. package/lib/dist/math/vec4.d.ts +8 -4
  145. package/lib/dist/math/vec4.d.ts.map +1 -1
  146. package/lib/dist/math/vec4.js +152 -0
  147. package/lib/dist/math/vec4.test.js +15 -0
  148. package/lib/dist/painter/axis/axis.d.ts +1 -1
  149. package/lib/dist/painter/axis/axis.d.ts.map +1 -1
  150. package/lib/dist/painter/axis/axis.frag +11 -0
  151. package/lib/dist/painter/axis/axis.js +84 -0
  152. package/lib/dist/painter/axis/axis.vert +21 -0
  153. package/lib/dist/painter/axis/index.js +2 -0
  154. package/lib/dist/painter/background/background.d.ts +5 -1
  155. package/lib/dist/painter/background/background.d.ts.map +1 -1
  156. package/lib/dist/painter/background/background.frag +11 -0
  157. package/lib/dist/painter/background/background.js +63 -0
  158. package/lib/dist/painter/background/background.vert +16 -0
  159. package/lib/dist/painter/background/index.js +2 -0
  160. package/lib/dist/painter/clear.d.ts +11 -6
  161. package/lib/dist/painter/clear.d.ts.map +1 -1
  162. package/lib/dist/painter/clear.js +51 -0
  163. package/lib/dist/painter/depth.d.ts.map +1 -1
  164. package/lib/dist/painter/depth.js +34 -0
  165. package/lib/dist/painter/filter/filter.d.ts +23 -0
  166. package/lib/dist/painter/filter/filter.d.ts.map +1 -0
  167. package/lib/dist/painter/filter/filter.js +76 -0
  168. package/lib/dist/painter/filter/index.d.ts +2 -0
  169. package/lib/dist/painter/filter/index.d.ts.map +1 -0
  170. package/lib/dist/painter/filter/index.js +2 -0
  171. package/lib/dist/painter/framebuffer.d.ts +38 -0
  172. package/lib/dist/painter/framebuffer.d.ts.map +1 -0
  173. package/lib/dist/painter/framebuffer.js +102 -0
  174. package/lib/dist/painter/group.d.ts +4 -0
  175. package/lib/dist/painter/group.d.ts.map +1 -1
  176. package/lib/dist/painter/group.js +59 -0
  177. package/lib/dist/painter/index.d.ts +3 -1
  178. package/lib/dist/painter/index.d.ts.map +1 -1
  179. package/lib/dist/painter/index.js +12 -0
  180. package/lib/dist/painter/logic.d.ts +3 -0
  181. package/lib/dist/painter/logic.d.ts.map +1 -1
  182. package/lib/dist/painter/logic.js +16 -0
  183. package/lib/dist/painter/mesh/gltf/gltf.d.ts +14 -0
  184. package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -0
  185. package/lib/dist/painter/mesh/gltf/gltf.js +93 -0
  186. package/lib/dist/painter/mesh/gltf/index.d.ts +2 -0
  187. package/lib/dist/painter/mesh/gltf/index.d.ts.map +1 -0
  188. package/lib/dist/painter/mesh/gltf/index.js +2 -0
  189. package/lib/dist/painter/mesh/index.d.ts +4 -0
  190. package/lib/dist/painter/mesh/index.d.ts.map +1 -0
  191. package/lib/dist/painter/mesh/index.js +4 -0
  192. package/lib/dist/painter/mesh/mesh/index.d.ts +2 -0
  193. package/lib/dist/painter/mesh/mesh/index.d.ts.map +1 -0
  194. package/lib/dist/painter/mesh/mesh/index.js +2 -0
  195. package/lib/dist/painter/mesh/mesh/mesh.d.ts +32 -0
  196. package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -0
  197. package/lib/dist/painter/mesh/mesh/mesh.js +128 -0
  198. package/lib/dist/painter/mesh/normals/index.d.ts +2 -0
  199. package/lib/dist/painter/mesh/normals/index.d.ts.map +1 -0
  200. package/lib/dist/painter/mesh/normals/index.js +2 -0
  201. package/lib/dist/painter/mesh/normals/normals.d.ts +18 -0
  202. package/lib/dist/painter/mesh/normals/normals.d.ts.map +1 -0
  203. package/lib/dist/painter/mesh/normals/normals.js +53 -0
  204. package/lib/dist/painter/mesh/normals/shader.frag +14 -0
  205. package/lib/dist/painter/mesh/normals/shader.vert +18 -0
  206. package/lib/dist/painter/node.d.ts +26 -0
  207. package/lib/dist/painter/node.d.ts.map +1 -0
  208. package/lib/dist/painter/node.js +67 -0
  209. package/lib/dist/painter/painter.d.ts +1 -0
  210. package/lib/dist/painter/painter.d.ts.map +1 -1
  211. package/lib/dist/painter/painter.js +4 -0
  212. package/lib/dist/painter/segments/index.js +2 -0
  213. package/lib/dist/painter/segments/segments.d.ts +56 -17
  214. package/lib/dist/painter/segments/segments.d.ts.map +1 -1
  215. package/lib/dist/painter/segments/segments.frag +12 -0
  216. package/lib/dist/painter/segments/segments.js +196 -0
  217. package/lib/dist/painter/segments/segments.vert +114 -0
  218. package/lib/dist/painter/skybox/index.js +2 -0
  219. package/lib/dist/painter/skybox/skybox.d.ts +2 -2
  220. package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
  221. package/lib/dist/painter/skybox/skybox.frag +15 -0
  222. package/lib/dist/painter/skybox/skybox.js +59 -0
  223. package/lib/dist/painter/skybox/skybox.vert +10 -0
  224. package/lib/dist/parser/for-each-line.d.ts +3 -0
  225. package/lib/dist/parser/for-each-line.d.ts.map +1 -1
  226. package/lib/dist/parser/for-each-line.js +17 -0
  227. package/lib/dist/parser/gltf/gltf.d.ts +34 -0
  228. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -0
  229. package/lib/dist/parser/gltf/gltf.js +164 -0
  230. package/lib/dist/parser/gltf/index.d.ts +2 -0
  231. package/lib/dist/parser/gltf/index.d.ts.map +1 -0
  232. package/lib/dist/parser/gltf/index.js +2 -0
  233. package/lib/dist/parser/gltf/parser.d.ts +9 -0
  234. package/lib/dist/parser/gltf/parser.d.ts.map +1 -0
  235. package/lib/dist/parser/gltf/parser.js +53 -0
  236. package/lib/dist/parser/index.d.ts +1 -0
  237. package/lib/dist/parser/index.d.ts.map +1 -1
  238. package/lib/dist/parser/index.js +3 -0
  239. package/lib/dist/parser/mesh/wavefront.d.ts +70 -12
  240. package/lib/dist/parser/mesh/wavefront.d.ts.map +1 -1
  241. package/lib/dist/parser/mesh/wavefront.js +246 -0
  242. package/lib/dist/program/index.js +2 -0
  243. package/lib/dist/program/program.d.ts +15 -0
  244. package/lib/dist/program/program.d.ts.map +1 -1
  245. package/lib/dist/program/program.js +220 -0
  246. package/lib/dist/ref-map.d.ts +15 -0
  247. package/lib/dist/ref-map.d.ts.map +1 -1
  248. package/lib/dist/ref-map.js +48 -0
  249. package/lib/dist/resource/index.js +5 -0
  250. package/lib/dist/resource/program.d.ts.map +1 -1
  251. package/lib/dist/resource/program.js +20 -0
  252. package/lib/dist/resource/resource.d.ts +7 -1
  253. package/lib/dist/resource/resource.d.ts.map +1 -1
  254. package/lib/dist/resource/resource.js +48 -0
  255. package/lib/dist/resource/texture2d.d.ts +1 -0
  256. package/lib/dist/resource/texture2d.d.ts.map +1 -1
  257. package/lib/dist/resource/texture2d.js +20 -0
  258. package/lib/dist/resource/textureCube.d.ts.map +1 -1
  259. package/lib/dist/resource/textureCube.js +17 -0
  260. package/lib/dist/shader/code.d.ts +12 -0
  261. package/lib/dist/shader/code.d.ts.map +1 -0
  262. package/lib/dist/shader/code.js +32 -0
  263. package/lib/dist/shader/fragment.d.ts +23 -0
  264. package/lib/dist/shader/fragment.d.ts.map +1 -0
  265. package/lib/dist/shader/fragment.js +37 -0
  266. package/lib/dist/shader/vertex.d.ts +23 -0
  267. package/lib/dist/shader/vertex.d.ts.map +1 -0
  268. package/lib/dist/shader/vertex.js +35 -0
  269. package/lib/dist/texture/index.js +3 -0
  270. package/lib/dist/texture/texture2d.d.ts +4 -3
  271. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  272. package/lib/dist/texture/texture2d.js +132 -0
  273. package/lib/dist/texture/textureCube.d.ts.map +1 -1
  274. package/lib/dist/texture/textureCube.js +87 -0
  275. package/lib/dist/types/animation.d.ts +20 -0
  276. package/lib/dist/types/animation.d.ts.map +1 -0
  277. package/lib/dist/types/animation.js +2 -0
  278. package/lib/dist/types/arrays.d.ts +33 -0
  279. package/lib/dist/types/arrays.d.ts.map +1 -0
  280. package/lib/dist/types/arrays.js +2 -0
  281. package/lib/dist/types/context.d.ts +7 -2
  282. package/lib/dist/types/context.d.ts.map +1 -1
  283. package/lib/dist/types/context.js +2 -0
  284. package/lib/dist/types/gltf.d.ts +200 -0
  285. package/lib/dist/types/gltf.d.ts.map +1 -0
  286. package/lib/dist/types/gltf.js +117 -0
  287. package/lib/dist/types/guards.d.ts +25 -0
  288. package/lib/dist/types/guards.d.ts.map +1 -0
  289. package/lib/dist/types/guards.js +218 -0
  290. package/lib/dist/types/index.d.ts +2 -0
  291. package/lib/dist/types/index.d.ts.map +1 -1
  292. package/lib/dist/types/index.js +10 -0
  293. package/lib/dist/types/input-keyboard.d.ts +3 -0
  294. package/lib/dist/types/input-keyboard.d.ts.map +1 -1
  295. package/lib/dist/types/input-keyboard.js +2 -0
  296. package/lib/dist/types/input-pointer.d.ts +33 -20
  297. package/lib/dist/types/input-pointer.d.ts.map +1 -1
  298. package/lib/dist/types/input-pointer.js +2 -0
  299. package/lib/dist/types/mesh.d.ts +10 -0
  300. package/lib/dist/types/mesh.d.ts.map +1 -0
  301. package/lib/dist/types/mesh.js +2 -0
  302. package/lib/dist/types/painter.js +2 -0
  303. package/lib/dist/types/program.d.ts +15 -0
  304. package/lib/dist/types/program.d.ts.map +1 -1
  305. package/lib/dist/types/program.js +2 -0
  306. package/lib/dist/types/texture2d.d.ts +14 -6
  307. package/lib/dist/types/texture2d.d.ts.map +1 -1
  308. package/lib/dist/types/texture2d.js +2 -0
  309. package/lib/dist/types/textureCube.d.ts +39 -0
  310. package/lib/dist/types/textureCube.d.ts.map +1 -1
  311. package/lib/dist/types/textureCube.js +2 -0
  312. package/lib/dist/types/webgl.d.ts +28 -1
  313. package/lib/dist/types/webgl.d.ts.map +1 -1
  314. package/lib/dist/types/webgl.js +2 -0
  315. package/lib/dist/utils/action/camera.d.ts +13 -0
  316. package/lib/dist/utils/action/camera.d.ts.map +1 -0
  317. package/lib/dist/utils/action/camera.js +30 -0
  318. package/lib/dist/utils/action/index.d.ts +2 -0
  319. package/lib/dist/utils/action/index.d.ts.map +1 -0
  320. package/lib/dist/utils/action/index.js +2 -0
  321. package/lib/dist/utils/canvas.d.ts +9 -1
  322. package/lib/dist/utils/canvas.d.ts.map +1 -1
  323. package/lib/dist/utils/canvas.js +23 -0
  324. package/lib/dist/utils/ease-func/ease-func.d.ts +32 -0
  325. package/lib/dist/utils/ease-func/ease-func.d.ts.map +1 -0
  326. package/lib/dist/utils/ease-func/ease-func.js +142 -0
  327. package/lib/dist/utils/ease-func/index.d.ts +2 -0
  328. package/lib/dist/utils/ease-func/index.d.ts.map +1 -0
  329. package/lib/dist/utils/ease-func/index.js +2 -0
  330. package/lib/dist/utils/fetch/fetch.d.ts +2 -0
  331. package/lib/dist/utils/fetch/fetch.d.ts.map +1 -0
  332. package/lib/dist/utils/fetch/fetch.js +5 -0
  333. package/lib/dist/utils/fetch/index.d.ts +2 -0
  334. package/lib/dist/utils/fetch/index.d.ts.map +1 -0
  335. package/lib/dist/utils/fetch/index.js +2 -0
  336. package/lib/dist/utils/fullscreen.d.ts +21 -0
  337. package/lib/dist/utils/fullscreen.d.ts.map +1 -0
  338. package/lib/dist/utils/fullscreen.js +64 -0
  339. package/lib/dist/utils/index.d.ts +4 -0
  340. package/lib/dist/utils/index.d.ts.map +1 -1
  341. package/lib/dist/utils/index.js +6 -0
  342. package/lib/dist/utils/math.d.ts +3 -0
  343. package/lib/dist/utils/math.d.ts.map +1 -0
  344. package/lib/dist/utils/math.js +11 -0
  345. package/lib/dist/utils/ref-map.d.ts +22 -0
  346. package/lib/dist/utils/ref-map.d.ts.map +1 -0
  347. package/lib/dist/utils/ref-map.js +48 -0
  348. package/lib/dist/vao/index.js +2 -0
  349. package/lib/dist/vao/vao.d.ts +7 -1
  350. package/lib/dist/vao/vao.d.ts.map +1 -1
  351. package/lib/dist/vao/vao.js +70 -0
  352. package/package.json +2 -4
  353. package/lib/dist/index.js.map +0 -1
  354. package/lib/dist/mesh/mesh.d.ts +0 -11
  355. package/lib/dist/mesh/mesh.d.ts.map +0 -1
  356. package/lib/dist/painter/isometric/isometric.frag.d.ts +0 -3
  357. package/lib/dist/painter/isometric/isometric.frag.d.ts.map +0 -1
  358. package/lib/dist/painter/isometric/isometric.vert.d.ts +0 -3
  359. package/lib/dist/painter/isometric/isometric.vert.d.ts.map +0 -1
  360. package/lib/dist/painter/primitive/primitive.frag.d.ts +0 -3
  361. package/lib/dist/painter/primitive/primitive.frag.d.ts.map +0 -1
  362. package/lib/dist/painter/primitive/primitive.vert.d.ts +0 -3
  363. package/lib/dist/painter/primitive/primitive.vert.d.ts.map +0 -1
  364. package/lib/dist/painter/sprites/sprites-painter.frag.d.ts +0 -3
  365. package/lib/dist/painter/sprites/sprites-painter.frag.d.ts.map +0 -1
  366. package/lib/dist/painter/sprites/sprites-painter.vert.d.ts +0 -3
  367. package/lib/dist/painter/sprites/sprites-painter.vert.d.ts.map +0 -1
@@ -1,16 +1,52 @@
1
- import { TgdTexture2D, TgdContextInterface } from "../../types";
2
- import { TgdPainter } from "../painter";
3
1
  import { TgdDataset } from "../../dataset";
4
- import { TgdVec4 } from "../../math";
2
+ import { TgdPainter } from "../painter";
3
+ import { ArrayNumber2, ArrayNumber4, TgdContextInterface, TgdTexture2D } from "../../types";
5
4
  export type TgdPainterSegmentsOptions = {
5
+ /**
6
+ * How round the tip will be?
7
+ * - **0** means that the tip is flat.
8
+ * - **1** will gives you a triangled tip.
9
+ * - **>1** starts to have a semi-circle shape.
10
+ *
11
+ * **0** is the fastest to render, but you will have
12
+ * a bad connection at joints between segments.
13
+ *
14
+ * Default to **3**.
15
+ */
6
16
  roundness: number;
17
+ /**
18
+ * With orthographic camera, this is a value in pixels.
19
+ */
7
20
  minRadius: number;
8
21
  };
22
+ /**
23
+ * @example
24
+ * ```
25
+ * const factory = new TgdPainterSegmentsData()
26
+ * factory.add(
27
+ * [0, 0, 0, .2],
28
+ * [1, 0, 0, .1],
29
+ * )
30
+ * factory.add(
31
+ * [0, 0, 0, .2],
32
+ * [0, 1, 0, .1],
33
+ * )
34
+ * factory.add(
35
+ * [0, 0, 0, .2],
36
+ * [0, 0, 1, .1],
37
+ * )
38
+ * const segments = new TgdPainterSegments(
39
+ * segment, factory
40
+ * )
41
+ * ```
42
+ */
9
43
  export declare class TgdPainterSegments extends TgdPainter {
10
44
  protected readonly context: TgdContextInterface;
11
45
  colorTexture: TgdTexture2D;
12
46
  minRadius: number;
13
47
  radiusMultiplier: number;
48
+ radiusConstant: number;
49
+ radiusSwitch: number;
14
50
  light: number;
15
51
  shiftZ: number;
16
52
  private readonly vao;
@@ -22,24 +58,27 @@ export declare class TgdPainterSegments extends TgdPainter {
22
58
  readonly count: number;
23
59
  }, { roundness, minRadius, }?: Partial<TgdPainterSegmentsOptions>);
24
60
  delete(): void;
25
- paint(time: number, delay: number): void;
61
+ paint(_time: number, _delay: number): void;
26
62
  }
27
- type Array4 = [x: number, y: number, z: number, r: number] | TgdVec4;
28
- type Array2 = [u: number, v: number];
29
- type InstanceDataset = TgdDataset<{
30
- attAxyzr: "vec4";
31
- attAuv: "vec2";
32
- attBxyzr: "vec4";
33
- attBuv: "vec2";
34
- }>;
63
+ type InstanceDataset = TgdDataset;
35
64
  export declare class TgdPainterSegmentsData {
36
65
  private _count;
37
- private attAxyzr;
38
- private attAuv;
39
- private attBxyzr;
40
- private attBuv;
66
+ private readonly attAxyzr;
67
+ private readonly attAuv;
68
+ private readonly attAinfluence;
69
+ private readonly attBxyzr;
70
+ private readonly attBuv;
71
+ private readonly attBinfluence;
41
72
  get count(): number;
42
- add([xA, yA, zA, radiusA]: Array4, [uA, vA]: Array2, [xB, yB, zB, radiusB]: Array4, [uB, vB]: Array2): void;
73
+ /**
74
+ * @param Axyzr (x,y,z) and radius of point A.
75
+ * @param Bxyzr (x,y,z) and radius of point B.
76
+ * @param Auv
77
+ * @param Buv
78
+ * @param radiusMultiplierInfluenceA
79
+ * @param radiusMultiplierInfluenceB
80
+ */
81
+ add(Axyzr: ArrayNumber4, Bxyzr: ArrayNumber4, Auv?: ArrayNumber2, Buv?: ArrayNumber2, radiusMultiplierInfluenceA?: number, radiusMultiplierInfluenceB?: number): void;
43
82
  makeDataset(): InstanceDataset;
44
83
  }
45
84
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../../src/painter/segments/segments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAc,oBAAe;AACvE,OAAO,EAAE,UAAU,EAAE,mBAAyB;AAE9C,OAAO,EAAE,UAAU,EAAE,sBAAiB;AAItC,OAAO,EAAE,OAAO,EAAE,mBAAc;AAGhC,MAAM,MAAM,yBAAyB,GAAG;IAYpC,SAAS,EAAE,MAAM,CAAA;IAIjB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAuBD,qBAAa,kBAAmB,SAAQ,UAAU;IAa1C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB;IAZ5C,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAI;IACrB,gBAAgB,SAAI;IACpB,KAAK,SAAI;IACT,MAAM,SAAI;IAEjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;gBAGf,OAAO,EAAE,mBAAmB,EAC/C,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,eAAe,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACvE,EACI,SAAa,EACb,SAAa,GAChB,GAAE,OAAO,CAAC,yBAAyB,CAAM;IA+B9C,MAAM,IAAI,IAAI;IAId,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAmC3C;AAED,KAAK,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAA;AACpE,KAAK,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;AAEpC,KAAK,eAAe,GAAG,UAAU,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACjB,CAAC,CAAA;AAEF,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAAe;IAE7B,IAAI,KAAK,WAER;IAMD,GAAG,CACC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAC7B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAC7B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM;IASpB,WAAW,IAAI,eAAe;CAkBjC"}
1
+ {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../../src/painter/segments/segments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,mBAAmB,EAEnB,YAAY,EACf,MAAM,YAAY,CAAA;AAMnB,MAAM,MAAM,yBAAyB,GAAG;IACpC;;;;;;;;;;OAUG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAe1C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB;IAd5C,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAI;IACrB,gBAAgB,SAAI;IACpB,cAAc,SAAI;IAClB,YAAY,SAAI;IAChB,KAAK,SAAI;IACT,MAAM,SAAI;IAEjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;gBAGf,OAAO,EAAE,mBAAmB,EAC/C,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,eAAe,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACvE,EACI,SAAa,EACb,SAAa,GAChB,GAAE,OAAO,CAAC,yBAAyB,CAAM;IA+B9C,MAAM,IAAI,IAAI;IAId,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAqC7C;AAED,KAAK,eAAe,GAAG,UAAU,CAAA;AAEjC,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,IAAI,KAAK,WAER;IAED;;;;;;;OAOG;IACH,GAAG,CACC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,EACnB,GAAG,GAAE,YAAqB,EAC1B,GAAG,GAAE,YAAqB,EAC1B,0BAA0B,SAAI,EAC9B,0BAA0B,SAAI;IAWlC,WAAW,IAAI,eAAe;CAsBjC"}
@@ -0,0 +1,12 @@
1
+ #version 300 es
2
+
3
+ precision mediump float;
4
+
5
+ in vec4 varColor;
6
+ out vec4 FragColor;
7
+
8
+
9
+ void main() {
10
+ if (varColor.a < 1.0) discard;
11
+ else FragColor = varColor;
12
+ }
@@ -0,0 +1,196 @@
1
+ import { TgdDataset } from "./../../dataset/index.js";
2
+ import { TgdPainter } from "./../painter.js";
3
+ import FRAG from "./segments.frag";
4
+ import VERT from "./segments.vert";
5
+ /**
6
+ * @example
7
+ * ```
8
+ * const factory = new TgdPainterSegmentsData()
9
+ * factory.add(
10
+ * [0, 0, 0, .2],
11
+ * [1, 0, 0, .1],
12
+ * )
13
+ * factory.add(
14
+ * [0, 0, 0, .2],
15
+ * [0, 1, 0, .1],
16
+ * )
17
+ * factory.add(
18
+ * [0, 0, 0, .2],
19
+ * [0, 0, 1, .1],
20
+ * )
21
+ * const segments = new TgdPainterSegments(
22
+ * segment, factory
23
+ * )
24
+ * ```
25
+ */
26
+ export class TgdPainterSegments extends TgdPainter {
27
+ context;
28
+ colorTexture;
29
+ minRadius = 0;
30
+ radiusMultiplier = 1;
31
+ radiusConstant = 1;
32
+ radiusSwitch = 0;
33
+ light = 1;
34
+ shiftZ = 0;
35
+ vao;
36
+ prg;
37
+ vertexCount;
38
+ instanceCount;
39
+ constructor(context, factory, { roundness = 3, minRadius = 0, } = {}) {
40
+ super();
41
+ this.context = context;
42
+ this.minRadius = minRadius;
43
+ if (roundness > 125) {
44
+ throw Error("[TgdPainterSegments] Max roundness is 125!");
45
+ }
46
+ if (roundness < 0) {
47
+ throw Error("[TgdPainterSegments] Min roundness is 0!");
48
+ }
49
+ const tex = context.textures2D.create({
50
+ magFilter: "NEAREST",
51
+ minFilter: "NEAREST",
52
+ wrapR: "CLAMP_TO_EDGE",
53
+ wrapS: "CLAMP_TO_EDGE",
54
+ wrapT: "CLAMP_TO_EDGE",
55
+ });
56
+ tex.makePalette(["#f00", "#0f0", "#00f"]);
57
+ this.colorTexture = tex;
58
+ const prg = context.programs.create({
59
+ vert: VERT,
60
+ frag: FRAG,
61
+ });
62
+ this.prg = prg;
63
+ const { capsule, elements } = makeCapsule(roundness);
64
+ const instance = factory.makeDataset();
65
+ this.vao = context.createVAO(prg, [capsule, instance], elements);
66
+ this.vertexCount = elements.length;
67
+ this.instanceCount = instance.count;
68
+ }
69
+ delete() {
70
+ this.vao.delete();
71
+ }
72
+ paint(_time, _delay) {
73
+ const { context, prg, vao, colorTexture, vertexCount, instanceCount, light, radiusMultiplier, radiusConstant, radiusSwitch, shiftZ, } = this;
74
+ const { gl, camera } = context;
75
+ prg.use();
76
+ const minRadius = (this.minRadius * camera.spaceHeightAtTarget) /
77
+ (camera.zoom * camera.screenHeight);
78
+ prg.uniform1f("uniMinRadius", minRadius);
79
+ prg.uniform1f("uniLight", light);
80
+ prg.uniform1f("uniShiftZ", shiftZ);
81
+ prg.uniform1f("uniRadiusMultiplier", radiusMultiplier);
82
+ prg.uniform1f("uniRadiusConstant", radiusConstant);
83
+ prg.uniform1f("uniRadiusSwitch", radiusSwitch);
84
+ colorTexture.activate(prg, "uniTexture");
85
+ prg.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
86
+ prg.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
87
+ vao.bind();
88
+ gl.drawElementsInstanced(gl.TRIANGLES, vertexCount, gl.UNSIGNED_BYTE, 0, instanceCount);
89
+ }
90
+ }
91
+ export class TgdPainterSegmentsData {
92
+ _count = 0;
93
+ attAxyzr = [];
94
+ attAuv = [];
95
+ attAinfluence = [];
96
+ attBxyzr = [];
97
+ attBuv = [];
98
+ attBinfluence = [];
99
+ get count() {
100
+ return this._count;
101
+ }
102
+ /**
103
+ * @param Axyzr (x,y,z) and radius of point A.
104
+ * @param Bxyzr (x,y,z) and radius of point B.
105
+ * @param Auv
106
+ * @param Buv
107
+ * @param radiusMultiplierInfluenceA
108
+ * @param radiusMultiplierInfluenceB
109
+ */
110
+ add(Axyzr, Bxyzr, Auv = [0, 0], Buv = [0, 0], radiusMultiplierInfluenceA = 1, radiusMultiplierInfluenceB = 1) {
111
+ this.attAxyzr.push(...Axyzr);
112
+ this.attAuv.push(...Auv);
113
+ this.attAinfluence.push(radiusMultiplierInfluenceA);
114
+ this.attBxyzr.push(...Bxyzr);
115
+ this.attBuv.push(...Buv);
116
+ this.attBinfluence.push(radiusMultiplierInfluenceB);
117
+ this._count++;
118
+ }
119
+ makeDataset() {
120
+ const dataset = new TgdDataset({
121
+ attAxyzr: "vec4",
122
+ attAuv: "vec2",
123
+ attAinfluence: "float",
124
+ attBxyzr: "vec4",
125
+ attBuv: "vec2",
126
+ attBinfluence: "float",
127
+ }, {
128
+ divisor: 1,
129
+ });
130
+ dataset.set("attAxyzr", new Float32Array(this.attAxyzr));
131
+ dataset.set("attAuv", new Float32Array(this.attAuv));
132
+ dataset.set("attAinfluence", new Float32Array(this.attAinfluence));
133
+ dataset.set("attBxyzr", new Float32Array(this.attBxyzr));
134
+ dataset.set("attBuv", new Float32Array(this.attBuv));
135
+ dataset.set("attBinfluence", new Float32Array(this.attBinfluence));
136
+ return dataset;
137
+ }
138
+ }
139
+ /**
140
+ * The capsule is a 2D shape (x,y) that will be uses
141
+ * as a pattern for the segment.
142
+ * The segment will expand this template along Y axis.
143
+ * The tip pointing toward +Y is called A.
144
+ * The tip pointing toward -Y is called B.
145
+ * The z coodinates indicates to which tip the point
146
+ * is attached: 0 for A and 1 for B.
147
+ */
148
+ function makeCapsule(roundness) {
149
+ // prettier-ignore
150
+ const offset = [
151
+ 0, 0, 0,
152
+ 1, 0, 0,
153
+ -1, 0, 0,
154
+ 0, 0, 1,
155
+ 1, 0, 1,
156
+ -1, 0, 1,
157
+ ];
158
+ // prettier-ignore
159
+ const elements = [
160
+ 0, 3, 1,
161
+ 3, 4, 1,
162
+ 0, 2, 5,
163
+ 3, 0, 5,
164
+ ];
165
+ if (roundness > 0) {
166
+ let oldIndexA = 1;
167
+ let oldIndexB = 4;
168
+ let elemIndex = 6;
169
+ for (let i = 0; i < roundness; i++) {
170
+ const ang = (Math.PI * (i + 1)) / (roundness + 1);
171
+ const x = Math.cos(ang);
172
+ const y = Math.sin(ang);
173
+ // We set z to 0 because it's related to tip A.
174
+ offset.push(x, y, 0);
175
+ elements.push(0, oldIndexA, elemIndex);
176
+ oldIndexA = elemIndex;
177
+ elemIndex++;
178
+ // We set z to 1 because it's related to tip B.
179
+ offset.push(x, -y, 1);
180
+ elements.push(3, elemIndex, oldIndexB);
181
+ oldIndexB = elemIndex;
182
+ elemIndex++;
183
+ }
184
+ elements.push(0, oldIndexA, 2);
185
+ elements.push(3, 5, oldIndexB);
186
+ }
187
+ const capsule = new TgdDataset({
188
+ attOffset: "vec3",
189
+ });
190
+ capsule.set("attOffset", new Float32Array(offset));
191
+ return {
192
+ capsule,
193
+ elements: new Uint8Array(elements),
194
+ };
195
+ }
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9zZWdtZW50cy9zZWdtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQVVqRCxPQUFPLElBQUksTUFBTSxpQkFBaUIsQ0FBQTtBQUNsQyxPQUFPLElBQUksTUFBTSxpQkFBaUIsQ0FBQTtBQXFCbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFVBQVU7SUFldkI7SUFkaEIsWUFBWSxDQUFjO0lBQzFCLFNBQVMsR0FBVyxDQUFDLENBQUE7SUFDckIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFBO0lBQ3BCLGNBQWMsR0FBRyxDQUFDLENBQUE7SUFDbEIsWUFBWSxHQUFHLENBQUMsQ0FBQTtJQUNoQixLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ1QsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUVBLEdBQUcsQ0FBZ0I7SUFDbkIsR0FBRyxDQUFZO0lBQ2YsV0FBVyxDQUFRO0lBQ25CLGFBQWEsQ0FBUTtJQUV0QyxZQUN1QixPQUE0QixFQUMvQyxPQUF1RSxFQUN2RSxFQUNJLFNBQVMsR0FBRyxDQUFDLEVBQ2IsU0FBUyxHQUFHLENBQUMsTUFDdUIsRUFBRTtRQUUxQyxLQUFLLEVBQUUsQ0FBQTtRQVBZLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBUS9DLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUE7UUFDN0QsQ0FBQztRQUNELElBQUksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sS0FBSyxDQUFDLDBDQUEw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
@@ -0,0 +1,114 @@
1
+ #version 300 es
2
+
3
+ precision mediump float;
4
+
5
+ uniform sampler2D uniTexture;
6
+ uniform mat4 uniModelViewMatrix;
7
+ uniform mat4 uniProjectionMatrix;
8
+ // Minimal value for the radius.
9
+ uniform float uniMinRadius;
10
+ // Multiply all radii by this value.
11
+ uniform float uniRadiusMultiplier;
12
+ // When uniRadiusSwitch == 1.0,
13
+ // we use uniRadiusConstant as radius.
14
+ uniform float uniRadiusConstant;
15
+ // 0.0 means we will use the radius defined
16
+ // in the attribute attAxyzr or attBaxyz.
17
+ // 1.0 means we use uniRadiusConstant for
18
+ // all vertices.
19
+ uniform float uniRadiusSwitch;
20
+ // Multiply the color by this value;
21
+ uniform float uniLight;
22
+ // Push the segments away from camera of `uniShiftZ`.
23
+ // This can be used if you want contours on the segments:
24
+ // just increase `uniRadiusMultiplier`, set a low `uniLight`,
25
+ // and set a small positive `uniShiftZ`.
26
+ uniform float uniShiftZ;
27
+
28
+ //===================
29
+ // Vertex attributes
30
+ //-------------------
31
+
32
+ // Position of the vertex, relative to
33
+ // the current center and assuming a
34
+ // radius of 1.
35
+ // Z tells you what tip is your center: 0 for A and 1 for B.
36
+ in vec3 attOffset;
37
+
38
+ //=====================
39
+ // Instance attributes
40
+ //---------------------
41
+
42
+ // Coords and radious of tip A.
43
+ in vec4 attAxyzr;
44
+ // Coords and radious of tip B.
45
+ in vec4 attBxyzr;
46
+ // The color is taken from a texture.
47
+ in vec2 attAuv;
48
+ in vec2 attBuv;
49
+ // 0 means that nothing modifies the initial radius,
50
+ // except the minRadius.
51
+ in float attAinfluence;
52
+ in float attBinfluence;
53
+
54
+
55
+ out vec4 varColor;
56
+
57
+
58
+ vec3 worldToCamera(vec3 v);
59
+ float getRadius(float tip);
60
+ mat3 getTransfoMatrix(float tip, vec3 camA, vec3 camB);
61
+
62
+ void main() {
63
+ vec3 camA = worldToCamera(attAxyzr.xyz);
64
+ vec3 camB = worldToCamera(attBxyzr.xyz);
65
+ float tip = attOffset.z;
66
+ vec2 uv = mix(attAuv, attBuv, tip);
67
+ varColor = texture(uniTexture, uv)
68
+ * vec4(uniLight, uniLight, uniLight, 1.0);
69
+ float radius = getRadius(tip);
70
+ mat3 transfo = getTransfoMatrix(tip, camA, camB);
71
+ vec3 point = transfo * vec3(attOffset.xy * radius, 1.0);
72
+ point.z -= uniShiftZ;
73
+ gl_Position =
74
+ uniProjectionMatrix
75
+ * vec4(point, 1);
76
+ }
77
+
78
+ float getRadius(float tip) {
79
+ float influence = mix(attAinfluence, attBinfluence, tip);
80
+ float originalRadius = mix(
81
+ attAxyzr.w,
82
+ attBxyzr.w,
83
+ tip
84
+ );
85
+ float modifiedRadius = mix(
86
+ originalRadius,
87
+ uniRadiusConstant,
88
+ uniRadiusSwitch
89
+ ) * uniRadiusMultiplier;
90
+ float radius = mix(
91
+ originalRadius,
92
+ modifiedRadius,
93
+ influence
94
+ );
95
+ return max(uniMinRadius, radius);
96
+ }
97
+
98
+ vec3 worldToCamera(vec3 v) {
99
+ vec4 result = uniModelViewMatrix * vec4(v, 1.0);
100
+ return result.xyz;
101
+ }
102
+
103
+ mat3 getTransfoMatrix(float tip, vec3 camA, vec3 camB) {
104
+ // What is the current tip?
105
+ vec3 camO = mix(camA, camB, tip);
106
+ vec2 A = camA.xy;
107
+ vec2 B = camB.xy;
108
+ vec3 Y = vec3(
109
+ A == B ? vec2(0, 1) : normalize(A - B),
110
+ 0
111
+ );
112
+ vec3 X = vec3(Y.y, -Y.x, 0);
113
+ return mat3(X, Y, camO);
114
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./skybox.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9za3lib3gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUEifQ==
@@ -7,7 +7,7 @@ export type TgdPainterSkyboxOptions = TgdTextureCubeOptions & {
7
7
  };
8
8
  export declare class TgdPainterSkybox extends TgdPainter {
9
9
  private readonly context;
10
- private camera;
10
+ camera: TgdCameraPerspective;
11
11
  private readonly texture;
12
12
  private readonly program;
13
13
  private readonly vao;
@@ -15,6 +15,6 @@ export declare class TgdPainterSkybox extends TgdPainter {
15
15
  private readonly tmpMat;
16
16
  constructor(context: TgdContext, options: TgdPainterSkyboxOptions);
17
17
  delete(): void;
18
- paint(time: number, delay: number): void;
18
+ paint(): void;
19
19
  }
20
20
  //# sourceMappingURL=skybox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skybox.d.ts","sourceRoot":"","sources":["../../../src/painter/skybox/skybox.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,qBAAqB,EAAE,oBAAe;AAC3E,OAAO,EAAE,UAAU,EAAE,sBAAiB;AACtC,OAAO,EAAE,UAAU,EAAE,mBAAyB;AAG9C,OAAO,EAAE,oBAAoB,EAAE,qBAAgB;AAM/C,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,GAAG;IAC1D,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAChC,CAAA;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IAUxC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT5B,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAGlB,OAAO,EAAE,UAAU,EACpC,OAAO,EAAE,uBAAuB;IAmBpC,MAAM,IAAI,IAAI;IAKd,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CA0B3C"}
1
+ {"version":3,"file":"skybox.d.ts","sourceRoot":"","sources":["../../../src/painter/skybox/skybox.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAMlD,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,GAAG;IAC1D,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAChC,CAAA;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IAUxC,OAAO,CAAC,QAAQ,CAAC,OAAO;IATrB,MAAM,EAAE,oBAAoB,CAAA;IAEnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAGlB,OAAO,EAAE,UAAU,EACpC,OAAO,EAAE,uBAAuB;IAmBpC,MAAM,IAAI,IAAI;IAKd,KAAK,IAAI,IAAI;CA0BhB"}
@@ -0,0 +1,15 @@
1
+ #version 300 es
2
+
3
+ precision highp float;
4
+
5
+ uniform samplerCube uniTexture;
6
+ uniform mat4 uniMatrix;
7
+
8
+ in vec4 varPoint;
9
+
10
+ out vec4 FragColor;
11
+
12
+ void main() {
13
+ vec4 t = uniMatrix * varPoint;
14
+ FragColor = texture(uniTexture, normalize(t.xyz / t.w));
15
+ }
@@ -0,0 +1,59 @@
1
+ import { TgdPainter } from "./../painter.js";
2
+ import { TgdDataset } from "./../../dataset/dataset.js";
3
+ import { TgdCameraPerspective } from "./../../camera/index.js";
4
+ import { TgdMat4 } from "./../../math/index.js";
5
+ import VERT from "./skybox.vert";
6
+ import FRAG from "./skybox.frag";
7
+ export class TgdPainterSkybox extends TgdPainter {
8
+ context;
9
+ camera;
10
+ texture;
11
+ program;
12
+ vao;
13
+ matrix = new TgdMat4();
14
+ tmpMat = new TgdMat4();
15
+ constructor(context, options) {
16
+ super();
17
+ this.context = context;
18
+ this.camera = options.camera ?? new TgdCameraPerspective();
19
+ this.texture = context.texturesCube.create(options);
20
+ this.program = context.programs.create({
21
+ vert: VERT,
22
+ frag: FRAG,
23
+ });
24
+ const dataset = new TgdDataset({
25
+ attPoint: "vec2",
26
+ });
27
+ dataset.set("attPoint", new Float32Array([-1, +1, +1, +1, -1, -1, +1, -1]));
28
+ this.vao = context.createVAO(this.program, [dataset]);
29
+ }
30
+ delete() {
31
+ const { vao } = this;
32
+ vao.delete();
33
+ }
34
+ paint() {
35
+ const { context, vao, program, texture } = this;
36
+ const { gl } = context;
37
+ program.use();
38
+ program.uniformMatrix4fv("uniMatrix", this.matrix);
39
+ texture.activate(program, "uniTexture");
40
+ vao.bind();
41
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
42
+ // Compute matrix for the next frame.
43
+ const { camera, matrix, tmpMat } = this;
44
+ if (camera !== context.camera) {
45
+ camera.orientation = context.camera.orientation;
46
+ }
47
+ matrix.from(camera.matrixProjection);
48
+ tmpMat.fromMat3(camera.matrixModelView);
49
+ tmpMat.m30 = 0;
50
+ tmpMat.m31 = 0;
51
+ tmpMat.m32 = 0;
52
+ tmpMat.m33 = 1;
53
+ tmpMat.m03 = 0;
54
+ tmpMat.m13 = 0;
55
+ tmpMat.m23 = 0;
56
+ matrix.multiply(tmpMat).invert();
57
+ }
58
+ }
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5Ym94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvc2t5Ym94L3NreWJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRWpELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRW5DLE9BQU8sSUFBSSxNQUFNLGVBQWUsQ0FBQTtBQUNoQyxPQUFPLElBQUksTUFBTSxlQUFlLENBQUE7QUFNaEMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFVBQVU7SUFVdkI7SUFUZCxNQUFNLENBQXNCO0lBRWxCLE9BQU8sQ0FBZ0I7SUFDdkIsT0FBTyxDQUFZO0lBQ25CLEdBQUcsQ0FBZ0I7SUFDbkIsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7SUFDdEIsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7SUFFdkMsWUFDcUIsT0FBbUIsRUFDcEMsT0FBZ0M7UUFFaEMsS0FBSyxFQUFFLENBQUE7UUFIVSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBSXBDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLG9CQUFvQixFQUFFLENBQUE7UUFDMUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ25DLElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDLENBQUE7UUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUMzQixRQUFRLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUE7UUFDRixPQUFPLENBQUMsR0FBRyxDQUNQLFVBQVUsRUFDVixJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDckQsQ0FBQTtRQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBRUQsTUFBTTtRQUNGLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDcEIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ2hCLENBQUM7SUFFRCxLQUFLO1FBQ0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQTtRQUMvQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBRXRCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUNiLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2xELE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQ3ZDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNWLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFFdEMscUNBQXFDO1FBQ3JDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQTtRQUN2QyxJQUFJLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQTtRQUNuRCxDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN2QyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQTtRQUNkLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFBO1FBQ2QsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDZCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQTtRQUNkLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFBO1FBQ2QsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDZCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQTtRQUNkLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDcEMsQ0FBQztDQUNKIn0=
@@ -0,0 +1,10 @@
1
+ #version 300 es
2
+
3
+ in vec4 attPoint;
4
+
5
+ out vec4 varPoint;
6
+
7
+ void main() {
8
+ varPoint = attPoint;
9
+ gl_Position = vec4(attPoint.xy, 0.99999, 1.0);
10
+ }
@@ -1,2 +1,5 @@
1
+ /**
2
+ * Generator to iterate on each lines of a big string content.
3
+ */
1
4
  export declare const forEachLine: (content: string) => Generator<string, string, unknown>;
2
5
  //# sourceMappingURL=for-each-line.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-each-line.d.ts","sourceRoot":"","sources":["../../src/parser/for-each-line.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,YAAuB,MAAM,uCAYpD,CAAA"}
1
+ {"version":3,"file":"for-each-line.d.ts","sourceRoot":"","sources":["../../src/parser/for-each-line.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,YAAuB,MAAM,uCAYpD,CAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Generator to iterate on each lines of a big string content.
3
+ */
4
+ export const forEachLine = function* (content) {
5
+ const len = content.length;
6
+ let index = 0;
7
+ let cursor = 0;
8
+ while (index > -1 && index < len) {
9
+ index = content.indexOf("\n", cursor);
10
+ if (index < 0)
11
+ break;
12
+ yield content.substring(cursor, index).trim();
13
+ cursor = index + 1;
14
+ }
15
+ return content.substring(cursor).trim();
16
+ };
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLWVhY2gtbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvZm9yLWVhY2gtbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsRUFBRSxPQUFlO0lBQ2pELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUE7SUFDMUIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ2IsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFBO0lBQ2QsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQy9CLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUNyQyxJQUFJLEtBQUssR0FBRyxDQUFDO1lBQUUsTUFBSztRQUVwQixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQzdDLE1BQU0sR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ3RCLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7QUFDM0MsQ0FBQyxDQUFBIn0=
@@ -0,0 +1,34 @@
1
+ import { TgdDataset } from "../../dataset";
2
+ import { TgdFormatGltf, TgdFormatGltfAccessor, TgdFormatGltfMaterial, TgdFormatGltfMesh, TgdFormatGltfNode, TgdFormatGltfScene } from "../../types/gltf";
3
+ import { TgdTexture2DOptions } from "../../types";
4
+ export declare class TgdParserGLTransfertFormatBinary {
5
+ readonly gltf: Readonly<TgdFormatGltf>;
6
+ private readonly chunks;
7
+ private readonly cacheImages;
8
+ private readonly cacheImageURLs;
9
+ private readonly cacheBufferViewDatas;
10
+ constructor(content: ArrayBuffer);
11
+ getScenes(): TgdFormatGltfScene[];
12
+ getScene(sceneIndex: number): TgdFormatGltfScene;
13
+ getNode(nodeIndex: number): TgdFormatGltfNode;
14
+ getAccessor(accessorIndex?: number): TgdFormatGltfAccessor;
15
+ getMaterial(materialIndex: number): TgdFormatGltfMaterial;
16
+ getMesh(meshIndex?: number): TgdFormatGltfMesh;
17
+ getMeshPrimitive(meshIndex?: number, primitiveIndex?: number): {
18
+ attributes: Record<string, number>;
19
+ indices?: number | undefined;
20
+ mode?: number | undefined;
21
+ material?: number | undefined;
22
+ };
23
+ getMeshPrimitiveIndices(meshIndex?: number, primitiveIndex?: number): {
24
+ type: number;
25
+ buff: BufferSource;
26
+ elemCount: number;
27
+ };
28
+ getTexture2DOptions(textureIndex: number): TgdTexture2DOptions;
29
+ loadImage(imageIndex: number): Promise<HTMLImageElement | undefined>;
30
+ getImageURL(imageIndex: number): string | undefined;
31
+ getBufferViewData(bufferViewIndex: number): ArrayBuffer;
32
+ setAttrib(dataset: TgdDataset, attribName: string, meshIndex?: number, primitiveIndex?: number, primitiveAttribName?: string): void;
33
+ }
34
+ //# sourceMappingURL=gltf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltf.d.ts","sourceRoot":"","sources":["../../../src/parser/gltf/gltf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EACH,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACrB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,gCAAgC;IACzC,SAAgB,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IAE7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGzB;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiC;gBAE1D,OAAO,EAAE,WAAW;IAYhC,SAAS,IAAI,kBAAkB,EAAE;IAIjC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB;IAShD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB;IAS7C,WAAW,CAAC,aAAa,SAAI,GAAG,qBAAqB;IASrD,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,qBAAqB;IASzD,OAAO,CAAC,SAAS,SAAI,GAAG,iBAAiB;IASzC,gBAAgB,CAAC,SAAS,SAAI,EAAE,cAAc,SAAI;;;;;;IAYlD,uBAAuB,CACnB,SAAS,SAAI,EACb,cAAc,SAAI,GACnB;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAW1D,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB;IAexD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA2B1E,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAsBnD,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,WAAW;IAmBvD,SAAS,CACL,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,SAAI,EACb,cAAc,SAAI,EAClB,mBAAmB,CAAC,EAAE,MAAM;CA4BnC"}