@tolokoban/tgd 2.0.1 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/lib/dist/buffer/buffer.d.ts +0 -0
  2. package/lib/dist/buffer/buffer.d.ts.map +0 -0
  3. package/lib/dist/buffer/buffer.js +37 -0
  4. package/lib/dist/buffer/index.d.ts +0 -0
  5. package/lib/dist/buffer/index.d.ts.map +0 -0
  6. package/lib/dist/buffer/index.js +2 -0
  7. package/lib/dist/camera/camera-orthographic.d.ts +13 -5
  8. package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
  9. package/lib/dist/camera/camera-orthographic.js +97 -0
  10. package/lib/dist/camera/camera-perspective.d.ts +19 -9
  11. package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
  12. package/lib/dist/camera/camera-perspective.js +94 -0
  13. package/lib/dist/camera/camera.d.ts +84 -18
  14. package/lib/dist/camera/camera.d.ts.map +1 -1
  15. package/lib/dist/camera/camera.js +368 -0
  16. package/lib/dist/camera/index.d.ts +3 -3
  17. package/lib/dist/camera/index.d.ts.map +1 -1
  18. package/lib/dist/camera/index.js +4 -0
  19. package/lib/dist/canvas/gizmo/gizmo.d.ts +42 -0
  20. package/lib/dist/canvas/gizmo/gizmo.d.ts.map +1 -0
  21. package/lib/dist/canvas/gizmo/gizmo.js +183 -0
  22. package/lib/dist/canvas/gizmo/index.d.ts +2 -0
  23. package/lib/dist/canvas/gizmo/index.d.ts.map +1 -0
  24. package/lib/dist/canvas/gizmo/index.js +2 -0
  25. package/lib/dist/canvas/gizmo/painter/shader.frag +17 -0
  26. package/lib/dist/canvas/gizmo/painter/shader.vert +24 -0
  27. package/lib/dist/canvas/gizmo/painter/tips.d.ts +13 -0
  28. package/lib/dist/canvas/gizmo/painter/tips.d.ts.map +1 -0
  29. package/lib/dist/canvas/gizmo/painter/tips.js +96 -0
  30. package/lib/dist/canvas/index.d.ts +3 -0
  31. package/lib/dist/canvas/index.d.ts.map +1 -0
  32. package/lib/dist/canvas/index.js +3 -0
  33. package/lib/dist/canvas/landscape/index.d.ts +2 -0
  34. package/lib/dist/canvas/landscape/index.d.ts.map +1 -0
  35. package/lib/dist/canvas/landscape/index.js +2 -0
  36. package/lib/dist/canvas/landscape/landscape.d.ts +18 -0
  37. package/lib/dist/canvas/landscape/landscape.d.ts.map +1 -0
  38. package/lib/dist/canvas/landscape/landscape.js +40 -0
  39. package/lib/dist/color/color.d.ts +22 -0
  40. package/lib/dist/color/color.d.ts.map +1 -0
  41. package/lib/dist/color/color.js +160 -0
  42. package/lib/dist/color/index.d.ts +2 -0
  43. package/lib/dist/color/index.d.ts.map +1 -0
  44. package/lib/dist/color/index.js +2 -0
  45. package/lib/dist/context/animation/animation-manager.d.ts +8 -0
  46. package/lib/dist/context/animation/animation-manager.d.ts.map +1 -0
  47. package/lib/dist/context/animation/animation-manager.js +41 -0
  48. package/lib/dist/context/context.d.ts +95 -8
  49. package/lib/dist/context/context.d.ts.map +1 -1
  50. package/lib/dist/context/context.js +297 -0
  51. package/lib/dist/context/index.d.ts +0 -0
  52. package/lib/dist/context/index.d.ts.map +0 -0
  53. package/lib/dist/context/index.js +2 -0
  54. package/lib/dist/controller/camera/index.d.ts +0 -0
  55. package/lib/dist/controller/camera/index.d.ts.map +0 -0
  56. package/lib/dist/controller/camera/index.js +2 -0
  57. package/lib/dist/controller/camera/orbit.d.ts +79 -4
  58. package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
  59. package/lib/dist/controller/camera/orbit.js +186 -0
  60. package/lib/dist/controller/index.d.ts +0 -0
  61. package/lib/dist/controller/index.d.ts.map +0 -0
  62. package/lib/dist/controller/index.js +2 -0
  63. package/lib/dist/dataset/dataset.d.ts +78 -10
  64. package/lib/dist/dataset/dataset.d.ts.map +1 -1
  65. package/lib/dist/dataset/dataset.js +217 -0
  66. package/lib/dist/dataset/index.d.ts +0 -0
  67. package/lib/dist/dataset/index.d.ts.map +0 -0
  68. package/lib/dist/dataset/index.js +2 -0
  69. package/lib/dist/debug.d.ts +0 -0
  70. package/lib/dist/debug.d.ts.map +0 -0
  71. package/lib/dist/debug.js +13 -0
  72. package/lib/dist/event/event.d.ts +0 -0
  73. package/lib/dist/event/event.d.ts.map +0 -0
  74. package/lib/dist/event/event.js +13 -0
  75. package/lib/dist/event/index.d.ts +0 -0
  76. package/lib/dist/event/index.d.ts.map +0 -0
  77. package/lib/dist/event/index.js +2 -0
  78. package/lib/dist/filter/blur.d.ts +10 -0
  79. package/lib/dist/filter/blur.d.ts.map +1 -0
  80. package/lib/dist/filter/blur.js +42 -0
  81. package/lib/dist/filter/filter.d.ts +39 -0
  82. package/lib/dist/filter/filter.d.ts.map +1 -0
  83. package/lib/dist/filter/filter.js +43 -0
  84. package/lib/dist/filter/hue-rotation.d.ts +12 -0
  85. package/lib/dist/filter/hue-rotation.d.ts.map +1 -0
  86. package/lib/dist/filter/hue-rotation.js +41 -0
  87. package/lib/dist/filter/index.d.ts +4 -0
  88. package/lib/dist/filter/index.d.ts.map +1 -0
  89. package/lib/dist/filter/index.js +4 -0
  90. package/lib/dist/geometry/box.d.ts +10 -0
  91. package/lib/dist/geometry/box.d.ts.map +1 -0
  92. package/lib/dist/geometry/box.js +136 -0
  93. package/lib/dist/geometry/geometry.d.ts +47 -0
  94. package/lib/dist/geometry/geometry.d.ts.map +1 -0
  95. package/lib/dist/geometry/geometry.js +190 -0
  96. package/lib/dist/geometry/index.d.ts +3 -0
  97. package/lib/dist/geometry/index.d.ts.map +1 -0
  98. package/lib/dist/geometry/index.js +3 -0
  99. package/lib/dist/index.d.ts +7 -0
  100. package/lib/dist/index.d.ts.map +1 -1
  101. package/lib/dist/index.js +21 -2
  102. package/lib/dist/input/index.d.ts +0 -0
  103. package/lib/dist/input/index.d.ts.map +0 -0
  104. package/lib/dist/input/index.js +4 -0
  105. package/lib/dist/input/inputs.d.ts +0 -0
  106. package/lib/dist/input/inputs.d.ts.map +1 -1
  107. package/lib/dist/input/inputs.js +23 -0
  108. package/lib/dist/input/keyboard.d.ts +3 -0
  109. package/lib/dist/input/keyboard.d.ts.map +1 -1
  110. package/lib/dist/input/keyboard.js +46 -0
  111. package/lib/dist/input/pointer.d.ts +17 -33
  112. package/lib/dist/input/pointer.d.ts.map +1 -1
  113. package/lib/dist/input/pointer.js +138 -0
  114. package/lib/dist/light/index.d.ts +2 -0
  115. package/lib/dist/light/index.d.ts.map +1 -0
  116. package/lib/dist/light/index.js +2 -0
  117. package/lib/dist/light/light.d.ts +16 -0
  118. package/lib/dist/light/light.d.ts.map +1 -0
  119. package/lib/dist/light/light.js +19 -0
  120. package/lib/dist/loader/image.d.ts +4 -0
  121. package/lib/dist/loader/image.d.ts.map +1 -1
  122. package/lib/dist/loader/image.js +31 -0
  123. package/lib/dist/loader/index.d.ts +0 -0
  124. package/lib/dist/loader/index.d.ts.map +0 -0
  125. package/lib/dist/loader/index.js +2 -0
  126. package/lib/dist/material/diffuse.d.ts +28 -0
  127. package/lib/dist/material/diffuse.d.ts.map +1 -0
  128. package/lib/dist/material/diffuse.js +68 -0
  129. package/lib/dist/material/ghost.d.ts +19 -0
  130. package/lib/dist/material/ghost.d.ts.map +1 -0
  131. package/lib/dist/material/ghost.js +25 -0
  132. package/lib/dist/material/index.d.ts +5 -0
  133. package/lib/dist/material/index.d.ts.map +1 -0
  134. package/lib/dist/material/index.js +5 -0
  135. package/lib/dist/material/material.d.ts +29 -0
  136. package/lib/dist/material/material.d.ts.map +1 -0
  137. package/lib/dist/material/material.js +14 -0
  138. package/lib/dist/material/normals.d.ts +13 -0
  139. package/lib/dist/material/normals.d.ts.map +1 -0
  140. package/lib/dist/material/normals.js +20 -0
  141. package/lib/dist/math/index.d.ts +3 -0
  142. package/lib/dist/math/index.d.ts.map +1 -1
  143. package/lib/dist/math/index.js +8 -0
  144. package/lib/dist/math/mat3.d.ts +8 -0
  145. package/lib/dist/math/mat3.d.ts.map +1 -1
  146. package/lib/dist/math/mat3.js +154 -0
  147. package/lib/dist/math/mat4.d.ts +111 -2
  148. package/lib/dist/math/mat4.d.ts.map +1 -1
  149. package/lib/dist/math/mat4.js +402 -0
  150. package/lib/dist/math/mat4.test.d.ts +0 -0
  151. package/lib/dist/math/mat4.test.d.ts.map +0 -0
  152. package/lib/dist/math/mat4.test.js +57 -0
  153. package/lib/dist/math/quat.d.ts +1 -0
  154. package/lib/dist/math/quat.d.ts.map +1 -1
  155. package/lib/dist/math/quat.js +184 -0
  156. package/lib/dist/math/quat.test.d.ts +0 -0
  157. package/lib/dist/math/quat.test.d.ts.map +0 -0
  158. package/lib/dist/math/quat.test.js +45 -0
  159. package/lib/dist/math/transfo.d.ts +27 -0
  160. package/lib/dist/math/transfo.d.ts.map +1 -0
  161. package/lib/dist/math/transfo.js +86 -0
  162. package/lib/dist/math/vec2.d.ts +34 -0
  163. package/lib/dist/math/vec2.d.ts.map +1 -0
  164. package/lib/dist/math/vec2.js +119 -0
  165. package/lib/dist/math/vec3.d.ts +24 -13
  166. package/lib/dist/math/vec3.d.ts.map +1 -1
  167. package/lib/dist/math/vec3.js +187 -0
  168. package/lib/dist/math/vec3.test.d.ts +2 -0
  169. package/lib/dist/math/vec3.test.d.ts.map +1 -0
  170. package/lib/dist/math/vec3.test.js +22 -0
  171. package/lib/dist/math/vec4.d.ts +8 -4
  172. package/lib/dist/math/vec4.d.ts.map +1 -1
  173. package/lib/dist/math/vec4.js +152 -0
  174. package/lib/dist/math/vec4.test.d.ts +0 -0
  175. package/lib/dist/math/vec4.test.d.ts.map +0 -0
  176. package/lib/dist/math/vec4.test.js +15 -0
  177. package/lib/dist/painter/axis/axis.d.ts +1 -1
  178. package/lib/dist/painter/axis/axis.d.ts.map +1 -1
  179. package/lib/dist/painter/axis/axis.frag +11 -0
  180. package/lib/dist/painter/axis/axis.js +84 -0
  181. package/lib/dist/painter/axis/axis.vert +21 -0
  182. package/lib/dist/painter/axis/index.d.ts +0 -0
  183. package/lib/dist/painter/axis/index.d.ts.map +0 -0
  184. package/lib/dist/painter/axis/index.js +2 -0
  185. package/lib/dist/painter/background/background.d.ts +5 -1
  186. package/lib/dist/painter/background/background.d.ts.map +1 -1
  187. package/lib/dist/painter/background/background.frag +11 -0
  188. package/lib/dist/painter/background/background.js +63 -0
  189. package/lib/dist/painter/background/background.vert +16 -0
  190. package/lib/dist/painter/background/index.d.ts +0 -0
  191. package/lib/dist/painter/background/index.d.ts.map +0 -0
  192. package/lib/dist/painter/background/index.js +2 -0
  193. package/lib/dist/painter/clear.d.ts +11 -6
  194. package/lib/dist/painter/clear.d.ts.map +1 -1
  195. package/lib/dist/painter/clear.js +51 -0
  196. package/lib/dist/painter/depth.d.ts +0 -0
  197. package/lib/dist/painter/depth.d.ts.map +1 -1
  198. package/lib/dist/painter/depth.js +34 -0
  199. package/lib/dist/painter/filter/filter.d.ts +23 -0
  200. package/lib/dist/painter/filter/filter.d.ts.map +1 -0
  201. package/lib/dist/painter/filter/filter.frag +15 -0
  202. package/lib/dist/painter/filter/filter.js +76 -0
  203. package/lib/dist/painter/filter/filter.vert +11 -0
  204. package/lib/dist/painter/filter/index.d.ts +2 -0
  205. package/lib/dist/painter/filter/index.d.ts.map +1 -0
  206. package/lib/dist/painter/filter/index.js +2 -0
  207. package/lib/dist/painter/framebuffer.d.ts +38 -0
  208. package/lib/dist/painter/framebuffer.d.ts.map +1 -0
  209. package/lib/dist/painter/framebuffer.js +102 -0
  210. package/lib/dist/painter/group.d.ts +4 -0
  211. package/lib/dist/painter/group.d.ts.map +1 -1
  212. package/lib/dist/painter/group.js +59 -0
  213. package/lib/dist/painter/index.d.ts +3 -1
  214. package/lib/dist/painter/index.d.ts.map +1 -1
  215. package/lib/dist/painter/index.js +12 -0
  216. package/lib/dist/painter/logic.d.ts +3 -0
  217. package/lib/dist/painter/logic.d.ts.map +1 -1
  218. package/lib/dist/painter/logic.js +16 -0
  219. package/lib/dist/painter/mesh/gltf/gltf.d.ts +14 -0
  220. package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -0
  221. package/lib/dist/painter/mesh/gltf/gltf.js +93 -0
  222. package/lib/dist/painter/mesh/gltf/index.d.ts +2 -0
  223. package/lib/dist/painter/mesh/gltf/index.d.ts.map +1 -0
  224. package/lib/dist/painter/mesh/gltf/index.js +2 -0
  225. package/lib/dist/painter/mesh/index.d.ts +4 -0
  226. package/lib/dist/painter/mesh/index.d.ts.map +1 -0
  227. package/lib/dist/painter/mesh/index.js +4 -0
  228. package/lib/dist/painter/mesh/mesh/index.d.ts +2 -0
  229. package/lib/dist/painter/mesh/mesh/index.d.ts.map +1 -0
  230. package/lib/dist/painter/mesh/mesh/index.js +2 -0
  231. package/lib/dist/painter/mesh/mesh/mesh.d.ts +32 -0
  232. package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -0
  233. package/lib/dist/painter/mesh/mesh/mesh.js +128 -0
  234. package/lib/dist/painter/mesh/normals/index.d.ts +2 -0
  235. package/lib/dist/painter/mesh/normals/index.d.ts.map +1 -0
  236. package/lib/dist/painter/mesh/normals/index.js +2 -0
  237. package/lib/dist/painter/mesh/normals/normals.d.ts +18 -0
  238. package/lib/dist/painter/mesh/normals/normals.d.ts.map +1 -0
  239. package/lib/dist/painter/mesh/normals/normals.js +53 -0
  240. package/lib/dist/painter/mesh/normals/shader.frag +14 -0
  241. package/lib/dist/painter/mesh/normals/shader.vert +18 -0
  242. package/lib/dist/painter/node.d.ts +26 -0
  243. package/lib/dist/painter/node.d.ts.map +1 -0
  244. package/lib/dist/painter/node.js +67 -0
  245. package/lib/dist/painter/painter.d.ts +1 -0
  246. package/lib/dist/painter/painter.d.ts.map +1 -1
  247. package/lib/dist/painter/painter.js +4 -0
  248. package/lib/dist/painter/segments/index.d.ts +0 -0
  249. package/lib/dist/painter/segments/index.d.ts.map +0 -0
  250. package/lib/dist/painter/segments/index.js +2 -0
  251. package/lib/dist/painter/segments/segments.d.ts +56 -17
  252. package/lib/dist/painter/segments/segments.d.ts.map +1 -1
  253. package/lib/dist/painter/segments/segments.frag +12 -0
  254. package/lib/dist/painter/segments/segments.js +196 -0
  255. package/lib/dist/painter/segments/segments.vert +114 -0
  256. package/lib/dist/painter/skybox/index.d.ts +0 -0
  257. package/lib/dist/painter/skybox/index.d.ts.map +0 -0
  258. package/lib/dist/painter/skybox/index.js +2 -0
  259. package/lib/dist/painter/skybox/skybox.d.ts +2 -2
  260. package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
  261. package/lib/dist/painter/skybox/skybox.frag +15 -0
  262. package/lib/dist/painter/skybox/skybox.js +59 -0
  263. package/lib/dist/painter/skybox/skybox.vert +10 -0
  264. package/lib/dist/parser/for-each-line.d.ts +3 -0
  265. package/lib/dist/parser/for-each-line.d.ts.map +1 -1
  266. package/lib/dist/parser/for-each-line.js +17 -0
  267. package/lib/dist/parser/gltf/gltf.d.ts +34 -0
  268. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -0
  269. package/lib/dist/parser/gltf/gltf.js +164 -0
  270. package/lib/dist/parser/gltf/index.d.ts +2 -0
  271. package/lib/dist/parser/gltf/index.d.ts.map +1 -0
  272. package/lib/dist/parser/gltf/index.js +2 -0
  273. package/lib/dist/parser/gltf/parser.d.ts +9 -0
  274. package/lib/dist/parser/gltf/parser.d.ts.map +1 -0
  275. package/lib/dist/parser/gltf/parser.js +53 -0
  276. package/lib/dist/parser/index.d.ts +1 -0
  277. package/lib/dist/parser/index.d.ts.map +1 -1
  278. package/lib/dist/parser/index.js +3 -0
  279. package/lib/dist/parser/mesh/wavefront.d.ts +70 -12
  280. package/lib/dist/parser/mesh/wavefront.d.ts.map +1 -1
  281. package/lib/dist/parser/mesh/wavefront.js +246 -0
  282. package/lib/dist/program/index.d.ts +0 -0
  283. package/lib/dist/program/index.d.ts.map +0 -0
  284. package/lib/dist/program/index.js +2 -0
  285. package/lib/dist/program/program.d.ts +15 -0
  286. package/lib/dist/program/program.d.ts.map +1 -1
  287. package/lib/dist/program/program.js +220 -0
  288. package/lib/dist/ref-map.d.ts +15 -0
  289. package/lib/dist/ref-map.d.ts.map +1 -1
  290. package/lib/dist/ref-map.js +48 -0
  291. package/lib/dist/resource/index.d.ts +0 -0
  292. package/lib/dist/resource/index.d.ts.map +0 -0
  293. package/lib/dist/resource/index.js +5 -0
  294. package/lib/dist/resource/program.d.ts +0 -0
  295. package/lib/dist/resource/program.d.ts.map +1 -1
  296. package/lib/dist/resource/program.js +20 -0
  297. package/lib/dist/resource/resource.d.ts +7 -1
  298. package/lib/dist/resource/resource.d.ts.map +1 -1
  299. package/lib/dist/resource/resource.js +48 -0
  300. package/lib/dist/resource/texture2d.d.ts +1 -0
  301. package/lib/dist/resource/texture2d.d.ts.map +1 -1
  302. package/lib/dist/resource/texture2d.js +20 -0
  303. package/lib/dist/resource/textureCube.d.ts +0 -0
  304. package/lib/dist/resource/textureCube.d.ts.map +1 -1
  305. package/lib/dist/resource/textureCube.js +17 -0
  306. package/lib/dist/shader/code.d.ts +12 -0
  307. package/lib/dist/shader/code.d.ts.map +1 -0
  308. package/lib/dist/shader/code.js +32 -0
  309. package/lib/dist/shader/fragment.d.ts +23 -0
  310. package/lib/dist/shader/fragment.d.ts.map +1 -0
  311. package/lib/dist/shader/fragment.js +37 -0
  312. package/lib/dist/shader/vertex.d.ts +23 -0
  313. package/lib/dist/shader/vertex.d.ts.map +1 -0
  314. package/lib/dist/shader/vertex.js +35 -0
  315. package/lib/dist/texture/index.d.ts +0 -0
  316. package/lib/dist/texture/index.d.ts.map +0 -0
  317. package/lib/dist/texture/index.js +3 -0
  318. package/lib/dist/texture/texture2d.d.ts +4 -3
  319. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  320. package/lib/dist/texture/texture2d.js +132 -0
  321. package/lib/dist/texture/textureCube.d.ts +0 -0
  322. package/lib/dist/texture/textureCube.d.ts.map +1 -1
  323. package/lib/dist/texture/textureCube.js +87 -0
  324. package/lib/dist/types/animation.d.ts +20 -0
  325. package/lib/dist/types/animation.d.ts.map +1 -0
  326. package/lib/dist/types/animation.js +2 -0
  327. package/lib/dist/types/arrays.d.ts +33 -0
  328. package/lib/dist/types/arrays.d.ts.map +1 -0
  329. package/lib/dist/types/arrays.js +2 -0
  330. package/lib/dist/types/context.d.ts +7 -2
  331. package/lib/dist/types/context.d.ts.map +1 -1
  332. package/lib/dist/types/context.js +2 -0
  333. package/lib/dist/types/gltf.d.ts +200 -0
  334. package/lib/dist/types/gltf.d.ts.map +1 -0
  335. package/lib/dist/types/gltf.js +117 -0
  336. package/lib/dist/types/guards.d.ts +25 -0
  337. package/lib/dist/types/guards.d.ts.map +1 -0
  338. package/lib/dist/types/guards.js +218 -0
  339. package/lib/dist/types/index.d.ts +2 -0
  340. package/lib/dist/types/index.d.ts.map +1 -1
  341. package/lib/dist/types/index.js +10 -0
  342. package/lib/dist/types/input-keyboard.d.ts +3 -0
  343. package/lib/dist/types/input-keyboard.d.ts.map +1 -1
  344. package/lib/dist/types/input-keyboard.js +2 -0
  345. package/lib/dist/types/input-pointer.d.ts +33 -20
  346. package/lib/dist/types/input-pointer.d.ts.map +1 -1
  347. package/lib/dist/types/input-pointer.js +2 -0
  348. package/lib/dist/types/mesh.d.ts +10 -0
  349. package/lib/dist/types/mesh.d.ts.map +1 -0
  350. package/lib/dist/types/mesh.js +2 -0
  351. package/lib/dist/types/painter.d.ts +0 -0
  352. package/lib/dist/types/painter.d.ts.map +0 -0
  353. package/lib/dist/types/painter.js +2 -0
  354. package/lib/dist/types/program.d.ts +15 -0
  355. package/lib/dist/types/program.d.ts.map +1 -1
  356. package/lib/dist/types/program.js +2 -0
  357. package/lib/dist/types/texture2d.d.ts +14 -6
  358. package/lib/dist/types/texture2d.d.ts.map +1 -1
  359. package/lib/dist/types/texture2d.js +2 -0
  360. package/lib/dist/types/textureCube.d.ts +39 -0
  361. package/lib/dist/types/textureCube.d.ts.map +1 -1
  362. package/lib/dist/types/textureCube.js +2 -0
  363. package/lib/dist/types/webgl.d.ts +28 -1
  364. package/lib/dist/types/webgl.d.ts.map +1 -1
  365. package/lib/dist/types/webgl.js +2 -0
  366. package/lib/dist/utils/action/camera.d.ts +13 -0
  367. package/lib/dist/utils/action/camera.d.ts.map +1 -0
  368. package/lib/dist/utils/action/camera.js +30 -0
  369. package/lib/dist/utils/action/index.d.ts +2 -0
  370. package/lib/dist/utils/action/index.d.ts.map +1 -0
  371. package/lib/dist/utils/action/index.js +2 -0
  372. package/lib/dist/utils/canvas.d.ts +9 -1
  373. package/lib/dist/utils/canvas.d.ts.map +1 -1
  374. package/lib/dist/utils/canvas.js +23 -0
  375. package/lib/dist/utils/ease-func/ease-func.d.ts +32 -0
  376. package/lib/dist/utils/ease-func/ease-func.d.ts.map +1 -0
  377. package/lib/dist/utils/ease-func/ease-func.js +142 -0
  378. package/lib/dist/utils/ease-func/index.d.ts +2 -0
  379. package/lib/dist/utils/ease-func/index.d.ts.map +1 -0
  380. package/lib/dist/utils/ease-func/index.js +2 -0
  381. package/lib/dist/utils/fetch/fetch.d.ts +2 -0
  382. package/lib/dist/utils/fetch/fetch.d.ts.map +1 -0
  383. package/lib/dist/utils/fetch/fetch.js +5 -0
  384. package/lib/dist/utils/fetch/index.d.ts +2 -0
  385. package/lib/dist/utils/fetch/index.d.ts.map +1 -0
  386. package/lib/dist/utils/fetch/index.js +2 -0
  387. package/lib/dist/utils/fullscreen.d.ts +21 -0
  388. package/lib/dist/utils/fullscreen.d.ts.map +1 -0
  389. package/lib/dist/utils/fullscreen.js +64 -0
  390. package/lib/dist/utils/index.d.ts +4 -0
  391. package/lib/dist/utils/index.d.ts.map +1 -1
  392. package/lib/dist/utils/index.js +6 -0
  393. package/lib/dist/utils/math.d.ts +3 -0
  394. package/lib/dist/utils/math.d.ts.map +1 -0
  395. package/lib/dist/utils/math.js +11 -0
  396. package/lib/dist/utils/ref-map.d.ts +22 -0
  397. package/lib/dist/utils/ref-map.d.ts.map +1 -0
  398. package/lib/dist/utils/ref-map.js +48 -0
  399. package/lib/dist/vao/index.d.ts +0 -0
  400. package/lib/dist/vao/index.d.ts.map +0 -0
  401. package/lib/dist/vao/index.js +2 -0
  402. package/lib/dist/vao/vao.d.ts +5 -1
  403. package/lib/dist/vao/vao.d.ts.map +1 -1
  404. package/lib/dist/vao/vao.js +67 -0
  405. package/package.json +2 -4
  406. package/lib/dist/index.js.map +0 -1
  407. package/lib/dist/mesh/mesh.d.ts +0 -11
  408. package/lib/dist/mesh/mesh.d.ts.map +0 -1
  409. package/lib/dist/painter/isometric/isometric.frag.d.ts +0 -3
  410. package/lib/dist/painter/isometric/isometric.frag.d.ts.map +0 -1
  411. package/lib/dist/painter/isometric/isometric.vert.d.ts +0 -3
  412. package/lib/dist/painter/isometric/isometric.vert.d.ts.map +0 -1
  413. package/lib/dist/painter/primitive/primitive.frag.d.ts +0 -3
  414. package/lib/dist/painter/primitive/primitive.frag.d.ts.map +0 -1
  415. package/lib/dist/painter/primitive/primitive.vert.d.ts +0 -3
  416. package/lib/dist/painter/primitive/primitive.vert.d.ts.map +0 -1
  417. package/lib/dist/painter/sprites/sprites-painter.frag.d.ts +0 -3
  418. package/lib/dist/painter/sprites/sprites-painter.frag.d.ts.map +0 -1
  419. package/lib/dist/painter/sprites/sprites-painter.vert.d.ts +0 -3
  420. package/lib/dist/painter/sprites/sprites-painter.vert.d.ts.map +0 -1
