@tolokoban/tgd 2.0.118 → 2.0.121

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 (224) hide show
  1. package/lib/dist/bounding-box.js +2 -2
  2. package/lib/dist/buffer/buffer.js +7 -9
  3. package/lib/dist/camera/camera-orthographic.d.ts +1 -0
  4. package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
  5. package/lib/dist/camera/camera-orthographic.js +13 -3
  6. package/lib/dist/camera/camera-perspective.d.ts +1 -0
  7. package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
  8. package/lib/dist/camera/camera-perspective.js +13 -3
  9. package/lib/dist/camera/camera.d.ts +1 -0
  10. package/lib/dist/camera/camera.d.ts.map +1 -1
  11. package/lib/dist/camera/camera.js +7 -8
  12. package/lib/dist/canvas/gizmo/gizmo.js +16 -15
  13. package/lib/dist/canvas/landscape/landscape.js +8 -2
  14. package/lib/dist/code/math.js +6 -3
  15. package/lib/dist/code/noise.js +18 -6
  16. package/lib/dist/color/color.d.ts +1 -1
  17. package/lib/dist/color/color.d.ts.map +1 -1
  18. package/lib/dist/color/color.js +16 -2
  19. package/lib/dist/context/animation/animation-manager.d.ts +3 -0
  20. package/lib/dist/context/animation/animation-manager.d.ts.map +1 -1
  21. package/lib/dist/context/animation/animation-manager.js +10 -11
  22. package/lib/dist/context/console.d.ts +12 -0
  23. package/lib/dist/context/console.d.ts.map +1 -0
  24. package/lib/dist/context/console.js +31 -0
  25. package/lib/dist/context/context.d.ts +23 -1
  26. package/lib/dist/context/context.d.ts.map +1 -1
  27. package/lib/dist/context/context.js +65 -26
  28. package/lib/dist/context/webgl-params.d.ts +9 -3
  29. package/lib/dist/context/webgl-params.d.ts.map +1 -1
  30. package/lib/dist/context/webgl-params.js +39 -12
  31. package/lib/dist/controller/camera/orbit.js +26 -6
  32. package/lib/dist/dataset/dataset.d.ts.map +1 -1
  33. package/lib/dist/dataset/dataset.js +26 -35
  34. package/lib/dist/debug/console.js +6 -4
  35. package/lib/dist/debug/debug.js +5 -6
  36. package/lib/dist/factory/mesh-glb.d.ts +4 -6
  37. package/lib/dist/factory/mesh-glb.d.ts.map +1 -1
  38. package/lib/dist/factory/mesh-glb.js +6 -6
  39. package/lib/dist/filter/blur.js +14 -8
  40. package/lib/dist/filter/filter.js +2 -3
  41. package/lib/dist/filter/hue-rotation.js +2 -2
  42. package/lib/dist/geometry/geometry.js +7 -10
  43. package/lib/dist/geometry/grid.js +3 -3
  44. package/lib/dist/geometry/tools/marching-cubes/marching-cubes.d.ts +1 -1
  45. package/lib/dist/geometry/tools/marching-cubes/marching-cubes.d.ts.map +1 -1
  46. package/lib/dist/geometry/tools/marching-cubes/marching-cubes.js +2 -10
  47. package/lib/dist/input/gamepad.js +9 -17
  48. package/lib/dist/input/pointer.d.ts.map +1 -1
  49. package/lib/dist/input/pointer.js +53 -22
  50. package/lib/dist/light/light.js +2 -3
  51. package/lib/dist/loader/asset.js +11 -14
  52. package/lib/dist/loader/binary.js +44 -51
  53. package/lib/dist/loader/font.d.ts +13 -0
  54. package/lib/dist/loader/font.d.ts.map +1 -0
  55. package/lib/dist/loader/font.js +28 -0
  56. package/lib/dist/loader/image.js +13 -16
  57. package/lib/dist/loader/index.d.ts +1 -0
  58. package/lib/dist/loader/index.d.ts.map +1 -1
  59. package/lib/dist/loader/index.js +2 -1
  60. package/lib/dist/loader/video.js +13 -16
  61. package/lib/dist/log.js +2 -3
  62. package/lib/dist/material/camera-light.d.ts +1 -0
  63. package/lib/dist/material/camera-light.d.ts.map +1 -1
  64. package/lib/dist/material/camera-light.js +7 -3
  65. package/lib/dist/material/diffuse.js +2 -3
  66. package/lib/dist/material/flat.js +2 -3
  67. package/lib/dist/material/glass.js +6 -8
  68. package/lib/dist/material/global.js +6 -8
  69. package/lib/dist/material/gltf.d.ts +29 -0
  70. package/lib/dist/material/gltf.d.ts.map +1 -0
  71. package/lib/dist/material/gltf.js +186 -0
  72. package/lib/dist/material/hull.js +4 -5
  73. package/lib/dist/material/index.d.ts +2 -0
  74. package/lib/dist/material/index.d.ts.map +1 -1
  75. package/lib/dist/material/index.js +3 -1
  76. package/lib/dist/material/material.js +5 -2
  77. package/lib/dist/material/mirror.d.ts +18 -0
  78. package/lib/dist/material/mirror.d.ts.map +1 -0
  79. package/lib/dist/material/mirror.js +56 -0
  80. package/lib/dist/material/solid.js +2 -3
  81. package/lib/dist/material/toon.js +7 -7
  82. package/lib/dist/math/mat2.d.ts +1 -1
  83. package/lib/dist/math/mat2.d.ts.map +1 -1
  84. package/lib/dist/math/mat2.js +5 -5
  85. package/lib/dist/math/mat3.d.ts.map +1 -1
  86. package/lib/dist/math/mat3.js +4 -4
  87. package/lib/dist/math/mat4.js +3 -4
  88. package/lib/dist/math/transfo.js +11 -14
  89. package/lib/dist/math/vec4.d.ts +1 -0
  90. package/lib/dist/math/vec4.d.ts.map +1 -1
  91. package/lib/dist/math/vec4.js +18 -14
  92. package/lib/dist/painter/background/background.js +2 -2
  93. package/lib/dist/painter/clear.js +5 -6
  94. package/lib/dist/painter/filter/filter.js +9 -7
  95. package/lib/dist/painter/fragment-shader/fragment-shader.js +3 -5
  96. package/lib/dist/painter/framebuffer-msaa.js +5 -2
  97. package/lib/dist/painter/framebuffer.d.ts +1 -1
  98. package/lib/dist/painter/framebuffer.d.ts.map +1 -1
  99. package/lib/dist/painter/framebuffer.js +8 -11
  100. package/lib/dist/painter/gizmo/gizmo.d.ts.map +1 -1
  101. package/lib/dist/painter/gizmo/gizmo.js +5 -5
  102. package/lib/dist/painter/gizmo/painters/normal.js +4 -7
  103. package/lib/dist/painter/gizmo/painters/tips.d.ts.map +1 -1
  104. package/lib/dist/painter/gizmo/painters/tips.js +11 -13
  105. package/lib/dist/painter/group-camera.js +2 -3
  106. package/lib/dist/painter/group.js +6 -8
  107. package/lib/dist/painter/icon/icon.js +10 -8
  108. package/lib/dist/painter/icon/sprite.js +2 -3
  109. package/lib/dist/painter/lod/lod.js +26 -30
  110. package/lib/dist/painter/logic.js +2 -3
  111. package/lib/dist/painter/mesh/gltf/gltf.d.ts +28 -6
  112. package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
  113. package/lib/dist/painter/mesh/gltf/gltf.js +99 -53
  114. package/lib/dist/painter/mesh/mesh/mesh.js +24 -17
  115. package/lib/dist/painter/mix/mix.js +6 -7
  116. package/lib/dist/painter/node/node.js +11 -17
  117. package/lib/dist/painter/overlay/overlay.js +14 -19
  118. package/lib/dist/painter/painter.js +2 -2
  119. package/lib/dist/painter/points-cloud/points-cloud-morphing.js +12 -14
  120. package/lib/dist/painter/points-cloud/points-cloud.d.ts +2 -2
  121. package/lib/dist/painter/points-cloud/points-cloud.d.ts.map +1 -1
  122. package/lib/dist/painter/points-cloud/points-cloud.js +20 -21
  123. package/lib/dist/painter/program.js +24 -11
  124. package/lib/dist/painter/segments/segments-morphing.js +30 -14
  125. package/lib/dist/painter/segments/segments.d.ts +1 -1
  126. package/lib/dist/painter/segments/segments.d.ts.map +1 -1
  127. package/lib/dist/painter/segments/segments.js +34 -21
  128. package/lib/dist/painter/skybox/skybox.d.ts +18 -8
  129. package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
  130. package/lib/dist/painter/skybox/skybox.js +89 -44
  131. package/lib/dist/painter/sprites/accessor.js +2 -2
  132. package/lib/dist/painter/sprites/sprites-hue.js +18 -8
  133. package/lib/dist/painter/sprites/sprites.d.ts.map +1 -1
  134. package/lib/dist/painter/sprites/sprites.js +53 -21
  135. package/lib/dist/painter/state/state.d.ts +1 -1
  136. package/lib/dist/painter/state/state.d.ts.map +1 -1
  137. package/lib/dist/painter/state/state.js +6 -11
  138. package/lib/dist/painter/tubes/geometry.js +3 -4
  139. package/lib/dist/painter/tubes/tubes.js +3 -4
  140. package/lib/dist/painter/x-ray/background.js +2 -2
  141. package/lib/dist/painter/x-ray/x-ray.js +8 -5
  142. package/lib/dist/parser/gltf/gltf.d.ts +13 -5
  143. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
  144. package/lib/dist/parser/gltf/gltf.js +113 -114
  145. package/lib/dist/parser/gltf/parser.d.ts.map +1 -1
  146. package/lib/dist/parser/gltf/parser.js +12 -1
  147. package/lib/dist/parser/mesh/wavefront.js +3 -5
  148. package/lib/dist/program/program.d.ts.map +1 -1
  149. package/lib/dist/program/program.js +6 -7
  150. package/lib/dist/reference-map.js +3 -5
  151. package/lib/dist/shader/code.js +2 -2
  152. package/lib/dist/texture/texture-cube.d.ts +20 -8
  153. package/lib/dist/texture/texture-cube.d.ts.map +1 -1
  154. package/lib/dist/texture/texture-cube.js +54 -2
  155. package/lib/dist/texture/texture2d.d.ts +10 -3
  156. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  157. package/lib/dist/texture/texture2d.js +54 -52
  158. package/lib/dist/time/interval/interval.js +2 -3
  159. package/lib/dist/types/gltf.d.ts +2 -1
  160. package/lib/dist/types/gltf.d.ts.map +1 -1
  161. package/lib/dist/types/gltf.js +10 -4
  162. package/lib/dist/types/guards.js +2 -3
  163. package/lib/dist/types/input-pointer.d.ts +5 -0
  164. package/lib/dist/types/input-pointer.d.ts.map +1 -1
  165. package/lib/dist/types/texture-cube.d.ts +1 -0
  166. package/lib/dist/types/texture-cube.d.ts.map +1 -1
  167. package/lib/dist/uniform/ubo-camera.d.ts +2 -1
  168. package/lib/dist/uniform/ubo-camera.d.ts.map +1 -1
  169. package/lib/dist/uniform/ubo-camera.js +9 -2
  170. package/lib/dist/uniform/uniform-buffer-object.js +2 -2
  171. package/lib/dist/utils/action/camera.js +3 -4
  172. package/lib/dist/utils/animation/chain-transfo-interpolations.js +6 -2
  173. package/lib/dist/utils/animation/chain.js +12 -12
  174. package/lib/dist/utils/bbox.js +3 -3
  175. package/lib/dist/utils/canvas.js +3 -3
  176. package/lib/dist/utils/ensure.d.ts +2 -0
  177. package/lib/dist/utils/ensure.d.ts.map +1 -1
  178. package/lib/dist/utils/ensure.js +21 -5
  179. package/lib/dist/utils/fullscreen.js +31 -38
  180. package/lib/dist/utils/reference-map.js +3 -5
  181. package/lib/dist/utils/state/blend.d.ts +1 -1
  182. package/lib/dist/utils/state/blend.d.ts.map +1 -1
  183. package/lib/dist/utils/state/blend.js +28 -1
  184. package/lib/dist/utils/state/stencil.js +2 -2
  185. package/lib/dist/vao/vao.js +8 -9
  186. package/lib/dist/version.d.ts +1 -1
  187. package/lib/dist/version.js +1 -1
  188. package/lib/dist/wasm/function.js +2 -3
  189. package/lib/dist/wasm/index.js +16 -19
  190. package/lib/dist/wasm/wast.js +3 -4
  191. package/lib/dist/webgl/texture/texture2d.js +2 -3
  192. package/package.json +1 -1
  193. package/lib/dist/math/common.test.d.ts +0 -2
  194. package/lib/dist/math/common.test.d.ts.map +0 -1
  195. package/lib/dist/math/common.test.js +0 -22
  196. package/lib/dist/math/mat3.test.d.ts +0 -2
  197. package/lib/dist/math/mat3.test.d.ts.map +0 -1
  198. package/lib/dist/math/mat3.test.js +0 -32
  199. package/lib/dist/math/mat4.test.d.ts +0 -2
  200. package/lib/dist/math/mat4.test.d.ts.map +0 -1
  201. package/lib/dist/math/mat4.test.js +0 -57
  202. package/lib/dist/math/math.test.d.ts +0 -2
  203. package/lib/dist/math/math.test.d.ts.map +0 -1
  204. package/lib/dist/math/math.test.js +0 -23
  205. package/lib/dist/math/quat.test.d.ts +0 -3
  206. package/lib/dist/math/quat.test.d.ts.map +0 -1
  207. package/lib/dist/math/quat.test.js +0 -99
  208. package/lib/dist/math/vec3.test.d.ts +0 -2
  209. package/lib/dist/math/vec3.test.d.ts.map +0 -1
  210. package/lib/dist/math/vec3.test.js +0 -36
  211. package/lib/dist/math/vec4.test.d.ts +0 -2
  212. package/lib/dist/math/vec4.test.d.ts.map +0 -1
  213. package/lib/dist/math/vec4.test.js +0 -15
  214. package/lib/dist/painter/gizmo/painters/axes.1.d.ts +0 -14
  215. package/lib/dist/painter/gizmo/painters/axes.1.d.ts.map +0 -1
  216. package/lib/dist/painter/gizmo/painters/axes.1.js +0 -50
  217. package/lib/dist/painter/skybox/skybox.frag +0 -15
  218. package/lib/dist/painter/skybox/skybox.vert +0 -13
  219. package/lib/dist/utils/bbox.test.d.ts +0 -2
  220. package/lib/dist/utils/bbox.test.d.ts.map +0 -1
  221. package/lib/dist/utils/bbox.test.js +0 -45
  222. package/lib/dist/utils/template.test.d.ts +0 -2
  223. package/lib/dist/utils/template.test.d.ts.map +0 -1
  224. package/lib/dist/utils/template.test.js +0 -17
