@tolokoban/tgd 2.0.29 → 2.0.31

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 (112) hide show
  1. package/lib/dist/canvas/gizmo/gizmo.js +2 -2
  2. package/lib/dist/canvas/landscape/landscape.js +2 -2
  3. package/lib/dist/context/context.d.ts +14 -31
  4. package/lib/dist/context/context.d.ts.map +1 -1
  5. package/lib/dist/context/context.js +54 -69
  6. package/lib/dist/factory/mesh-glb.js +2 -2
  7. package/lib/dist/geometry/gltf.d.ts +12 -0
  8. package/lib/dist/geometry/gltf.d.ts.map +1 -0
  9. package/lib/dist/geometry/gltf.js +36 -0
  10. package/lib/dist/geometry/index.d.ts +1 -0
  11. package/lib/dist/geometry/index.d.ts.map +1 -1
  12. package/lib/dist/geometry/index.js +2 -1
  13. package/lib/dist/geometry/tools/marching-cubes/marching-cubes.js +15 -5
  14. package/lib/dist/index.d.ts +1 -0
  15. package/lib/dist/index.d.ts.map +1 -1
  16. package/lib/dist/index.js +2 -1
  17. package/lib/dist/loader/binary.d.ts.map +1 -1
  18. package/lib/dist/loader/binary.js +3 -1
  19. package/lib/dist/material/face-orientation.d.ts +4 -0
  20. package/lib/dist/material/face-orientation.d.ts.map +1 -1
  21. package/lib/dist/material/face-orientation.js +6 -2
  22. package/lib/dist/material/ghost.d.ts +2 -2
  23. package/lib/dist/material/ghost.d.ts.map +1 -1
  24. package/lib/dist/material/ghost.js +1 -1
  25. package/lib/dist/material/hull.d.ts +14 -1
  26. package/lib/dist/material/hull.d.ts.map +1 -1
  27. package/lib/dist/material/hull.js +18 -6
  28. package/lib/dist/material/index.d.ts +1 -0
  29. package/lib/dist/material/index.d.ts.map +1 -1
  30. package/lib/dist/material/index.js +2 -1
  31. package/lib/dist/material/material.d.ts +7 -2
  32. package/lib/dist/material/material.d.ts.map +1 -1
  33. package/lib/dist/material/material.js +9 -1
  34. package/lib/dist/material/toon.d.ts +38 -0
  35. package/lib/dist/material/toon.d.ts.map +1 -0
  36. package/lib/dist/material/toon.js +95 -0
  37. package/lib/dist/math/mat4.d.ts +1 -0
  38. package/lib/dist/math/mat4.d.ts.map +1 -1
  39. package/lib/dist/math/mat4.js +18 -1
  40. package/lib/dist/math/transfo.d.ts.map +1 -1
  41. package/lib/dist/math/transfo.js +13 -4
  42. package/lib/dist/painter/axes/axes.d.ts +4 -0
  43. package/lib/dist/painter/axes/axes.d.ts.map +1 -1
  44. package/lib/dist/painter/axes/axes.js +14 -1
  45. package/lib/dist/painter/framebuffer-msaa.d.ts +85 -0
  46. package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -0
  47. package/lib/dist/painter/framebuffer-msaa.js +216 -0
  48. package/lib/dist/painter/framebuffer.js +11 -5
  49. package/lib/dist/painter/group.d.ts +9 -3
  50. package/lib/dist/painter/group.d.ts.map +1 -1
  51. package/lib/dist/painter/group.js +42 -4
  52. package/lib/dist/painter/index.d.ts +3 -1
  53. package/lib/dist/painter/index.d.ts.map +1 -1
  54. package/lib/dist/painter/index.js +4 -2
  55. package/lib/dist/painter/mesh/gltf/gltf.d.ts +2 -2
  56. package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
  57. package/lib/dist/painter/mesh/gltf/gltf.js +6 -4
  58. package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
  59. package/lib/dist/painter/mesh/mesh/mesh.js +22 -16
  60. package/lib/dist/painter/node/node.d.ts +1 -1
  61. package/lib/dist/painter/node/node.d.ts.map +1 -1
  62. package/lib/dist/painter/node/node.js +1 -1
  63. package/lib/dist/painter/painter.d.ts +2 -2
  64. package/lib/dist/painter/painter.d.ts.map +1 -1
  65. package/lib/dist/painter/painter.js +2 -2
  66. package/lib/dist/painter/segments/capsule.d.ts +11 -0
  67. package/lib/dist/painter/segments/capsule.d.ts.map +1 -0
  68. package/lib/dist/painter/segments/capsule.js +109 -0
  69. package/lib/dist/painter/segments/segments.d.ts +22 -27
  70. package/lib/dist/painter/segments/segments.d.ts.map +1 -1
  71. package/lib/dist/painter/segments/segments.js +134 -139
  72. package/lib/dist/painter/segments.backup/index.d.ts +2 -0
  73. package/lib/dist/painter/segments.backup/index.d.ts.map +1 -0
  74. package/lib/dist/painter/segments.backup/index.js +2 -0
  75. package/lib/dist/painter/segments.backup/segments.d.ts +95 -0
  76. package/lib/dist/painter/segments.backup/segments.d.ts.map +1 -0
  77. package/lib/dist/painter/segments.backup/segments.frag +22 -0
  78. package/lib/dist/painter/segments.backup/segments.js +223 -0
  79. package/lib/dist/painter/segments.backup/segments.vert +121 -0
  80. package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
  81. package/lib/dist/painter/skybox/skybox.js +4 -3
  82. package/lib/dist/painter/x-ray/background.d.ts +17 -0
  83. package/lib/dist/painter/x-ray/background.d.ts.map +1 -0
  84. package/lib/dist/painter/x-ray/background.frag +11 -0
  85. package/lib/dist/painter/x-ray/background.js +39 -0
  86. package/lib/dist/painter/x-ray/background.vert +12 -0
  87. package/lib/dist/painter/x-ray/index.d.ts +2 -0
  88. package/lib/dist/painter/x-ray/index.d.ts.map +1 -0
  89. package/lib/dist/painter/x-ray/index.js +2 -0
  90. package/lib/dist/painter/x-ray/x-ray.d.ts +20 -0
  91. package/lib/dist/painter/x-ray/x-ray.d.ts.map +1 -0
  92. package/lib/dist/painter/x-ray/x-ray.js +59 -0
  93. package/lib/dist/parser/gltf/gltf.d.ts +4 -4
  94. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
  95. package/lib/dist/parser/gltf/gltf.js +29 -17
  96. package/lib/dist/program/program.js +2 -2
  97. package/lib/dist/sound.d.ts +8 -0
  98. package/lib/dist/sound.d.ts.map +1 -0
  99. package/lib/dist/sound.js +43 -0
  100. package/lib/dist/texture/texture-cube.d.ts +2 -3
  101. package/lib/dist/texture/texture-cube.d.ts.map +1 -1
  102. package/lib/dist/texture/texture-cube.js +14 -19
  103. package/lib/dist/texture/texture2d.d.ts +3 -2
  104. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  105. package/lib/dist/texture/texture2d.js +56 -19
  106. package/lib/dist/utils/action/camera.d.ts.map +1 -1
  107. package/lib/dist/utils/action/camera.js +1 -2
  108. package/lib/dist/utils/framebuffer.d.ts +1 -0
  109. package/lib/dist/utils/framebuffer.d.ts.map +1 -1
  110. package/lib/dist/utils/framebuffer.js +19 -1
  111. package/lib/dist/webgl/texture/texture2d.js +3 -3
  112. package/package.json +1 -1