@@ -1,48 +1,135 @@
1
- import { TgdCamera } from "../camera";
2
- import { TgdPainter } from "../painter/painter";
3
- import { TgdContextInterface, TgdProgram } from "../types";
4
- import { TgdResourceProgram, TgdResourceTexture2D, TgdResourceTextureCube } from "../resource";
5
1
  import { TgdBuffer, TgdBufferOptions } from "../buffer";
2
+ import { TgdCamera } from "../camera";
6
3
  import { TgdDataset } from "../dataset";
7
- import { TgdVertexArray } from "../vao";
8
4
  import { TgdInputs } from "../input";
5
+ import { TgdResourceProgram, TgdResourceTexture2D, TgdResourceTextureCube } from "../resource";
6
+ import { TgdContextInterface, TgdProgram } from "../types";
9
7
  import { TgdPainterFunction as TgdPainterFunctionType } from "../types/painter";
8
+ import { TgdVertexArray } from "../vao";
9
+ import { TgdPainter } from "../painter/painter";
10
+ import { TgdAnimation } from "../types/animation";
11
+ /**
12
+ * You can pass all the attributes of the [WebGLContextAttributes](https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextAttributes)
13
+ * object.
14
+ * @see {@link TgdContext}
15
+ */
10
16
  export type TgdContextOptions = WebGLContextAttributes & {
11
- onResize?(gl: WebGL2RenderingContext, width: number, height: number): void;
17
+ /**
18
+ * You can override the behaviour for when a resize even occurs,
19
+ * by providing a callback `onResize(...)`.
20
+ *
21
+ * By default, this is what will happen:
22
+ * ```
23
+ * gl.canvas.width = width
24
+ * gl.canvas.height = height
25
+ * gl.viewport(0, 0, width, height)
26
+ * ```
27
+ */
28
+ onResize?(this: void, context: TgdContextInterface, width: number, height: number): void;
29
+ name?: string;
12
30
  };
