@tolokoban/tgd 2.0.0 → 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 (419) 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 +14 -12
  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 +20 -16
  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 +95 -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 +111 -12
  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 +88 -8
  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 +80 -11
  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 +2 -0
  76. package/lib/dist/event/index.d.ts.map +1 -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 +9 -0
  100. package/lib/dist/index.d.ts.map +1 -1
  101. package/lib/dist/index.js +21 -1
  102. package/lib/dist/input/index.d.ts +2 -0
  103. package/lib/dist/input/index.d.ts.map +1 -1
  104. package/lib/dist/input/index.js +4 -0
  105. package/lib/dist/input/inputs.d.ts +11 -0
  106. package/lib/dist/input/inputs.d.ts.map +1 -0
  107. package/lib/dist/input/inputs.js +23 -0
  108. package/lib/dist/input/keyboard.d.ts +6 -2
  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 +24 -40
  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 +26 -12
  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 +26 -0
  178. package/lib/dist/painter/axis/axis.d.ts.map +1 -0
  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 +2 -0
  183. package/lib/dist/painter/axis/index.d.ts.map +1 -0
  184. package/lib/dist/painter/axis/index.js +2 -0
  185. package/lib/dist/painter/background/background.d.ts +11 -8
  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 +15 -10
  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 +22 -0
  197. package/lib/dist/painter/depth.d.ts.map +1 -0
  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 +16 -4
  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 +10 -5
  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 +4 -2
  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 -1
  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 +2 -0
  249. package/lib/dist/painter/segments/index.d.ts.map +1 -0
  250. package/lib/dist/painter/segments/index.js +2 -0
  251. package/lib/dist/painter/segments/segments.d.ts +85 -0
  252. package/lib/dist/painter/segments/segments.d.ts.map +1 -0
  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 +11 -17
  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 +17 -2
  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 +2 -2
  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 +10 -4
  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 +8 -9
  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 +7 -9
  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 +14 -9
  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 +4 -5
  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 +25 -0
  331. package/lib/dist/types/context.d.ts.map +1 -0
  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 +5 -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 +8 -0
  343. package/lib/dist/types/input-keyboard.d.ts.map +1 -0
  344. package/lib/dist/types/input-keyboard.js +2 -0
  345. package/lib/dist/types/input-pointer.d.ts +42 -0
  346. package/lib/dist/types/input-pointer.d.ts.map +1 -0
  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 +2 -0
  352. package/lib/dist/types/painter.d.ts.map +1 -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 +20 -8
  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 +42 -3
  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 -0
  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 +13 -0
  373. package/lib/dist/utils/canvas.d.ts.map +1 -0
  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 +6 -0
  391. package/lib/dist/utils/index.d.ts.map +1 -0
  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 +7 -3
  403. package/lib/dist/vao/vao.d.ts.map +1 -1
  404. package/lib/dist/vao/vao.js +67 -0
  405. package/package.json +6 -5
  406. package/lib/dist/mesh/mesh.d.ts +0 -11
  407. package/lib/dist/mesh/mesh.d.ts.map +0 -1
  408. package/lib/dist/painter/isometric/isometric.frag.d.ts +0 -3
  409. package/lib/dist/painter/isometric/isometric.frag.d.ts.map +0 -1
  410. package/lib/dist/painter/isometric/isometric.vert.d.ts +0 -3
  411. package/lib/dist/painter/isometric/isometric.vert.d.ts.map +0 -1
  412. package/lib/dist/painter/primitive/primitive.frag.d.ts +0 -3
  413. package/lib/dist/painter/primitive/primitive.frag.d.ts.map +0 -1
  414. package/lib/dist/painter/primitive/primitive.vert.d.ts +0 -3
  415. package/lib/dist/painter/primitive/primitive.vert.d.ts.map +0 -1
  416. package/lib/dist/painter/sprites/sprites-painter.frag.d.ts +0 -3
  417. package/lib/dist/painter/sprites/sprites-painter.frag.d.ts.map +0 -1
  418. package/lib/dist/painter/sprites/sprites-painter.vert.d.ts +0 -3
  419. package/lib/dist/painter/sprites/sprites-painter.vert.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/painter/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,MAAM,IAAI,IAAI,CAAA;IACd,aAAa,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAA;CACxD;AAED,qBAAa,cAAe,SAAQ,UAAU;IACnC,aAAa,EAAE,UAAU,CAAmB;IACnD,SAAgB,OAAO,aAAmB;IAE1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;gBAEzC,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAMxD,MAAM,IAAI,IAAI;IASd,GAAG,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,mBAAmB,CAAC;IAU5D,MAAM,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,mBAAmB,CAAC;IAY/D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CA2B3C"}