@@ -125,14 +125,24 @@ class VolumeHelper {
125
125
  elements: new Uint32Array(this._elements),
126
126
  };
127
127
  };
128
+ let { voxelSize } = options;
129
+ if (voxelSize <= 0) {
130
+ throw new Error(`We cannot do marching cube with voxels so small: ${voxelSize}`);
131
+ }
128
132
  const time0 = Date.now();
129
133
  this.configurations = tgdDataMarchingCubesConfigurations();
130
134
  this.corners = tgdDataMarchingCubesVoxelCorners();
131
135
  this.midPoints = tgdDataMarchingCubesVoxelMidPoints();
132
- const { bboxSize, voxelSize } = options;
133
- this.dimX = Math.ceil(bboxSize[0] / voxelSize);
134
- this.dimY = Math.ceil(bboxSize[1] / voxelSize);
135
- this.dimZ = Math.ceil(bboxSize[2] / voxelSize);
136
+ const { bboxSize } = options;
137
+ while (true) {
138
+ this.dimX = Math.ceil(bboxSize[0] / voxelSize);
139
+ this.dimY = Math.ceil(bboxSize[1] / voxelSize);
140
+ this.dimZ = Math.ceil(bboxSize[2] / voxelSize);
141
+ if (this.dimX * this.dimY * this.dimZ < 1e9)
142
+ break;
143
+ // Volume is too big, let's double the size of the voxel.
144
+ voxelSize *= 2;
145
+ }
136
146
  this.volume = this.computeVolume();
137
147
  console.log("Volume: ", Date.now() - time0, "ms");
138
148
  }
