@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
File without changes
File without changes
@@ -0,0 +1,37 @@
1
+ export class TgdBuffer {
2
+ gl;
3
+ buffer;
4
+ _target;
5
+ _usage;
6
+ constructor(gl, data, options) {
7
+ this.gl = gl;
8
+ const buffer = gl.createBuffer();
9
+ if (!buffer)
10
+ throw Error("Unable to create WebGLBuffer!");
11
+ this._target = options?.target ?? "ARRAY_BUFFER";
12
+ this._usage = options?.usage ?? "STATIC_DRAW";
13
+ this.buffer = buffer;
14
+ if (data) {
15
+ this.bufferData(data, options);
16
+ }
17
+ }
18
+ get target() {
19
+ return this._target;
20
+ }
21
+ bind(target) {
22
+ const { gl, buffer } = this;
23
+ this._target = target ?? this._target;
24
+ gl.bindBuffer(gl[this._target], buffer);
25
+ }
26
+ bufferData(data, options = {}) {
27
+ const { gl } = this;
28
+ this.bind(options.target);
29
+ this._usage = options.usage ?? this._usage;
30
+ gl.bufferData(gl[this._target], data, gl[this._usage]);
31
+ }
32
+ delete() {
33
+ const { gl, buffer } = this;
34
+ gl.deleteBuffer(buffer);
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1ZmZlci9idWZmZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEJBLE1BQU0sT0FBTyxTQUFTO0lBT0U7SUFOSixNQUFNLENBQWE7SUFFM0IsT0FBTyxDQUF1QjtJQUM5QixNQUFNLENBQXNCO0lBRXBDLFlBQ29CLEVBQTBCLEVBQzFDLElBQW1CLEVBQ25CLE9BQW1DO1FBRm5CLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBSTFDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLENBQUMsTUFBTTtZQUFFLE1BQU0sS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUE7UUFFekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLEVBQUUsTUFBTSxJQUFJLGNBQWMsQ0FBQTtRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFBRSxLQUFLLElBQUksYUFBYSxDQUFBO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUN2QixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQThCO1FBQy9CLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUE7UUFDckMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBa0IsRUFBRSxVQUFxQyxFQUFFO1FBQ2xFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDMUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUVELE1BQU07UUFDRixNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQTtRQUMzQixFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLENBQUM7Q0FDSiJ9
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export * from "./buffer.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVmZmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFBIn0=
@@ -1,25 +1,27 @@
1
- import { TgdMat4 } from "@/math";
2
- import { TgdCamera } from "./camera";
1
+ import { TgdMat4, TgdVec3 } from "../math";
2
+ import { TgdCamera, TgdCameraOptions } from "./camera";
3
+ export interface TgdCameraOrthographicOptions extends TgdCameraOptions {
4
+ spaceHeight?: number;
5
+ }
3
6
  export declare class TgdCameraOrthographic extends TgdCamera {
4
- private dirtyProjection;
5
7
  private readonly _matrixProjection;
6
- private _width;
7
- private _height;
8
8
  private _spaceHeight;
9
- private _near;
10
- private _far;
11
- constructor();
9
+ private readonly _ray;
10
+ constructor(options?: TgdCameraOrthographicOptions);
11
+ copyProjectionFrom(camera: TgdCameraOrthographic): this;
12
+ castRay(screenX: number, screenY: number): Readonly<{
13
+ origin: TgdVec3;
14
+ direction: TgdVec3;
15
+ }>;
12
16
  get spaceHeight(): number;
13
17
  set spaceHeight(v: number);
14
- get screenWidth(): number;
15
- set screenWidth(v: number);
16
- get screenHeight(): number;
17
- set screenHeight(v: number);
18
18
  get near(): number;
19
19
  set near(v: number);
20
20
  get far(): number;
21
21
  set far(v: number);
22
22
  get matrixProjection(): TgdMat4;
23
+ protected getSpaceHeightAtTarget(): number;
24
+ protected setSpaceHeightAtTarget(v: number): void;
23
25
  private updateProjectionIfNeeded;
24
26
  }
25
27
  //# sourceMappingURL=camera-orthographic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"camera-orthographic.d.ts","sourceRoot":"","sources":["../../src/camera/camera-orthographic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,qBAAa,qBAAsB,SAAQ,SAAS;IAChD,OAAO,CAAC,eAAe,CAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgB;IAClD,OAAO,CAAC,MAAM,CAAO;IACrB,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,IAAI,CAAM;;IAMlB,IAAI,WAAW,IAGI,MAAM,CADxB;IACD,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,EAKxB;IAED,IAAI,WAAW,IAGI,MAAM,CADxB;IACD,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,EAKxB;IAED,IAAI,YAAY,IAGI,MAAM,CADzB;IACD,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM,EAKzB;IAED,IAAI,IAAI,IAGI,MAAM,CADjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAKjB;IAED,IAAI,GAAG,IAGI,MAAM,CADhB;IACD,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,EAKhB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAG9B;IAED,OAAO,CAAC,wBAAwB;CA8BnC"}
1
+ {"version":3,"file":"camera-orthographic.d.ts","sourceRoot":"","sources":["../../src/camera/camera-orthographic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEtD,MAAM,WAAW,4BAA6B,SAAQ,gBAAgB;IAClE,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgB;IAClD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAGpB;gBAEW,OAAO,GAAE,4BAAiC;IAKtD,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAKvD,OAAO,CACH,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAChB,QAAQ,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAYpD,IAAI,WAAW,IAGI,MAAM,CADxB;IACD,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,EAKxB;IAED,IAAI,IAAI,IAGI,MAAM,CADjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAKjB;IAED,IAAI,GAAG,IAGI,MAAM,CADhB;IACD,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,EAKhB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAG9B;IAED,SAAS,CAAC,sBAAsB;IAIhC,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,MAAM;IAI1C,OAAO,CAAC,wBAAwB;CA8BnC"}
@@ -0,0 +1,97 @@
1
+ import { TgdMat4, TgdVec3 } from "./../math/index.js";
2
+ import { TgdCamera } from "./camera.js";
3
+ export class TgdCameraOrthographic extends TgdCamera {
4
+ _matrixProjection = new TgdMat4();
5
+ _spaceHeight = 10;
6
+ _ray = {
7
+ origin: new TgdVec3(),
8
+ direction: new TgdVec3(),
9
+ };
10
+ constructor(options = {}) {
11
+ super(options);
12
+ this.spaceHeight = options.spaceHeight ?? 10;
13
+ }
14
+ copyProjectionFrom(camera) {
15
+ this.spaceHeight = camera.spaceHeight;
16
+ return this;
17
+ }
18
+ castRay(screenX, screenY) {
19
+ const { origin, direction } = this._ray;
20
+ direction.from(this.axisZ);
21
+ const h = this.spaceHeight * 0.5;
22
+ const w = h * this.screenAspectRatio;
23
+ origin
24
+ .from(this.position)
25
+ .addWithScale(this.axisX, w * screenX)
26
+ .addWithScale(this.axisY, h * screenY);
27
+ return this._ray;
28
+ }
29
+ get spaceHeight() {
30
+ return this._spaceHeight;
31
+ }
32
+ set spaceHeight(v) {
33
+ if (v === this._spaceHeight)
34
+ return;
35
+ this._spaceHeight = v;
36
+ this.dirtyProjection = true;
37
+ }
38
+ get near() {
39
+ return this._near;
40
+ }
41
+ set near(v) {
42
+ if (v === this._near)
43
+ return;
44
+ this._near = v;
45
+ this.dirtyProjection = true;
46
+ }
47
+ get far() {
48
+ return this._far;
49
+ }
50
+ set far(v) {
51
+ if (v === this._far)
52
+ return;
53
+ this._far = v;
54
+ this.dirtyProjection = true;
55
+ }
56
+ get matrixProjection() {
57
+ this.updateProjectionIfNeeded();
58
+ return this._matrixProjection;
59
+ }
60
+ getSpaceHeightAtTarget() {
61
+ return this.spaceHeight;
62
+ }
63
+ setSpaceHeightAtTarget(v) {
64
+ this.spaceHeight = v;
65
+ }
66
+ updateProjectionIfNeeded() {
67
+ if (!this.dirtyProjection)
68
+ return;
69
+ const { near, far, screenAspectRatio, _spaceHeight, zoom } = this;
70
+ const top = _spaceHeight / (zoom + zoom);
71
+ const bottom = -top;
72
+ const right = top * screenAspectRatio;
73
+ const left = -right;
74
+ const out = this._matrixProjection;
75
+ const lr = 1 / (left - right);
76
+ const bt = 1 / (bottom - top);
77
+ const nf = 1 / (near - far);
78
+ out[0] = -2 * lr;
79
+ out[1] = 0;
80
+ out[2] = 0;
81
+ out[3] = 0;
82
+ out[4] = 0;
83
+ out[5] = -2 * bt;
84
+ out[6] = 0;
85
+ out[7] = 0;
86
+ out[8] = 0;
87
+ out[9] = 0;
88
+ out[10] = nf;
89
+ out[11] = 0;
90
+ out[12] = (left + right) * lr;
91
+ out[13] = (top + bottom) * bt;
92
+ out[14] = near * nf;
93
+ out[15] = 1;
94
+ this.dirtyProjection = true;
95
+ }
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLW9ydGhvZ3JhcGhpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYW1lcmEvY2FtZXJhLW9ydGhvZ3JhcGhpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLFVBQVUsQ0FBQTtBQU10RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsU0FBUztJQUMvQixpQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBQzFDLFlBQVksR0FBRyxFQUFFLENBQUE7SUFDUixJQUFJLEdBQUc7UUFDcEIsTUFBTSxFQUFFLElBQUksT0FBTyxFQUFFO1FBQ3JCLFNBQVMsRUFBRSxJQUFJLE9BQU8sRUFBRTtLQUMzQixDQUFBO0lBRUQsWUFBWSxVQUF3QyxFQUFFO1FBQ2xELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUE7SUFDaEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQTZCO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQTtRQUNyQyxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7SUFFRCxPQUFPLENBQ0gsT0FBZSxFQUNmLE9BQWU7UUFFZixNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDdkMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUE7UUFDaEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQTtRQUNwQyxNQUFNO2FBQ0QsSUFBSSxD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
@@ -1,25 +1,29 @@
1
- import { TgdMat4 } from "@/math";
2
- import { TgdCamera } from "./camera";
1
+ import { TgdMat4, TgdVec3 } from "../math";
2
+ import { TgdCamera, TgdCameraOptions } from "./camera";
3
+ export interface TgdCameraPerspectiveOptions extends TgdCameraOptions {
4
+ fovy?: number;
5
+ }
3
6
  export declare class TgdCameraPerspective extends TgdCamera {
4
- private dirtyProjection;
5
7
  private readonly _matrixProjection;
6
- private _width;
7
- private _height;
8
8
  private _fovy;
9
- private _near;
10
- private _far;
11
- constructor();
12
- get screenWidth(): number;
13
- set screenWidth(v: number);
14
- get screenHeight(): number;
15
- set screenHeight(v: number);
9
+ private readonly _ray;
10
+ constructor(options?: TgdCameraPerspectiveOptions);
11
+ copyProjectionFrom(camera: TgdCameraPerspective): this;
12
+ castRay(screenX: number, screenY: number): Readonly<{
13
+ origin: TgdVec3;
14
+ direction: TgdVec3;
15
+ }>;
16
+ /**
17
+ * Vertical field of view in radians.
18
+ *
19
+ * The revealed space at a distance of 1 from the camera
20
+ * will have a height of `2 * tan(fovy / 2)`.
21
+ */
16
22
  get fovy(): number;
17
23
  set fovy(v: number);
18
- get near(): number;
19
- set near(v: number);
20
- get far(): number;
21
- set far(v: number);
22
24
  get matrixProjection(): TgdMat4;
25
+ protected getSpaceHeightAtTarget(): number;
26
+ protected setSpaceHeightAtTarget(v: number): void;
23
27
  private updateProjectionIfNeeded;
24
28
  }
25
29
  //# sourceMappingURL=camera-perspective.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"camera-perspective.d.ts","sourceRoot":"","sources":["../../src/camera/camera-perspective.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,qBAAa,oBAAqB,SAAQ,SAAS;IAC/C,OAAO,CAAC,eAAe,CAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgB;IAClD,OAAO,CAAC,MAAM,CAAO;IACrB,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,IAAI,CAAW;;IAMvB,IAAI,WAAW,IAGI,MAAM,CADxB;IACD,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,EAKxB;IAED,IAAI,YAAY,IAGI,MAAM,CADzB;IACD,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM,EAKzB;IACD,IAAI,IAAI,IAGI,MAAM,CADjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAKjB;IACD,IAAI,IAAI,IAGI,MAAM,CADjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAKjB;IACD,IAAI,GAAG,IAGI,MAAM,CADhB;IACD,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,EAKhB;IACD,IAAI,gBAAgB,IAAI,OAAO,CAG9B;IAED,OAAO,CAAC,wBAAwB;CAiCnC"}
1
+ {"version":3,"file":"camera-perspective.d.ts","sourceRoot":"","sources":["../../src/camera/camera-perspective.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEtD,MAAM,WAAW,2BAA4B,SAAQ,gBAAgB;IACjE,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgB;IAClD,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAGpB;gBAEW,OAAO,GAAE,2BAAgC;IAKrD,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAOtD,OAAO,CACH,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAChB,QAAQ,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAepD;;;;;OAKG;IACH,IAAI,IAAI,IAGI,MAAM,CADjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAKjB;IACD,IAAI,gBAAgB,IAAI,OAAO,CAG9B;IAED,SAAS,CAAC,sBAAsB;IAIhC,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,MAAM;IAI1C,OAAO,CAAC,wBAAwB;CAiCnC"}
@@ -0,0 +1,94 @@
1
+ import { TgdMat4, TgdVec3 } from "./../math/index.js";
2
+ import { TgdCamera } from "./camera.js";
3
+ export class TgdCameraPerspective extends TgdCamera {
4
+ _matrixProjection = new TgdMat4();
5
+ _fovy = Math.PI / 4;
6
+ _ray = {
7
+ origin: new TgdVec3(),
8
+ direction: new TgdVec3(),
9
+ };
10
+ constructor(options = {}) {
11
+ super(options);
12
+ this._fovy = options.fovy ?? Math.PI / 4;
13
+ }
14
+ copyProjectionFrom(camera) {
15
+ this.fovy = camera.fovy;
16
+ this.near = camera.near;
17
+ this.far = camera.far;
18
+ return this;
19
+ }
20
+ castRay(screenX, screenY) {
21
+ const { origin, direction } = this._ray;
22
+ origin.from(this.position);
23
+ const h = Math.atan(this.fovy);
24
+ const w = h * this.screenAspectRatio;
25
+ direction
26
+ .from(origin)
27
+ .subtract(this.axisZ)
28
+ .addWithScale(this.axisX, w * screenX)
29
+ .addWithScale(this.axisY, h * screenY)
30
+ .subtract(origin)
31
+ .normalize();
32
+ return this._ray;
33
+ }
34
+ /**
35
+ * Vertical field of view in radians.
36
+ *
37
+ * The revealed space at a distance of 1 from the camera
38
+ * will have a height of `2 * tan(fovy / 2)`.
39
+ */
40
+ get fovy() {
41
+ return this._fovy;
42
+ }
43
+ set fovy(v) {
44
+ if (v === this._fovy)
45
+ return;
46
+ this._fovy = v;
47
+ this.dirtyProjection = true;
48
+ }
49
+ get matrixProjection() {
50
+ this.updateProjectionIfNeeded();
51
+ return this._matrixProjection;
52
+ }
53
+ getSpaceHeightAtTarget() {
54
+ return 2 * Math.tan(this.fovy * 0.5) * this.distance;
55
+ }
56
+ setSpaceHeightAtTarget(v) {
57
+ this.distance = v / (2 * Math.tan(this.fovy * 0.5));
58
+ }
59
+ updateProjectionIfNeeded() {
60
+ if (!this.dirtyProjection)
61
+ return;
62
+ const fovy = this._fovy;
63
+ const aspect = this.screenAspectRatio;
64
+ const near = this._near;
65
+ const far = this._far;
66
+ const out = this._matrixProjection;
67
+ const f = this.zoom / Math.tan(fovy / 2);
68
+ out[0] = f / aspect;
69
+ out[1] = 0;
70
+ out[2] = 0;
71
+ out[3] = 0;
72
+ out[4] = 0;
73
+ out[5] = f;
74
+ out[6] = 0;
75
+ out[7] = 0;
76
+ out[8] = 0;
77
+ out[9] = 0;
78
+ out[11] = -1;
79
+ out[12] = 0;
80
+ out[13] = 0;
81
+ out[15] = 0;
82
+ if (far !== Infinity) {
83
+ const nf = 1 / (near - far);
84
+ out[10] = (far + near) * nf;
85
+ out[14] = 2 * far * near * nf;
86
+ }
87
+ else {
88
+ out[10] = -1;
89
+ out[14] = -2 * near;
90
+ }
91
+ this.dirtyProjection = true;
92
+ }
93
+ }
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLXBlcnNwZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NhbWVyYS9jYW1lcmEtcGVyc3BlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxVQUFVLENBQUE7QUFNdEQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFNBQVM7SUFDOUIsaUJBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtJQUMxQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDVixJQUFJLEdBQUc7UUFDcEIsTUFBTSxFQUFFLElBQUksT0FBTyxFQUFFO1FBQ3JCLFNBQVMsRUFBRSxJQUFJLE9BQU8sRUFBRTtLQUMzQixDQUFBO0lBRUQsWUFBWSxVQUF1QyxFQUFFO1FBQ2pELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBNEI7UUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQTtRQUN2QixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7UUFDckIsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQsT0FBTyxDQUNILE9BQWUsRUFDZixPQUFlO1FBRWYsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxD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
@@ -1,27 +1,91 @@
1
- import { TgdQuat, TgdVec3, TgdMat4, TgdQuatFace } from "@/math";
1
+ import { TgdQuat, TgdVec3, TgdMat4, TgdQuatFace } from "../math";
2
+ import { TgdEvent } from "../event";
3
+ import { ArrayNumber3, ArrayNumber4 } from "..";
4
+ export interface TgdCameraOptions {
5
+ near?: number;
6
+ far?: number;
7
+ target?: ArrayNumber3 | TgdVec3;
8
+ orientation?: ArrayNumber4 | TgdQuat;
9
+ distance?: number;
10
+ name?: string;
11
+ zoom?: number;
12
+ }
2
13
  export declare abstract class TgdCamera {
3
- private dirty;
4
- private dirtyAxis;
5
- private readonly axisX;
6
- private readonly axisY;
7
- private readonly axisZ;
8
- private readonly _matrixViewModel;
9
- private readonly orientation;
10
- private readonly target;
14
+ private static incrementalId;
15
+ /**
16
+ * A change in the position/orientation/size of the camera.
17
+ */
18
+ readonly eventTransformChange: TgdEvent<TgdCamera>;
19
+ readonly name: string;
20
+ private _screenWidth;
21
+ private _screenHeight;
22
+ private _screenAspectRatio;
23
+ /** Do we need recalculation? */
24
+ private _dirtyModelView;
25
+ private dirtyModelViewInverse;
26
+ private _dirtyAxis;
27
+ protected _dirtyProjection: boolean;
28
+ protected dirtyProjectionInverse: boolean;
29
+ protected _near: number;
30
+ protected _far: number;
31
+ private readonly _axisX;
32
+ private readonly _axisY;
33
+ private readonly _axisZ;
34
+ private readonly _matrixModelView;
35
+ private readonly _matrixModelViewInverse;
36
+ private readonly _matrixProjectionInverse;
37
+ private readonly _orientation;
38
+ private readonly _shift;
39
+ private readonly _target;
40
+ private readonly _position;
11
41
  private _distance;
12
42
  private _zoom;
13
43
  private readonly tmpMat3;
14
44
  private readonly tmpVec3;
15
- constructor();
45
+ constructor(options?: TgdCameraOptions);
46
+ get near(): number;
47
+ set near(v: number);
48
+ get far(): number;
49
+ set far(v: number);
50
+ get screenAspectRatio(): number;
51
+ get screenWidth(): number;
52
+ set screenWidth(v: number);
53
+ get screenHeight(): number;
54
+ set screenHeight(v: number);
55
+ get spaceHeightAtTarget(): number;
56
+ set spaceHeightAtTarget(v: number);
57
+ get spaceWidthAtTarget(): number;
58
+ set spaceWidthAtTarget(v: number);
16
59
  face(face: TgdQuatFace): void;
17
- from({ orientation, target, distance, zoom }: TgdCamera): this;
18
- toAxisX(axisX: TgdVec3): this;
19
- toAxisY(axisY: TgdVec3): this;
20
- toAxisZ(axisZ: TgdVec3): this;
21
- get matrixViewModel(): TgdMat4;
22
- abstract get matrixProjection(): TgdMat4;
23
- setOrientation(quat: TgdQuat): void;
24
- setTarget(vec: TgdVec3): void;
60
+ from(camera: TgdCamera): this;
61
+ /**
62
+ * @param screenX -1 is the left edge, 0 id the center and +1 is the right edge.
63
+ * @param screenY -1 is the bottom edge, 0 id the center and +1 is the top edge.
64
+ * @returns The normalized ray vector that goes from the camera position
65
+ * to the point designed on the screen.
66
+ */
67
+ abstract castRay(screenX: number, screenY: number): Readonly<{
68
+ origin: TgdVec3;
69
+ direction: TgdVec3;
70
+ }>;
71
+ abstract copyProjectionFrom(camera: TgdCamera): this;
72
+ get axisX(): Readonly<TgdVec3>;
73
+ get axisY(): Readonly<TgdVec3>;
74
+ get axisZ(): Readonly<TgdVec3>;
75
+ get matrixModelView(): Readonly<TgdMat4>;
76
+ get matrixModelViewInverse(): Readonly<TgdMat4>;
77
+ abstract get matrixProjection(): Readonly<TgdMat4>;
78
+ get matrixProjectionInverse(): Readonly<TgdMat4>;
79
+ get orientation(): Readonly<TgdQuat>;
80
+ set orientation(quat: TgdQuat);
81
+ setOrientation(x: number, y: number, z: number, w: number): this;
82
+ get position(): Readonly<TgdVec3>;
83
+ get target(): Readonly<TgdVec3>;
84
+ set target(v: Readonly<TgdVec3 | ArrayNumber3>);
85
+ setTarget(x: number, y: number, z: number): this;
86
+ get shift(): Readonly<TgdVec3>;
87
+ set shift(v: TgdVec3);
88
+ setShift(x: number, y: number, z: number): this;
25
89
  get x(): number;
26
90
  set x(v: number);
27
91
  get y(): number;
@@ -32,13 +96,26 @@ export declare abstract class TgdCamera {
32
96
  set distance(v: number);
33
97
  get zoom(): number;
34
98
  set zoom(v: number);
99
+ /**
100
+ * Add (x,y,z) to the target coords in Camera space.
101
+ * That means we are moving along the camera axis.
102
+ */
35
103
  moveTarget(x: number, y: number, z: number): void;
104
+ moveShift(x: number, y: number, z: number): void;
36
105
  orbitAroundX(angleInRadians: number): this;
37
106
  orbitAroundY(angleInRadians: number): this;
38
107
  orbitAroundZ(angleInRadians: number): this;
39
108
  debug(caption?: string): void;
109
+ protected abstract getSpaceHeightAtTarget(): number;
110
+ protected abstract setSpaceHeightAtTarget(v: number): void;
40
111
  private updateAxisIfNeeded;
41
112
  private updateAxis;
42
113
  private updateIfNeeded;
114
+ private get dirtyModelView();
115
+ private set dirtyModelView(value);
116
+ private get dirtyAxis();
117
+ private set dirtyAxis(value);
118
+ protected get dirtyProjection(): boolean;
119
+ protected set dirtyProjection(v: boolean);
43
120
  }
44
121
  //# sourceMappingURL=camera.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../src/camera/camera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAW,WAAW,EAAE,MAAM,QAAQ,CAAA;AAGxE,8BAAsB,SAAS;IAE3B,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IAEtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,KAAK,CAAI;IAEjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;;IAqHxC,IAAI,CAAC,IAAI,EAAE,WAAW;IAMtB,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,SAAS,GAAG,IAAI;IAU9D,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAM7B,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAM7B,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAM7B,IAAI,eAAe,IAAI,OAAO,CAG7B;IAED,QAAQ,KAAK,gBAAgB,IAAI,OAAO,CAAA;IAExC,cAAc,CAAC,IAAI,EAAE,OAAO;IAa5B,SAAS,CAAC,GAAG,EAAE,OAAO;IAWtB,IAAI,CAAC,IAGI,MAAM,CADd;IACD,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAMd;IAED,IAAI,CAAC,IAGI,MAAM,CADd;IACD,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAMd;IAED,IAAI,CAAC,IAGI,MAAM,CADd;IACD,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAMd;IAED,IAAI,QAAQ,IAGI,MAAM,CADrB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAKrB;IAED,IAAI,IAAI,IAGI,MAAM,CADjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAKjB;IAMD,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAe1C,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAU1C,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAU1C,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAU1C,KAAK,CAAC,OAAO,SAAW;IAIxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,cAAc;CAqBzB"}
1
+ {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../src/camera/camera.ts"],"names":[],"mappings":"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"}