@@ -0,0 +1,67 @@
1
+ import { TgdMat4 } from "./../math/index.js";
2
+ import { TgdPainter } from "./painter.js";
3
+ import { TgdTransfo } from "../math/transfo.js";
4
+ export class TgdPainterNode extends TgdPainter {
5
+ parentTransfo = new TgdTransfo();
6
+ transfo = new TgdTransfo();
7
+ matrixTransfo = new TgdMat4();
8
+ parentUpdateCount = 0;
9
+ updateCount = 0;
10
+ childrenNodes = [];
11
+ children = [];
12
+ constructor(options = {}) {
13
+ super();
14
+ const { children = [] } = options;
15
+ children.forEach(child => this.add(child));
16
+ }
17
+ delete() {
18
+ for (const child of this.children) {
19
+ child.delete();
20
+ }
21
+ for (const child of this.childrenNodes) {
22
+ child.delete();
23
+ }
24
+ }
25
+ add(...children) {
26
+ for (const child of children) {
27
+ if (child instanceof TgdPainterNode) {
28
+ this.childrenNodes.push(child);
29
+ }
30
+ else {
31
+ this.children.push(child);
32
+ }
33
+ }
34
+ }
35
+ remove(...children) {
36
+ for (const child of children) {
37
+ if (child instanceof TgdPainterNode) {
38
+ const idxNode = this.childrenNodes.indexOf(child);
39
+ if (idxNode > -1)
40
+ this.childrenNodes.splice(idxNode, 1);
41
+ }
42
+ else {
43
+ const idx = this.children.indexOf(child);
44
+ if (idx > -1)
45
+ this.children.splice(idx, 1);
46
+ }
47
+ }
48
+ }
49
+ paint(time, delay) {
50
+ const { transfo, parentTransfo, matrixTransfo, parentUpdateCount, updateCount, children, childrenNodes, } = this;
51
+ if (transfo.updateCount > updateCount ||
52
+ parentTransfo.updateCount > parentUpdateCount) {
53
+ this.updateCount = transfo.updateCount;
54
+ this.parentUpdateCount = parentTransfo.updateCount;
55
+ matrixTransfo.from(parentTransfo.matrix).multiply(transfo.matrix);
56
+ }
57
+ for (const child of children) {
58
+ child.matrixTransfo = matrixTransfo;
59
+ child.paint(time, delay);
60
+ }
61
+ for (const child of childrenNodes) {
62
+ child.parentTransfo.matrix = matrixTransfo;
63
+ child.paint(time, delay);
64
+ }
65
+ }
66
+ }
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYWludGVyL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQVk1QyxNQUFNLE9BQU8sY0FBZSxTQUFRLFVBQVU7SUFDbkMsYUFBYSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUE7SUFDbkMsT0FBTyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7SUFFekIsYUFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7SUFDdEMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFBO0lBQ3JCLFdBQVcsR0FBRyxDQUFDLENBQUE7SUFDTixhQUFhLEdBQXFCLEVBQUUsQ0FBQTtJQUNwQyxRQUFRLEdBQTBCLEVBQUUsQ0FBQTtJQUVyRCxZQUFZLFVBQTBDLEVBQUU7UUFDcEQsS0FBSyxFQUFFLENBQUE7UUFDUCxNQUFNLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUNqQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxNQUFNO1FBQ0YsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ2xCLENBQUM7UUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDbEIsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBRyxRQUFxRDtRQUN4RCxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksS0FBSyxZQUFZLGNBQWMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNsQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDN0IsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsUUFBcUQ7UUFDM0QsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLEtBQUssWUFBWSxjQUFjLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ2pELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztvQkFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDM0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUN4QyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzlDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM3QixNQUFNLEVBQ0YsT0FBTyxFQUNQLGFBQWEsRUFDYixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxRQUFRLEVBQ1IsYUFBYSxHQUNoQixHQUFHLElBQUksQ0FBQTtRQUNSLElBQ0ksT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXO1lBQ2pDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsaUJBQWlCLEVBQy9DLENBQUM7WUFDQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUE7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUE7WUFDbEQsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBQ0QsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixLQUFLLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQTtZQUNuQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM1QixDQUFDO1FBQ0QsS0FBSyxNQUFNLEtBQUssSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUE7WUFDMUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDNUIsQ0FBQztJQUNMLENBQUM7Q0FDSiJ9
@@ -1,6 +1,6 @@
1
1
  export declare abstract class TgdPainter {
2
+ active: boolean;
2
3
  abstract delete(): void;
3
4
  abstract paint(time: number, delay: number): void;
4
- abstract update(time: number, delay: number): void;
5
5
  }
6
6
  //# sourceMappingURL=painter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"painter.d.ts","sourceRoot":"","sources":["../../src/painter/painter.ts"],"names":[],"mappings":"AAAA,8BAAsB,UAAU;IAC5B,QAAQ,CAAC,MAAM,IAAI,IAAI;IACvB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IACjD,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CACrD"}