@@ -232,4 +242,4 @@ class VolumeHelper {
232
242
  function key(x, y, z) {
233
243
  return `${(x + x).toFixed(0)}/${(y + y).toFixed(0)}/${(z + z).toFixed(0)}`;
234
244
  }
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyY2hpbmctY3ViZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VvbWV0cnkvdG9vbHMvbWFyY2hpbmctY3ViZXMvbWFyY2hpbmctY3ViZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0RBQWtEO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTVDLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsZ0NBQWdDLEVBQ2hDLGtDQUFrQyxHQUNyQyxNQUFNLFFBQVEsQ0FBQTtBQTBCZixNQUFNLFVBQVUsNEJBQTRCLENBQ3hDLE9BQXNDLEVBQ3RDLGdCQUFnQixHQUFHLENBQUM7SUFFcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEMsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FDckMsT0FBc0M7O0lBRXRDLE1BQU0sRUFBRSxXQUFXLEdBQUcsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFBO0lBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDO1FBQzNCLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTTtLQUN4QixDQUFDLENBQUE7SUFDRixNQUFNLGNBQWMsR0FBRyxNQUFBLE9BQU8sQ0FBQyxjQUFjLG1DQUFJLENBQUMsQ0FBQTtJQUNsRCxJQUFJLFFBQVEsR0FBaUIsTUFBTSxDQUFBO0lBQ25DLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxjQUFjLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUMvQyxRQUFRLEdBQUcseUJBQXlCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFdBQVcsQ0FBQztRQUM3QixPQUFPO1FBQ1AsV0FBVztRQUNYLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFFBQVEsRUFBRSxXQUFXO0tBQ3hCLENBQUMsQ0FBQTtJQUNGLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUN6QixPQUFPLFFBQVEsQ0FBQTtBQUNuQixDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FDOUIsU0FBdUIsRUFDdkIsUUFBaUM7SUFFakMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUN0RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDMUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMxQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzFCLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDMUIsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNoQixNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ2hCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDaEIsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzNCLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDM0IsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzNCLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDM0IsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzNCLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDM0IsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7UUFDdEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7UUFDdEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7UUFDdEIsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3QixpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzdCLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0IsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3QixpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzdCLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0IsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3QixpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzdCLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0IsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoQixPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2hCLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2YsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3QixpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzdCLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUNELE9BQU8saUJBQWlCLENBQUE7QUFDNUIsQ0FBQztBQUVELE1BQU0sWUFBWTtJQWlCZCxZQUE2QixPQUFzQztRQUF0QyxZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUxsRCxZQUFPLEdBQWEsRUFBRSxDQUFBO1FBQ3RCLGNBQVMsR0FBYSxFQUFFLENBQUE7UUFDakMsa0JBQWEsR0FBRyxDQUFDLENBQUE7UUFDUixXQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUE7UUFtRGxDLGlCQUFZLEdBQUcsR0FHOUIsRUFBRTtZQUNBLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFBO1lBQ3JELE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFBO1lBQ3pDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQTtZQUM5QyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sQ0FBQyxHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsRUFBRSxDQUFBO2dCQUNsQyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7b0JBQy9CLE1BQU0sQ0FBQyxHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsRUFBRSxDQUFBO29CQUNsQyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7d0JBQy9CLE1BQU0sQ0FBQyxHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsRUFBRSxDQUFBO3dCQUNsQyxNQUFNLE1BQU0sR0FDUixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO3dCQUN4RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7NEJBQ3hDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7NEJBQ3ZCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7NEJBQ3ZCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7NEJBQ3ZCLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBOzRCQUNoQyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTs0QkFDaEMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7NEJBQ2hDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFBOzRCQUM5QixNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQTs0QkFDOUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUE7NEJBQzlCLElBQUksQ0FBQyxlQUFlLENBQ2hCLEVBQUUsRUFDRixFQUFFLEVBQ0YsRUFBRSxFQUNGLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUNwQyxDQUFBOzRCQUNELE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBOzRCQUNoQyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTs0QkFDaEMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7NEJBQ2hDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFBOzRCQUM5QixNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQTs0QkFDOUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUE7NEJBQzlCLElBQUksQ0FBQyxlQUFlLENBQ2hCLEVBQUUsRUFDRixFQUFFLEVBQ0YsRUFBRSxFQUNGLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUNwQyxDQUFBOzRCQUNELE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBOzRCQUNoQyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTs0QkFDaEMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7NEJBQ2hDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFBOzRCQUM5QixNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQTs0QkFDOUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUE7NEJBQzlCLElBQUksQ0FBQyxlQUFlLENBQ2hCLEVBQUUsRUFDRixFQUFFLEVBQ0YsRUFBRSxFQUNGLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUNwQyxDQUFBO3dCQUNMLENBQUM7b0JBQ0wsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU87Z0JBQ0gsTUFBTSxFQUFFLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ3RDLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQzVDLENBQUE7UUFDTCxDQUFDLENBQUE7UUEvR0csTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsa0NBQWtDLEVBQUUsQ0FBQTtRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLGdDQUFnQyxFQUFFLENBQUE7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQ0FBa0MsRUFBRSxDQUFBO1FBQ3JELE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUE7UUFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFBO1FBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELE9BQU87UUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUE7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNwRCxPQUFPO1lBQ0gsTUFBTSxFQUFFLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDdEMsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDNUMsQ0FBQTtJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsZ0JBQXdCO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUN4QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQTtRQUNsQyxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FDTixDQUNJLEVBQVUsRUFDVixFQUFVLEVBQ1YsRUFBVSxFQUNWLENBQVMsRUFDVCxDQUFTLEVBQ1QsQ0FBUyxFQUNYLEVBQUU7WUFDQSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFBO1lBQ3RELENBQUM7UUFDTCxDQUFDLENBQ0osQ0FBQTtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDckQsT0FBTyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBbUVPLGVBQWUsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO1FBQzlELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2hDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtZQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVO1FBQ3JELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDeEIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFBO1FBQ25CLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQTtRQUNYLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDekIsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUN6QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxXQUFXLElBQUksR0FBRyxDQUFBO1lBQ3RCLENBQUM7WUFDRCxHQUFHLEtBQUssQ0FBQyxDQUFBO1FBQ2IsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFBO0lBQ3RCLENBQUM7SUFFTyxLQUFLLENBQ1QsSUFPUztRQUVULE9BQU8sQ0FBQyxHQUFHLENBQUMsd0RBQXdELENBQUMsQ0FBQTtRQUNyRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ3pDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQTtRQUM5QyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLEdBQUcsT0FBTyxHQUFHLFNBQVMsR0FBRyxFQUFFLENBQUE7WUFDbEMsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO2dCQUMvQixNQUFNLENBQUMsR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLEVBQUUsQ0FBQTtnQkFDbEMsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO29CQUMvQixNQUFNLENBQUMsR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLEVBQUUsQ0FBQTtvQkFDbEMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBQzdCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTyxRQUFRLENBQUMsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVO1FBQy9DLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzNCLE1BQU0sS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUVPLGFBQWE7UUFDakIsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQTtRQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDakMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFBO1FBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbkUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFBO1FBQ2IsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsRUFBRSxDQUFBO1lBQ2xDLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLEdBQUcsT0FBTyxHQUFHLFNBQVMsR0FBRyxFQUFFLENBQUE7Z0JBQ2xDLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDaEMsTUFBTSxDQUFDLEdBQUcsT0FBTyxHQUFHLFNBQVMsR0FBRyxFQUFFLENBQUE7b0JBQ2xDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO29CQUNsQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDMUMsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUE7SUFDakIsQ0FBQztDQUNKO0FBRUQsU0FBUyxHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO0lBQ3hDLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0FBQzlFLENBQUMifQ==
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyY2hpbmctY3ViZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VvbWV0cnkvdG9vbHMvbWFyY2hpbmctY3ViZXMvbWFyY2hpbmctY3ViZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0RBQWtEO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTVDLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsZ0NBQWdDLEVBQ2hDLGtDQUFrQyxHQUNyQyxNQUFNLFFBQVEsQ0FBQTtBQTBCZixNQUFNLFVBQVUsNEJBQTRCLENBQ3hDLE9BQXNDLEVBQ3RDLGdCQUFnQixHQUFHLENBQUM7SUFFcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEMsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FDckMsT0FBc0M7O0lBRXRDLE1BQU0sRUFBRSxXQUFXLEdBQUcsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFBO0lBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDO1FBQzNCLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTTtLQUN4QixDQUFDLENBQUE7SUFDRixNQUFNLGNBQWMsR0FBRyxNQUFBLE9BQU8sQ0FBQyxjQUFjLG1DQUFJLENBQUMsQ0FBQTtJQUNsRCxJQUFJLFFBQVEsR0FBaUIsTUFBTSxDQUFBO0lBQ25DLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxjQUFjLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUMvQyxRQUFRLEdBQUcseUJBQXlCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFdBQVcsQ0FBQztRQUM3QixPQUFPO1FBQ1AsV0FBVztRQUNYLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFFBQVEsRUFBRSxXQUFXO0tBQ3hCLENBQUMsQ0FBQTtJQUNGLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUN6QixPQUFPLFFBQVEsQ0FBQTtBQUNuQixDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FDOUIsU0FBdUIsRUFDdkIsUUFBaUM7SUFFakMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUN0RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDMUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMxQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzFCLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDMUIsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNoQixNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ2hCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDaEIsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzNCLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDM0IsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzNCLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDM0IsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzNCLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDM0IsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7UUFDdEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7UUFDdEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7UUFDdEIsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3QixpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzdCLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0IsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3QixpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUks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
@@ -22,6 +22,7 @@ export * from "./parser";
22
22
  export * from "./program";
23
23
  export * from "./sdf";
24
24
  export * from "./shader";
25
+ export * from "./sound";
25
26
  export * from "./table";
26
27
  export * from "./texture";
27
28
  export * from "./utils";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AAEvB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AAEvB,cAAc,SAAS,CAAA"}
package/lib/dist/index.js CHANGED
@@ -22,6 +22,7 @@ export * from "./parser/index.js";
22
22
  export * from "./program/index.js";
23
23
  export * from "./sdf/index.js";
24
24
  export * from "./shader/index.js";
25
+ export * from "./sound.js";
25
26
  export * from "./table/index.js";
26
27
  export * from "./texture/index.js";
27
28
  export * from "./utils/index.js";
@@ -29,4 +30,4 @@ export * from "./vao/index.js";
29
30
  export * from "./wasm/index.js";
30
31
  export * from "./webgl/index.js";
31
32
  export * from "./types/index.js";
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxPQUFPLENBQUE7QUFDckIsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLE9BQU8sQ0FBQTtBQUNyQixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLE9BQU8sQ0FBQTtBQUNyQixjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFNBQVMsQ0FBQTtBQUV2QixjQUFjLFNBQVMsQ0FBQSJ9
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxPQUFPLENBQUE7QUFDckIsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLE9BQU8sQ0FBQTtBQUNyQixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLE9BQU8sQ0FBQTtBQUNyQixjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFNBQVMsQ0FBQTtBQUV2QixjQUFjLFNBQVMsQ0FBQSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/loader/binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,wBAAsB,UAAU,CAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAmB5B;AAED,wBAAsB,kBAAkB,CACpC,SAAS,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAY7B;AAED,wBAAsB,WAAW,CAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYxB"}
1
+ {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/loader/binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,wBAAsB,UAAU,CAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAoB5B;AAED,wBAAsB,kBAAkB,CACpC,SAAS,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAa7B;AAED,wBAAsB,WAAW,CAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYxB"}
@@ -15,6 +15,7 @@ export function tgdLoadGlb(urlOrFile) {
15
15
  return new TgdDataGlb(data);
16
16
  }
17
17
  catch (error) {
18
+ console.error("Unable to load GLB:", urlOrFile);
18
19
  console.error(error);
19
20
  return null;
20
21
  }
@@ -31,6 +32,7 @@ export function tgdLoadArrayBuffer(urlOrFile) {
31
32
  return data;
32
33
  }
33
34
  catch (error) {
35
+ console.error("Unable to fetch ArrayBuffer:", urlOrFile);
34
36
  console.error(error);
35
37
  return null;
36
38
  }
@@ -52,4 +54,4 @@ export function tgdLoadText(urlOrFile) {
52
54
  }
53
55
  });