31
+ /**
32
+ * This class gives you a [WebGL2RenderingContext](https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext) for a given canvas,
33
+ * through its public readonly attribute `gl`.
34
+ *
35
+ * It also acts as a resource manager for most of the WebGL2 reources you need.
36
+ *
37
+ * @example
38
+ * ```
39
+ * import { TgdContext, TgdPainterClear } from "@tgd"
40
+ *
41
+ * export function paint(canvas: HTMLCanvasElement) {
42
+ * const ctx = new TgdContext(canvas)
43
+ * const clear = new TgdPainterClear(ctx, { color: [1, 0.667, 0, 1] })
44
+ * ctx.add(clear)
45
+ * ctx.paint()
46
+ * }
47
+ * ```
48
+ */
13
49
  export declare class TgdContext implements TgdContextInterface {
14
50
  readonly canvas: HTMLCanvasElement;
51
+ private readonly options;
52
+ private static incrementalId;
53
+ readonly name: string;
15
54
  readonly gl: WebGL2RenderingContext;
16
55
  readonly inputs: TgdInputs;
17
- camera: TgdCamera;
56
+ /**
57
+ * Resource manager for WebGLProgram.
58
+ */
18
59
  readonly programs: TgdResourceProgram;
19
60
  readonly textures2D: TgdResourceTexture2D;
20
61
  private _texturesCube;
62
+ private _camera;
21
63
  private readonly observer;
22
64
  private readonly painters;
23
65
  private isPlaying;
24
66
  private requestAnimationFrame;
25
67
  private lastTime;
68
+ private readonly animationManager;
69
+ /**
70
+ * @param canvas The canvas to which attach a WebGL2 context.
71
+ * @see {@link TgdContextOptions}
72
+ */
26
73
  constructor(canvas: HTMLCanvasElement, options?: TgdContextOptions);
74
+ get camera(): TgdCamera;
75
+ set camera(camera: TgdCamera);
27
76
  get texturesCube(): TgdResourceTextureCube;
77
+ animSchedule(animation: TgdAnimation): TgdAnimation;
78
+ animCancel(animation: TgdAnimation): void;
28
79
  get onEnter(): TgdPainterFunctionType | undefined;
29
80
  set onEnter(v: TgdPainterFunctionType | undefined);
30
81
  get onExit(): TgdPainterFunctionType | undefined;
31
82
  set onExit(v: TgdPainterFunctionType | undefined);
32
83
  get width(): number;
33
84
  get height(): number;
85
+ /**
86
+ * Is the animation playing?
87
+ */
34
88
  get playing(): boolean;
89
+ /**
90
+ * If `playing` is true, the method `paint()` will be called
91
+ * for every animation frame.
92
+ * @see paint()
93
+ */
35
94
  set playing(value: boolean);
95
+ /**
96
+ * Start the animation.
97
+ * You can achieve the same result with `context.playing = true`.
98
+ *
99
+ * @see playing
100
+ */
36
101
  play(): void;
102
+ /**
103
+ * Pause the animation.
104
+ * You can achieve the same result with `context.playing = false`.
105
+ *
106
+ * @see playing
107
+ */
37
108
  pause(): void;
109
+ /**
110
+ * Check if `painter` already exist in the current list of painters.
111
+ */
38
112
  has(painter: TgdPainter): boolean;
113
+ /**
114
+ * Add one or more painters.
115
+ */
39
116
  add(...painters: TgdPainter[]): void;
117
+ /**
118
+ * Remove one or more painters.
119
+ * */
40
120
  remove(...painters: TgdPainter[]): void;
41
121
  removeAll(): void;
42
122
  createBuffer(data?: BufferSource, options?: Partial<TgdBufferOptions>): TgdBuffer;
43
- createVAO(program?: TgdProgram, datasets?: TgdDataset<any>[], elements?: Uint8Array | Uint16Array | Uint32Array): TgdVertexArray;
123
+ createFramebuffer(): WebGLFramebuffer;
124
+ createVAO(program?: TgdProgram, datasets?: Readonly<TgdDataset>[], elements?: Uint8Array | Uint16Array | Uint32Array | BufferSource): TgdVertexArray;
125
+ takeSnapshot(target: HTMLCanvasElement): void;
126
+ lookupWebglConstant(value: number): string;
127
+ /**
128
+ * Trigger the painters to render the scene.
129
+ */
44
130
  readonly paint: () => void;
45
131
  private readonly actualPaint;
46
132
  destroy(): void;
133
+ stateReset(): WebGL2RenderingContext;
47
134
  }