1
+ {"version":3,"file":"painter.d.ts","sourceRoot":"","sources":["../../src/painter/painter.ts"],"names":[],"mappings":"AAAA,8BAAsB,UAAU;IACrB,MAAM,EAAE,OAAO,CAAO;IAE7B,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CACpD"}
@@ -0,0 +1,4 @@
1
+ export class TgdPainter {
2
+ active = true;
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYWludGVyL3BhaW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQixVQUFVO0lBQ3JCLE1BQU0sR0FBWSxJQUFJLENBQUE7Q0FLaEMifQ==
@@ -0,0 +1,2 @@
1
+ export * from "./segments";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/painter/segments/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./segments.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9zZWdtZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQSJ9
@@ -0,0 +1,85 @@
1
+ import { TgdDataset } from "../../dataset";
2
+ import { TgdPainter } from "../painter";
3
+ import { ArrayNumber2, ArrayNumber4, TgdContextInterface, TgdTexture2D } from "../../types";
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
+ */
16
+ roundness: number;
17
+ /**
18
+ * With orthographic camera, this is a value in pixels.
19
+ */
20
+ minRadius: number;
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
+ */
43
+ export declare class TgdPainterSegments extends TgdPainter {
44
+ protected readonly context: TgdContextInterface;
45
+ colorTexture: TgdTexture2D;
46
+ minRadius: number;
47
+ radiusMultiplier: number;
48
+ radiusConstant: number;
49
+ radiusSwitch: number;
50
+ light: number;
51
+ shiftZ: number;
52
+ private readonly vao;
53
+ private readonly prg;
54
+ private readonly vertexCount;
55
+ private readonly instanceCount;
56
+ constructor(context: TgdContextInterface, factory: {
57
+ makeDataset: () => InstanceDataset;
58
+ readonly count: number;
59
+ }, { roundness, minRadius, }?: Partial<TgdPainterSegmentsOptions>);
60
+ delete(): void;
61
+ paint(_time: number, _delay: number): void;
62
+ }
63
+ type InstanceDataset = TgdDataset;
64
+ export declare class TgdPainterSegmentsData {
65
+ private _count;
66
+ private readonly attAxyzr;
67
+ private readonly attAuv;
68
+ private readonly attAinfluence;
69
+ private readonly attBxyzr;
70
+ private readonly attBuv;
71
+ private readonly attBinfluence;
72
+ get count(): number;
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;
82
+ makeDataset(): InstanceDataset;
83
+ }
84
+ export {};
85
+ //# sourceMappingURL=segments.d.ts.map
@@ -0,0 +1 @@
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
+ }
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export * from "./skybox.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9za3lib3gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUEifQ==
@@ -1,26 +1,20 @@
1
- import { TdgTextureCubeOptions } from "@/types";
2
- import { TgdContext } from "@/context";
3
- import { TgdPainter } from "@/painter";
4
- import { TgdCamera } from "@/camera";
5
- export interface TgdPainterSkyboxOptions {
6
- zoom: number;
7
- x: number;
8
- y: number;
9
- z: number;
10
- }
11
- export declare class TgdPainterSkybox implements TgdPainter {
1
+ import { TgdTextureCubeOptions } from "../../types";
2
+ import { TgdContext } from "../../context";
3
+ import { TgdPainter } from "../painter";
4
+ import { TgdCameraPerspective } from "../../camera";
5
+ export type TgdPainterSkyboxOptions = TgdTextureCubeOptions & {
6
+ camera?: TgdCameraPerspective;
7
+ };
8
+ export declare class TgdPainterSkybox extends TgdPainter {
12
9
  private readonly context;
13
- camera: TgdCamera;
10
+ camera: TgdCameraPerspective;
14
11
  private readonly texture;
15
12
  private readonly program;
16
13
  private readonly vao;
17
14
  private readonly matrix;
18
15
  private readonly tmpMat;
19
- constructor(context: TgdContext, options: TdgTextureCubeOptions & {
20
- camera: TgdCamera;
21
- });
16
+ constructor(context: TgdContext, options: TgdPainterSkyboxOptions);
22
17
  delete(): void;
23
- paint(time: number, delay: number): void;
24
- update(time: number, delay: number): void;
18
+ paint(): void;
25
19
  }
26
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,MAAM,SAAS,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAMtC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGpC,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,qBAAa,gBAAiB,YAAW,UAAU;IAU3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IATrB,MAAM,EAAE,SAAS,CAAA;IAExB,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,qBAAqB,GAAG;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE;IAkB1D,MAAM,IAAI,IAAI;IAKd,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAexC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAa5C"}
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
+ }