@tolokoban/tgd 2.0.84 → 2.0.86

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 (43) hide show
  1. package/lib/dist/bounding-box.d.ts +19 -0
  2. package/lib/dist/bounding-box.d.ts.map +1 -0
  3. package/lib/dist/bounding-box.js +59 -0
  4. package/lib/dist/geometry/geometry.d.ts +8 -1
  5. package/lib/dist/geometry/geometry.d.ts.map +1 -1
  6. package/lib/dist/geometry/geometry.js +23 -4
  7. package/lib/dist/index.d.ts +1 -0
  8. package/lib/dist/index.d.ts.map +1 -1
  9. package/lib/dist/index.js +2 -1
  10. package/lib/dist/material/face-orientation.d.ts +1 -1
  11. package/lib/dist/material/face-orientation.d.ts.map +1 -1
  12. package/lib/dist/material/face-orientation.js +13 -13
  13. package/lib/dist/material/index.d.ts +2 -1
  14. package/lib/dist/material/index.d.ts.map +1 -1
  15. package/lib/dist/material/index.js +3 -2
  16. package/lib/dist/material/mask.d.ts +17 -0
  17. package/lib/dist/material/mask.d.ts.map +1 -0
  18. package/lib/dist/material/mask.js +31 -0
  19. package/lib/dist/material/material.d.ts +10 -4
  20. package/lib/dist/material/material.d.ts.map +1 -1
  21. package/lib/dist/material/material.js +8 -2
  22. package/lib/dist/material/normal-map.js +8 -8
  23. package/lib/dist/painter/framebuffer-msaa.d.ts +5 -5
  24. package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -1
  25. package/lib/dist/painter/framebuffer-msaa.js +2 -2
  26. package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
  27. package/lib/dist/painter/mesh/mesh/mesh.js +2 -1
  28. package/lib/dist/painter/points-cloud/index.d.ts +1 -0
  29. package/lib/dist/painter/points-cloud/index.d.ts.map +1 -1
  30. package/lib/dist/painter/points-cloud/index.js +2 -1
  31. package/lib/dist/painter/points-cloud/points-cloud-morphing.d.ts +121 -0
  32. package/lib/dist/painter/points-cloud/points-cloud-morphing.d.ts.map +1 -0
  33. package/lib/dist/painter/points-cloud/points-cloud-morphing.js +214 -0
  34. package/lib/dist/painter/points-cloud/points-cloud.d.ts +0 -1
  35. package/lib/dist/painter/points-cloud/points-cloud.d.ts.map +1 -1
  36. package/lib/dist/painter/points-cloud/points-cloud.js +3 -3
  37. package/lib/dist/shader/fragment.d.ts +9 -2
  38. package/lib/dist/shader/fragment.d.ts.map +1 -1
  39. package/lib/dist/shader/fragment.js +7 -5
  40. package/lib/dist/texture/texture2d.d.ts +5 -5
  41. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  42. package/lib/dist/texture/texture2d.js +6 -4
  43. package/package.json +1 -1
@@ -0,0 +1,19 @@
1
+ import { ArrayNumber3 } from "./types";
2
+ export declare class TgdBoundingBox {
3
+ private xMin;
4
+ private yMin;
5
+ private zMin;
6
+ private xMax;
7
+ private yMax;
8
+ private zMax;
9
+ constructor(...points: ArrayNumber3[]);
10
+ get min(): ArrayNumber3;
11
+ get max(): ArrayNumber3;
12
+ get center(): ArrayNumber3;
13
+ get size(): ArrayNumber3;
14
+ addPoint(x: number, y: number, z: number): this;
15
+ addSphere(x: number, y: number, z: number, r: number): this;
16
+ makeContainingCube(): TgdBoundingBox;
17
+ debug(caption?: string): void;
18
+ }
19
+ //# sourceMappingURL=bounding-box.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounding-box.d.ts","sourceRoot":"","sources":["../src/bounding-box.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,qBAAa,cAAc;IACvB,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,IAAI,CAA2B;gBAE3B,GAAG,MAAM,EAAE,YAAY,EAAE;IAMrC,IAAI,GAAG,IAAI,YAAY,CAEtB;IAED,IAAI,GAAG,IAAI,YAAY,CAEtB;IAED,IAAI,MAAM,IAAI,YAAY,CAIzB;IAED,IAAI,IAAI,IAAI,YAAY,CAIvB;IAED,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAU/C,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAM3D,kBAAkB,IAAI,cAAc;IAQpC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM;CAQzB"}
@@ -0,0 +1,59 @@
1
+ export class TgdBoundingBox {
2
+ constructor(...points) {
3
+ this.xMin = Number.POSITIVE_INFINITY;
4
+ this.yMin = Number.POSITIVE_INFINITY;
5
+ this.zMin = Number.POSITIVE_INFINITY;
6
+ this.xMax = Number.NEGATIVE_INFINITY;
7
+ this.yMax = Number.NEGATIVE_INFINITY;
8
+ this.zMax = Number.NEGATIVE_INFINITY;
9
+ for (const point of points) {
10
+ this.addPoint(...point);
11
+ }
12
+ }
13
+ get min() {
14
+ return [this.xMin, this.yMin, this.zMin];
15
+ }
16
+ get max() {
17
+ return [this.xMax, this.yMax, this.zMax];
18
+ }
19
+ get center() {
20
+ const { xMin, yMin, zMin } = this;
21
+ const { xMax, yMax, zMax } = this;
22
+ return [(xMin + xMax) * 0.5, (yMin + yMax) * 0.5, (zMin + zMax) * 0.5];
23
+ }
24
+ get size() {
25
+ const { xMin, yMin, zMin } = this;
26
+ const { xMax, yMax, zMax } = this;
27
+ return [xMax - xMin, yMax - yMin, zMax - zMin];
28
+ }
29
+ addPoint(x, y, z) {
30
+ this.xMin = Math.min(this.xMin, x);
31
+ this.yMin = Math.min(this.yMin, y);
32
+ this.zMin = Math.min(this.zMin, z);
33
+ this.xMax = Math.max(this.xMax, x);
34
+ this.yMax = Math.max(this.yMax, y);
35
+ this.zMax = Math.max(this.zMax, z);
36
+ return this;
37
+ }
38
+ addSphere(x, y, z, r) {
39
+ this.addPoint(x + r, y + r, z + r);
40
+ this.addPoint(x - r, y - r, z - r);
41
+ return this;
42
+ }
43
+ makeContainingCube() {
44
+ const [sx, sy, sz] = this.size;
45
+ const radius = 0.5 * Math.max(sx, sy, sz);
46
+ const bbox = new TgdBoundingBox();
47
+ bbox.addSphere(...this.center, radius);
48
+ return bbox;
49
+ }
50
+ debug(caption) {
51
+ console.debug(caption !== null && caption !== void 0 ? caption : "TgdBoundingBox");
52
+ console.debug(`{
53
+ "min": ${JSON.stringify(this.min)},
54
+ "max": ${JSON.stringify(this.max)},
55
+ "center": ${JSON.stringify(this.center)}
56
+ }`);
57
+ }
58
+ }
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRpbmctYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2JvdW5kaW5nLWJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sY0FBYztJQVF2QixZQUFZLEdBQUcsTUFBc0I7UUFQN0IsU0FBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQTtRQUMvQixTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFBO1FBQy9CLFNBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUE7UUFDL0IsU0FBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQTtRQUMvQixTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFBO1FBQy9CLFNBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUE7UUFHbkMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNqQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDakMsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUE7SUFDMUUsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNqQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDakMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEMsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQsU0FBUyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNsQyxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDekMsTUFBTSxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUN0QyxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZ0I7UUFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxnQkFBZ0IsQ0FBQyxDQUFBO1FBQzFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7YUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7RUFDekMsQ0FBQyxDQUFBO0lBQ0MsQ0FBQztDQUNKIn0=
@@ -1,5 +1,6 @@
1
1
  import { TgdDataset, TgdDatasetType } from "../dataset";
