@tolokoban/tgd 2.0.82 → 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.
- package/lib/dist/bounding-box.d.ts +19 -0
- package/lib/dist/bounding-box.d.ts.map +1 -0
- package/lib/dist/bounding-box.js +59 -0
- package/lib/dist/filter/filter.d.ts +3 -2
- package/lib/dist/filter/filter.d.ts.map +1 -1
- package/lib/dist/filter/filter.js +1 -1
- package/lib/dist/geometry/geometry.d.ts +8 -1
- package/lib/dist/geometry/geometry.d.ts.map +1 -1
- package/lib/dist/geometry/geometry.js +23 -4
- package/lib/dist/geometry/plane.d.ts +4 -2
- package/lib/dist/geometry/plane.d.ts.map +1 -1
- package/lib/dist/geometry/plane.js +8 -6
- package/lib/dist/index.d.ts +1 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +2 -1
- package/lib/dist/material/face-orientation.d.ts +1 -1
- package/lib/dist/material/face-orientation.d.ts.map +1 -1
- package/lib/dist/material/face-orientation.js +13 -13
- package/lib/dist/material/index.d.ts +2 -1
- package/lib/dist/material/index.d.ts.map +1 -1
- package/lib/dist/material/index.js +3 -2
- package/lib/dist/material/mask.d.ts +17 -0
- package/lib/dist/material/mask.d.ts.map +1 -0
- package/lib/dist/material/mask.js +31 -0
- package/lib/dist/material/material.d.ts +10 -4
- package/lib/dist/material/material.d.ts.map +1 -1
- package/lib/dist/material/material.js +8 -2
- package/lib/dist/material/normal-map.js +8 -8
- package/lib/dist/painter/filter/filter.d.ts +3 -2
- package/lib/dist/painter/filter/filter.d.ts.map +1 -1
- package/lib/dist/painter/filter/filter.js +3 -3
- package/lib/dist/painter/framebuffer-msaa.d.ts +5 -5
- package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer-msaa.js +2 -2
- package/lib/dist/painter/framebuffer.d.ts +3 -2
- package/lib/dist/painter/framebuffer.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer.js +4 -4
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +2 -1
- package/lib/dist/painter/points-cloud/index.d.ts +1 -0
- package/lib/dist/painter/points-cloud/index.d.ts.map +1 -1
- package/lib/dist/painter/points-cloud/index.js +2 -1
- package/lib/dist/painter/points-cloud/points-cloud-morphing.d.ts +121 -0
- package/lib/dist/painter/points-cloud/points-cloud-morphing.d.ts.map +1 -0
- package/lib/dist/painter/points-cloud/points-cloud-morphing.js +214 -0
- package/lib/dist/painter/points-cloud/points-cloud.d.ts +0 -1
- package/lib/dist/painter/points-cloud/points-cloud.d.ts.map +1 -1
- package/lib/dist/painter/points-cloud/points-cloud.js +3 -3
- package/lib/dist/shader/fragment.d.ts +9 -2
- package/lib/dist/shader/fragment.d.ts.map +1 -1
- package/lib/dist/shader/fragment.js +7 -5
- package/lib/dist/texture/texture2d.d.ts +10 -4
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +46 -3
- 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,4 +1,3 @@
|
|
|
1
|
-
import { TgdContext } from "../context";
|
|
2
1
|
import { TgdProgram } from "../program";
|
|
3
2
|
import { TgdCodeBloc, TgdCodeFunctions } from "../shader/code";
|
|
4
3
|
import { WebglUniformType } from "../types";
|
|
@@ -43,7 +42,9 @@ export interface TgdFilterOptions {
|
|
|
43
42
|
setUniforms(parameters: TgdFilterSerUniformsParameters): void;
|
|
44
43
|
}
|
|
45
44
|
export interface TgdFilterSerUniformsParameters {
|
|
46
|
-
context:
|
|
45
|
+
context: {
|
|
46
|
+
gl: WebGL2RenderingContext;
|
|
47
|
+
};
|
|
47
48
|
program: TgdProgram;
|
|
48
49
|
time: number;
|
|
49
50
|
delay: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/filter/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/filter/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAS;IAClB;;;OAGG;IACH,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAK;IAEnE;;;OAGG;IACH,SAAgB,kBAAkB,EAAE,WAAW,CAG9C;IAED,SAAgB,cAAc,EAAE,gBAAgB,GAAG,WAAW,CAAK;IAEnE,SAAgB,WAAW,GACvB,aAAa,8BAA8B,KAC5C,IAAI,CAAM;gBAED,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM;IASnD,wBAAwB;IACxB,MAAM;CACT;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;IAC9C,kBAAkB,EAAE,WAAW,CAAA;IAC/B,cAAc,EAAE,gBAAgB,GAAG,WAAW,CAAA;IAC9C,WAAW,CAAC,UAAU,EAAE,8BAA8B,GAAG,IAAI,CAAA;CAChE;AAED,MAAM,WAAW,8BAA8B;IAC3C,OAAO,EAAE;QAAE,EAAE,EAAE,sBAAsB,CAAA;KAAE,CAAA;IACvC,OAAO,EAAE,UAAU,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CAChB"}
|
|
@@ -41,4 +41,4 @@ export class TgdFilter {
|
|
|
41
41
|
/** Cleanup function. */
|
|
42
42
|
delete() { }
|
|
43
43
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpbHRlci9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFzQmxCLFlBQVksVUFBcUMsRUFBRTtRQXJCbkQ7OztXQUdHO1FBQ2EsYUFBUSxHQUF5QyxFQUFFLENBQUE7UUFFbkU7OztXQUdHO1FBQ2EsdUJBQWtCLEdBQWdCO1lBQzlDLDBDQUEwQztZQUMxQyxlQUFlO1NBQ2xCLENBQUE7UUFFZSxtQkFBYyxHQUFtQyxFQUFFLENBQUE7UUFFbkQsZ0JBQVcsR0FBRyxDQUMxQixXQUEyQyxFQUN2QyxFQUFFLEdBQUUsQ0FBQyxDQUFBO1FBR1QsTUFBTSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLEdBQy9ELE9BQU8sQ0FBQTtRQUNYLElBQUksUUFBUTtZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3RDLElBQUksa0JBQWtCO1lBQUUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFBO1FBQ3BFLElBQUksY0FBYztZQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO1FBQ3hELElBQUksV0FBVztZQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO0lBQ25ELENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsTUFBTSxLQUFJLENBQUM7Q0FDZCJ9
|
|
@@ -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():
|
|
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;
|
|
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 :
|
|
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,
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VvbWV0cnkvZ2VvbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBd0MsTUFBTSxjQUFjLENBQUE7QUFFL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxJQUFJLENBQUE7QUF3Q25DOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQWlCYixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQTRCOztRQUMzQyxNQUFNLFVBQVUsR0FBeUIsRUFBRSxDQUFBO1FBQzNDLE1BQU0sRUFDRixLQUFLLEVBQ0wsUUFBUSxFQUNSLFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULEtBQUssRUFDTCx1QkFBdUIsR0FDMUIsR0FBRyxPQUFPLENBQUE7UUFDWCxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQUEsV0FBVyxDQUFDLElBQUksbUNBQUksTUFBTSxDQUFBO1FBQ3pELElBQUksU0FBUztZQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBQSxTQUFTLENBQUMsSUFBSSxtQ0FBSSxNQUFNLENBQUE7UUFDcEUsSUFBSSxLQUFLO1lBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFBLEtBQUssQ0FBQyxJQUFJLG1DQUFJLE1BQU0sQ0FBQTtRQUN4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQy9DLElBQUksU0FBUztZQUFF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LEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNuQixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNuQixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNuQixRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDckMsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQ2pCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQ2QsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFDZCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUNqQixDQUFBO1lBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQ2pCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQ2QsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFDZCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUNqQixDQUFBO1lBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQ2pCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQ2QsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFDZCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUNqQixDQUFBO1lBQ0QsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzFCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUMxQixTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFjLEVBQUUsQ0FBQTtRQUM3QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO2dCQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3RCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUMvQixDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFBO0lBQ2xCLENBQUM7O0FBbExjLG1CQUFPLEdBQUcsQ0FBQyxDQUFBO0FBcUw5QixTQUFTLGFBQWEsQ0FBQyxDQUFVLEVBQUUsQ0FBVSxFQUFFLENBQVU7SUFDckQsTUFBTSxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLE1BQU0sRUFBRSxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNyQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7QUFDbkMsQ0FBQyJ9
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { TgdGeometry } from "./geometry";
|
|
2
|
-
import { ArrayNumber3 } from "../types";
|
|
2
|
+
import { ArrayNumber2, ArrayNumber3 } from "../types";
|
|
3
3
|
export interface TgdGeometryPlaneOptions {
|
|
4
4
|
sizeX?: number;
|
|
5
5
|
sizeY?: number;
|
|
6
6
|
vecX?: ArrayNumber3;
|
|
7
7
|
vecY?: ArrayNumber3;
|
|
8
|
+
uv0?: ArrayNumber2;
|
|
9
|
+
uv1?: ArrayNumber2;
|
|
8
10
|
}
|
|
9
11
|
export declare class TgdGeometryPlane extends TgdGeometry {
|
|
10
|
-
constructor({ sizeX, sizeY, vecX, vecY, }?: TgdGeometryPlaneOptions);
|
|
12
|
+
constructor({ sizeX, sizeY, vecX, vecY, uv0, uv1, }?: TgdGeometryPlaneOptions);
|
|
11
13
|
}
|
|
12
14
|
//# sourceMappingURL=plane.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plane.d.ts","sourceRoot":"","sources":["../../src/geometry/plane.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"plane.d.ts","sourceRoot":"","sources":["../../src/geometry/plane.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGvD,MAAM,WAAW,uBAAuB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,GAAG,CAAC,EAAE,YAAY,CAAA;CACrB;AAED,qBAAa,gBAAiB,SAAQ,WAAW;gBACjC,EACR,KAAS,EACT,KAAS,EACT,IAAgB,EAChB,IAAgB,EAChB,GAAY,EACZ,GAAY,GACf,GAAE,uBAA4B;CAgDlC"}
|
|
@@ -2,7 +2,7 @@ import { TgdDataset } from "./../dataset/index.js";
|
|
|
2
2
|
import { TgdGeometry } from "./geometry.js";
|
|
3
3
|
import { TgdVec3 } from "./../math/index.js";
|
|
4
4
|
export class TgdGeometryPlane extends TgdGeometry {
|
|
5
|
-
constructor({ sizeX = 1, sizeY = 1, vecX = [1, 0, 0], vecY = [0, 1, 0], } = {}) {
|
|
5
|
+
constructor({ sizeX = 1, sizeY = 1, vecX = [1, 0, 0], vecY = [0, 1, 0], uv0 = [0, 0], uv1 = [1, 1], } = {}) {
|
|
6
6
|
const vec = (x, y) => {
|
|
7
7
|
const sx = x * sizeX;
|
|
8
8
|
const sy = y * sizeY;
|
|
@@ -25,12 +25,14 @@ export class TgdGeometryPlane extends TgdGeometry {
|
|
|
25
25
|
...vec(+H, +H),
|
|
26
26
|
...vec(-H, +H),
|
|
27
27
|
]));
|
|
28
|
+
const [u0, v0] = uv0;
|
|
29
|
+
const [u1, v1] = uv1;
|
|
28
30
|
// prettier-ignore
|
|
29
31
|
dataset.set("TEXCOORD_0", new Float32Array([
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
u1, v1,
|
|
33
|
+
u0, v1,
|
|
34
|
+
u1, v0,
|
|
35
|
+
u0, v0,
|
|
34
36
|
]));
|
|
35
37
|
const [nx, ny, nz] = new TgdVec3(vecX)
|
|
36
38
|
.normalize()
|
|
@@ -48,4 +50,4 @@ export class TgdGeometryPlane extends TgdGeometry {
|
|
|
48
50
|
});
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VvbWV0cnkvcGxhbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXhDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFXbkMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQVc7SUFDN0MsWUFBWSxFQUNSLEtBQUssR0FBRyxDQUFDLEVBQ1QsS0FBSyxHQUFHLENBQUMsRUFDVCxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNoQixJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNoQixHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ1osR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUNhLEVBQUU7UUFDM0IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFnQixFQUFFO1lBQy9DLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7WUFDcEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQTtZQUNwQixPQUFPO2dCQUNILEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDOUIsQ0FBQTtRQUNMLENBQUMsQ0FBQTtRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzNCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsVUFBVSxFQUFFLE1BQU07U0FDckIsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFBO1FBQ2Isa0JBQWtCO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksWUFBWSxDQUFDO1lBQ3JDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2QsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDZCxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNkLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2pCLENBQUMsQ0FBQyxDQUFBO1FBQ0gsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUE7UUFDcEIsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUE7UUFDcEIsa0JBQWtCO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksWUFBWSxDQUFDO1lBQ3ZDLEVBQUUsRUFBRSxFQUFFO1lBQ04sRUFBRSxFQUFFLEVBQUU7WUFDTixFQUFFLEVBQUUsRUFBRTtZQUNOLEVBQUUsRUFBRSxFQUFFO1NBQ1QsQ0FBQyxDQUFDLENBQUE7UUFDSCxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUM7YUFDakMsU0FBUyxFQUFFO2FBQ1gsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFFekMsa0JBQWtCO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksWUFBWSxDQUFDO1lBQ25DLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNWLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNWLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNWLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtTQUNiLENBQUMsQ0FBQyxDQUFBO1FBQ0gsS0FBSyxDQUFDO1lBQ0YsT0FBTztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7U0FDN0IsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKIn0=
|
package/lib/dist/index.d.ts
CHANGED
package/lib/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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":"
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"material.d.ts","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"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"}
|