@@ -5,7 +5,6 @@ import { TgdTexture2D } from "./../texture/index.js";
5
5
  const DEFAULT_COLOR = new TgdVec4(0.8, 0.6, 0.1, 1);
6
6
  export class TgdMaterialCameraLight extends TgdMaterial {
7
7
  constructor(options = {}) {
8
- var _a;
9
8
  const vertexShaderCode = ["varNormal = mat3(uniTransfoMatrix) * NORMAL;"];
10
9
  const uniforms = {
11
10
  uniLight: "vec3",
@@ -18,7 +17,7 @@ export class TgdMaterialCameraLight extends TgdMaterial {
18
17
  const varyings = {
19
18
  varNormal: "vec3",
20
19
  };
21
- const color = options.color instanceof TgdTexture2D ? options.color : new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
20
+ const color = options.color instanceof TgdTexture2D ? options.color : new TgdVec4(options.color ?? DEFAULT_COLOR);
22
21
  const hasTexture = !(color instanceof TgdVec4);
23
22
  if (hasTexture) {
24
23
  vertexShaderCode.push("varUV = TEXCOORD_0;");
@@ -55,6 +54,11 @@ export class TgdMaterialCameraLight extends TgdMaterial {
55
54
  if (texture)
56
55
  texture.activate(0, program, "texDiffuse");
57
56
  },
57
+ delete: () => {
58
+ if (options.cleanupTexturesOnDelete) {
59
+ this.texture?.delete();
60
+ }
61
+ },
58
62
  });
59
63
  this.light = new TgdLight();
60
64
  this.ambient = new TgdLight({ color: new TgdVec4(0.2, 0.1, 0, 0) });
@@ -77,4 +81,4 @@ export class TgdMaterialCameraLight extends TgdMaterial {
77
81
  this.texture = hasTexture ? color : null;
78
82
  }
79
83
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLWxpZ2h0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hdGVyaWFsL2NhbWVyYS1saWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQVkzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVuRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQVVuRCxZQUFZLFVBQWtELEVBQUU7O1FBQzVELE1BQU0sZ0JBQWdCLEdBQWdCLENBQUMsOENBQThDLENBQUMsQ0FBQTtRQUN0RixNQUFNLFFBQVEsR0FBeUM7WUFDbkQsUUFBUSxFQUFFLE1BQU07WUFDaEIsV0FBVyxFQUFFLE1BQU07WUFDbkIsVUFBVSxFQUFFLE1BQU07WUFDbEIsbUJBQW1CLEVBQUUsT0FBTztZQUM1QixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLGtCQUFrQixFQUFFLE1BQU07U0FDN0IsQ0FBQTtRQUNELE1BQU0sUUFBUSxHQUEyQztZQUNyRCxTQUFTLEVBQUUsTUFBTTtTQUNwQixDQUFBO1FBQ0QsTUFBTSxLQUFLLEdBQ1AsT0FBTyxDQUFDLEtBQUssWUFBWSxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQUEsT0FBTyxDQUFDLEtBQUssbUNBQUksYUFBYSxDQUFDLENBQUE7UUFDdkcsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEtBQUssWUFBWSxPQUFPLENBQUMsQ0FB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
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLWxpZ2h0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hdGVyaWFsL2NhbWVyYS1saWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQWEzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVuRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQVVuRCxZQUFZLFVBQWtELEVBQUU7UUFDNUQsTUFBTSxnQkFBZ0IsR0FBZ0IsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO1FBQ3RGLE1BQU0sUUFBUSxHQUF5QztZQUNuRCxRQUFRLEVBQUUsTUFBTTtZQUNoQixXQUFXLEVBQUUsTUFBTTtZQUNuQixVQUFVLEVBQUUsTUFBTTtZQUNsQixtQkFBbUIsRUFBRSxPQUFPO1lBQzVCLG9CQUFvQixFQUFFLE9BQU87WUFDN0Isa0JBQWtCLEVBQUUsTUFBTTtTQUM3QixDQUFBO1FBQ0QsTUFBTSxRQUFRLEdBQTJDO1lBQ3JELFNBQVMsRUFBRSxNQUFNO1NBQ3BCLENBQUE7UUFDRCxNQUFNLEtBQUssR0FDUCxPQUFPLENBQUMsS0FBSyxZQUFZLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUMsQ0FBQTtRQUN2RyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxZQUFZLE9BQU8sQ0FBQyxDQUFBO1FBQzlD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
@@ -5,8 +5,7 @@ import { TgdMaterial } from "./material.js";
5
5
  const DEFAULT_COLOR = new TgdVec4(0.8, 0.6, 0.1, 1);
6
6
  export class TgdMaterialDiffuse extends TgdMaterial {
7
7
  constructor(options = {}) {
8
- var _a;
9
- const colorOrTexture = options.color instanceof TgdTexture2D ? options.color : new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
8
+ const colorOrTexture = options.color instanceof TgdTexture2D ? options.color : new TgdVec4(options.color ?? DEFAULT_COLOR);
10
9
  const hasTexture = colorOrTexture instanceof TgdTexture2D;
11
10
  const uniforms = {
12
11
  uniLight: "vec3",
@@ -89,4 +88,4 @@ export class TgdMaterialDiffuse extends TgdMaterial {
89
88
  }
90
89
  }
91
90
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZnVzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9kaWZmdXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFHNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBV3hDLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRW5ELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFXO0lBWS9DLFlBQVksVUFBcUMsRUFBRTs7UUFDL0MsTUFBTSxjQUFjLEdBQ2hCLE9BQU8sQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFBLE9BQU8sQ0FBQyxLQUFLLG1DQUFJLGFBQWEsQ0FBQyxDQUFBO1FBQ3ZHLE1BQU0sVUFBVSxHQUFHLGNBQWMsWUFBWSxZQUFZLENBQUE7UUFDekQsTUFBTSxRQUFRLEdBQXlDO1lBQ25ELFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLG1CQUFtQixFQUFFLE9BQU87WUFDNUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixrQkFBa0IsRUFBRSxNQUFNO1NBQzdCLENBQUE7UUFDRCxNQUFNLGtCQUFrQixHQUFnQjtZQUNwQyxpQkFBaUIsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsRUFBRSx1QkFBdUI7WUFDdkcsK0NBQStDO1lBQy9D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
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZnVzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9kaWZmdXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFHNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBV3hDLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRW5ELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFXO0lBWS9DLFlBQVksVUFBcUMsRUFBRTtRQUMvQyxNQUFNLGNBQWMsR0FDaEIsT0FBTyxDQUFDLEtBQUssWUFBWSxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLENBQUE7UUFDdkcsTUFBTSxVQUFVLEdBQUcsY0FBYyxZQUFZLFlBQVksQ0FBQTtRQUN6RCxNQUFNLFFBQVEsR0FBeUM7WUFDbkQsUUFBUSxFQUFFLE1BQU07WUFDaEIsV0FBVyxFQUFFLE1BQU07WUFDbkIsVUFBVSxFQUFFLE1BQU07WUFDbEIsbUJBQW1CLEVBQUUsT0FBTztZQUM1QixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLGtCQUFrQixFQUFFLE1BQU07U0FDN0IsQ0FBQTtRQUNELE1BQU0sa0JBQWtCLEdBQWdCO1lBQ3BDLGlCQUFpQixPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxFQUFFLHVCQUF1QjtZQUN2RywrQ0FBK0M7WUFDL0MsT0FBTyxD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
@@ -3,8 +3,7 @@ import { TgdMaterial } from "./material.js";
3
3
  const DEFAULT_COLOR = [0, 0, 0, 1];
4
4
  export class TgdMaterialFlat extends TgdMaterial {
5
5
  constructor(options = {}) {
6
- var _a;
7
- const color = new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
6
+ const color = new TgdVec4(options.color ?? DEFAULT_COLOR);
8
7
  super({
9
8
  uniforms: {
10
9
  uniColor: "vec4",
@@ -13,4 +12,4 @@ export class TgdMaterialFlat extends TgdMaterial {
13
12
  });
14
13
  }
15
14
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9mbGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU14QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVoRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQzVDLFlBQVksVUFBa0MsRUFBRTs7UUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBQSxPQUFPLENBQUMsS0FBSyxtQ0FBSSxhQUFhLENBQUMsQ0FBQTtRQUV6RCxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLE1BQU07YUFDbkI7WUFDRCxrQkFBa0IsRUFBRSxDQUFDLGVBQWUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzVELENBQUMsQ0FBQTtJQUNOLENBQUM7Q0FDSiJ9
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9mbGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU14QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVoRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQzVDLFlBQVksVUFBa0MsRUFBRTtRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxDQUFBO1FBRXpELEtBQUssQ0FBQztZQUNGLFFBQVEsRUFBRTtnQkFDTixRQUFRLEVBQUUsTUFBTTthQUNuQjtZQUNELGtCQUFrQixFQUFFLENBQUMsZUFBZSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDNUQsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKIn0=
@@ -44,22 +44,20 @@ export class TgdMaterialGlass extends TgdMaterial {
44
44
  depth: webglPresetDepth.writeOnly,
45
45
  },
46
46
  delete: () => {
47
- var _a, _b;
48
47
  if (this.mustDeleteTextureAmbient)
49
- (_a = this.textureAmbient) === null || _a === void 0 ? void 0 : _a.delete();
48
+ this.textureAmbient?.delete();
50
49
  if (this.mustDeleteTextureColor)
51
- (_b = this.textureColor) === null || _b === void 0 ? void 0 : _b.delete();
50
+ this.textureColor?.delete();
52
51
  },
53
52
  uniforms,
54
53
  varyings,
55
54
  vertexShaderCode,
56
55
  fragmentShaderCode,
57
56
  setUniforms: ({ context, program }) => {
58
- var _a, _b;
59
57
  if (!this.textureColor) {
60
58
  // Lazy creation of a texture from an unique color.
61
59
  this.textureColor = new TgdTexture2D(context);
62
- const color = (_a = this.options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR;
60
+ const color = this.options.color ?? DEFAULT_COLOR;
63
61
  if (!(color instanceof TgdTexture2D)) {
64
62
  this.textureColor.loadBitmap(tgdCanvasCreateFill(1, 1, color));
65
63
  }
@@ -67,9 +65,9 @@ export class TgdMaterialGlass extends TgdMaterial {
67
65
  }
68
66
  if (!this.textureAmbient) {
69
67
  // Lazy creation of a texture from an unique color.
70
- const color = (_b = this.options.ambientColor) !== null && _b !== void 0 ? _b : DEFAULT_AMBIENT;
68
+ const color = this.options.ambientColor ?? DEFAULT_AMBIENT;
71
69
  const canvas = tgdCanvasCreateFill(1, 1, color instanceof TgdTextureCube ? DEFAULT_AMBIENT : color);
72
- this.textureAmbient = new TgdTextureCube(program, {
70
+ this.textureAmbient = new TgdTextureCube(context, {
73
71
  imagePosX: canvas,
74
72
  imagePosY: canvas,
75
73
  imagePosZ: canvas,
@@ -111,4 +109,4 @@ export class TgdMaterialGlass extends TgdMaterial {
111
109
  }
112
110
  }
113
111
  }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvZ2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFvQixnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUEyQixNQUFNLFlBQVksQ0FBQTtBQVlqRSxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuRCxNQUFNLGVBQWUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBRWxELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBVzdDLFlBQTZCLFVBQW1DLEVBQUU7UUFDOUQsTUFBTSxRQUFRLEdBQXlDO1lBQ25ELGdCQUFnQixFQUFFLE1BQU07WUFDeEIsbUJBQW1CLEVBQUUsT0FBTztZQUM1QixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLGNBQWMsRUFBRSxPQUFPO1lBQ3ZCLGdCQUFnQixFQUFFLE9BQU87WUFDekIsUUFBUSxFQUFFLFdBQVc7WUFDckIsVUFBVSxFQUFFLGFBQWE7WUFDekIsaUJBQWlCLEVBQUUsTUFBTTtTQUM1QixDQUFBO1FBQ0QsTUFBTSxrQkFBa0IsR0FBZ0I7WUFDcEMsZ0NBQWdDO1lBQ2hDLDBEQUEwRDtZQUMxRCx5QkFBeUI7WUFDekIsMENBQTBDO1lBQzFDLGdEQUFnRDtZQUNoRCxnQ0FBZ0M7WUFDaEMsdUdBQXVHO1NBQzFHLENBQUE7UUFDRCxNQUFNLFFBQVEsR0FBMkM7WUFDckQsS0FBSyxFQUFFLE1BQU07WUFD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
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvZ2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFvQixnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUEyQixNQUFNLFlBQVksQ0FBQTtBQVlqRSxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuRCxNQUFNLGVBQWUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBRWxELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBVzdDLFlBQTZCLFVBQW1DLEVBQUU7UUFDOUQsTUFBTSxRQUFRLEdBQXlDO1lBQ25ELGdCQUFnQixFQUFFLE1BQU07WUFDeEIsbUJBQW1CLEVBQUUsT0FBTztZQUM1QixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLGNBQWMsRUFBRSxPQUFPO1lBQ3ZCLGdCQUFnQixFQUFFLE9BQU87WUFDekIsUUFBUSxFQUFFLFdBQVc7WUFDckIsVUFBVSxFQUFFLGFBQWE7WUFDekIsaUJBQWlCLEVBQUUsTUFBTTtTQUM1QixDQUFBO1FBQ0QsTUFBTSxrQkFBa0IsR0FBZ0I7WUFDcEMsZ0NBQWdDO1lBQ2hDLDBEQUEwRDtZQUMxRCx5QkFBeUI7WUFDekIsMENBQTBDO1lBQzFDLGdEQUFnRDtZQUNoRCxnQ0FBZ0M7WUFDaEMsdUdBQXVHO1NBQzFHLENBQUE7UUFDRCxNQUFNLFFBQVEsR0FBMkM7WUFDckQsS0FBSyxFQUFFLE1BQU07WUFD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
@@ -38,22 +38,20 @@ export class TgdMaterialGlobal extends TgdMaterial {
38
38
  };
39
39
  super({
40
40
  delete: () => {
41
- var _a, _b;
42
41
  if (this.mustDeleteTextureAmbient)
43
- (_a = this.textureAmbient) === null || _a === void 0 ? void 0 : _a.delete();
42
+ this.textureAmbient?.delete();
44
43
  if (this.mustDeleteTextureColor)
45
- (_b = this.textureColor) === null || _b === void 0 ? void 0 : _b.delete();
44
+ this.textureColor?.delete();
46
45
  },
47
46
  uniforms,
48
47
  varyings,
49
48
  vertexShaderCode,
50
49
  fragmentShaderCode,
51
50
  setUniforms: ({ program, context }) => {
52
- var _a, _b;
53
51
  if (!this.textureColor) {
54
52
  // Lazy creation of a texture from an unique color.
55
53
  this.textureColor = new TgdTexture2D(context);
56
- const color = (_a = this.options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR;
54
+ const color = this.options.color ?? DEFAULT_COLOR;
57
55
  if (!(color instanceof TgdTexture2D)) {
58
56
  this.textureColor.loadBitmap(tgdCanvasCreateFill(1, 1, color));
59
57
  }
@@ -61,9 +59,9 @@ export class TgdMaterialGlobal extends TgdMaterial {
61
59
  }
62
60
  if (!this.textureAmbient) {
63
61
  // Lazy creation of a texture from an unique color.
64
- const color = (_b = this.options.ambientColor) !== null && _b !== void 0 ? _b : DEFAULT_AMBIENT;
62
+ const color = this.options.ambientColor ?? DEFAULT_AMBIENT;
65
63
  const canvas = tgdCanvasCreateFill(1, 1, color instanceof TgdTextureCube ? DEFAULT_AMBIENT : color);
66
- this.textureAmbient = new TgdTextureCube(program, {
64
+ this.textureAmbient = new TgdTextureCube(context, {
67
65
  imagePosX: canvas,
68
66
  imagePosY: canvas,
69
67
  imagePosZ: canvas,
@@ -107,4 +105,4 @@ export class TgdMaterialGlobal extends TgdMaterial {
107
105
  }
108
106
  }
109
107
  }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hdGVyaWFsL2dsb2JhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUU1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBMkIsTUFBTSxZQUFZLENBQUE7QUFZakUsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDbkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUVsRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQVM5QyxZQUE2QixVQUFvQyxFQUFFO1FBQy9ELE1BQU0sUUFBUSxHQUF5QztZQUNuRCxnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLG1CQUFtQixFQUFFLE9BQU87WUFDNUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixRQUFRLEVBQUUsV0FBVztZQUNyQixVQUFVLEVBQUUsYUFBYTtZQUN6QixpQkFBaUIsRUFBRSxNQUFNO1NBQzVCLENBQUE7UUFDRCxNQUFNLGtCQUFrQixHQUFnQjtZQUNwQyxnQ0FBZ0M7WUFDaEMsMERBQTBEO1lBQzFELHlCQUF5QjtZQUN6QiwwQ0FBMEM7WUFDMUMsZ0RBQWdEO1lBQ2hELGdDQUFnQztZQUNoQyxtREFBbUQ7U0FDdEQsQ0FBQTtRQUNELE1BQU0sUUFBUSxHQUEyQztZQUNyRCxLQUFLLEVBQUUsTUFBTTtZQUNiLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFdBQVcsRUFBRSxNQUFNO1NBQ3RCLENBQUE7UUFDRCxN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
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hdGVyaWFsL2dsb2JhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUU1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBMkIsTUFBTSxZQUFZLENBQUE7QUFZakUsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDbkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUVsRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQVM5QyxZQUE2QixVQUFvQyxFQUFFO1FBQy9ELE1BQU0sUUFBUSxHQUF5QztZQUNuRCxnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLG1CQUFtQixFQUFFLE9BQU87WUFDNUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixRQUFRLEVBQUUsV0FBVztZQUNyQixVQUFVLEVBQUUsYUFBYTtZQUN6QixpQkFBaUIsRUFBRSxNQUFNO1NBQzVCLENBQUE7UUFDRCxNQUFNLGtCQUFrQixHQUFnQjtZQUNwQyxnQ0FBZ0M7WUFDaEMsMERBQTBEO1lBQzFELHlCQUF5QjtZQUN6QiwwQ0FBMEM7WUFDMUMsZ0RBQWdEO1lBQ2hELGdDQUFnQztZQUNoQyxtREFBbUQ7U0FDdEQsQ0FBQTtRQUNELE1BQU0sUUFBUSxHQUEyQztZQUNyRCxLQUFLLEVBQUUsTUFBTTtZQUNiLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFdBQVcsRUFBRSxNQUFNO1NBQ3RCLENBQUE7UUFDRCxN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
@@ -0,0 +1,29 @@
1
+ import { TgdMaterial } from "./material";
2
+ import { TgdLight } from "../light";
3
+ import { TgdTexture2D, TgdTextureCube } from "../texture";
4
+ export type TgdMaterialGltfOptions = {
5
+ textures: {
6
+ normal: TgdTexture2D;
7
+ albedo: TgdTexture2D;
8
+ emission: TgdTexture2D;
9
+ occlusion?: TgdTexture2D;
10
+ metallicRoughness: TgdTexture2D;
11
+ skybox: TgdTextureCube;
12
+ };
13
+ };
14
+ export declare class TgdMaterialGltf extends TgdMaterial {
15
+ light: TgdLight;
16
+ ambient: TgdLight;
17
+ specularExponent: number;
18
+ specularIntensity: number;
19
+ private readonly textureNormal;
20
+ private readonly textureAlbedo;
21
+ private readonly textureEmission;
22
+ private readonly textureOcclusion;
23
+ private readonly textureMetallicRoughness;
24
+ private readonly textureSkybox;
25
+ constructor(options: Partial<TgdMaterialGltfOptions> & {
26
+ textures: TgdMaterialGltfOptions["textures"];
27
+ });
28
+ }
29
+ //# sourceMappingURL=gltf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltf.d.ts","sourceRoot":"","sources":["../../src/material/gltf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsB,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG3D,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,EAAE;QACN,MAAM,EAAE,YAAY,CAAA;QACpB,MAAM,EAAE,YAAY,CAAA;QACpB,QAAQ,EAAE,YAAY,CAAA;QACtB,SAAS,CAAC,EAAE,YAAY,CAAA;QACxB,iBAAiB,EAAE,YAAY,CAAA;QAC/B,MAAM,EAAE,cAAc,CAAA;KACzB,CAAA;CACJ,CAAA;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACrC,KAAK,WAAiB;IACtB,OAAO,WAAuD;IAC9D,gBAAgB,SAAK;IACrB,iBAAiB,SAAM;IAE9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA0B;IAC3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAElC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG;QAAE,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAA;KAAE;CAuL1G"}
@@ -0,0 +1,186 @@
1
+ import { TgdVec4 } from "./../math/index.js";
2
+ import { TgdMaterial } from "./material.js";
3
+ import { TgdLight } from "./../light/index.js";
4
+ import { tgdCodeConstants } from "./../code/index.js";
5
+ export class TgdMaterialGltf extends TgdMaterial {
6
+ constructor(options) {
7
+ const uniforms = {
8
+ uniLight: "vec3",
9
+ uniLightDir: "vec3",
10
+ uniAmbient: "vec3",
11
+ uniSpecularExponent: "float",
12
+ uniSpecularIntensity: "float",
13
+ uniModelViewMatrix: "mat4",
14
+ uniCameraPosition: "vec3",
15
+ texNormal: "sampler2D",
16
+ texAlbedo: "sampler2D",
17
+ texEmission: "sampler2D",
18
+ texMetallicRoughness: "sampler2D",
19
+ texSkybox: "samplerCube",
20
+ };
21
+ if (options.textures.occlusion) {
22
+ uniforms["texOcclusion"] = "sampler2D";
23
+ }
24
+ const varyings = {
25
+ varPosition: "vec4",
26
+ varNormal: "vec3",
27
+ varUV: "vec2",
28
+ };
29
+ super({
30
+ uniforms,
31
+ varyings,
32
+ vertexShaderCode: () => [
33
+ `varUV = ${this.attUV};`,
34
+ `varNormal = mat3(uniTransfoMatrix) * ${this.attNormal};`,
35
+ `varPosition = uniTransfoMatrix * ${this.attPosition};`,
36
+ ],
37
+ extraFragmentShaderFunctions: {
38
+ ...tgdCodeConstants("PI"),
39
+ DistributionGGX: [
40
+ "float DistributionGGX(vec3 N, vec3 H, float roughness) {",
41
+ [
42
+ "float a = roughness * roughness;",
43
+ "float a2 = a * a;",
44
+ "float NdotH = max(dot(N, H), 0.0);",
45
+ "float NdotH2 = NdotH * NdotH;",
46
+ "float nom = a2;",
47
+ "float denom = (NdotH2 * (a2 - 1.0) + 1.0);",
48
+ "denom = PI * denom * denom;",
49
+ "return nom / max(denom, 0.001);",
50
+ ],
51
+ "}",
52
+ ],
53
+ GeometrySchlickGGX: [
54
+ "float GeometrySchlickGGX(float NdotV, float roughness) {",
55
+ [
56
+ "float r = (roughness + 1.0);",
57
+ "float k = (r * r) / 8.0;",
58
+ "return NdotV / (NdotV * (1.0 - k) + k);",
59
+ ],
60
+ "}",
61
+ ],
62
+ GeometrySmith: [
63
+ "float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness) {",
64
+ [
65
+ "float NdotV = max(dot(N, V), 0.0);",
66
+ "float NdotL = max(dot(N, L), 0.0);",
67
+ "return GeometrySchlickGGX(NdotV, roughness) * GeometrySchlickGGX(NdotL, roughness);",
68
+ ],
69
+ "}",
70
+ ],
71
+ fresnelSchlick: [
72
+ "vec3 fresnelSchlick(float cosTheta, vec3 F0) {",
73
+ ["return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);"],
74
+ "}",
75
+ ],
76
+ fresnelSchlickRoughness: [
77
+ "// Roughness-dependent Fresnel for IBL",
78
+ "vec3 fresnelSchlickRoughness(float cosTheta, vec3 F0, float roughness) {",
79
+ ["return F0 + (max(vec3(1.0 - roughness), F0) - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);"],
80
+ "}",
81
+ ],
82
+ getNormalFromMap: [
83
+ "// --- TBN Generation (Screen-space derivatives) ---",
84
+ "vec3 getNormalFromMap() {",
85
+ [
86
+ "vec3 tangentNormal = texture(texNormal, varUV).xyz * 2.0 - 1.0;",
87
+ "",
88
+ "vec3 Q1 = dFdx(varPosition.xyz);",
89
+ "vec3 Q2 = dFdy(varPosition.xyz);",
90
+ "vec2 st1 = dFdx(varUV);",
91
+ "vec2 st2 = dFdy(varUV);",
92
+ "",
93
+ "vec3 N = normalize(varNormal);",
94
+ "vec3 T = normalize(Q1 * st2.t - Q2 * st1.t);",
95
+ "vec3 B = -normalize(cross(N, T));",
96
+ "mat3 TBN = mat3(T, B, N);",
97
+ "",
98
+ "return normalize(TBN * tangentNormal);",
99
+ ],
100
+ "}",
101
+ ],
102
+ },
103
+ fragmentShaderCode: [
104
+ "// 1. Fetch Material Properties",
105
+ "vec3 albedo = texture(texAlbedo, varUV).rgb;",
106
+ "albedo = pow(albedo, vec3(2.2)); // Convert to Linear",
107
+ "float roughness = texture(texMetallicRoughness, varUV).g;",
108
+ "float metallic = texture(texMetallicRoughness, varUV).b;",
109
+ options.textures.occlusion
110
+ ? "float ao = texture(texOcclusion, varUV).r;"
111
+ : "// No ambient occlusion texture",
112
+ "vec3 emission = texture(texEmission, varUV).rgb;",
113
+ "",
114
+ "// 2. Setup Vectors",
115
+ "vec3 N = getNormalFromMap();",
116
+ "vec3 V = normalize(uniCameraPosition - varPosition.xyz);",
117
+ "vec3 R = reflect(-V, N); ",
118
+ "",
119
+ "// 3. Fresnel Reflectance at Zero Incidence (F0)",
120
+ "vec3 F0 = vec3(0.04); ",
121
+ "F0 = mix(F0, albedo, metallic);",
122
+ "",
123
+ "// 4. Lighting Calculation (Using Skybox as a Simple Light Source)",
124
+ "// For a full PBR, you'd iterate over point lights here. ",
125
+ "// Below is the Ambient/IBL contribution which defines the look.",
126
+ "",
127
+ "vec3 F = fresnelSchlickRoughness(max(dot(N, V), 0.0), F0, roughness);",
128
+ "",
129
+ "vec3 kS = F;",
130
+ "vec3 kD = (1.0 - kS) * (1.0 - metallic);",
131
+ "",
132
+ "// Simple IBL Diffuse",
133
+ "vec3 irradiance = texture(texSkybox, N).rgb;",
134
+ "vec3 diffuse = irradiance * albedo;",
135
+ "",
136
+ "// Simple IBL Specular (Sampling skybox based on roughness)",
137
+ "// Note: In a real engine, you'd use a pre-filtered mipmapped radiance map",
138
+ "vec3 prefilteredColor = textureLod(texSkybox, R, roughness * 7.0).rgb; ",
139
+ "vec3 specular = prefilteredColor * F;",
140
+ "",
141
+ "// 5. Combine and Apply AO/Emission",
142
+ options.textures.occlusion
143
+ ? "vec3 ambient = (kD * diffuse + specular) * ao;"
144
+ : "vec3 ambient = (kD * diffuse + specular);",
145
+ "vec3 color = ambient + emission;",
146
+ "",
147
+ "// 6. Tonemapping and Gamma Correction",
148
+ "color = color / (color + vec3(1.0)); // Reinhard",
149
+ "color = pow(color, vec3(1.0/2.2));",
150
+ "",
151
+ "return vec4(color, 1.0);",
152
+ ],
153
+ setUniforms: ({ program, context }) => {
154
+ program.uniform3fv("uniCameraPosition", context.camera.transfo.actualPosition);
155
+ const { textureNormal, textureAlbedo, textureEmission, textureOcclusion, textureMetallicRoughness, textureSkybox, } = this;
156
+ let unit = 0;
157
+ textureNormal.activate(unit++, program, "texNormal");
158
+ textureAlbedo.activate(unit++, program, "texAlbedo");
159
+ textureEmission.activate(unit++, program, "texEmission");
160
+ if (textureOcclusion)
161
+ textureOcclusion.activate(unit++, program, "texOcclusion");
162
+ textureMetallicRoughness.activate(unit++, program, "texMetallicRoughness");
163
+ textureSkybox.activate(unit++, program, "texSkybox");
164
+ },
165
+ delete: () => {
166
+ this.textureNormal.delete();
167
+ this.textureAlbedo.delete();
168
+ this.textureEmission.delete();
169
+ this.textureOcclusion?.delete();
170
+ this.textureMetallicRoughness.delete();
171
+ this.textureSkybox.delete();
172
+ },
173
+ });
174
+ this.light = new TgdLight();
175
+ this.ambient = new TgdLight({ color: new TgdVec4(0.2, 0.1, 0, 0) });
176
+ this.specularExponent = 32;
177
+ this.specularIntensity = 0.8;
178
+ this.textureNormal = options.textures.normal;
179
+ this.textureAlbedo = options.textures.albedo;
180
+ this.textureEmission = options.textures.emission;
181
+ this.textureOcclusion = options.textures.occlusion;
182
+ this.textureMetallicRoughness = options.textures.metallicRoughness;
183
+ this.textureSkybox = options.textures.skybox;
184
+ }
185
+ }
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9nbHRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTSxZQUFZLENBQUE7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFhNUMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQWE1QyxZQUFZLE9BQTJGO1FBQ25HLE1BQU0sUUFBUSxHQUF5QztZQUNuRCxRQUFRLEVBQUUsTUFBTTtZQUNoQixXQUFXLEVBQUUsTUFBTTtZQUNuQixVQUFVLEVBQUUsTUFBTTtZQUNsQixtQkFBbUIsRUFBRSxPQUFPO1lBQzVCLG9CQUFvQixFQUFFLE9BQU87WUFDN0Isa0JBQWtCLEVBQUUsTUFBTTtZQUMxQixpQkFBaUIsRUFBRSxNQUFNO1lBQ3pCLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLG9CQUFvQixFQUFFLFdBQVc7WUFDakMsU0FBUyxFQUFFLGFBQWE7U0FDM0IsQ0FBQTtRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsV0FBVyxDQUFBO1FBQzFDLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBMkM7WUFDckQsV0FBVyxFQUFFLE1BQU07WUFDbkIsU0FBUyxFQUFFLE1BQU07WUFDakIsS0FBSyxFQUFFLE1BQU07U0FDaEIsQ0FBQTtRQUVELEtBQUssQ0FBQztZQUNGLFFBQVE7WUFDUixRQUFRO1lBQ1IsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLFdBQVcsSUFBSSxDQUFD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
@@ -4,7 +4,6 @@ import { TgdMaterial } from "./material.js";
4
4
  const DEFAULT_COLOR = [0.111, 0.333, 0.999, 1];
5
5
  export class TgdMaterialHull extends TgdMaterial {
6
6
  constructor(options = {}) {
7
- var _a, _b, _c;
8
7
  super({
9
8
  uniforms: {
10
9
  uniColor: "vec4",
@@ -28,9 +27,9 @@ export class TgdMaterialHull extends TgdMaterial {
28
27
  });
29
28
  this.thickness = 1;
30
29
  this.zShift = 0.01;
31
- this.color = new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
32
- this.thickness = (_b = options.expansion) !== null && _b !== void 0 ? _b : 1;
33
- this.zShift = (_c = options.zShift) !== null && _c !== void 0 ? _c : 0.01;
30
+ this.color = new TgdVec4(options.color ?? DEFAULT_COLOR);
31
+ this.thickness = options.expansion ?? 1;
32
+ this.zShift = options.zShift ?? 0.01;
34
33
  }
35
34
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9odWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBcUJ4QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUU1RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBSzVDLFlBQVksVUFBa0MsRUFBRTs7UUFDNUMsS0FBSyxDQUFDO1lBQ0YsUUFBUSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLE9BQU87YUFDaEI7WUFDRCxrQkFBa0IsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQ3hDLGdCQUFnQixFQUFFO2dCQUNkLHNFQUFzRTtnQkFDdEUsNENBQTRDO2dCQUM1QyxZQUFZO2dCQUNaLHlCQUF5QjtnQkFDekIsK0JBQStCO2FBQ2xDO1lBQ0QsV0FBVyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQTJCLEVBQVEsRUFBRTtnQkFDeEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUMxQyxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFBO2dCQUN4RCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDMUMsQ0FBQztZQUNELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsS0FBSyxFQUFFO1NBQ3pDLENBQUMsQ0FBQTtRQXhCQyxjQUFTLEdBQUcsQ0FBQyxDQUFBO1FBQ2IsV0FBTSxHQUFHLElBQUksQ0FBQTtRQXlCaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFBLE9BQU8sQ0FBQyxLQUFLLG1DQUFJLGFBQWEsQ0FBQyxDQUFBO1FBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBQSxPQUFPLENBQUMsU0FBUyxtQ0FBSSxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLElBQUksQ0FBQTtJQUN4QyxDQUFDO0NBQ0oifQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9odWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBcUJ4QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUU1RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBSzVDLFlBQVksVUFBa0MsRUFBRTtRQUM1QyxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsT0FBTzthQUNoQjtZQUNELGtCQUFrQixFQUFFLENBQUMsa0JBQWtCLENBQUM7WUFDeEMsZ0JBQWdCLEVBQUU7Z0JBQ2Qsc0VBQXNFO2dCQUN0RSw0Q0FBNEM7Z0JBQzVDLFlBQVk7Z0JBQ1oseUJBQXlCO2dCQUN6QiwrQkFBK0I7YUFDbEM7WUFDRCxXQUFXLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBMkIsRUFBUSxFQUFFO2dCQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQzFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUE7Z0JBQ3hELE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMxQyxDQUFDO1lBQ0QsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxLQUFLLEVBQUU7U0FDekMsQ0FBQyxDQUFBO1FBeEJDLGNBQVMsR0FBRyxDQUFDLENBQUE7UUFDYixXQUFNLEdBQUcsSUFBSSxDQUFBO1FBeUJoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLENBQUE7UUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFBO0lBQ3hDLENBQUM7Q0FDSiJ9
@@ -6,9 +6,11 @@ export * from "./flat-texture";
6
6
  export * from "./ghost";
7
7
  export * from "./glass";
8
8
  export * from "./global";
9
+ export * from "./gltf";
9
10
  export * from "./hull";
10
11
  export * from "./mask";
11
12
  export * from "./material";
13
+ export * from "./mirror";
12
14
  export * from "./normal-map";
13
15
  export * from "./normals";
14
16
  export * from "./solid";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA"}
@@ -6,11 +6,13 @@ export * from "./flat-texture.js";
6
6
  export * from "./ghost.js";
7
7
  export * from "./glass.js";
8
8
  export * from "./global.js";
9
+ export * from "./gltf.js";
9
10
  export * from "./hull.js";
10
11
  export * from "./mask.js";
11
12
  export * from "./material.js";
13
+ export * from "./mirror.js";
12
14
  export * from "./normal-map.js";
13
15
  export * from "./normals.js";
14
16
  export * from "./solid.js";
15
17
  export * from "./toon.js";
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsUUFBUSxDQUFBIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsUUFBUSxDQUFBIn0=
@@ -44,7 +44,10 @@ export class TgdMaterial {
44
44
  return this._vertexShaderCodeForGetPosition;
45
45
  }
46
46
  applyState(context, action) {
47
- TgdPainterState.do(context, Object.assign(Object.assign({}, this.state), { action }));
47
+ TgdPainterState.do(context, {
48
+ ...this.state,
49
+ action,
50
+ });
48
51
  }
49
52
  constructor({ attPosition = "POSITION", attNormal = "NORMAL", attTangent = "CUSTOM_ATTRIBUTE_3", attUV = "TEXCOORD_0", varyings = {}, uniforms = {}, fragmentShaderCode = ["return vec4(1, .666, .1, 1);"], fragmentShaderHeader = [], extraFragmentShaderFunctions = {}, vertexShaderCode = [], extraVertexShaderFunctions = {}, vertexShaderCodeForGetPosition = "return pos;", setUniforms, state = {}, debug = false, delete: deleteFunction = () => { }, }) {
50
53
  this.debug = false;
@@ -66,4 +69,4 @@ export class TgdMaterial {
66
69
  this.state = state;
67
70
  }
68
71
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUVILGVBQWUsR0FJbEIsTUFBTSxJQUFJLENBQUE7QUF1RVgsTUFBTSxPQUFPLFdBQVc7SUF3QnBCOztPQUVHO0lBQ0gsSUFBSSxrQkFBa0I7UUFDbEIsSUFBSSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtRQUNyRixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsSUFBSSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtRQUN6RixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQTtJQUNyQyxDQUFDO0lBSUQsSUFBSSw0QkFBNEI7UUFDNUIsSUFBSSxPQUFPLElBQUksQ0FBQyw2QkFBNkIsS0FBSyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQTtRQUN6RyxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQTtJQUM3QyxDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQjtRQUNoQixJQUFJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ2pGLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFBO0lBQ2pDLENBQUM7SUFJRCxJQUFJLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixLQUFLLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ3JHLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFBO0lBQzNDLENBQUM7SUFJRDs7Ozs7O09BTUc7SUFDSCxJQUFJLDhCQUE4QjtRQUM5QixJQUFJLE9BQU8sSUFBSSxDQUFDLCtCQUErQixLQUFLLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFBO1FBQzdHLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFBO0lBQy9DLENBQUM7SUFNTSxVQUFVLENBQUMsT0FBaUUsRUFBRSxNQUFrQjtRQUNuRyxlQUFlLENBQUMsRUFBRSxDQUFDLE9BQU8sa0NBQ25CLElBQUksQ0FBQyxLQUFLLEtBQ2IsTUFBTSxJQUNSLENBQUE7SUFDTixDQUFDO0lBSUQsWUFBWSxFQUNSLFdBQVcsR0FBRyxVQUFVLEVBQ3hCLFNBQVMsR0FBRyxRQUFRLEVBQ3BCLFVBQVUsR0FBRyxvQkFBb0IsRUFDakMsS0FBSyxHQUFHLFlBQVksRUFDcEIsUUFBUSxHQUFHLEVBQUUsRUFDYixRQUFRLEdBQUcsRUFBRSxFQUNiLGtCQUFrQixHQUFHLENBQUMsOEJBQThCLENBQUMsRUFDckQsb0JBQW9CLEdBQUcsRUFBRSxFQUN6Qiw0QkFBNEIsR0FBRyxFQUFFLEVBQ2pDLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsMEJBQTBCLEdBQUcsRUFBRSxFQUMvQiw4QkFBOEIsR0FBRyxhQUFhLEVBQzlDLFdBQVcsRUFDWCxLQUFLLEdBQUcsRUFBRSxFQUNWLEtBQUssR0FBRyxLQUFLLEVBQ2IsTUFBTSxFQUFFLGNBQWMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLEdBQ1A7UUF4R3ZCLFVBQUssR0FBRyxLQUFLLENBQUE7UUF5R2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQTtRQUM3QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsb0JBQW9CLENBQUE7UUFDakQsSUFBSSxDQUFDLDZCQUE2QixHQUFHLDRCQUE0QixDQUFBO1FBQ2pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQTtRQUN6QyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsMEJBQTBCLENBQUE7UUFDN0QsSUFBSSxDQUFDLCtCQUErQixHQUFHLDhCQUE4QixDQUFBO1FBQ3JFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7Q0FDSiJ9
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUVILGVBQWUsR0FJbEIsTUFBTSxJQUFJLENBQUE7QUF1RVgsTUFBTSxPQUFPLFdBQVc7SUF3QnBCOztPQUVHO0lBQ0gsSUFBSSxrQkFBa0I7UUFDbEIsSUFBSSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtRQUNyRixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsSUFBSSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtRQUN6RixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQTtJQUNyQyxDQUFDO0lBSUQsSUFBSSw0QkFBNEI7UUFDNUIsSUFBSSxPQUFPLElBQUksQ0FBQyw2QkFBNkIsS0FBSyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQTtRQUN6RyxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQTtJQUM3QyxDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQjtRQUNoQixJQUFJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ2pGLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFBO0lBQ2pDLENBQUM7SUFJRCxJQUFJLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixLQUFLLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ3JHLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFBO0lBQzNDLENBQUM7SUFJRDs7Ozs7O09BTUc7SUFDSCxJQUFJLDhCQUE4QjtRQUM5QixJQUFJLE9BQU8sSUFBSSxDQUFDLCtCQUErQixLQUFLLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFBO1FBQzdHLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFBO0lBQy9DLENBQUM7SUFNTSxVQUFVLENBQUMsT0FBaUUsRUFBRSxNQUFrQjtRQUNuRyxlQUFlLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRTtZQUN4QixHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsTUFBTTtTQUNULENBQUMsQ0FBQTtJQUNOLENBQUM7SUFJRCxZQUFZLEVBQ1IsV0FBVyxHQUFHLFVBQVUsRUFDeEIsU0FBUyxHQUFHLFFBQVEsRUFDcEIsVUFBVSxHQUFHLG9CQUFvQixFQUNqQyxLQUFLLEdBQUcsWUFBWSxFQUNwQixRQUFRLEdBQUcsRUFBRSxFQUNiLFFBQVEsR0FBRyxFQUFFLEVBQ2Isa0JBQWtCLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxFQUNyRCxvQkFBb0IsR0FBRyxFQUFFLEVBQ3pCLDRCQUE0QixHQUFHLEVBQUUsRUFDakMsZ0JBQWdCLEdBQUcsRUFBRSxFQUNyQiwwQkFBMEIsR0FBRyxFQUFFLEVBQy9CLDhCQUE4QixHQUFHLGFBQWEsRUFDOUMsV0FBVyxFQUNYLEtBQUssR0FBRyxFQUFFLEVBQ1YsS0FBSyxHQUFHLEtBQUssRUFDYixNQUFNLEVBQUUsY0FBYyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsR0FDUDtRQXhHdkIsVUFBSyxHQUFHLEtBQUssQ0FBQTtRQXlHaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUE7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGtCQUFrQixDQUFBO1FBQzdDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQTtRQUNqRCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsNEJBQTRCLENBQUE7UUFDakUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFBO1FBQ3pDLElBQUksQ0FBQywyQkFBMkIsR0FBRywwQkFBMEIsQ0FBQTtRQUM3RCxJQUFJLENBQUMsK0JBQStCLEdBQUcsOEJBQThCLENBQUE7UUFDckUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDdEIsQ0FBQztDQUNKIn0=
@@ -0,0 +1,18 @@
1
+ import { TgdVec4 } from "../math";
2
+ import { TgdTextureCube } from "../texture";
3
+ import type { ArrayNumber4 } from "../types";
4
+ import { TgdMaterial } from "./material";
5
+ import { TgdColor } from "../color";
6
+ export type TgdMaterialMirrorOptions = {
7
+ skybox: TgdTextureCube;
8
+ tint?: TgdVec4 | ArrayNumber4 | TgdColor | string;
9
+ roughness?: number;
10
+ };
11
+ export declare class TgdMaterialMirror extends TgdMaterial {
12
+ private readonly options;
13
+ readonly skybox: TgdTextureCube;
14
+ roughness: number;
15
+ readonly tint: TgdColor;
16
+ constructor(options: TgdMaterialMirrorOptions);
17
+ }
18
+ //# sourceMappingURL=mirror.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mirror.d.ts","sourceRoot":"","sources":["../../src/material/mirror.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAwC,MAAM,YAAY,CAAA;AACpF,OAAO,EAAE,WAAW,EAA2B,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,EAAE,cAAc,CAAA;IACtB,IAAI,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAA;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAID,qBAAa,iBAAkB,SAAQ,WAAW;IAKlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,SAAgB,MAAM,EAAE,cAAc,CAAA;IAC/B,SAAS,SAAI;IACpB,SAAgB,IAAI,EAAE,QAAQ,CAAA;gBAED,OAAO,EAAE,wBAAwB;CAiDjE"}