54
56
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvYWRlci9iaW5hcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFeEMsTUFBTSxVQUFnQixVQUFVLENBQzVCLFNBQXdCOztRQUV4QixJQUFJLENBQUM7WUFDRCxJQUFJLFNBQVMsWUFBWSxJQUFJLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUE7Z0JBQzFDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDL0IsQ0FBQztZQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDWCxnQ0FBZ0MsU0FBUyxjQUFjLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUMzRixDQUFBO1lBQ0wsQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ3JDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDL0IsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3BCLE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztJQUNMLENBQUM7Q0FBQTtBQUVELE1BQU0sVUFBZ0Isa0JBQWtCLENBQ3BDLFNBQXdCOztRQUV4QixJQUFJLFNBQVMsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUM1QixPQUFPLE1BQU0sU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3hDLENBQUM7UUFDRCxJQUFJLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUNuQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUNyQyxPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNwQixPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7SUFDTCxDQUFDO0NBQUE7QUFFRCxNQUFNLFVBQWdCLFdBQVcsQ0FDN0IsU0FBd0I7O1FBRXhCLElBQUksU0FBUyxZQUFZLElBQUksRUFBRSxDQUFDO1lBQzVCLE9BQU8sTUFBTSxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDakMsQ0FBQztRQUNELElBQUksQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ25DLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQzlCLE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3BCLE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztJQUNMLENBQUM7Q0FBQSJ9
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvYWRlci9iaW5hcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFeEMsTUFBTSxVQUFnQixVQUFVLENBQzVCLFNBQXdCOztRQUV4QixJQUFJLENBQUM7WUFDRCxJQUFJLFNBQVMsWUFBWSxJQUFJLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUE7Z0JBQzFDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDL0IsQ0FBQztZQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDWCxnQ0FBZ0MsU0FBUyxjQUFjLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUMzRixDQUFBO1lBQ0wsQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ3JDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDL0IsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxDQUFBO1lBQy9DLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDcEIsT0FBTyxJQUFJLENBQUE7UUFDZixDQUFDO0lBQ0wsQ0FBQztDQUFBO0FBRUQsTUFBTSxVQUFnQixrQkFBa0IsQ0FDcEMsU0FBd0I7O1FBRXhCLElBQUksU0FBUyxZQUFZLElBQUksRUFBRSxDQUFDO1lBQzVCLE9BQU8sTUFBTSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDeEMsQ0FBQztRQUNELElBQUksQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ25DLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ3JDLE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixFQUFFLFNBQVMsQ0FBQyxDQUFBO1lBQ3hELE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDcEIsT0FBTyxJQUFJLENBQUE7UUFDZixDQUFDO0lBQ0wsQ0FBQztDQUFBO0FBRUQsTUFBTSxVQUFnQixXQUFXLENBQzdCLFNBQXdCOztRQUV4QixJQUFJLFNBQVMsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUM1QixPQUFPLE1BQU0sU0FBUyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ2pDLENBQUM7UUFDRCxJQUFJLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUNuQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUM5QixPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNwQixPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7SUFDTCxDQUFDO0NBQUEifQ==
@@ -9,6 +9,10 @@ export type TgdMaterialFaceOrientationOptions = Partial<{
9
9
  specularExponent: number;
10
10
  specularIntensity: number;
11
11
  }>;