2
2
  import { TgdTypeArrayForElements, WebglDrawMode } from "../types";
3
+ import { TgdBoundingBox } from "..";
3
4
  interface TgdGeometryOptionsCommon {
4
5
  name?: string;
5
6
  /**
@@ -58,8 +59,14 @@ export declare class TgdGeometry {
58
59
  debug(caption?: string): void;
59
60
  get dataset(): Readonly<TgdDataset>;
60
61
  get elementsType(): number;
62
+ /**
63
+ * Return the index of a vertex.
64
+ * If no elements array has been defined, we return `index` verbatim.
65
+ * Otherwise, we use this elements array.
66
+ */
61
67
  getElement(index: number): number;
62
- computeNormals(): void;
68
+ computeNormals(): this;
69
+ computeBoundingBox(): TgdBoundingBox;
63
70
  private computeNormalsForTrianglesDrawMode;
64
71
  }
65
72
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/geometry/geometry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAwB,MAAM,cAAc,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAInE,UAAU,wBAAwB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,GAAG,MAAM,CAAA;IACjC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,uBAAuB,CAAA;IAClC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACjE,OAAO,EAAE,UAAU,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACjE,WAAW,EAAE,gBAAgB,CAAA;IAC7B,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED,UAAU,gBAAgB;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,CAAC,EAAE,cAAc,CAAA;CACxB;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACpB,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,oDAAoD;IACpD,SAAgB,WAAW,EAAE,MAAM,CAAA;IACnC,kDAAkD;IAClD,SAAgB,SAAS,EAAE,MAAM,CAAA;IACjC,8CAA8C;IAC9C,SAAgB,KAAK,EAAE,MAAM,CAAA;IAC7B,SAAgB,KAAK,EAAE,MAAM,CAAA;IAC7B,SAAgB,QAAQ,CAAC,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IAC5D,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAEhC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC9B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAA;IAE/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAI;WAEZ,IAAI,CAAC,OAAO,EAAE,mBAAmB;gBAmBnC,OAAO,EAAE,mBAAmB;IA2BxC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM;IAOtB,IAAI,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAElC;IAED,IAAI,YAAY,WAEf;IAEM,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIjC,cAAc;IAsBrB,OAAO,CAAC,kCAAkC;CAgE7C"}
1
+ {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/geometry/geometry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAwB,MAAM,cAAc,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,IAAI,CAAA;AAEnC,UAAU,wBAAwB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,GAAG,MAAM,CAAA;IACjC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,uBAAuB,CAAA;IAClC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACjE,OAAO,EAAE,UAAU,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACjE,WAAW,EAAE,gBAAgB,CAAA;IAC7B,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED,UAAU,gBAAgB;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,CAAC,EAAE,cAAc,CAAA;CACxB;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACpB,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,oDAAoD;IACpD,SAAgB,WAAW,EAAE,MAAM,CAAA;IACnC,kDAAkD;IAClD,SAAgB,SAAS,EAAE,MAAM,CAAA;IACjC,8CAA8C;IAC9C,SAAgB,KAAK,EAAE,MAAM,CAAA;IAC7B,SAAgB,KAAK,EAAE,MAAM,CAAA;IAC7B,SAAgB,QAAQ,CAAC,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IAC5D,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAEhC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC9B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAA;IAE/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAI;WAEZ,IAAI,CAAC,OAAO,EAAE,mBAAmB;gBA2BnC,OAAO,EAAE,mBAAmB;IA2BxC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM;IAOtB,IAAI,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAElC;IAED,IAAI,YAAY,WAEf;IAED;;;;OAIG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIjC,cAAc,IAAI,IAAI;IAuBtB,kBAAkB,IAAI,cAAc;IAY3C,OAAO,CAAC,kCAAkC;CAgE7C"}
@@ -1,6 +1,7 @@
1
1
  import { TgdDataset } from "./../dataset/index.js";
2
2
  import { TgdVec3 } from "./../math/index.js";
3
3
  import { webglElementTypeFromTypedArray, webglLookup } from "./../utils/index.js";
4
+ import { TgdBoundingBox } from "../index.js";
4
5
  /**
5
6
  * Geometry is used to define a mesh.
6
7
  * It must hold at least one vec3 attributes
@@ -10,7 +11,7 @@ export class TgdGeometry {
10
11
  static make(options) {
11
12
  var _a, _b, _c;
12
13
  const definition = {};
13
- const { count, drawMode, elements, attPosition, attNormal, attUV } = options;
14
+ const { count, drawMode, elements, attPosition, attNormal, attUV, computeNormalsIfMissing, } = options;
14
15
  definition[attPosition.name] = (_a = attPosition.type) !== null && _a !== void 0 ? _a : "vec3";
15
16
  if (attNormal)
16
17
  definition[attNormal.name] = (_b = attNormal.type) !== null && _b !== void 0 ? _b : "vec3";
@@ -27,6 +28,7 @@ export class TgdGeometry {
27
28
  count,
28
29
  drawMode,
29
30
  elements,
31
+ computeNormalsIfMissing,
30
32
  });
31
33
  }
32
34
  constructor(options) {
@@ -62,9 +64,14 @@ export class TgdGeometry {
62
64
  get elementsType() {
63
65
  return this._elementsType;
64
66
  }
67
+ /**
68
+ * Return the index of a vertex.
69
+ * If no elements array has been defined, we return `index` verbatim.
70
+ * Otherwise, we use this elements array.
71
+ */
65
72
  getElement(index) {
66
73
  var _a, _b;
67
- return (_b = (_a = this.elements) === null || _a === void 0 ? void 0 : _a[index]) !== null && _b !== void 0 ? _b : -1;
74
+ return (_b = (_a = this.elements) === null || _a === void 0 ? void 0 : _a[index]) !== null && _b !== void 0 ? _b : index;
68
75
  }
69
76
  computeNormals() {
70
77
  let normals = [];
@@ -73,7 +80,7 @@ export class TgdGeometry {
73
80
  }
74
81
  else {
75
82
  console.error("We don't know how to compute normals for this draw mode:", this.drawMode);
76
- return;
83
+ return this;
77
84
  }
78
85
  const attNormalName = this.attNormal;
79
86
  this.dataset.addAttributes({
@@ -84,6 +91,18 @@ export class TgdGeometry {
84
91
  values.push(nx, ny, nz);
85
92
  }
86
93
  this.dataset.set(attNormalName, new Float32Array(values));
94
+ return this;
95
+ }
96
+ computeBoundingBox() {
97
+ const bbox = new TgdBoundingBox();
98
+ const { get } = this.dataset.getAttribAccessor(this.attPosition);
99
+ for (let index = 0; index < this.count; index++) {
100
+ const x = get(index, 0);
101
+ const y = get(index, 1);
102
+ const z = get(index, 2);
103
+ bbox.addPoint(x, y, z);
104
+ }
105
+ return bbox;
87
106
  }
88
107
  computeNormalsForTrianglesDrawMode() {
89
108
  const ds = this.dataset;
@@ -138,4 +157,4 @@ function computeNormal(A, B, C) {
138
157
  const AC = new TgdVec3(C).subtract(A);
139
158
  return AB.cross(AC).normalize();
140
159
  }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VvbWV0cnkvZ2VvbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBd0MsTUFBTSxjQUFjLENBQUE7QUFFL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBd0N4RTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFpQmIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUE0Qjs7UUFDM0MsTUFBTSxVQUFVLEdBQXlCLEVBQUUsQ0FBQTtRQUMzQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FDOUQsT0FBTyxDQUFBO1FBQ1gsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFBLFdBQVcsQ0FBQyxJQUFJLG1DQUFJLE1BQU0sQ0FBQTtRQUN6RCxJQUFJLFNBQVM7WUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQUEsU0FBUyxDQUFDLElBQUksbUNBQUksTUFBTSxDQUFBO1FBQ3BFLElBQUksS0FBSztZQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBQSxLQUFLLENBQUMsSUFBSSxtQ0FBSSxNQUFNLENBQUE7UUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMvQyxJQUFJLFNBQVM7WUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFELElBQUksS0FBSztZQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUMsT0FBTyxJQUFJLFdBQVcsQ0FBQztZQUNuQixPQUFPO1lBQ1AsS0FBSztZQUNMLFFBQVE7WUFDUixRQUFRO1NBQ1gsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELFlBQVksT0FBNEI7O1FBQ3BDLE1BQU0sRUFDRixPQUFPLEVBQ1AsUUFBUSxHQUFHLFdBQVcsRUFDdEIsV0FBVyxHQUFHLFVBQVUsRUFDeEIsU0FBUyxHQUFHLFFBQVEsRUFDcEIsS0FBSyxHQUFHLFlBQVksRUFDcEIsSUFBSSxHQUFHLGVBQWUsV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQ2hELEdBQUcsT0FBTyxDQUFBO1FBQ1gsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDdkIsSUFBSSxDQUFDLFFBQVE7WUFDVCxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUN4QixDQUFDLENBQUMsUUFBUTtnQkFDVixDQUFDLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDMUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVE7WUFDekIsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLFFBQVEsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxNQUFNLG1DQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUE7UUFDOUMsSUFBSSxPQUFPLENBQUMsdUJBQXVCO1lBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQzlELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZ0I7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUE7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQyxDQUFBO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssWUFBWSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUE7SUFDN0IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFhOztRQUMzQixPQUFPLE1BQUEsTUFBQSxJQUFJLENBQUMsUUFBUSwwQ0FBRyxLQUFLLENBQUMsbUNBQUksQ0FBQyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVNLGNBQWM7UUFDakIsSUFBSSxPQUFPLEdBQWMsRUFBRSxDQUFBO1FBQzNCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyRCxPQUFPLEdBQUcsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUE7UUFDdkQsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLENBQUMsS0FBSyxDQUNULDBEQUEwRCxFQUMxRCxJQUFJLENBQUMsUUFBUSxDQUNoQixDQUFBO1lBQ0QsT0FBTTtRQUNWLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3ZCLENBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTTtTQUMxQixDQUFDLENBQUE7UUFDRixNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUE7UUFDM0IsS0FBSyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDM0IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFTyxrQ0FBa0M7UUFDdEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQTtRQUN2QixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFtQixDQUFBO1FBQ3JELE1BQU0sU0FBUyxHQUFHLENBQ2QsS0FBYSxFQUNiLENBQVUsRUFDVixDQUFVLEVBQ1YsQ0FBVSxFQUNaLEVBQUU7WUFDQSxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNuQyxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDMUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2xCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixrQkFBa0IsQ0FBQyxHQUFHLENBQ2xCLEtBQUssRUFDTCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN0QyxDQUFBO1lBQ0wsQ0FBQztRQUNMLENBQUMsQ0FBQTtRQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3RELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7UUFDakMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFBO1FBQ2hCLEtBQUssSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUNyQyxNQUFNLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FDakIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFDZCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUNkLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ2pCLENBQUE7WUFDRCxNQUFNLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FDakIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFDZCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUNkLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ2pCLENBQUE7WUFDRCxNQUFNLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FDakIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFDZCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUNkLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ2pCLENBQUE7WUFDRCxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDMUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzFCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM5QixDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQWMsRUFBRSxDQUFBO1FBQzdCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssSUFBSSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM3QyxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDMUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7Z0JBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFBO1lBQy9CLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUE7SUFDbEIsQ0FBQzs7QUF4SmMsbUJBQU8sR0FBRyxDQUFDLENBQUE7QUEySjlCLFNBQVMsYUFBYSxDQUFDLENBQVUsRUFBRSxDQUFVLEVBQUUsQ0FBVTtJQUNyRCxNQUFNLEVBQUUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtBQUNuQyxDQUFDIn0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VvbWV0cnkvZ2VvbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBd0MsTUFBTSxjQUFjLENBQUE7QUFFL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxJQUFJLENBQUE7QUF3Q25DOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQWlCYixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQTRCOztRQUMzQyxNQUFNLFVBQVUsR0FBeUIsRUFBRSxDQUFBO1FBQzNDLE1BQU0sRUFDRixLQUFLLEVBQ0wsUUFBUSxFQUNSLFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULEtBQUssRUFDTCx1QkFBdUIsR0FDMUIsR0FBRyxPQUFPLENBQUE7UUFDWCxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQUEsV0FBVyxDQUFDLElBQUksbUNBQUksTUFBTSxDQUFBO1FBQ3pELElBQUksU0FBUztZQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBQSxTQUFTLENBQUMsSUFBSSxtQ0FBSSxNQUFNLENBQUE7UUFDcEUsSUFBSSxLQUFLO1lBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFBLEtBQUssQ0FBQyxJQUFJLG1DQUFJLE1BQU0sQ0FBQTtRQUN4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQy9DLElBQUksU0FBUztZQUFF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LEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNuQixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNuQixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNuQixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDckMsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQ2pCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQ2QsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFDZCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUNqQixDQUFBO1lBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQ2pCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQ2QsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFDZCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUNqQixDQUFBO1lBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQ2pCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQ2QsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFDZCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUNqQixDQUFBO1lBQ0QsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzFCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUMxQixTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFjLEVBQUUsQ0FBQTtRQUM3QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO2dCQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3RCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUMvQixDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFBO0lBQ2xCLENBQUM7O0FBbExjLG1CQUFPLEdBQUcsQ0FBQyxDQUFBO0FBcUw5QixTQUFTLGFBQWEsQ0FBQyxDQUFVLEVBQUUsQ0FBVSxFQUFFLENBQVU7SUFDckQsTUFBTSxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLE1BQU0sRUFBRSxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNyQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7QUFDbkMsQ0FBQyJ9
@@ -1,3 +1,4 @@
1
+ export * from "./bounding-box";
1
2
  export * from "./buffer";
2
3
  export * from "./camera";
3
4
  export * from "./canvas";
@@ -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,iBAAiB,CAAA;AAC/B,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,QAAQ,CAAA;AACtB,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,gBAAgB,CAAA;AAC9B,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,iBAAiB,CAAA;AAC/B,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,QAAQ,CAAA;AACtB,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
@@ -1,3 +1,4 @@
1
+ export * from "./bounding-box.js";
1
2
  export * from "./buffer/index.js";
2
3
  export * from "./camera/index.js";
3
4
  export * from "./canvas/index.js";
@@ -32,4 +33,4 @@ export * from "./vao/index.js";
32
33
  export * from "./wasm/index.js";
33
34
  export * from "./webgl/index.js";
34
35
  export * from "./types/index.js";
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLE9BQU8sQ0FBQTtBQUNyQixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsT0FBTyxDQUFBO0FBQ3JCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsT0FBTyxDQUFBO0FBQ3JCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsU0FBUyxDQUFBO0FBRXZCLGNBQWMsU0FBUyxDQUFBIn0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsT0FBTyxDQUFBO0FBQ3JCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxPQUFPLENBQUE7QUFDckIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxPQUFPLENBQUE7QUFDckIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxTQUFTLENBQUE7QUFFdkIsY0FBYyxTQUFTLENBQUEifQ==
@@ -1,5 +1,5 @@
1
- import { TgdMaterial, TgdMaterialOptions } from "./material";
2
1
  import { TgdLight } from "../light";
2
+ import { TgdMaterial, type TgdMaterialOptions } from "./material";
3
3
  export interface TgdMaterialFaceOrientationOptions extends Partial<TgdMaterialOptions> {
4
4
  light?: TgdLight;
5
5
  ambient?: TgdLight;
@@ -1 +1 @@
1
- {"version":3,"file":"face-orientation.d.ts","sourceRoot":"","sources":["../../src/material/face-orientation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,MAAM,WAAW,iCACb,SAAQ,OAAO,CAAC,kBAAkB,CAAC;IACnC,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,WAAW;IAChD,KAAK,WAEV;IACK,OAAO,WAAuD;IAC9D,gBAAgB,SAAK;IACrB,iBAAiB,SAAM;IAE9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,OAAO,GAAE,iCAAsC;CA2D9D"}
1
+ {"version":3,"file":"face-orientation.d.ts","sourceRoot":"","sources":["../../src/material/face-orientation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEjE,MAAM,WAAW,iCACb,SAAQ,OAAO,CAAC,kBAAkB,CAAC;IACnC,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,WAAW;IAChD,KAAK,WAEV;IACK,OAAO,WAAuD;IAC9D,gBAAgB,SAAK;IACrB,iBAAiB,SAAM;IAE9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,OAAO,GAAE,iCAAsC;CA2D9D"}
@@ -1,6 +1,6 @@
1
+ import { TgdLight } from "./../light/index.js";
1
2
  import { TgdVec3, TgdVec4 } from "./../math/index.js";
2
3
  import { TgdMaterial } from "./material.js";
3
- import { TgdLight } from "./../light/index.js";
4
4
  /**
5
5
  * This material is useful to debug meshes.
6
6
  * The outside faces are blue and the inside one are red.
@@ -21,17 +21,17 @@ export class TgdMaterialFaceOrientation extends TgdMaterial {
21
21
  },
22
22
  fragmentShaderCode: [
23
23
  "vec3 normal = mat3(uniModelViewMatrix) * normalize(varNormal);",
24
- `float light = 1.0 - dot(normal, uniLightDir);`,
25
- `vec4 color = vec4(0.8 * (gl_FrontFacing ? vec3(0, .5, 1) : vec3(1, 0, 0)), 1.0);`,
26
- `float spec = max(0.0, reflect(uniLightDir, normal).z);`,
27
- `spec = pow(spec, uniSpecularExponent) * uniSpecularIntensity;`,
28
- `color = vec4(`,
29
- ` color.rgb * (`,
30
- ` uniAmbient + uniLight * light`,
31
- ` ) + vec3(spec),`,
32
- ` 1.0`,
33
- `);`,
34
- `return color;`,
24
+ "float light = 1.0 - dot(normal, uniLightDir);",
25
+ "vec4 color = vec4(0.8 * (gl_FrontFacing ? vec3(0, .5, 1) : vec3(1, 0, 0)), 1.0);",
26
+ "float spec = max(0.0, reflect(uniLightDir, normal).z);",
27
+ "spec = pow(spec, uniSpecularExponent) * uniSpecularIntensity;",
28
+ "color = vec4(",
29
+ " color.rgb * (",
30
+ " uniAmbient + uniLight * light",
31
+ " ) + vec3(spec),",
32
+ " 1.0",
33
+ ");",
34
+ "return color;",
35
35
  ],
36
36
  vertexShaderCode: () => [
37
37
  `varNormal = mat3(uniTransfoMatrix) * ${this.attNormal};`,
@@ -70,4 +70,4 @@ export class TgdMaterialFaceOrientation extends TgdMaterial {
70
70
  }
71
71
  }
72
72
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZS1vcmllbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9mYWNlLW9yaWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQXNCLE1BQU0sWUFBWSxDQUFBO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFXckM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDBCQUEyQixTQUFRLFdBQVc7SUFXdkQsWUFBWSxVQUE2QyxFQUFFO1FBQ3ZELEtBQUssQ0FBQztZQUNGLFFBQVEsRUFBRTtnQkFDTixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLFVBQVUsRUFBRSxNQUFNO2dCQUNsQixtQkFBbUIsRUFBRSxPQUFPO2dCQUM1QixvQkFBb0IsRUFBRSxPQUFPO2dCQUM3QixrQkFBa0IsRUFBRSxNQUFNO2FBQzdCO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxNQUFNO2FBQ3BCO1lBQ0Qsa0JBQWtCLEVBQUU7Z0JBQ2hCLGdFQUFnRTtnQkFDaEUsK0NBQStDO2dCQUMvQyxrRkFBa0Y7Z0JBQ2xGLHdEQUF3RDtnQkFDeEQsK0RBQStEO2dCQUMvRCxlQUFlO2dCQUNmLGlCQUFpQjtnQkFDakIsbUNBQW1DO2dCQUNuQyxtQkFBbUI7Z0JBQ25CLE9BQU87Z0JBQ1AsSUFBSTtnQkFDSixlQUFlO2FBQ2xCO1lBQ0QsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLHdDQUF3QyxJQUFJLENBQUMsU0FBUyxHQUFHO2FBQzVEO1lBQ0QsV0FBVyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQTJCLEVBQVEsRUFBRTtnQkFDeEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2hFLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtnQkFDL0MsSUFBSSxDQUFDLFlBQVk7cUJBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO3FCQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFDbkQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtnQkFDL0QsT0FBTyxDQUFDLFNBQVMsQ0FDYixzQkFBc0IsRUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUN6QixDQUFBO1lBQ0wsQ0FBQztTQUNKLENBQUMsQ0FBQTtRQXREQyxVQUFLLEdBQUcsSUFBSSxRQUFRLENBQUM7WUFDeEIsU0FBUyxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7U0FDbkQsQ0FBQyxDQUFBO1FBQ0ssWUFBTyxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM5RCxxQkFBZ0IsR0FBRyxFQUFFLENBQUE7UUFDckIsc0JBQWlCLEdBQUcsR0FBRyxDQUFBO1FBRWIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDMUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBZ0R6QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7UUFDOUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQTtRQUNsQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFBO1FBQ3BELENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxDQUFDLGlCQUFpQixLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUE7UUFDdEQsQ0FBQztJQUNMLENBQUM7Q0FDSiJ9
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZS1vcmllbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9mYWNlLW9yaWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFNUMsT0FBTyxFQUFFLFdBQVcsRUFBMkIsTUFBTSxZQUFZLENBQUE7QUFVakU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDBCQUEyQixTQUFRLFdBQVc7SUFXdkQsWUFBWSxVQUE2QyxFQUFFO1FBQ3ZELEtBQUssQ0FBQztZQUNGLFFBQVEsRUFBRTtnQkFDTixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLFVBQVUsRUFBRSxNQUFNO2dCQUNsQixtQkFBbUIsRUFBRSxPQUFPO2dCQUM1QixvQkFBb0IsRUFBRSxPQUFPO2dCQUM3QixrQkFBa0IsRUFBRSxNQUFNO2FBQzdCO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxNQUFNO2FBQ3BCO1lBQ0Qsa0JBQWtCLEVBQUU7Z0JBQ2hCLGdFQUFnRTtnQkFDaEUsK0NBQStDO2dCQUMvQyxrRkFBa0Y7Z0JBQ2xGLHdEQUF3RDtnQkFDeEQsK0RBQStEO2dCQUMvRCxlQUFlO2dCQUNmLGlCQUFpQjtnQkFDakIsbUNBQW1DO2dCQUNuQyxtQkFBbUI7Z0JBQ25CLE9BQU87Z0JBQ1AsSUFBSTtnQkFDSixlQUFlO2FBQ2xCO1lBQ0QsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLHdDQUF3QyxJQUFJLENBQUMsU0FBUyxHQUFHO2FBQzVEO1lBQ0QsV0FBVyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQTJCLEVBQVEsRUFBRTtnQkFDeEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2hFLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtnQkFDL0MsSUFBSSxDQUFDLFlBQVk7cUJBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO3FCQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFDbkQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtnQkFDL0QsT0FBTyxDQUFDLFNBQVMsQ0FDYixzQkFBc0IsRUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUN6QixDQUFBO1lBQ0wsQ0FBQztTQUNKLENBQUMsQ0FBQTtRQXREQyxVQUFLLEdBQUcsSUFBSSxRQUFRLENBQUM7WUFDeEIsU0FBUyxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7U0FDbkQsQ0FBQyxDQUFBO1FBQ0ssWUFBTyxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM5RCxxQkFBZ0IsR0FBRyxFQUFFLENBQUE7UUFDckIsc0JBQWlCLEdBQUcsR0FBRyxDQUFBO1FBRWIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDMUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBZ0R6QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7UUFDOUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQTtRQUNsQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFBO1FBQ3BELENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxDQUFDLGlCQUFpQixLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUE7UUFDdEQsQ0FBQztJQUNMLENBQUM7Q0FDSiJ9
@@ -7,8 +7,9 @@ export * from "./ghost";
7
7
  export * from "./glass";
8
8
  export * from "./global";
9
9
  export * from "./hull";
10
+ export * from "./mask";
10
11
  export * from "./material";
11
- export * from "./normals";
12
12
  export * from "./normal-map";
13
+ export * from "./normals";
13
14
  export * from "./toon";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -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,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,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,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA"}
@@ -7,8 +7,9 @@ export * from "./ghost.js";
7
7
  export * from "./glass.js";
8
8
  export * from "./global.js";
9
9
  export * from "./hull.js";
10
+ export * from "./mask.js";
10
11
  export * from "./material.js";
11
- export * from "./normals.js";
12
12
  export * from "./normal-map.js";
13
+ export * from "./normals.js";
13
14
  export * from "./toon.js";
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsUUFBUSxDQUFBIn0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsUUFBUSxDQUFBIn0=
@@ -0,0 +1,17 @@
1
+ import type { TgdTexture2D } from "../texture";
2
+ import { TgdMaterial, type TgdMaterialOptions } from "./material";
3
+ export interface TgdMaterialMaskOptions extends Partial<TgdMaterialOptions> {
4
+ texture: TgdTexture2D;
5
+ flipY?: boolean;
6
+ }
7
+ /**
8
+ * Reveal a background texture.
9
+ *
10
+ * You can use it in a techbnique to smooth your shading.
11
+ * 1. Render your scene in a FBO with low resolution and the material you want.
12
+ * 2. Use this material with the FBO texture to smooth the previous material.
13
+ */
14
+ export declare class TgdMaterialMask extends TgdMaterial {
15
+ constructor(options: TgdMaterialMaskOptions);
16
+ }
17
+ //# sourceMappingURL=mask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../src/material/mask.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEjE,MAAM,WAAW,sBAAuB,SAAQ,OAAO,CAAC,kBAAkB,CAAC;IACvE,OAAO,EAAE,YAAY,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBAChC,OAAO,EAAE,sBAAsB;CAoB9C"}
@@ -0,0 +1,31 @@
1
+ import { TgdMaterial } from "./material.js";
2
+ /**
3
+ * Reveal a background texture.
4
+ *
5
+ * You can use it in a techbnique to smooth your shading.
6
+ * 1. Render your scene in a FBO with low resolution and the material you want.
7
+ * 2. Use this material with the FBO texture to smooth the previous material.
8
+ */
9
+ export class TgdMaterialMask extends TgdMaterial {
10
+ constructor(options) {
11
+ super({
12
+ uniforms: {
13
+ uniViewportInverse: "vec2",
14
+ uniTexture: "sampler2D",
15
+ },
16
+ fragmentShaderCode: [
17
+ "highp vec2 uv = gl_FragCoord.xy * uniViewportInverse;",
18
+ options.flipY
19
+ ? "return texture(uniTexture, vec2(uv.x, 1.0 - uv.y));"
20
+ : "return texture(uniTexture, uv);",
21
+ ],
22
+ setUniforms: ({ program }) => {
23
+ const invW = 1 / program.gl.drawingBufferWidth;
24
+ const invH = 1 / program.gl.drawingBufferHeight;
25
+ options.texture.activate(0, program, "uniTexture");
26
+ program.uniform2f("uniViewportInverse", invW, invH);
27
+ },
28
+ });
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9tYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQTJCLE1BQU0sWUFBWSxDQUFBO0FBT2pFOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVc7SUFDNUMsWUFBWSxPQUErQjtRQUN2QyxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUU7Z0JBQ04sa0JBQWtCLEVBQUUsTUFBTTtnQkFDMUIsVUFBVSxFQUFFLFdBQVc7YUFDMUI7WUFDRCxrQkFBa0IsRUFBRTtnQkFDaEIsdURBQXVEO2dCQUN2RCxPQUFPLENBQUMsS0FBSztvQkFDVCxDQUFDLENBQUMscURBQXFEO29CQUN2RCxDQUFDLENBQUMsaUNBQWlDO2FBQzFDO1lBQ0QsV0FBVyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQTJCLEVBQVEsRUFBRTtnQkFDeEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUE7Z0JBQzlDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFBO2dCQUMvQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFBO2dCQUNsRCxPQUFPLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUN2RCxDQUFDO1NBQ0osQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKIn0=
@@ -1,6 +1,6 @@
1
- import { TgdCodeBloc, TgdCodeFunctions } from "../shader/code";
2
- import { TgdCamera, TgdPainterStateOptions, WebglAttributeType, WebglUniformType } from "..";
3
- import { TgdProgram } from "../program";
1
+ import type { TgdProgram } from "../program";
2
+ import type { TgdCodeBloc, TgdCodeFunctions } from "../shader/code";
3
+ import { type TgdCamera, type TgdPainterStateOptions, type WebglAttributeType, type WebglUniformType } from "..";
4
4
  export interface TgdMaterialContext {
5
5
  camera: TgdCamera;
6
6
  program: TgdProgram;
@@ -33,6 +33,10 @@ export interface TgdMaterialOptions {
33
33
  uniforms: {
34
34
  [name: string]: WebglUniformType;
35
35
  };
36
+ /**
37
+ * Example: `layout(origin_upper_left) in vec4 gl_FragCoord;`
38
+ */
39
+ fragmentShaderHeader?: TgdCodeBloc | (() => TgdCodeBloc);
36
40
  /**
37
41
  * This is the body of the function `void applyMaterial()` and
38
42
  * it must return the color of the current fragment as a `vec4`.
@@ -90,10 +94,12 @@ export declare class TgdMaterial {
90
94
  [name: string]: WebglUniformType;
91
95
  };
92
96
  private readonly _fragmentShaderCode;
97
+ private readonly _fragmentShaderHeader;
93
98
  /**
94
99
  * The code of a `vec4 applyMaterial()` function.
95
100
  */
96
101
  get fragmentShaderCode(): TgdCodeBloc;
102
+ get fragmentShaderHeader(): TgdCodeBloc;
97
103
  private readonly _extraFragmentShaderFunctions;
98
104
  get extraFragmentShaderFunctions(): TgdCodeFunctions;
99
105
  private readonly _vertexShaderCode;
@@ -116,6 +122,6 @@ export declare class TgdMaterial {
116
122
  protected readonly state: Partial<TgdPainterStateOptions>;
117
123
  applyState(gl: WebGL2RenderingContext, action: () => void): void;
118
124
  readonly delete: () => void;
119
- constructor({ attPosition, attNormal, attTangent, attUV, varyings, uniforms, fragmentShaderCode, extraFragmentShaderFunctions, vertexShaderCode, extraVertexShaderFunctions, vertexShaderCodeForGetPosition, setUniforms, state, debug, delete: deleteFunction, }: Partial<TgdMaterialOptions>);
125
+ constructor({ attPosition, attNormal, attTangent, attUV, varyings, uniforms, fragmentShaderCode, fragmentShaderHeader, extraFragmentShaderFunctions, vertexShaderCode, extraVertexShaderFunctions, vertexShaderCodeForGetPosition, setUniforms, state, debug, delete: deleteFunction, }: Partial<TgdMaterialOptions>);
120
126
  }
121
127
  //# sourceMappingURL=material.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"material.d.ts","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"material.d.ts","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,11 @@ export class TgdMaterial {
8
8
  return this._fragmentShaderCode();
9
9
  return this._fragmentShaderCode;
10
10
  }
11
+ get fragmentShaderHeader() {
12
+ if (typeof this._fragmentShaderHeader === "function")
13
+ return this._fragmentShaderHeader();
14
+ return this._fragmentShaderHeader;
15
+ }
11
16
  get extraFragmentShaderFunctions() {
12
17
  if (typeof this._extraFragmentShaderFunctions === "function")
13
18
  return this._extraFragmentShaderFunctions();
@@ -41,7 +46,7 @@ export class TgdMaterial {
41
46
  applyState(gl, action) {
42
47
  TgdPainterState.do(Object.assign({ gl }, this.state), action);
43
48
  }
44
- constructor({ attPosition = "POSITION", attNormal = "NORMAL", attTangent = "CUSTOM_ATTRIBUTE_3", attUV = "TEXCOORD_0", varyings = {}, uniforms = {}, fragmentShaderCode = ["return vec4(1, .666, .1, 1);"], extraFragmentShaderFunctions = {}, vertexShaderCode = [], extraVertexShaderFunctions = {}, vertexShaderCodeForGetPosition = "return pos;", setUniforms, state = {}, debug = false, delete: deleteFunction = () => { }, }) {
49
+ 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 = () => { }, }) {
45
50
  this.debug = false;
46
51
  this.delete = deleteFunction;
47
52
  this.debug = debug;
@@ -52,6 +57,7 @@ export class TgdMaterial {
52
57
  this.varyings = varyings;
53
58
  this.uniforms = uniforms;
54
59
  this._fragmentShaderCode = fragmentShaderCode;
60
+ this._fragmentShaderHeader = fragmentShaderHeader;
55
61
  this._extraFragmentShaderFunctions = extraFragmentShaderFunctions;
56
62
  this._vertexShaderCode = vertexShaderCode;
57
63
  this._extraVertexShaderFunctions = extraVertexShaderFunctions;
@@ -60,4 +66,4 @@ export class TgdMaterial {
60
66
  this.state = state;
61
67
  }
62
68
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVILGVBQWUsR0FJbEIsTUFBTSxJQUFJLENBQUE7QUFvRVgsTUFBTSxPQUFPLFdBQVc7SUFzQnBCOztPQUVHO0lBQ0gsSUFBSSxrQkFBa0I7UUFDbEIsSUFBSSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxVQUFVO1lBQzlDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDckMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUE7SUFDbkMsQ0FBQztJQU1ELElBQUksNEJBQTRCO1FBQzVCLElBQUksT0FBTyxJQUFJLENBQUMsNkJBQTZCLEtBQUssVUFBVTtZQUN4RCxPQUFPLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFBO1FBQy9DLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFBO0lBQzdDLENBQUM7SUFJRDs7T0FFRztJQUNILElBQUksZ0JBQWdCO1FBQ2hCLElBQUksT0FBTyxJQUFJLENBQUMsaUJBQWlCLEtBQUssVUFBVTtZQUM1QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFBO0lBQ2pDLENBQUM7SUFNRCxJQUFJLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixLQUFLLFVBQVU7WUFDdEQsT0FBTyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQTtRQUM3QyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQTtJQUMzQyxDQUFDO0lBTUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSw4QkFBOEI7UUFDOUIsSUFBSSxPQUFPLElBQUksQ0FBQywrQkFBK0IsS0FBSyxVQUFVO1lBQzFELE9BQU8sSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUE7UUFDakQsT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUE7SUFDL0MsQ0FBQztJQVFNLFVBQVUsQ0FBQyxFQUEwQixFQUFFLE1BQWtCO1FBQzVELGVBQWUsQ0FBQyxFQUFFLGlCQUVWLEVBQUUsSUFDQyxJQUFJLENBQUMsS0FBSyxHQUVqQixNQUFNLENBQ1QsQ0FBQTtJQUNMLENBQUM7SUFJRCxZQUFZLEVBQ1IsV0FBVyxHQUFHLFVBQVUsRUFDeEIsU0FBUyxHQUFHLFFBQVEsRUFDcEIsVUFBVSxHQUFHLG9CQUFvQixFQUNqQyxLQUFLLEdBQUcsWUFBWSxFQUNwQixRQUFRLEdBQUcsRUFBRSxFQUNiLFFBQVEsR0FBRyxFQUFFLEVBQ2Isa0JBQWtCLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxFQUNyRCw0QkFBNEIsR0FBRyxFQUFFLEVBQ2pDLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsMEJBQTBCLEdBQUcsRUFBRSxFQUMvQiw4QkFBOEIsR0FBRyxhQUFhLEVBQzlDLFdBQVcsRUFDWCxLQUFLLEdBQUcsRUFBRSxFQUNWLEtBQUssR0FBRyxLQUFLLEVBQ2IsTUFBTSxFQUFFLGNBQWMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLEdBQ1A7UUFoSHZCLFVBQUssR0FBRyxLQUFLLENBQUE7UUFpSGhCLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQTtRQUM3QyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsNEJBQTRCLENBQUE7UUFDakUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFBO1FBQ3pDLElBQUksQ0FBQywyQkFBMkIsR0FBRywwQkFBMEIsQ0FBQTtRQUM3RCxJQUFJLENBQUMsK0JBQStCLEdBQUcsOEJBQThCLENBQUE7UUFDckUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDdEIsQ0FBQztDQUNKIn0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUVILGVBQWUsR0FJbEIsTUFBTSxJQUFJLENBQUE7QUF1RVgsTUFBTSxPQUFPLFdBQVc7SUF3QnBCOztPQUVHO0lBQ0gsSUFBSSxrQkFBa0I7UUFDbEIsSUFBSSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxVQUFVO1lBQzlDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDckMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUE7SUFDbkMsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3BCLElBQUksT0FBTyxJQUFJLENBQUMscUJBQXFCLEtBQUssVUFBVTtZQUNoRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFBO0lBQ3JDLENBQUM7SUFNRCxJQUFJLDRCQUE0QjtRQUM1QixJQUFJLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixLQUFLLFVBQVU7WUFDeEQsT0FBTyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQTtRQUMvQyxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQTtJQUM3QyxDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQjtRQUNoQixJQUFJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLFVBQVU7WUFDNUMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUNuQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQTtJQUNqQyxDQUFDO0lBTUQsSUFBSSwwQkFBMEI7UUFDMUIsSUFBSSxPQUFPLElBQUksQ0FBQywyQkFBMkIsS0FBSyxVQUFVO1lBQ3RELE9BQU8sSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUE7UUFDN0MsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUE7SUFDM0MsQ0FBQztJQU1EOzs7Ozs7T0FNRztJQUNILElBQUksOEJBQThCO1FBQzlCLElBQUksT0FBTyxJQUFJLENBQUMsK0JBQStCLEtBQUssVUFBVTtZQUMxRCxPQUFPLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFBO1FBQ2pELE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFBO0lBQy9DLENBQUM7SUFRTSxVQUFVLENBQUMsRUFBMEIsRUFBRSxNQUFrQjtRQUM1RCxlQUFlLENBQUMsRUFBRSxpQkFFVixFQUFFLElBQ0MsSUFBSSxDQUFDLEtBQUssR0FFakIsTUFBTSxDQUNULENBQUE7SUFDTCxDQUFDO0lBSUQsWUFBWSxFQUNSLFdBQVcsR0FBRyxVQUFVLEVBQ3hCLFNBQVMsR0FBRyxRQUFRLEVBQ3BCLFVBQVUsR0FBRyxvQkFBb0IsRUFDakMsS0FBSyxHQUFHLFlBQVksRUFDcEIsUUFBUSxHQUFHLEVBQUUsRUFDYixRQUFRLEdBQUcsRUFBRSxFQUNiLGtCQUFrQixHQUFHLENBQUMsOEJBQThCLENBQUMsRUFDckQsb0JBQW9CLEdBQUcsRUFBRSxFQUN6Qiw0QkFBNEIsR0FBRyxFQUFFLEVBQ2pDLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsMEJBQTBCLEdBQUcsRUFBRSxFQUMvQiw4QkFBOEIsR0FBRyxhQUFhLEVBQzlDLFdBQVcsRUFDWCxLQUFLLEdBQUcsRUFBRSxFQUNWLEtBQUssR0FBRyxLQUFLLEVBQ2IsTUFBTSxFQUFFLGNBQWMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLEdBQ1A7UUF6SHZCLFVBQUssR0FBRyxLQUFLLENBQUE7UUEwSGhCLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQTtRQUM3QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsb0JBQW9CLENBQUE7UUFDakQsSUFBSSxDQUFDLDZCQUE2QixHQUFHLDRCQUE0QixDQUFBO1FBQ2pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQTtRQUN6QyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsMEJBQTBCLENBQUE7UUFDN0QsSUFBSSxDQUFDLCtCQUErQixHQUFHLDhCQUE4QixDQUFBO1FBQ3JFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7Q0FDSiJ9
@@ -4,17 +4,17 @@ export class TgdMaterialNormalMap extends TgdMaterial {
4
4
  super({
5
5
  varyings: { varNormal: "vec3" },
6
6
  fragmentShaderCode: [
7
- `vec3 n = normalize(varNormal);`,
8
- `vec3 color = vec3(`,
9
- [`0.5 * (1.0 + n.x),`, `0.5 * (1.0 + n.y),`, `max(0.0, n.z)`],
10
- `);`,
11
- `color *= 0.5;`,
12
- `return vec4(color, 1.0);`,
7
+ "vec3 n = normalize(varNormal);",
8
+ "vec3 color = vec3(",
9
+ ["0.5 * (1.0 + n.x),", "0.5 * (1.0 + n.y),", "max(0.0, n.z)"],
10
+ ");",
11
+ "color *= 0.5;",
12
+ "return vec4(color, 1.0);",
13
13
  ],
14
14
  vertexShaderCode: [
15
- "varNormal = mat3(uniModelViewMatrix) * normal;",
15
+ "varNormal = mat3(uniModelViewMatrix) * mat3(uniTransfoMatrix) * normal;",
16
16
  ],
17
17
  });
18
18
  }
19
19
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9ub3JtYWwtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFdBQVc7SUFDakQ7UUFDSSxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQy9CLGtCQUFrQixFQUFFO2dCQUNoQixnQ0FBZ0M7Z0JBQ2hDLG9CQUFvQjtnQkFDcEIsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLENBQUM7Z0JBQzdELElBQUk7Z0JBQ0osZUFBZTtnQkFDZiwwQkFBMEI7YUFDN0I7WUFDRCxnQkFBZ0IsRUFBRTtnQkFDZCxnREFBZ0Q7YUFDbkQ7U0FDSixDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0oifQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9ub3JtYWwtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFdBQVc7SUFDakQ7UUFDSSxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQy9CLGtCQUFrQixFQUFFO2dCQUNoQixnQ0FBZ0M7Z0JBQ2hDLG9CQUFvQjtnQkFDcEIsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLENBQUM7Z0JBQzdELElBQUk7Z0JBQ0osZUFBZTtnQkFDZiwwQkFBMEI7YUFDN0I7WUFDRCxnQkFBZ0IsRUFBRTtnQkFDZCx5RUFBeUU7YUFDNUU7U0FDSixDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0oifQ==
@@ -1,7 +1,7 @@
1
- import { TgdPainterFunction } from "../types/painter";
1
+ import type { TgdTexture2D } from "../texture";
2
+ import type { TgdPainterFunction } from "../types/painter";
2
3
  import { TgdPainterGroup } from "./group";
3
- import { TgdPainter } from "./painter";
4
- import { TgdTexture2D } from "../texture";
4
+ import type { TgdPainter } from "./painter";
5
5
  export interface TgdPainterFramebufferWithAntiAliasingOptions {
6
6
  /**
7
7
  * Default to 4.
@@ -21,8 +21,8 @@ export interface TgdPainterFramebufferWithAntiAliasingOptions {
21
21
  * If defined, the framebuffer will automatically match the
22
22
  * current viewport size multiplied by `viewportMatchingScale`.
23
23
  *
24
- * for instance, if `viewportMatchingScale === 0.5` and the viewport
25
- * id (640, 480), then the framebuffer will have a size of
24
+ * For instance, if `viewportMatchingScale === 0.5` and the viewport
25
+ * is (640, 480), then the framebuffer will have a size of
26
26
  * (320, 240).
27
27
  *
28
28
  * Default to `1`.
@@ -1 +1 @@
1
- {"version":3,"file":"framebuffer-msaa.d.ts","sourceRoot":"","sources":["../../src/painter/framebuffer-msaa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAMzC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,WAAW,4CAA4C;IACzD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAA;IACtB;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAA;CAC1B;AAED,qBAAa,qCAAsC,SAAQ,eAAe;IAwBlE,OAAO,CAAC,QAAQ,CAAC,OAAO;IAKxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IA5B5B,SAAgB,OAAO,EAAE,MAAM,CAAA;IAC/B,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,YAAY,EAAE,YAAY,GAAG,SAAS,CAAA;IAEtD,OAAO,CAAC,sBAAsB,CAAwC;IACtE,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,gBAAgB,CAAgC;IAExD;;OAEG;IACH,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;gBAGjB,OAAO,EAAE;QACtB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;KAC3B,EACgB,OAAO,EAAE,OAAO,CAAC,4CAA4C,CAAC;IAiCnF,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,OAAO,KAAK,KAAK,QAKhB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,OAAO,KAAK,MAAM,QAKjB;IAED,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,yBAAyB;IA0BjC,OAAO,CAAC,gBAAgB;IA2BxB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAgBxC,MAAM;IAoBN,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,uBAAuB;CAoClC"}
1
+ {"version":3,"file":"framebuffer-msaa.d.ts","sourceRoot":"","sources":["../../src/painter/framebuffer-msaa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAM5D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,WAAW,4CAA4C;IACzD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAA;IACtB;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAA;CAC1B;AAED,qBAAa,qCAAsC,SAAQ,eAAe;IAwBlE,OAAO,CAAC,QAAQ,CAAC,OAAO;IAKxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IA5B5B,SAAgB,OAAO,EAAE,MAAM,CAAA;IAC/B,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,YAAY,EAAE,YAAY,GAAG,SAAS,CAAA;IAEtD,OAAO,CAAC,sBAAsB,CAAwC;IACtE,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,gBAAgB,CAAgC;IAExD;;OAEG;IACH,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;gBAGjB,OAAO,EAAE;QACtB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;KAC3B,EACgB,OAAO,EAAE,OAAO,CAAC,4CAA4C,CAAC;IAiCnF,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,OAAO,KAAK,KAAK,QAKhB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,OAAO,KAAK,MAAM,QAKjB;IAED,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,yBAAyB;IA0BjC,OAAO,CAAC,gBAAgB;IA2BxB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAgBxC,MAAM;IAoBN,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,uBAAuB;CAoClC"}