48
135
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,kBAAgB;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,iBAAe;AACzD,OAAO,EACH,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACzB,oBAAkB;AACnB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAgB;AACtD,OAAO,EAAE,UAAU,EAAE,mBAAiB;AACtC,OAAO,EAAE,cAAc,EAAE,eAAa;AACtC,OAAO,EAAE,SAAS,EAAE,iBAAe;AACnC,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,yBAAuB;AAO9E,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,GAAG;IAerD,QAAQ,CAAC,CAAC,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7E,CAAA;AAoBD,qBAAa,UAAW,YAAW,mBAAmB;aAsB9B,MAAM,EAAE,iBAAiB;IArB7C,SAAgB,EAAE,EAAE,sBAAsB,CAAA;IAC1C,SAAgB,MAAM,EAAE,SAAS,CAAA;IAC1B,MAAM,EAAE,SAAS,CAAA;IAIxB,SAAgB,QAAQ,EAAE,kBAAkB,CAAA;IAC5C,SAAgB,UAAU,EAAE,oBAAoB,CAAA;IAChD,OAAO,CAAC,aAAa,CAAsC;IAE3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,QAAQ,CAAK;gBAOD,MAAM,EAAE,iBAAiB,EACzC,OAAO,GAAE,iBAAsB;IAoBnC,IAAI,YAAY,IAAI,sBAAsB,CAKzC;IAED,IAAI,OAAO,IAAI,sBAAsB,GAAG,SAAS,CAEhD;IACD,IAAI,OAAO,CAAC,CAAC,EAAE,sBAAsB,GAAG,SAAS,EAEhD;IAED,IAAI,MAAM,IAAI,sBAAsB,GAAG,SAAS,CAE/C;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,sBAAsB,GAAG,SAAS,EAE/C;IAED,IAAI,KAAK,WAER;IAED,IAAI,MAAM,WAET;IAKD,IAAI,OAAO,IAQQ,OAAO,CANzB;IAMD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAKzB;IAQD,IAAI;IAUJ,KAAK;IAOL,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAOjC,GAAG,CAAC,GAAG,QAAQ,EAAE,UAAU,EAAE;IAO7B,MAAM,CAAC,GAAG,QAAQ,EAAE,UAAU,EAAE;IAIhC,SAAS;IAIT,YAAY,CACR,IAAI,CAAC,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC,SAAS;IAIZ,SAAS,CACL,OAAO,CAAC,EAAE,UAAU,EACpB,QAAQ,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAC5B,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,GAClD,cAAc;IAOjB,QAAQ,CAAC,KAAK,aAKb;IAED,OAAO,CAAC,QAAQ,CAAC,WAAW,CAe3B;IAED,OAAO;CAMV"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,297 @@
1
+ import { TgdBuffer } from "./../buffer/index.js";
2
+ import { TgdCameraPerspective } from "./../camera/index.js";
3
+ import { TgdInputs } from "./../input/index.js";
4
+ import { TgdResourceProgram, TgdResourceTexture2D, TgdResourceTextureCube, } from "./../resource/index.js";
5
+ import { TgdVertexArray } from "./../vao/index.js";
6
+ import { TgdPainterGroup } from "../painter/group.js";
7
+ import { tgdCanvasCreate } from "../utils/index.js";
8
+ import { TgdManagerAnimation } from "./animation/animation-manager.js";
9
+ /**
10
+ * This class gives you a [WebGL2RenderingContext](https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext) for a given canvas,
11
+ * through its public readonly attribute `gl`.
12
+ *
13
+ * It also acts as a resource manager for most of the WebGL2 reources you need.
14
+ *
15
+ * @example
16
+ * ```
17
+ * import { TgdContext, TgdPainterClear } from "@tgd"
18
+ *
19
+ * export function paint(canvas: HTMLCanvasElement) {
20
+ * const ctx = new TgdContext(canvas)
21
+ * const clear = new TgdPainterClear(ctx, { color: [1, 0.667, 0, 1] })
22
+ * ctx.add(clear)
23
+ * ctx.paint()
24
+ * }
25
+ * ```
26
+ */
27
+ export class TgdContext {
28
+ canvas;
29
+ options;
30
+ static incrementalId = 1;
31
+ name;
32
+ gl;
33
+ inputs;
34
+ /**
35
+ * Resource manager for WebGLProgram.
36
+ */
37
+ programs;
38
+ textures2D;
39
+ _texturesCube = null;
40
+ _camera;
41
+ observer;
42
+ painters;
43
+ isPlaying = false;
44
+ requestAnimationFrame = -1;
45
+ // Last time the context has been painted.
46
+ lastTime = -1;
47
+ animationManager = new TgdManagerAnimation();
48
+ /**
49
+ * @param canvas The canvas to which attach a WebGL2 context.
50
+ * @see {@link TgdContextOptions}
51
+ */
52
+ constructor(canvas, options = {}) {
53
+ this.canvas = canvas;
54
+ this.options = options;
55
+ const gl = canvas.getContext("webgl2", options);
56
+ if (!gl)
57
+ throw Error("Unable to create a WebGL2 context!");
58
+ this.gl = gl;
59
+ this.programs = new TgdResourceProgram(gl);
60
+ this.textures2D = new TgdResourceTexture2D(this);
61
+ this.observer = new ResizeObserver(() => {
62
+ const width = canvas.clientWidth;
63
+ const height = canvas.clientHeight;
64
+ canvas.width = width;
65
+ canvas.height = height;
66
+ gl.viewport(0, 0, width, height);
67
+ this.paint();
68
+ options.onResize?.(this, canvas.clientWidth, canvas.clientHeight);
69
+ });
70
+ this.observer.observe(canvas);
71
+ this.inputs = new TgdInputs(canvas);
72
+ this._camera = new TgdCameraPerspective();
73
+ this.painters = new TgdPainterGroup();
74
+ this.name = options.name ?? `TgdContext#${TgdContext.incrementalId++}`;
75
+ // Prevent system gestures.
76
+ canvas.style.touchAction = "none";
77
+ }
78
+ get camera() {
79
+ return this._camera;
80
+ }
81
+ set camera(camera) {
82
+ if (camera === this._camera)
83
+ return;
84
+ this._camera.eventTransformChange.removeListener(this.paint);
85
+ camera.eventTransformChange.addListener(this.paint);
86
+ this._camera = camera;
87
+ this.paint();
88
+ }
89
+ get texturesCube() {
90
+ if (!this._texturesCube) {
91
+ this._texturesCube = new TgdResourceTextureCube(this);
92
+ }
93
+ return this._texturesCube;
94
+ }
95
+ animSchedule(animation) {
96
+ const result = this.animationManager.schedule(animation);
97
+ this.paint();
98
+ return result;
99
+ }
100
+ animCancel(animation) {
101
+ this.animationManager.cancel(animation);
102
+ }
103
+ get onEnter() {
104
+ return this.painters.onEnter;
105
+ }
106
+ set onEnter(v) {
107
+ this.painters.onEnter = v;
108
+ }
109
+ get onExit() {
110
+ return this.painters.onExit;
111
+ }
112
+ set onExit(v) {
113
+ this.painters.onExit = v;
114
+ }
115
+ get width() {
116
+ return this.gl.drawingBufferWidth;
117
+ }
118
+ get height() {
119
+ return this.gl.drawingBufferHeight;
120
+ }
121
+ /**
122
+ * Is the animation playing?
123
+ */
124
+ get playing() {
125
+ return this.isPlaying;
126
+ }
127
+ /**
128
+ * If `playing` is true, the method `paint()` will be called
129
+ * for every animation frame.
130
+ * @see paint()
131
+ */
132
+ set playing(value) {
133
+ if (value === this.isPlaying)
134
+ return;
135
+ if (value)
136
+ this.paint();
137
+ this.isPlaying = value;
138
+ }
139
+ /**
140
+ * Start the animation.
141
+ * You can achieve the same result with `context.playing = true`.
142
+ *
143
+ * @see playing
144
+ */
145
+ play() {
146
+ this.playing = true;
147
+ }
148
+ /**
149
+ * Pause the animation.
150
+ * You can achieve the same result with `context.playing = false`.
151
+ *
152
+ * @see playing
153
+ */
154
+ pause() {
155
+ this.playing = false;
156
+ }
157
+ /**
158
+ * Check if `painter` already exist in the current list of painters.
159
+ */
160
+ has(painter) {
161
+ return this.painters.has(painter);
162
+ }
163
+ /**
164
+ * Add one or more painters.
165
+ */
166
+ add(...painters) {
167
+ this.painters.add(...painters);
168
+ }
169
+ /**
170
+ * Remove one or more painters.
171
+ * */
172
+ remove(...painters) {
173
+ this.painters.remove(...painters);
174
+ }
175
+ removeAll() {
176
+ this.painters.removeAll();
177
+ }
178
+ createBuffer(data, options) {
179
+ return new TgdBuffer(this.gl, data, options);
180
+ }
181
+ createFramebuffer() {
182
+ const fb = this.gl.createFramebuffer();
183
+ if (!fb)
184
+ throw Error("Unable to create a WebGL2 Framebuffer!");
185
+ return fb;
186
+ }
187
+ createVAO(program, datasets, elements) {
188
+ return new TgdVertexArray(this.gl, program, datasets, elements);
189
+ }
190
+ takeSnapshot(target) {
191
+ const ctx = target.getContext("2d");
192
+ if (!ctx)
193
+ throw Error("[TgdContext.takeSnapshot] We cannot get a 2D context for the target canvas! Maybe it already has another type of context.");
194
+ const { width, height } = target;
195
+ const canvas = tgdCanvasCreate(width, height);
196
+ const context = new TgdContext(canvas, this.options);
197
+ this.painters.forEachChild(painter => context.add(painter));
198
+ context.actualPaint(this.lastTime);
199
+ context.gl.finish();
200
+ ctx.drawImage(canvas, 0, 0);
201
+ }
202
+ lookupWebglConstant(value) {
203
+ const { gl } = this;
204
+ for (const key in gl) {
205
+ if (gl[key] === value)
206
+ return key;
207
+ }
208
+ return `Unknown gl[${value}]`;
209
+ }
210
+ /**
211
+ * Trigger the painters to render the scene.
212
+ */
213
+ paint = () => {
214
+ window.cancelAnimationFrame(this.requestAnimationFrame);
215
+ this.requestAnimationFrame = window.requestAnimationFrame(this.actualPaint);
216
+ };
217
+ actualPaint = (time) => {
218
+ const { lastTime, gl } = this;
219
+ if (lastTime < 0) {
220
+ this.lastTime = time;
221
+ // First frame, let's skip it to get better timing.
222
+ this.paint();
223
+ return;
224
+ }
225
+ const delay = time - this.lastTime;
226
+ this.lastTime = time;
227
+ this._camera.screenWidth = gl.drawingBufferWidth;
228
+ this._camera.screenHeight = gl.drawingBufferHeight;
229
+ this.painters.paint(time, delay);
230
+ if (this.animationManager.paint(time) || this.isPlaying)
231
+ this.paint();
232
+ };
233
+ destroy() {
234
+ window.cancelAnimationFrame(this.requestAnimationFrame);
235
+ this.playing = false;
236
+ this.painters.delete();
237
+ this.observer.unobserve(this.canvas);
238
+ }
239
+ // eslint-disable-next-line max-statements
240
+ stateReset() {
241
+ const { gl } = this;
242
+ const numAttribs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);
243
+ const tmp = gl.createBuffer();
244
+ gl.bindBuffer(gl.ARRAY_BUFFER, tmp);
245
+ for (let ii = 0; ii < numAttribs; ++ii) {
246
+ gl.disableVertexAttribArray(ii);
247
+ gl.vertexAttribPointer(ii, 4, gl.FLOAT, false, 0, 0);
248
+ gl.vertexAttrib1f(ii, 0);
249
+ }
250
+ gl.deleteBuffer(tmp);
251
+ const numTextureUnits = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);
252
+ for (let ii = 0; ii < numTextureUnits; ++ii) {
253
+ gl.activeTexture(gl.TEXTURE0 + ii);
254
+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, null);
255
+ gl.bindTexture(gl.TEXTURE_2D, null);
256
+ }
257
+ gl.activeTexture(gl.TEXTURE0);
258
+ gl.useProgram(null);
259
+ gl.bindBuffer(gl.ARRAY_BUFFER, null);
260
+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
261
+ gl.bindFramebuffer(gl.FRAMEBUFFER, null);
262
+ gl.bindRenderbuffer(gl.RENDERBUFFER, null);
263
+ gl.disable(gl.BLEND);
264
+ gl.disable(gl.CULL_FACE);
265
+ gl.disable(gl.DEPTH_TEST);
266
+ gl.disable(gl.DITHER);
267
+ gl.disable(gl.SCISSOR_TEST);
268
+ gl.blendColor(0, 0, 0, 0);
269
+ gl.blendEquation(gl.FUNC_ADD);
270
+ gl.blendFunc(gl.ONE, gl.ZERO);
271
+ gl.clearColor(0, 0, 0, 0);
272
+ gl.clearDepth(1);
273
+ gl.clearStencil(-1);
274
+ gl.colorMask(true, true, true, true);
275
+ gl.cullFace(gl.BACK);
276
+ gl.depthFunc(gl.LESS);
277
+ gl.depthMask(true);
278
+ gl.depthRange(0, 1);
279
+ gl.frontFace(gl.CCW);
280
+ gl.hint(gl.GENERATE_MIPMAP_HINT, gl.DONT_CARE);
281
+ gl.lineWidth(1);
282
+ gl.pixelStorei(gl.PACK_ALIGNMENT, 4);
283
+ gl.pixelStorei(gl.UNPACK_ALIGNMENT, 4);
284
+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
285
+ gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
286
+ gl.polygonOffset(0, 0);
287
+ gl.sampleCoverage(1, false);
288
+ gl.scissor(0, 0, gl.canvas.width, gl.canvas.height);
289
+ gl.stencilFunc(gl.ALWAYS, 0, 0xffffffff);
290
+ gl.stencilMask(0xffffffff);
291
+ gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);
292
+ gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);
293
+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);
294
+ return gl;
295
+ }
296
+ }
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxhQUFhLENBQUE7QUFDekQsT0FBTyxFQUFhLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdEMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsc0JBQXNCLEdBQ3pCLE1BQU0sZUFBZSxDQUFBO0FBR3RCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWxELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUE2Qm5FOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBMkJDO0lBQ0M7SUEzQmIsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUE7SUFFaEIsSUFBSSxDQUFRO0lBQ1osRUFBRSxDQUF3QjtJQUMxQixNQUFNLENBQVc7SUFDakM7O09BRUc7SUFDYSxRQUFRLENBQW9CO0lBQzVCLFVBQVUsQ0FBc0I7SUFFeEMsYUFBYSxHQUFrQyxJQUFJLENBQUE7SUFDbkQsT0FBTyxDQUFXO0lBQ1QsUUFBUSxDQUFnQjtJQUN4QixRQUFRLENBQWlCO0lBQ2xDLFNBQVMsR0FBRyxLQUFLLENBQUE7SUFDakIscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDbEMsMENBQTBDO0lBQ2xDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNKLGdCQUFnQixHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQTtJQUU3RDs7O09BR0c7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
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export * from "./context.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFdBQVcsQ0FBQSJ9
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export * from "./orbit.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJvbGxlci9jYW1lcmEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUEifQ==
@@ -1,19 +1,94 @@
1
+ import { TgdContextInterface, TgdInputPointerModifierKeys } from "../../types";
1
2
  import { TgdEvent } from "../../event";