12
+ /**
13
+ * This material is useful to debug meshes.
14
+ * The outside faces are blue and the inside one are red.
15
+ */
12
16
  export declare class TgdMaterialFaceOrientation extends TgdMaterial {
13
17
  light: TgdLight;
14
18
  ambient: TgdLight;
@@ -1 +1 @@
1
- {"version":3,"file":"face-orientation.d.ts","sourceRoot":"","sources":["../../src/material/face-orientation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,iCAAiC,GAAG,OAAO,CAAC;IACpD,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,QAAQ,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;CAC5B,CAAC,CAAA;AAEF,qBAAa,0BAA2B,SAAQ,WAAW;IAChD,KAAK,WAEV;IACK,OAAO,WAAuD;IAC9D,gBAAgB,SAAK;IACrB,iBAAiB,SAAM;IAE9B,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAO7D;IACD,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;IAE7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,OAAO,GAAE,iCAAsC;IAkC3D,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CASzC"}
1
+ {"version":3,"file":"face-orientation.d.ts","sourceRoot":"","sources":["../../src/material/face-orientation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,iCAAiC,GAAG,OAAO,CAAC;IACpD,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,QAAQ,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;CAC5B,CAAC,CAAA;AAEF;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,WAAW;IAChD,KAAK,WAEV;IACK,OAAO,WAAuD;IAC9D,gBAAgB,SAAK;IACrB,iBAAiB,SAAM;IAE9B,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAO7D;IACD,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;IAE7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,OAAO,GAAE,iCAAsC;IAkC3D,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CASzC"}
@@ -1,6 +1,10 @@
1
1
  import { TgdVec3, TgdVec4 } from "./../math/index.js";
2
2
  import { TgdMaterial } from "./material.js";
3
3
  import { TgdLight } from "./../light/index.js";
4
+ /**
5
+ * This material is useful to debug meshes.
6
+ * The outside faces are blue and the inside one are red.
7
+ */
4
8
  export class TgdMaterialFaceOrientation extends TgdMaterial {
5
9
  constructor(options = {}) {
6
10
  super();
@@ -46,7 +50,7 @@ export class TgdMaterialFaceOrientation extends TgdMaterial {
46
50
  `);`,
47
51
  `return color;`,
48
52
  ];
49
- this.vertexShaderCode = ["varNormal = mat3(uniTransfoMatrix) * NORMAL;"];
53
+ this.vertexShaderCode = ["varNormal = mat3(uniTransfoMatrix) * normal;"];
50
54
  this.varyings = {
51
55
  varNormal: "vec3",
52
56
  };
@@ -61,4 +65,4 @@ export class TgdMaterialFaceOrientation extends TgdMaterial {
61
65
  program.uniform1f("uniSpecularIntensity", this.specularIntensity);
62
66
  }
63
67
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZS1vcmllbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9mYWNlLW9yaWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQVVyQyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsV0FBVztJQXVCdkQsWUFBWSxVQUE2QyxFQUFFO1FBQ3ZELEtBQUssRUFBRSxDQUFBO1FBdkJKLFVBQUssR0FBRyxJQUFJLFFBQVEsQ0FBQztZQUN4QixTQUFTLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRTtTQUNuRCxDQUFDLENBQUE7UUFDSyxZQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzlELHFCQUFnQixHQUFHLEVBQUUsQ0FBQTtRQUNyQixzQkFBaUIsR0FBRyxHQUFHLENBQUE7UUFHZCxhQUFRLEdBQXlDO1lBQzdELFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLG1CQUFtQixFQUFFLE9BQU87WUFDNUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixrQkFBa0IsRUFBRSxNQUFNO1NBQzdCLENBQUE7UUFJZ0IsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDMUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBSXpDLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQTtRQUM5QixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFBO1FBQ2xDLENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxDQUFDLGdCQUFnQixLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUE7UUFDcEQsQ0FBQztRQUNELElBQUksT0FBTyxPQUFPLENBQUMsaUJBQWlCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQTtRQUN0RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3RCLGdFQUFnRTtZQUNoRSwrQ0FBK0M7WUFDL0Msa0ZBQWtGO1lBQ2xGLHdEQUF3RDtZQUN4RCwrREFBK0Q7WUFDL0QsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixtQ0FBbUM7WUFDbkMsbUJBQW1CO1lBQ25CLE9BQU87WUFDUCxJQUFJO1lBQ0osZUFBZTtTQUNsQixDQUFBO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsOENBQThDLENBQUMsQ0FBQTtRQUN4RSxJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ1osU0FBUyxFQUFFLE1BQU07U0FDcEIsQ0FBQTtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBbUI7UUFDM0IsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNoRSxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdEUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ25ELE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDL0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0NBQ0oifQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZS1vcmllbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9mYWNlLW9yaWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQVVyQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsV0FBVztJQXVCdkQsWUFBWSxVQUE2QyxFQUFFO1FBQ3ZELEtBQUssRUFBRSxDQUFBO1FBdkJKLFVBQUssR0FBRyxJQUFJLFFBQVEsQ0FBQztZQUN4QixTQUFTLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRTtTQUNuRCxDQUFDLENBQUE7UUFDSyxZQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzlELHFCQUFnQixHQUFHLEVBQUUsQ0FBQTtRQUNyQixzQkFBaUIsR0FBRyxHQUFHLENBQUE7UUFHZCxhQUFRLEdBQXlDO1lBQzdELFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLG1CQUFtQixFQUFFLE9BQU87WUFDNUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixrQkFBa0IsRUFBRSxNQUFNO1NBQzdCLENBQUE7UUFJZ0IsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDMUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBSXpDLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQTtRQUM5QixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFBO1FBQ2xDLENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxDQUFDLGdCQUFnQixLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUE7UUFDcEQsQ0FBQztRQUNELElBQUksT0FBTyxPQUFPLENBQUMsaUJBQWlCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQTtRQUN0RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3RCLGdFQUFnRTtZQUNoRSwrQ0FBK0M7WUFDL0Msa0ZBQWtGO1lBQ2xGLHdEQUF3RDtZQUN4RCwrREFBK0Q7WUFDL0QsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixtQ0FBbUM7WUFDbkMsbUJBQW1CO1lBQ25CLE9BQU87WUFDUCxJQUFJO1lBQ0osZUFBZTtTQUNsQixDQUFBO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsOENBQThDLENBQUMsQ0FBQTtRQUN4RSxJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ1osU0FBUyxFQUFFLE1BQU07U0FDcEIsQ0FBQTtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBbUI7UUFDM0IsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNoRSxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdEUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ25ELE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDL0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0NBQ0oifQ==
@@ -1,10 +1,10 @@
1
- import { WebglAttributeType } from "../types";
1
+ import { ArrayNumber4, WebglAttributeType } from "../types";
2
2
  import { TgdVec4 } from "../math";
3
3
  import { TgdMaterial } from "./material";
4
4
  import { TgdCodeBloc } from "../shader/code";
5
5
  import { TgdProgram } from "../program";
6
6
  export type TgdMaterialGhostOptions = Partial<{
7
- color: TgdVec4;
7
+ color: ArrayNumber4 | TgdVec4;
8
8
  exponent: number;
9
9
  intensity: number;
10
10
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"ghost.d.ts","sourceRoot":"","sources":["../../src/material/ghost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC;IAC1C,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAC,CAAA;AAIF,qBAAa,gBAAiB,SAAQ,WAAW;IAC7C,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;gBAEjC,EACR,KAAqB,EACrB,QAAY,EACZ,SAAa,GAChB,GAAE,uBAA4B;IAkB/B,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI;CAC1C"}
1
+ {"version":3,"file":"ghost.d.ts","sourceRoot":"","sources":["../../src/material/ghost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC;IAC1C,KAAK,EAAE,YAAY,GAAG,OAAO,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAC,CAAA;AAIF,qBAAa,gBAAiB,SAAQ,WAAW;IAC7C,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;gBAEjC,EACR,KAAqB,EACrB,QAAY,EACZ,SAAa,GAChB,GAAE,uBAA4B;IAkB/B,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI;CAC1C"}
@@ -11,7 +11,7 @@ export class TgdMaterialGhost extends TgdMaterial {
11
11
  `return vec4(color.rgb * ${intensity.toFixed(6)}, color.a) * light;`,
12
12
  ];
13
13
  this.vertexShaderCode = [
14
- "varNormal = mat3(uniModelViewMatrix) * NORMAL;",
14
+ "varNormal = mat3(uniModelViewMatrix) * normal;",
15
15
  ];
16
16
  this.varyings = {
17
17
  varNormal: "vec3",
@@ -3,14 +3,26 @@ import { TgdVec4 } from "../math";
3
3
  import { TgdMaterial } from "./material";
4
4
  import { TgdCodeBloc } from "../shader/code";
5
5
  import { TgdProgram } from "../program";
6
+ import { TgdPainterStateOptions } from "../painter";
6
7
  export type TgdMaterialHullOptions = Partial<{
7
8
  color: ArrayNumber4 | TgdVec4;
9
+ /**
10
+ * Thickness of the line in percentage of the height.
11
+ * Default to 1 %.
12
+ */
8
13
  expansion: number;
14
+ /**
15
+ * The more you shift to the back, the more you will get only
16
+ * the contours.
17
+ * Default to 0.01
18
+ */
19
+ zShift: number;
9
20
  attNormal: string;
10
21
  }>;
11
22
  export declare class TgdMaterialHull extends TgdMaterial {
12
23
  color: TgdVec4;
13
- expansion: number;
24
+ thickness: number;
25
+ zShift: number;
14
26
  readonly varyings: {
15
27
  [name: string]: WebglAttributeType;
16
28
  };
@@ -19,6 +31,7 @@ export declare class TgdMaterialHull extends TgdMaterial {
19
31
  };
20
32
  readonly fragmentShaderCode: TgdCodeBloc;
21
33
  readonly vertexShaderCode: TgdCodeBloc;
34
+ protected readonly state: Partial<TgdPainterStateOptions>;
22
35
  constructor(options?: TgdMaterialHullOptions);
23
36
  setUniforms(program: TgdProgram): void;
24
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hull.d.ts","sourceRoot":"","sources":["../../src/material/hull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAC,CAAA;AAIF,qBAAa,eAAgB,SAAQ,WAAW;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,SAAO;IAEvB,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAG7D;IACD,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;gBAEjC,OAAO,GAAE,sBAA2B;IAchD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAIzC"}
1
+ {"version":3,"file":"hull.d.ts","sourceRoot":"","sources":["../../src/material/hull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAErD,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAA;IAC7B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CACpB,CAAC,CAAA;AAIF,qBAAa,eAAgB,SAAQ,WAAW;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,SAAI;IACb,MAAM,SAAO;IAEpB,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAI7D;IACD,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;IAE7C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAExD;gBAEW,OAAO,GAAE,sBAA2B;IAiBhD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAKzC"}
@@ -1,3 +1,4 @@
1
+ import { webglPresetCull } from "./../utils/index.js";
1
2
  import { TgdVec4 } from "./../math/index.js";
2
3
  import { TgdMaterial } from "./material.js";
3
4
  const DEFAULT_COLOR = [0.111, 0.333, 0.999, 1];
@@ -5,23 +6,34 @@ export class TgdMaterialHull extends TgdMaterial {
5
6
  constructor(options = {}) {
6
7
  var _a, _b, _c;
7
8
  super();
8
- this.expansion = 0.02;
9
+ this.thickness = 1;
10
+ this.zShift = 0.01;
9
11
  this.uniforms = {
10
12
  uniColor: "vec4",
11
13
  uniExpansion: "float",
14
+ uniZ: "float",
15
+ };
16
+ this.state = {
17
+ cull: webglPresetCull.front,
12
18
  };
13
19
  this.color = new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
14
- this.expansion = (_b = options.expansion) !== null && _b !== void 0 ? _b : 0.02;
20
+ this.thickness = (_b = options.expansion) !== null && _b !== void 0 ? _b : 1;
21
+ this.zShift = (_c = options.zShift) !== null && _c !== void 0 ? _c : 0.01;
15
22
  this.fragmentShaderCode = [`return uniColor;`];
16
23
  this.vertexShaderCode = [];
17
24
  this.varyings = {};
18
- this.vertexShaderCodeForGetPosition = [
19
- `return pos + uniExpansion * vec4(${(_c = options.attNormal) !== null && _c !== void 0 ? _c : "NORMAL"}, 0.0);`,
25
+ this.vertexShaderCode = [
26
+ "vec3 n = normalize(vec3((mat3(uniModelViewMatrix) * normal).xy, 0));",
27
+ "float size = uniExpansion * gl_Position.w;",
28
+ "n *= size;",
29
+ "gl_Position.xy += n.xy;",
30
+ "gl_Position.z += size * uniZ;",
20
31
  ];
21
32
  }
22
33
  setUniforms(program) {
23
34
  program.uniform4fv("uniColor", this.color);
24
- program.uniform1f("uniExpansion", this.expansion);
35
+ program.uniform1f("uniExpansion", this.thickness * 0.01);
36
+ program.uniform1f("uniZ", this.zShift);
25
37
  }
26
38
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9odWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQVV4QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUU1RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBWTVDLFlBQVksVUFBa0MsRUFBRTs7UUFDNUMsS0FBSyxFQUFFLENBQUE7UUFYSixjQUFTLEdBQUcsSUFBSSxDQUFBO1FBR1AsYUFBUSxHQUF5QztZQUM3RCxRQUFRLEVBQUUsTUFBTTtZQUNoQixZQUFZLEVBQUUsT0FBTztTQUN4QixDQUFBO1FBTUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFBLE9BQU8sQ0FBQyxLQUFLLG1DQUFJLGFBQWEsQ0FBQyxDQUFBO1FBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBQSxPQUFPLENBQUMsU0FBUyxtQ0FBSSxJQUFJLENBQUE7UUFDMUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyw4QkFBOEIsR0FBRztZQUNsQyxvQ0FDSSxNQUFBLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLFFBQ3pCLFNBQVM7U0FDWixDQUFBO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFtQjtRQUMzQixPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3JELENBQUM7Q0FDSiJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9odWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBcUJ4QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUU1RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBa0I1QyxZQUFZLFVBQWtDLEVBQUU7O1FBQzVDLEtBQUssRUFBRSxDQUFBO1FBakJKLGNBQVMsR0FBRyxDQUFDLENBQUE7UUFDYixXQUFNLEdBQUcsSUFBSSxDQUFBO1FBR0osYUFBUSxHQUF5QztZQUM3RCxRQUFRLEVBQUUsTUFBTTtZQUNoQixZQUFZLEVBQUUsT0FBTztZQUNyQixJQUFJLEVBQUUsT0FBTztTQUNoQixDQUFBO1FBSWtCLFVBQUssR0FBb0M7WUFDeEQsSUFBSSxFQUFFLGVBQWUsQ0FBQyxLQUFLO1NBQzlCLENBQUE7UUFJRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLE1BQUEsT0FBTyxDQUFDLEtBQUssbUNBQUksYUFBYSxDQUFDLENBQUE7UUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFBLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksSUFBSSxDQUFBO1FBQ3BDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNsQixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDcEIsc0VBQXNFO1lBQ3RFLDRDQUE0QztZQUM1QyxZQUFZO1lBQ1oseUJBQXlCO1lBQ3pCLCtCQUErQjtTQUNsQyxDQUFBO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFtQjtRQUMzQixPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUN4RCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDMUMsQ0FBQztDQUNKIn0=
@@ -6,4 +6,5 @@ export * from "./hull";
6
6
  export * from "./material";
7
7
  export * from "./normals";
8
8
  export * from "./solid";
9
+ export * from "./toon";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA"}
@@ -6,4 +6,5 @@ export * from "./hull.js";
6
6
  export * from "./material.js";
7
7
  export * from "./normals.js";
8
8
  export * from "./solid.js";
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLFNBQVMsQ0FBQSJ9
9
+ export * from "./toon.js";
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFFBQVEsQ0FBQSJ9
@@ -1,7 +1,10 @@
1
1
  import { TgdCodeBloc } from "../shader/code";
2
- import { WebglAttributeType, WebglUniformType } from "..";
2
+ import { TgdPainterStateOptions, WebglAttributeType, WebglUniformType } from "..";
3
3
  import { TgdProgram } from "../program";
4
4
  export declare abstract class TgdMaterial {
5
+ attPosition: string;
6
+ attNormal: string;
7
+ attUV: string;
5
8
  /**
6
9
  * Example:
7
10
  * ```
@@ -22,7 +25,7 @@ export declare abstract class TgdMaterial {
22
25
  */
23
26
  abstract readonly fragmentShaderCode: TgdCodeBloc;
24
27
  /**
25
- * The code of a `void applyMaterial()` function.
28
+ * The code of a `void applyMaterial(position, normal, uv)` function.
26
29
  */
27
30
  abstract readonly vertexShaderCode: TgdCodeBloc;
28
31
  /**
@@ -34,5 +37,7 @@ export declare abstract class TgdMaterial {
34
37
  */
35
38
  vertexShaderCodeForGetPosition?: TgdCodeBloc;
36
39
  abstract setUniforms(program: TgdProgram, time: number, delay: number): void;
40
+ protected readonly state: Partial<TgdPainterStateOptions>;
41
+ applyState(gl: WebGL2RenderingContext, action: () => void): void;
37
42
  }
38
43
  //# sourceMappingURL=material.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"material.d.ts","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,8BAAsB,WAAW;IAC7B;;;;;;;;OAQG;IACH,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAK;IAErE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAK;IAEnE;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAA;IAEjD;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAA;IAE/C;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,WAAW,CAAA;IAE5C,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAC/E"}
1
+ {"version":3,"file":"material.d.ts","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAEH,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,IAAI,CAAA;AACX,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,8BAAsB,WAAW;IACtB,WAAW,SAAa;IACxB,SAAS,SAAW;IACpB,KAAK,SAAe;IAE3B;;;;;;;;OAQG;IACH,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAK;IAErE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAK;IAEnE;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAA;IAEjD;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAA;IAE/C;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,WAAW,CAAA;IAE5C,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAE5E,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAK;IAEvD,UAAU,CAAC,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,IAAI;CASnE"}
@@ -1,5 +1,9 @@
1
+ import { TgdPainterState, } from "../index.js";
1
2
  export class TgdMaterial {
2
3
  constructor() {
4
+ this.attPosition = "POSITION";
5
+ this.attNormal = "NORMAL";
6
+ this.attUV = "TEXCOORD_0";
3
7
  /**
4
8
  * Example:
5
9
  * ```
@@ -11,6 +15,10 @@ export class TgdMaterial {
11
15
  */
12
16
  this.varyings = {};
13
17
  this.uniforms = {};
18
+ this.state = {};
19
+ }
20
+ applyState(gl, action) {
21
+ TgdPainterState.do(Object.assign({ gl }, this.state), action);
14
22
  }
15
23
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFnQixXQUFXO0lBQWpDO1FBQ0k7Ozs7Ozs7O1dBUUc7UUFDYSxhQUFRLEdBQTJDLEVBQUUsQ0FBQTtRQUVyRCxhQUFRLEdBQXlDLEVBQUUsQ0FBQTtJQXNCdkUsQ0FBQztDQUFBIn0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILGVBQWUsR0FJbEIsTUFBTSxJQUFJLENBQUE7QUFHWCxNQUFNLE9BQWdCLFdBQVc7SUFBakM7UUFDVyxnQkFBVyxHQUFHLFVBQVUsQ0FBQTtRQUN4QixjQUFTLEdBQUcsUUFBUSxDQUFBO1FBQ3BCLFVBQUssR0FBRyxZQUFZLENBQUE7UUFFM0I7Ozs7Ozs7O1dBUUc7UUFDYSxhQUFRLEdBQTJDLEVBQUUsQ0FBQTtRQUVyRCxhQUFRLEdBQXlDLEVBQUUsQ0FBQTtRQXVCaEQsVUFBSyxHQUFvQyxFQUFFLENBQUE7SUFXbEUsQ0FBQztJQVRVLFVBQVUsQ0FBQyxFQUEwQixFQUFFLE1BQWtCO1FBQzVELGVBQWUsQ0FBQyxFQUFFLGlCQUVWLEVBQUUsSUFDQyxJQUFJLENBQUMsS0FBSyxHQUVqQixNQUFNLENBQ1QsQ0FBQTtJQUNMLENBQUM7Q0FDSiJ9
@@ -0,0 +1,38 @@
1
+ import { ArrayNumber4, WebglAttributeType, WebglUniformType } from "../types";
2
+ import { TgdVec4 } from "../math";
3
+ import { TgdMaterial } from "./material";
4
+ import { TgdCodeBloc } from "../shader/code";
5
+ import { TgdLight } from "../light";
6
+ import { TgdTexture2D } from "../texture";
7
+ import { TgdProgram } from "../program";
8
+ export type TgdMaterialToonOptions = Partial<{
9
+ color: TgdVec4 | ArrayNumber4 | TgdTexture2D;
10
+ light: TgdLight;
11
+ ambient: TgdLight;
12
+ specularSharpness: number;
13
+ specularSize: number;
14
+ specularIntensity: number;
15
+ }>;
16
+ export type TgdMaterialToonShades = number;
17
+ export declare class TgdMaterialToon extends TgdMaterial {
18
+ light: TgdLight;
19
+ ambient: TgdLight;
20
+ specularSharpness: number;
21
+ specularSize: number;
22
+ specularIntensity: number;
23
+ readonly varyings: {
24
+ [name: string]: WebglAttributeType;
25
+ };
26
+ readonly uniforms: {
27
+ [name: string]: WebglUniformType;
28
+ };
29
+ readonly fragmentShaderCode: TgdCodeBloc;
30
+ readonly vertexShaderCode: TgdCodeBloc;
31
+ private readonly texture;
32
+ private readonly lightColor;
33
+ private readonly ambientColor;
34
+ private _shades;
35
+ constructor(options?: TgdMaterialToonOptions);
36
+ setUniforms(program: TgdProgram): void;
37
+ }
38
+ //# sourceMappingURL=toon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toon.d.ts","sourceRoot":"","sources":["../../src/material/toon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAW,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAA;IAC5C,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,QAAQ,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;CAC5B,CAAC,CAAA;AAIF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAE1C,qBAAa,eAAgB,SAAQ,WAAW;IACrC,KAAK,WAEV;IACK,OAAO,WAAuD;IAC9D,iBAAiB,SAAM;IACvB,YAAY,SAAM;IAClB,iBAAiB,SAAM;IAE9B,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAQ7D;IACD,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAE7C,OAAO,CAAC,OAAO,CAA2B;gBAE9B,OAAO,GAAE,sBAA2B;IAwDhD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAazC"}
@@ -0,0 +1,95 @@
1
+ import { TgdVec3, TgdVec4 } from "./../math/index.js";
2
+ import { TgdMaterial } from "./material.js";
3
+ import { TgdLight } from "./../light/index.js";
4
+ import { TgdTexture2D } from "./../texture/index.js";
5
+ const DEFAULT_COLOR = new TgdVec4(0.8, 0.6, 0.1, 1);
6
+ export class TgdMaterialToon extends TgdMaterial {
7
+ constructor(options = {}) {
8
+ var _a;
9
+ super();
10
+ this.light = new TgdLight({
11
+ direction: new TgdVec3(0.2, -0.3, -0.6).normalize(),
12
+ });
13
+ this.ambient = new TgdLight({ color: new TgdVec4(0.2, 0.1, 0, 0) });
14
+ this.specularSharpness = 0.9;
15
+ this.specularSize = 0.1;
16
+ this.specularIntensity = 0.5;
17
+ this.uniforms = {
18
+ uniLight: "vec3",
19
+ uniLightDir: "vec3",
20
+ uniAmbient: "vec3",
21
+ uniSpecularSharpness: "float",
22
+ uniSpecularSize: "float",
23
+ uniSpecularIntensity: "float",
24
+ uniModelViewMatrix: "mat4",
25
+ };
26
+ this.lightColor = new TgdVec3();
27
+ this.ambientColor = new TgdVec3();
28
+ this._shades = 3;
29
+ const color = options.color instanceof TgdTexture2D
30
+ ? options.color
31
+ : new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
32
+ if (options.light) {
33
+ this.light = options.light;
34
+ }
35
+ if (options.ambient) {
36
+ this.ambient = options.ambient;
37
+ }
38
+ if (typeof options.specularSharpness === "number") {
39
+ this.specularSharpness = options.specularSharpness;
40
+ }
41
+ if (typeof options.specularSize === "number") {
42
+ this.specularSize = options.specularSize;
43
+ }
44
+ if (typeof options.specularIntensity === "number") {
45
+ this.specularIntensity = options.specularIntensity;
46
+ }
47
+ const hasTexture = !(color instanceof TgdVec4);
48
+ this.texture = hasTexture ? color : null;
49
+ this.fragmentShaderCode = [
50
+ "vec3 normal = normalize(varNormal);",
51
+ `float light = .2 + .4 * (1.0 - dot(normal, uniLightDir));`,
52
+ `light *= 3.0;`,
53
+ `light -= fract(light);`,
54
+ `light /= 3.0;`,
55
+ hasTexture
56
+ ? `vec4 color = texture(texDiffuse, varUV);`
57
+ : `vec4 color = vec4(${color.join(", ")});`,
58
+ `vec3 normal2 = mat3(uniModelViewMatrix) * normal;`,
59
+ `float spec = max(0.0, reflect(uniLightDir, normal2).z);`,
60
+ `float a = 1.0 - uniSpecularSize;`,
61
+ `float b = a + (1.0 - a) * (1.0 * uniSpecularSharpness);`,
62
+ `spec = smoothstep(a, b, spec) * uniSpecularIntensity;`,
63
+ `color = vec4(`,
64
+ ` color.rgb * (`,
65
+ ` uniAmbient + uniLight * light`,
66
+ ` ) + vec3(spec),`,
67
+ ` 1.0`,
68
+ `);`,
69
+ `return color;`,
70
+ ];
71
+ this.vertexShaderCode = ["varNormal = mat3(uniTransfoMatrix) * NORMAL;"];
72
+ this.varyings = {
73
+ varNormal: "vec3",
74
+ };
75
+ if (hasTexture) {
76
+ this.vertexShaderCode.push("varUV = TEXCOORD_0;");
77
+ this.varyings.varUV = "vec2";
78
+ this.uniforms.texDiffuse = "sampler2D";
79
+ }
80
+ }
81
+ setUniforms(program) {
82
+ program.uniform3fv("uniLightDir", this.light.direction);
83
+ this.lightColor.from(this.light.color).scale(this.light.color.w);
84
+ program.uniform3fv("uniLight", this.lightColor);
85
+ this.ambientColor.from(this.ambient.color).scale(this.ambient.color.w);
86
+ program.uniform3fv("uniAmbient", this.ambientColor);
87
+ program.uniform1f("uniSpecularSharpness", this.specularSharpness);
88
+ program.uniform1f("uniSpecularSize", this.specularSize);
89
+ program.uniform1f("uniSpecularIntensity", this.specularIntensity);
90
+ const { texture } = this;
91
+ if (texture)
92
+ texture.activate(0, program, "texDiffuse");
93
+ }
94
+ }
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC90b29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBWTNDLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBSW5ELE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVc7SUE0QjVDLFlBQVksVUFBa0MsRUFBRTs7UUFDNUMsS0FBSyxFQUFFLENBQUE7UUE1QkosVUFBSyxHQUFHLElBQUksUUFBUSxDQUFDO1lBQ3hCLFNBQVMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUU7U0FDdEQsQ0FBQyxDQUFBO1FBQ0ssWUFBTyxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM5RCxzQkFBaUIsR0FBRyxHQUFHLENBQUE7UUFDdkIsaUJBQVksR0FBRyxHQUFHLENBQUE7UUFDbEIsc0JBQWlCLEdBQUcsR0FBRyxDQUFBO1FBR2QsYUFBUSxHQUF5QztZQUM3RCxRQUFRLEVBQUUsTUFBTTtZQUNoQixXQUFXLEVBQUUsTUFBTTtZQUNuQixVQUFVLEVBQUUsTUFBTTtZQUNsQixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLGVBQWUsRUFBRSxPQUFPO1lBQ3hC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
@@ -44,6 +44,7 @@ export declare class TgdMat4 extends Float32Array {
44
44
  constructor(mat: TgdMat4);
45
45
  constructor(m00: number, m10: number, m20: number, m30: number, m01: number, m11: number, m21: number, m31: number, m02: number, m12: number, m22: number, m32: number, m03: number, m13: number, m23: number, m33: number);
46
46
  reset(row0?: ArrayNumber4 | TgdVec4, row1?: ArrayNumber4 | TgdVec4, row2?: ArrayNumber4 | TgdVec4, row3?: ArrayNumber4 | TgdVec4): this;
47
+ transpose(): this;
47
48
  multiply(mat: TgdMat4): this;
48
49
  /**
49
50
  * @param from This matrix will become the inversion of `from`.
@@ -1 +1 @@
1
- {"version":3,"file":"mat4.d.ts","sourceRoot":"","sources":["../../src/math/mat4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mat4.d.ts","sourceRoot":"","sources":["../../src/math/mat4.ts"],"names":[],"mappings":"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"}