2
- import { TgdContextInterface } from "../../types";
3
+ import { TgdCamera } from "../../camera";
4
+ export interface TgdControllerCameraOrbitZoomRequest extends TgdInputPointerModifierKeys {
5
+ x: number;
6
+ y: number;
7
+ }
3
8
  export interface TgdControllerCameraOrbitOptions {
9
+ minZoom: number;
10
+ maxZoom: number;
4
11
  speedOrbit: number;
5
12
  speedZoom: number;
13
+ speedPanning: number;
14
+ /**
15
+ * Time in msec during which the orbiting continues
16
+ * after the pointer stop touching.
17
+ */
18
+ inertiaOrbit: number;
19
+ /**
20
+ * Time in msec during which the zooming continues
21
+ * after the pointer stop touching.
22
+ *
23
+ * Default to 0.
24
+ */
25
+ inertiaZoom: number;
26
+ /**
27
+ * Time in msec during which the panning continues
28
+ * after the pointer stop touching.
29
+ *
30
+ * Default to 0.
31
+ */
32
+ inertiaPanning: number;
33
+ /**
34
+ * If `true`, pannig will only act on `camera.shift`,
35
+ * not on `camera.target`.
36
+ *
37
+ * Default to 0.
38
+ */
39
+ fixedTarget: boolean;
40
+ /**
41
+ * Zooming can be done by the mouse wheel.
42
+ * In this case, we may want to prevent it when the
43
+ * canvas is not in fullscreen, to let the rest of
44
+ * the page to scroll.
45
+ *
46
+ * This function, if defined, will be called just
47
+ * before the zoom event. If it returns `false`,
48
+ * the event is not dispatched.
49
+ */
50
+ onZoomRequest(this: void, evt: TgdControllerCameraOrbitZoomRequest): boolean;
6
51
  }
7
52
  export declare class TgdControllerCameraOrbit {
8
53
  private readonly context;
54
+ readonly eventChange: TgdEvent<TgdCamera>;
55
+ minZoom: number;
56
+ maxZoom: number;
57
+ /**
58
+ * The camera will only move if `enabled === true`.
59
+ */
9
60
  enabled: boolean;
10
61
  speedZoom: number;
11
62
  speedOrbit: number;
12
- readonly eventZoomChange: TgdEvent<TgdControllerCameraOrbit>;
13
- readonly eventOrbitChange: TgdEvent<TgdControllerCameraOrbit>;
14
- constructor(context: TgdContextInterface, { speedZoom, speedOrbit, }?: Partial<TgdControllerCameraOrbitOptions>);
63
+ speedPanning: number;
64
+ inertiaZoom: number;
65
+ inertiaOrbit: number;
66
+ inertiaPanning: number;
67
+ /**
68
+ * If `true`, pannig will only act on `camera.shift`,
69
+ * not on `camera.target`.
70
+ */
71
+ fixedTarget: boolean;
72
+ /**
73
+ * Zooming can be done by the mouse wheel.
74
+ * In this case, we may want to prevent it when the
75
+ * canvas is not in fullscreen, to let the rest of
76
+ * the page to scroll.
77
+ *
78
+ * This function, if defined, will be called just
79
+ * before the zoom event. If it returns `false`,
80
+ * the event is not dispatched.
81
+ */
82
+ onZoomRequest: (this: void, evt: TgdControllerCameraOrbitZoomRequest) => boolean;
83
+ private animOrbit;
84
+ constructor(context: TgdContextInterface, { minZoom, maxZoom, speedZoom, speedOrbit, speedPanning, inertiaZoom, inertiaOrbit, inertiaPanning, fixedTarget, onZoomRequest, }?: Partial<TgdControllerCameraOrbitOptions>);
15
85
  detach(): void;
16
86
  private readonly handleMove;
87
+ private orbit;
88
+ private readonly handleMoveStart;
89
+ private readonly handleMoveEnd;
90
+ private handlePan;
91
+ private handleRotateAroundZ;
17
92
  private fireOrbitChange;
18
93
  private readonly handleZoom;
19
94
  private fireZoomChange;
@@ -1 +1 @@
1
- {"version":3,"file":"orbit.d.ts","sourceRoot":"","sources":["../../../src/controller/camera/orbit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,oBAAe;AAClC,OAAO,EAAE,mBAAmB,EAAwB,oBAAe;AAEnE,MAAM,WAAW,+BAA+B;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,wBAAwB;IAW7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPrB,OAAO,UAAO;IACd,SAAS,SAAI;IACb,UAAU,SAAI;IACrB,SAAgB,eAAe,qCAA2C;IAC1E,SAAgB,gBAAgB,qCAA2C;gBAGtD,OAAO,EAAE,mBAAmB,EAC7C,EACI,SAAa,EACb,UAAc,GACjB,GAAE,OAAO,CAAC,+BAA+B,CAAM;IASpD,MAAM;IAMN,OAAO,CAAC,QAAQ,CAAC,UAAU,CAmC1B;IAED,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAc1B;IAED,OAAO,CAAC,cAAc;CAIzB"}
1
+ {"version":3,"file":"orbit.d.ts","sourceRoot":"","sources":["../../../src/controller/camera/orbit.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,mBAAmB,EAEnB,2BAA2B,EAE9B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,mCACb,SAAQ,2BAA2B;IACnC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,+BAA+B;IAC5C,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;;;;;;;;OASG;IACH,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,mCAAmC,GAAG,OAAO,CAAA;CAC/E;AAED,qBAAa,wBAAwB;IAqC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IApC5B,SAAgB,WAAW,sBAA4B;IAChD,OAAO,SAAO;IACd,OAAO,SAAW;IACzB;;OAEG;IACI,OAAO,UAAO;IACd,SAAS,SAAI;IACb,UAAU,SAAI;IACd,YAAY,SAAI;IAChB,WAAW,SAAI;IACf,YAAY,SAAI;IAChB,cAAc,SAAI;IACzB;;;OAGG;IACI,WAAW,UAAQ;IAC1B;;;;;;;;;OASG;IACI,aAAa,EAAE,CAClB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,mCAAmC,KACvC,OAAO,CAAA;IAEZ,OAAO,CAAC,SAAS,CAA4B;gBAGxB,OAAO,EAAE,mBAAmB,EAC7C,EACI,OAAc,EACd,OAAkB,EAClB,SAAa,EACb,UAAc,EACd,YAAgB,EAChB,WAAe,EACf,YAAgB,EAChB,cAAkB,EAClB,WAAmB,EACnB,aAA0B,GAC7B,GAAE,OAAO,CAAC,+BAA+B,CAAM;IAmBpD,MAAM;IAMN,OAAO,CAAC,QAAQ,CAAC,UAAU,CAkB1B;IAED,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK/B;IAED,OAAO,CAAC,QAAQ,CAAC,aAAa,CAsB7B;IAED,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAuB1B;IAED,OAAO,CAAC,cAAc;CAGzB"}