@tolokoban/tgd 2.0.17 → 2.0.18
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/filter/filter.d.ts +8 -7
- package/lib/dist/filter/filter.d.ts.map +1 -1
- package/lib/dist/filter/filter.js +4 -2
- package/lib/dist/filter/index.d.ts +1 -0
- package/lib/dist/filter/index.d.ts.map +1 -1
- package/lib/dist/filter/index.js +2 -1
- package/lib/dist/filter/zoom.d.ts +10 -0
- package/lib/dist/filter/zoom.d.ts.map +1 -0
- package/lib/dist/filter/zoom.js +21 -0
- package/lib/dist/loader/asset.d.ts +5 -3
- package/lib/dist/loader/asset.d.ts.map +1 -1
- package/lib/dist/loader/asset.js +30 -20
- package/lib/dist/material/diffuse.d.ts +7 -3
- package/lib/dist/material/diffuse.d.ts.map +1 -1
- package/lib/dist/material/diffuse.js +14 -3
- package/lib/dist/material/ghost.d.ts +3 -3
- package/lib/dist/material/ghost.d.ts.map +1 -1
- package/lib/dist/material/ghost.js +1 -1
- package/lib/dist/material/hull.d.ts +24 -0
- package/lib/dist/material/hull.d.ts.map +1 -0
- package/lib/dist/material/hull.js +30 -0
- package/lib/dist/material/index.d.ts +1 -0
- package/lib/dist/material/index.d.ts.map +1 -1
- package/lib/dist/material/index.js +2 -1
- package/lib/dist/material/material.d.ts +12 -4
- package/lib/dist/material/material.d.ts.map +1 -1
- package/lib/dist/material/material.js +9 -1
- package/lib/dist/material/normals.d.ts +3 -3
- package/lib/dist/material/normals.d.ts.map +1 -1
- package/lib/dist/material/normals.js +1 -1
- package/lib/dist/material/solid.d.ts +5 -5
- package/lib/dist/material/solid.d.ts.map +1 -1
- package/lib/dist/material/solid.js +3 -3
- package/lib/dist/math/vec4.d.ts +3 -3
- package/lib/dist/math/vec4.d.ts.map +1 -1
- package/lib/dist/math/vec4.js +20 -1
- package/lib/dist/painter/filter/filter.d.ts.map +1 -1
- package/lib/dist/painter/filter/filter.js +8 -10
- package/lib/dist/painter/framebuffer.backup.d.ts +39 -0
- package/lib/dist/painter/framebuffer.backup.d.ts.map +1 -0
- package/lib/dist/painter/framebuffer.backup.js +125 -0
- package/lib/dist/painter/framebuffer.d.ts +18 -7
- package/lib/dist/painter/framebuffer.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer.js +69 -87
- package/lib/dist/painter/index.d.ts +0 -1
- package/lib/dist/painter/index.d.ts.map +1 -1
- package/lib/dist/painter/index.js +1 -2
- package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.js +27 -49
- package/lib/dist/painter/mesh/hull/hull.d.ts +12 -0
- package/lib/dist/painter/mesh/hull/hull.d.ts.map +1 -0
- package/lib/dist/painter/mesh/hull/hull.js +11 -0
- package/lib/dist/painter/mesh/mesh/mesh.d.ts +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +8 -6
- package/lib/dist/painter/state/state.d.ts +10 -1
- package/lib/dist/painter/state/state.d.ts.map +1 -1
- package/lib/dist/painter/state/state.js +20 -18
- package/lib/dist/shader/code.d.ts +8 -8
- package/lib/dist/shader/code.d.ts.map +1 -1
- package/lib/dist/shader/code.js +1 -1
- package/lib/dist/shader/fragment.d.ts +11 -11
- package/lib/dist/shader/fragment.d.ts.map +1 -1
- package/lib/dist/shader/fragment.js +1 -1
- package/lib/dist/shader/vertex.d.ts +11 -11
- package/lib/dist/shader/vertex.d.ts.map +1 -1
- package/lib/dist/shader/vertex.js +1 -1
- package/lib/dist/texture/texture2d.d.ts +2 -1
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +7 -1
- package/lib/dist/types/program.d.ts +3 -3
- package/lib/dist/types/program.d.ts.map +1 -1
- package/lib/dist/types/texture2d.d.ts +2 -1
- package/lib/dist/types/texture2d.d.ts.map +1 -1
- package/lib/dist/types/webgl.d.ts +12 -0
- package/lib/dist/types/webgl.d.ts.map +1 -1
- package/lib/dist/types/webgl.js +14 -1
- package/package.json +3 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TgdContext } from "../context";
|
|
2
|
+
import { TgdCodeBloc, TgdCodeFunctions } from "../shader/code";
|
|
2
3
|
import { TgdProgram, WebglUniformType } from "../types";
|
|
3
4
|
/**
|
|
4
5
|
* Define the shader to be used in a filter.
|
|
@@ -25,17 +26,17 @@ export declare class TgdFilter {
|
|
|
25
26
|
* The code of a `vec4 applyColor()` function.
|
|
26
27
|
* Must return a `vec4` color.
|
|
27
28
|
*/
|
|
28
|
-
readonly fragmentShaderCode:
|
|
29
|
-
readonly extraFunctions:
|
|
30
|
-
readonly setUniforms: (program: TgdProgram, time: number) => void;
|
|
29
|
+
readonly fragmentShaderCode: TgdCodeBloc;
|
|
30
|
+
readonly extraFunctions: TgdCodeFunctions | TgdCodeBloc;
|
|
31
|
+
readonly setUniforms: (program: TgdProgram, time: number, context: TgdContext) => void;
|
|
31
32
|
constructor(options?: Partial<TgdFilterOptions>);
|
|
32
33
|
}
|
|
33
34
|
export interface TgdFilterOptions {
|
|
34
35
|
uniforms: {
|
|
35
36
|
[name: string]: WebglUniformType;
|
|
36
37
|
};
|
|
37
|
-
fragmentShaderCode:
|
|
38
|
-
extraFunctions:
|
|
39
|
-
setUniforms(program: TgdProgram, time: number): void;
|
|
38
|
+
fragmentShaderCode: TgdCodeBloc;
|
|
39
|
+
extraFunctions: TgdCodeFunctions | TgdCodeBloc;
|
|
40
|
+
setUniforms(program: TgdProgram, time: number, context: TgdContext): void;
|
|
40
41
|
}
|
|
41
42
|
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/filter/filter.ts"],"names":[],"mappings":"AAAA,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,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEzD;;;;;;;;;;;;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,YAEd,UAAU,QAEb,MAAM,WAEH,UAAU,KACpB,IAAI,CAAM;gBAED,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM;CAQtD;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,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAAA;CAC5E"}
|
|
@@ -30,7 +30,9 @@ export class TgdFilter {
|
|
|
30
30
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
31
|
program,
|
|
32
32
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
33
|
-
time
|
|
33
|
+
time,
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
35
|
+
context) => { };
|
|
34
36
|
constructor(options = {}) {
|
|
35
37
|
const { uniforms, fragmentShaderCode, extraFunctions, setUniforms } = options;
|
|
36
38
|
if (uniforms)
|
|
@@ -43,4 +45,4 @@ export class TgdFilter {
|
|
|
43
45
|
this.setUniforms = setUniforms;
|
|
44
46
|
}
|
|
45
47
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpbHRlci9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFDbEI7OztPQUdHO0lBQ2EsUUFBUSxHQUF5QyxFQUFFLENBQUE7SUFFbkU7OztPQUdHO0lBQ2Esa0JBQWtCLEdBQWdCO1FBQzlDLDBDQUEwQztRQUMxQyxlQUFlO0tBQ2xCLENBQUE7SUFFZSxjQUFjLEdBQW1DLEVBQUUsQ0FBQTtJQUVuRCxXQUFXLEdBQUc7SUFDMUIsNkRBQTZEO0lBQzdELE9BQW1CO0lBQ25CLDZEQUE2RDtJQUM3RCxJQUFZO0lBQ1osNkRBQTZEO0lBQzdELE9BQW1CLEVBQ2YsRUFBRSxHQUFFLENBQUMsQ0FBQTtJQUViLFlBQVksVUFBcUMsRUFBRTtRQUMvQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsR0FDL0QsT0FBTyxDQUFBO1FBQ1gsSUFBSSxRQUFRO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDdEMsSUFBSSxrQkFBa0I7WUFBRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUE7UUFDcEUsSUFBSSxjQUFjO1lBQUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7UUFDeEQsSUFBSSxXQUFXO1lBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7SUFDbkQsQ0FBQztDQUNKIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filter/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,wBAAwB,CAAA;AACtC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filter/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,wBAAwB,CAAA;AACtC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA"}
|
package/lib/dist/filter/index.js
CHANGED
|
@@ -2,4 +2,5 @@ export * from "./blur.js";
|
|
|
2
2
|
export * from "./chromatic-aberration.js";
|
|
3
3
|
export * from "./filter.js";
|
|
4
4
|
export * from "./hue-rotation.js";
|
|
5
|
-
|
|
5
|
+
export * from "./zoom.js";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLFFBQVEsQ0FBQSJ9
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TgdProgram } from "..";
|
|
2
|
+
import { TgdFilter } from "./filter";
|
|
3
|
+
export declare class TgdFilterZoom extends TgdFilter {
|
|
4
|
+
zoom: number;
|
|
5
|
+
constructor({ zoom }?: Partial<{
|
|
6
|
+
zoom: number;
|
|
7
|
+
}>);
|
|
8
|
+
readonly setUniforms: (program: TgdProgram, _time: number) => void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=zoom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../src/filter/zoom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,qBAAa,aAAc,SAAQ,SAAS;IACjC,IAAI,SAAI;gBAEH,EAAE,IAAQ,EAAE,GAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAM;IAcxD,SAAgB,WAAW,YACd,UAAU,SACZ,MAAM,KACd,IAAI,CAEN;CACJ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TgdFilter } from "./filter.js";
|
|
2
|
+
export class TgdFilterZoom extends TgdFilter {
|
|
3
|
+
zoom = 1;
|
|
4
|
+
constructor({ zoom = 1 } = {}) {
|
|
5
|
+
super({
|
|
6
|
+
fragmentShaderCode: [
|
|
7
|
+
"vec2 uv = (varUV - vec2(0.5)) * uniZoom + vec2(0.5);",
|
|
8
|
+
"vec4 color = texture(uniTexture, uv);",
|
|
9
|
+
"FragColor = color;",
|
|
10
|
+
],
|
|
11
|
+
uniforms: {
|
|
12
|
+
uniZoom: "float",
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
this.zoom = zoom;
|
|
16
|
+
}
|
|
17
|
+
setUniforms = (program, _time) => {
|
|
18
|
+
program.uniform1f("uniZoom", 1 / this.zoom);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWx0ZXIvem9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRXBDLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQUNqQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBRWYsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDLEtBQWdDLEVBQUU7UUFDcEQsS0FBSyxDQUFDO1lBQ0Ysa0JBQWtCLEVBQUU7Z0JBQ2hCLHNEQUFzRDtnQkFDdEQsdUNBQXVDO2dCQUN2QyxvQkFBb0I7YUFDdkI7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sT0FBTyxFQUFFLE9BQU87YUFDbkI7U0FDSixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtJQUNwQixDQUFDO0lBRWUsV0FBVyxHQUFHLENBQzFCLE9BQW1CLEVBQ25CLEtBQWEsRUFDVCxFQUFFO1FBQ04sT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMvQyxDQUFDLENBQUE7Q0FDSiJ9
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { TgdParserGLTransfertFormatBinary } from "../parser";
|
|
2
|
-
export declare function tgdLoadAssets<GLB extends string>(urls: {
|
|
3
|
-
glb
|
|
4
|
-
|
|
2
|
+
export declare function tgdLoadAssets<GLB extends string, IMG extends string>(urls: Partial<{
|
|
3
|
+
glb: Record<GLB, string>;
|
|
4
|
+
img: Record<IMG, string>;
|
|
5
|
+
}>): Promise<{
|
|
5
6
|
glb: Record<GLB, TgdParserGLTransfertFormatBinary>;
|
|
7
|
+
img: Record<IMG, HTMLImageElement>;
|
|
6
8
|
}>;
|
|
7
9
|
//# sourceMappingURL=asset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/loader/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/loader/asset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAA;AAI9D,wBAAsB,aAAa,CAAC,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EACtE,IAAI,EAAE,OAAO,CAAC;IACV,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACxB,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAC3B,CAAC,GACH,OAAO,CAAC;IACP,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAA;IAClD,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;CACrC,CAAC,CASD"}
|
package/lib/dist/loader/asset.js
CHANGED
|
@@ -1,26 +1,36 @@
|
|
|
1
1
|
import { tgdLoadGlb } from "./binary.js";
|
|
2
|
+
import { tgdLoadImage } from "./image.js";
|
|
2
3
|
export async function tgdLoadAssets(urls) {
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
const glbNames = (urls.glb ? Object.keys(urls.glb) : []);
|
|
4
|
+
const glb = {};
|
|
5
|
+
const img = {};
|
|
7
6
|
const tasks = [
|
|
8
|
-
...
|
|
9
|
-
|
|
10
|
-
if (!url) {
|
|
11
|
-
resolve();
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
tgdLoadGlb(url)
|
|
15
|
-
.then(glb => {
|
|
16
|
-
if (glb)
|
|
17
|
-
result.glb[name] = glb;
|
|
18
|
-
resolve();
|
|
19
|
-
})
|
|
20
|
-
.catch(resolve);
|
|
21
|
-
})),
|
|
7
|
+
...getPromisedLoaders(tgdLoadGlb, urls.glb, glb),
|
|
8
|
+
...getPromisedLoaders(tgdLoadImage, urls.img, img),
|
|
22
9
|
];
|
|
23
10
|
await Promise.all(tasks);
|
|
24
|
-
return
|
|
11
|
+
return { glb, img };
|
|
25
12
|
}
|
|
26
|
-
|
|
13
|
+
function getPromisedLoaders(loader, urls, target) {
|
|
14
|
+
return Object.keys(urls ?? {}).map(name => new Promise(resolve => {
|
|
15
|
+
if (!urls) {
|
|
16
|
+
resolve();
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const url = urls[name];
|
|
20
|
+
if (!url) {
|
|
21
|
+
resolve();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
loader(url)
|
|
25
|
+
.then(value => {
|
|
26
|
+
if (value)
|
|
27
|
+
target[name] = value;
|
|
28
|
+
resolve();
|
|
29
|
+
})
|
|
30
|
+
.catch(() => {
|
|
31
|
+
console.error("Unable to load URL ", url);
|
|
32
|
+
resolve();
|
|
33
|
+
});
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9hZGVyL2Fzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUV0QyxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FDL0IsSUFHRTtJQUtGLE1BQU0sR0FBRyxHQUFHLEVBQW1ELENBQUE7SUFDL0QsTUFBTSxHQUFHLEdBQUcsRUFBbUMsQ0FBQTtJQUMvQyxNQUFNLEtBQUssR0FBb0I7UUFDM0IsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDaEQsR0FBRyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7S0FDckQsQ0FBQTtJQUNELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN4QixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUN2QixNQUEwQyxFQUMxQyxJQUFtQyxFQUNuQyxNQUFvQjtJQUVwQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDOUIsSUFBSSxDQUFDLEVBQUUsQ0FDSCxJQUFJLE9BQU8sQ0FBTyxPQUFPLENBQUMsRUFBRTtRQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDUixPQUFPLEVBQUUsQ0FBQTtZQUNULE9BQU07UUFDVixDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQVMsQ0FBQyxDQUFBO1FBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNQLE9BQU8sRUFBRSxDQUFBO1lBQ1QsT0FBTTtRQUNWLENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsSUFBSSxLQUFLO2dCQUFFLE1BQU0sQ0FBQyxJQUFTLENBQUMsR0FBRyxLQUFLLENBQUE7WUFDcEMsT0FBTyxFQUFFLENBQUE7UUFDYixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUN6QyxPQUFPLEVBQUUsQ0FBQTtRQUNiLENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFDLENBQ1QsQ0FBQTtBQUNMLENBQUMifQ==
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import { TgdProgram, TgdTexture2D, WebglAttributeType, WebglUniformType } from "../types";
|
|
2
2
|
import { TgdVec4 } from "../math";
|
|
3
3
|
import { TgdMaterial } from "./material";
|
|
4
|
-
import {
|
|
4
|
+
import { TgdCodeBloc } from "../shader/code";
|
|
5
5
|
import { TgdLight } from "../light";
|
|
6
6
|
export type TgdMaterialDiffuseOptions = Partial<{
|
|
7
7
|
color: TgdVec4 | TgdTexture2D;
|
|
8
8
|
light: TgdLight;
|
|
9
9
|
ambient: TgdLight;
|
|
10
|
+
specularExponent: number;
|
|
11
|
+
specularIntensity: number;
|
|
10
12
|
}>;
|
|
11
13
|
export declare class TgdMaterialDiffuse extends TgdMaterial {
|
|
12
14
|
light: TgdLight;
|
|
13
15
|
ambient: TgdLight;
|
|
16
|
+
specularExponent: number;
|
|
17
|
+
specularIntensity: number;
|
|
14
18
|
readonly varyings: {
|
|
15
19
|
[name: string]: WebglAttributeType;
|
|
16
20
|
};
|
|
17
21
|
readonly uniforms: {
|
|
18
22
|
[name: string]: WebglUniformType;
|
|
19
23
|
};
|
|
20
|
-
readonly fragmentShaderCode:
|
|
21
|
-
readonly vertexShaderCode:
|
|
24
|
+
readonly fragmentShaderCode: TgdCodeBloc;
|
|
25
|
+
readonly vertexShaderCode: TgdCodeBloc;
|
|
22
26
|
private readonly texture;
|
|
23
27
|
private readonly lightColor;
|
|
24
28
|
private readonly ambientColor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffuse.d.ts","sourceRoot":"","sources":["../../src/material/diffuse.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAW,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"diffuse.d.ts","sourceRoot":"","sources":["../../src/material/diffuse.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAW,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC;IAC5C,KAAK,EAAE,OAAO,GAAG,YAAY,CAAA;IAC7B,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,QAAQ,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;CAC5B,CAAC,CAAA;AAIF,qBAAa,kBAAmB,SAAQ,WAAW;IACxC,KAAK,WAAiB;IACtB,OAAO,WAAyD;IAChE,gBAAgB,SAAK;IACrB,iBAAiB,SAAI;IAE5B,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAM7D;IACD,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,OAAO,GAAE,yBAA8B;IA8CnD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAYzC"}
|
|
@@ -5,11 +5,15 @@ const DEFAULT_COLOR = new TgdVec4(0.8, 0.8, 0.8, 1);
|
|
|
5
5
|
export class TgdMaterialDiffuse extends TgdMaterial {
|
|
6
6
|
light = new TgdLight();
|
|
7
7
|
ambient = new TgdLight({ color: new TgdVec4(0.8, 0.8, 0.8, 0) });
|
|
8
|
+
specularExponent = 20;
|
|
9
|
+
specularIntensity = 1;
|
|
8
10
|
varyings;
|
|
9
11
|
uniforms = {
|
|
10
12
|
uniLight: "vec3",
|
|
11
13
|
uniLightDir: "vec3",
|
|
12
14
|
uniAmbient: "vec3",
|
|
15
|
+
uniSpecularExponent: "float",
|
|
16
|
+
uniSpecularIntensity: "float",
|
|
13
17
|
};
|
|
14
18
|
fragmentShaderCode;
|
|
15
19
|
vertexShaderCode;
|
|
@@ -25,6 +29,12 @@ export class TgdMaterialDiffuse extends TgdMaterial {
|
|
|
25
29
|
if (options.ambient) {
|
|
26
30
|
this.ambient = options.ambient;
|
|
27
31
|
}
|
|
32
|
+
if (typeof options.specularExponent === "number") {
|
|
33
|
+
this.specularExponent = options.specularExponent;
|
|
34
|
+
}
|
|
35
|
+
if (typeof options.specularIntensity === "number") {
|
|
36
|
+
this.specularIntensity = options.specularIntensity;
|
|
37
|
+
}
|
|
28
38
|
const hasTexture = !(color instanceof TgdVec4);
|
|
29
39
|
this.texture = hasTexture ? color : null;
|
|
30
40
|
this.fragmentShaderCode = [
|
|
@@ -34,10 +44,9 @@ export class TgdMaterialDiffuse extends TgdMaterial {
|
|
|
34
44
|
? `vec4 color = texture(texDiffuse, varUV);`
|
|
35
45
|
: `vec4 color = vec4(${color.join(", ")});`,
|
|
36
46
|
`float spec = max(0.0, reflect(uniLightDir, normal).z);`,
|
|
37
|
-
`spec = pow(spec,
|
|
47
|
+
`spec = pow(spec, uniSpecularExponent) * uniSpecularIntensity;`,
|
|
38
48
|
`color = vec4(`,
|
|
39
49
|
` color.rgb * (`,
|
|
40
|
-
// ` mix(uniAmbient, uniLight, light)`,
|
|
41
50
|
` uniAmbient + uniLight * light`,
|
|
42
51
|
` ) + vec3(spec),`,
|
|
43
52
|
` 1.0`,
|
|
@@ -62,9 +71,11 @@ export class TgdMaterialDiffuse extends TgdMaterial {
|
|
|
62
71
|
program.uniform3fv("uniLight", this.lightColor);
|
|
63
72
|
this.ambientColor.from(this.ambient.color).scale(this.ambient.color.w);
|
|
64
73
|
program.uniform3fv("uniAmbient", this.ambientColor);
|
|
74
|
+
program.uniform1f("uniSpecularExponent", this.specularExponent);
|
|
75
|
+
program.uniform1f("uniSpecularIntensity", this.specularIntensity);
|
|
65
76
|
const { texture } = this;
|
|
66
77
|
if (texture)
|
|
67
78
|
texture.activate(program, "texDiffuse");
|
|
68
79
|
}
|
|
69
80
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZnVzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9kaWZmdXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQVVyQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVuRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBVztJQUN4QyxLQUFLLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQTtJQUN0QixPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2hFLGdCQUFnQixHQUFHLEVBQUUsQ0FBQTtJQUNyQixpQkFBaUIsR0FBRyxDQUFDLENBQUE7SUFFWixRQUFRLENBQXdDO0lBQ2hELFFBQVEsR0FBeUM7UUFDN0QsUUFBUSxFQUFFLE1BQU07UUFDaEIsV0FBVyxFQUFFLE1BQU07UUFDbkIsVUFBVSxFQUFFLE1BQU07UUFDbEIsbUJBQW1CLEVBQUUsT0FBTztRQUM1QixvQkFBb0IsRUFBRSxPQUFPO0tBQ2hDLENBQUE7SUFDZSxrQkFBa0IsQ0FBYTtJQUMvQixnQkFBZ0IsQ0FBYTtJQUU1QixPQUFPLENBQXFCO0lBQzVCLFVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBQzFCLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBRTdDLFlBQVksVUFBcUMsRUFBRTtRQUMvQyxLQUFLLEVBQUUsQ0FBQTtRQUNQLE1BQU0s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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TgdProgram, WebglAttributeType } from "../types";
|
|
2
2
|
import { TgdVec4 } from "../math";
|
|
3
3
|
import { TgdMaterial } from "./material";
|
|
4
|
-
import {
|
|
4
|
+
import { TgdCodeBloc } from "../shader/code";
|
|
5
5
|
export type TgdMaterialGhostOptions = Partial<{
|
|
6
6
|
color: TgdVec4;
|
|
7
7
|
exponent: number;
|
|
@@ -11,8 +11,8 @@ export declare class TgdMaterialGhost extends TgdMaterial {
|
|
|
11
11
|
readonly varyings: {
|
|
12
12
|
[name: string]: WebglAttributeType;
|
|
13
13
|
};
|
|
14
|
-
readonly fragmentShaderCode:
|
|
15
|
-
readonly vertexShaderCode:
|
|
14
|
+
readonly fragmentShaderCode: TgdCodeBloc;
|
|
15
|
+
readonly vertexShaderCode: TgdCodeBloc;
|
|
16
16
|
constructor({ color, exponent, intensity, }?: TgdMaterialGhostOptions);
|
|
17
17
|
setUniforms(_program: TgdProgram): void;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ghost.d.ts","sourceRoot":"","sources":["../../src/material/ghost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ghost.d.ts","sourceRoot":"","sources":["../../src/material/ghost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC;IAC1C,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAC,CAAA;AAIF,qBAAa,gBAAiB,SAAQ,WAAW;IAC7C,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;gBAEjC,EACR,KAAqB,EACrB,QAAY,EACZ,SAAa,GAChB,GAAE,uBAA4B;IAkB/B,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI;CAC1C"}
|
|
@@ -22,4 +22,4 @@ export class TgdMaterialGhost extends TgdMaterial {
|
|
|
22
22
|
}
|
|
23
23
|
setUniforms(_program) { }
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2hvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvZ2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBU3hDLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRWpELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBQzdCLFFBQVEsQ0FBd0M7SUFDaEQsa0JBQWtCLENBQWE7SUFDL0IsZ0JBQWdCLENBQWE7SUFFN0MsWUFBWSxFQUNSLEtBQUssR0FBRyxhQUFhLEVBQ3JCLFFBQVEsR0FBRyxDQUFDLEVBQ1osU0FBUyxHQUFHLENBQUMsTUFDWSxFQUFFO1FBQzNCLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3RCLGtDQUFrQztZQUNsQyxzQkFBc0IsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUM3QyxxQkFBcUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUN6QywyQkFBMkIsU0FBUyxDQUFDLE9BQU8sQ0FDeEMsQ0FBQyxDQUNKLHFCQUFxQjtTQUN6QixDQUFBO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3BCLGdEQUFnRDtTQUNuRCxDQUFBO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNaLFNBQVMsRUFBRSxNQUFNO1NBQ3BCLENBQUE7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQW9CLElBQVMsQ0FBQztDQUM3QyJ9
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ArrayNumber4, TgdProgram, WebglAttributeType, WebglUniformType } from "../types";
|
|
2
|
+
import { TgdVec4 } from "../math";
|
|
3
|
+
import { TgdMaterial } from "./material";
|
|
4
|
+
import { TgdCodeBloc } from "../shader/code";
|
|
5
|
+
export type TgdMaterialHullOptions = Partial<{
|
|
6
|
+
color: ArrayNumber4 | TgdVec4;
|
|
7
|
+
expansion: number;
|
|
8
|
+
attNormal: string;
|
|
9
|
+
}>;
|
|
10
|
+
export declare class TgdMaterialHull extends TgdMaterial {
|
|
11
|
+
color: TgdVec4;
|
|
12
|
+
expansion: number;
|
|
13
|
+
readonly varyings: {
|
|
14
|
+
[name: string]: WebglAttributeType;
|
|
15
|
+
};
|
|
16
|
+
readonly uniforms: {
|
|
17
|
+
[name: string]: WebglUniformType;
|
|
18
|
+
};
|
|
19
|
+
readonly fragmentShaderCode: TgdCodeBloc;
|
|
20
|
+
readonly vertexShaderCode: TgdCodeBloc;
|
|
21
|
+
constructor(options?: TgdMaterialHullOptions);
|
|
22
|
+
setUniforms(program: TgdProgram): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=hull.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hull.d.ts","sourceRoot":"","sources":["../../src/material/hull.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAC,CAAA;AAIF,qBAAa,eAAgB,SAAQ,WAAW;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,SAAO;IAEvB,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAG7D;IACD,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;gBAEjC,OAAO,GAAE,sBAA2B;IAchD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAIzC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TgdVec4 } from "./../math/index.js";
|
|
2
|
+
import { TgdMaterial } from "./material.js";
|
|
3
|
+
const DEFAULT_COLOR = [0.111, 0.333, 0.999, 1];
|
|
4
|
+
export class TgdMaterialHull extends TgdMaterial {
|
|
5
|
+
color;
|
|
6
|
+
expansion = 0.02;
|
|
7
|
+
varyings;
|
|
8
|
+
uniforms = {
|
|
9
|
+
uniColor: "vec4",
|
|
10
|
+
uniExpansion: "float",
|
|
11
|
+
};
|
|
12
|
+
fragmentShaderCode;
|
|
13
|
+
vertexShaderCode;
|
|
14
|
+
constructor(options = {}) {
|
|
15
|
+
super();
|
|
16
|
+
this.color = new TgdVec4(options.color ?? DEFAULT_COLOR);
|
|
17
|
+
this.expansion = options.expansion ?? 0.02;
|
|
18
|
+
this.fragmentShaderCode = [`return uniColor;`];
|
|
19
|
+
this.vertexShaderCode = [];
|
|
20
|
+
this.varyings = {};
|
|
21
|
+
this.vertexShaderCodeForGetPosition = [
|
|
22
|
+
`return pos + uniExpansion * vec4(${options.attNormal ?? "NORMAL"}, 0.0);`,
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
setUniforms(program) {
|
|
26
|
+
program.uniform4fv("uniColor", this.color);
|
|
27
|
+
program.uniform1f("uniExpansion", this.expansion);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9odWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQVN4QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUU1RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQ3JDLEtBQUssQ0FBUztJQUNkLFNBQVMsR0FBRyxJQUFJLENBQUE7SUFFUCxRQUFRLENBQXdDO0lBQ2hELFFBQVEsR0FBeUM7UUFDN0QsUUFBUSxFQUFFLE1BQU07UUFDaEIsWUFBWSxFQUFFLE9BQU87S0FDeEIsQ0FBQTtJQUNlLGtCQUFrQixDQUFhO0lBQy9CLGdCQUFnQixDQUFhO0lBRTdDLFlBQVksVUFBa0MsRUFBRTtRQUM1QyxLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUMsQ0FBQTtRQUN4RCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFBO1FBQzFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNsQixJQUFJLENBQUMsOEJBQThCLEdBQUc7WUFDbEMsb0NBQ0ksT0FBTyxDQUFDLFNBQVMsSUFBSSxRQUN6QixTQUFTO1NBQ1osQ0FBQTtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBbUI7UUFDM0IsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0NBQ0oifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from "./diffuse.js";
|
|
2
2
|
export * from "./ghost.js";
|
|
3
|
+
export * from "./hull.js";
|
|
3
4
|
export * from "./material.js";
|
|
4
5
|
export * from "./normals.js";
|
|
5
6
|
export * from "./solid.js";
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxTQUFTLENBQUEifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TgdCodeBloc } from "../shader/code";
|
|
2
2
|
import { TgdProgram, WebglAttributeType, WebglUniformType } from "..";
|
|
3
3
|
export declare abstract class TgdMaterial {
|
|
4
4
|
/**
|
|
@@ -19,11 +19,19 @@ export declare abstract class TgdMaterial {
|
|
|
19
19
|
/**
|
|
20
20
|
* The code of a `vec4 applyMaterial()` function.
|
|
21
21
|
*/
|
|
22
|
-
abstract readonly fragmentShaderCode:
|
|
22
|
+
abstract readonly fragmentShaderCode: TgdCodeBloc;
|
|
23
23
|
/**
|
|
24
24
|
* The code of a `void applyMaterial()` function.
|
|
25
25
|
*/
|
|
26
|
-
abstract readonly vertexShaderCode:
|
|
27
|
-
|
|
26
|
+
abstract readonly vertexShaderCode: TgdCodeBloc;
|
|
27
|
+
/**
|
|
28
|
+
* Body of the function `vec4 getPosition(vec4 pos)` of the vertex shader.
|
|
29
|
+
*
|
|
30
|
+
* By default, this body is `return pos;`.
|
|
31
|
+
* Yo can use this code to apply any transformation on the vertex position
|
|
32
|
+
* before convertion to screen space.
|
|
33
|
+
*/
|
|
34
|
+
vertexShaderCodeForGetPosition?: TgdCodeBloc;
|
|
35
|
+
abstract setUniforms(program: TgdProgram, time: number, delay: number): void;
|
|
28
36
|
}
|
|
29
37
|
//# 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,
|
|
1
|
+
{"version":3,"file":"material.d.ts","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAA;AAErE,8BAAsB,WAAW;IAC7B;;;;;;;;OAQG;IACH,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAK;IAErE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAK;IAEnE;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAA;IAEjD;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAA;IAE/C;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,WAAW,CAAA;IAE5C,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAC/E"}
|
|
@@ -10,5 +10,13 @@ export class TgdMaterial {
|
|
|
10
10
|
*/
|
|
11
11
|
varyings = {};
|
|
12
12
|
uniforms = {};
|
|
13
|
+
/**
|
|
14
|
+
* Body of the function `vec4 getPosition(vec4 pos)` of the vertex shader.
|
|
15
|
+
*
|
|
16
|
+
* By default, this body is `return pos;`.
|
|
17
|
+
* Yo can use this code to apply any transformation on the vertex position
|
|
18
|
+
* before convertion to screen space.
|
|
19
|
+
*/
|
|
20
|
+
vertexShaderCodeForGetPosition;
|
|
13
21
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixXQUFXO0lBQzdCOzs7Ozs7OztPQVFHO0lBQ2EsUUFBUSxHQUEyQyxFQUFFLENBQUE7SUFFckQsUUFBUSxHQUF5QyxFQUFFLENBQUE7SUFZbkU7Ozs7OztPQU1HO0lBQ0gsOEJBQThCLENBQWM7Q0FHL0MifQ==
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { TgdProgram, WebglAttributeType } from "../types";
|
|
2
2
|
import { TgdMaterial } from "./material";
|
|
3
|
-
import {
|
|
3
|
+
import { TgdCodeBloc } from "../shader/code";
|
|
4
4
|
export declare class TgdMaterialNormals extends TgdMaterial {
|
|
5
5
|
readonly varyings: {
|
|
6
6
|
[name: string]: WebglAttributeType;
|
|
7
7
|
};
|
|
8
|
-
readonly fragmentShaderCode:
|
|
9
|
-
readonly vertexShaderCode:
|
|
8
|
+
readonly fragmentShaderCode: TgdCodeBloc;
|
|
9
|
+
readonly vertexShaderCode: TgdCodeBloc;
|
|
10
10
|
constructor();
|
|
11
11
|
setUniforms(_program: TgdProgram): void;
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normals.d.ts","sourceRoot":"","sources":["../../src/material/normals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"normals.d.ts","sourceRoot":"","sources":["../../src/material/normals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,qBAAa,kBAAmB,SAAQ,WAAW;IAC/C,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;;IAe7C,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI;CAC1C"}
|
|
@@ -17,4 +17,4 @@ export class TgdMaterialNormals extends TgdMaterial {
|
|
|
17
17
|
}
|
|
18
18
|
setUniforms(_program) { }
|
|
19
19
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9ub3JtYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFHeEMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQVc7SUFDL0IsUUFBUSxDQUF3QztJQUNoRCxrQkFBa0IsQ0FBYTtJQUMvQixnQkFBZ0IsQ0FBYTtJQUU3QztRQUNJLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3RCLGdEQUFnRDtZQUNoRCxlQUFlO1lBQ2YsMEJBQTBCO1NBQzdCLENBQUE7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDWixTQUFTLEVBQUUsTUFBTTtTQUNwQixDQUFBO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFvQixJQUFTLENBQUM7Q0FDN0MifQ==
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { TgdProgram, WebglAttributeType, WebglUniformType } from "../types";
|
|
1
|
+
import { ArrayNumber4, TgdProgram, WebglAttributeType, WebglUniformType } from "../types";
|
|
2
2
|
import { TgdVec4 } from "../math";
|
|
3
3
|
import { TgdMaterial } from "./material";
|
|
4
|
-
import {
|
|
4
|
+
import { TgdCodeBloc } from "../shader/code";
|
|
5
5
|
export type TgdMaterialSolidOptions = Partial<{
|
|
6
|
-
color: TgdVec4;
|
|
6
|
+
color: ArrayNumber4 | TgdVec4;
|
|
7
7
|
}>;
|
|
8
8
|
export declare class TgdMaterialSolid extends TgdMaterial {
|
|
9
9
|
color: TgdVec4;
|
|
@@ -13,8 +13,8 @@ export declare class TgdMaterialSolid extends TgdMaterial {
|
|
|
13
13
|
readonly uniforms: {
|
|
14
14
|
[name: string]: WebglUniformType;
|
|
15
15
|
};
|
|
16
|
-
readonly fragmentShaderCode:
|
|
17
|
-
readonly vertexShaderCode:
|
|
16
|
+
readonly fragmentShaderCode: TgdCodeBloc;
|
|
17
|
+
readonly vertexShaderCode: TgdCodeBloc;
|
|
18
18
|
constructor(options?: TgdMaterialSolidOptions);
|
|
19
19
|
setUniforms(program: TgdProgram): void;
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid.d.ts","sourceRoot":"","sources":["../../src/material/solid.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,
|
|
1
|
+
{"version":3,"file":"solid.d.ts","sourceRoot":"","sources":["../../src/material/solid.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC;IAC1C,KAAK,EAAE,YAAY,GAAG,OAAO,CAAA;CAChC,CAAC,CAAA;AAIF,qBAAa,gBAAiB,SAAQ,WAAW;IACtC,KAAK,EAAE,OAAO,CAAA;IAErB,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAE7D;IACD,SAAgB,kBAAkB,EAAE,WAAW,CAAA;IAC/C,SAAgB,gBAAgB,EAAE,WAAW,CAAA;gBAEjC,OAAO,GAAE,uBAA4B;IAQjD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAGzC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TgdVec4 } from "./../math/index.js";
|
|
2
2
|
import { TgdMaterial } from "./material.js";
|
|
3
|
-
const DEFAULT_COLOR =
|
|
3
|
+
const DEFAULT_COLOR = [0.111, 0.333, 0.999, 1];
|
|
4
4
|
export class TgdMaterialSolid extends TgdMaterial {
|
|
5
5
|
color;
|
|
6
6
|
varyings;
|
|
@@ -11,7 +11,7 @@ export class TgdMaterialSolid extends TgdMaterial {
|
|
|
11
11
|
vertexShaderCode;
|
|
12
12
|
constructor(options = {}) {
|
|
13
13
|
super();
|
|
14
|
-
this.color = options.color ?? DEFAULT_COLOR;
|
|
14
|
+
this.color = new TgdVec4(options.color ?? DEFAULT_COLOR);
|
|
15
15
|
this.fragmentShaderCode = [`return uniColor;`];
|
|
16
16
|
this.vertexShaderCode = [];
|
|
17
17
|
this.varyings = {};
|
|
@@ -20,4 +20,4 @@ export class TgdMaterialSolid extends TgdMaterial {
|
|
|
20
20
|
program.uniform4fv("uniColor", this.color);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29saWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvc29saWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBT3hDLE1BQU0sYUFBYSxHQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRTVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBQ3RDLEtBQUssQ0FBUztJQUVMLFFBQVEsQ0FBd0M7SUFDaEQsUUFBUSxHQUF5QztRQUM3RCxRQUFRLEVBQUUsTUFBTTtLQUNuQixDQUFBO0lBQ2Usa0JBQWtCLENBQWE7SUFDL0IsZ0JBQWdCLENBQWE7SUFFN0MsWUFBWSxVQUFtQyxFQUFFO1FBQzdDLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxDQUFBO1FBQ3hELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQW1CO1FBQzNCLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0NBQ0oifQ==
|
package/lib/dist/math/vec4.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ArrayNumber4 } from "
|
|
1
|
+
import { ArrayNumber3, ArrayNumber4 } from "../types";
|
|
2
2
|
import { TgdMat4 } from "./mat4";
|
|
3
3
|
import { TgdVec3 } from "./vec3";
|
|
4
4
|
export declare class TgdVec4 extends Float32Array {
|
|
5
5
|
constructor();
|
|
6
|
-
constructor(vec4: TgdVec4);
|
|
7
|
-
constructor(vec3: TgdVec3, w: number);
|
|
6
|
+
constructor(vec4: TgdVec4 | ArrayNumber4);
|
|
7
|
+
constructor(vec3: TgdVec3 | ArrayNumber3, w: number);
|
|
8
8
|
constructor(x: number);
|
|
9
9
|
constructor(x: number, y: number);
|
|
10
10
|
constructor(x: number, y: number, z: number);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vec4.d.ts","sourceRoot":"","sources":["../../src/math/vec4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"vec4.d.ts","sourceRoot":"","sources":["../../src/math/vec4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,qBAAa,OAAQ,SAAQ,YAAY;;gBAEzB,IAAI,EAAE,OAAO,GAAG,YAAY;gBAC5B,IAAI,EAAE,OAAO,GAAG,YAAY,EAAE,CAAC,EAAE,MAAM;gBACvC,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;gBACpB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;gBAC/B,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IA8CtD,KAAK,CAAC,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,IAAI;IAQvC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,IAAI;IASjD,KAAK;IAIL,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,SAAM,GAAG,IAAI;IAQ9C,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC;IAS7C,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,SAAO;IAQ/C;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAS/B,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO;IAU/C,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO;IAQzC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ3B,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IASzB,IAAI,IAAI,WAOP;IAED,SAAS,IAAI,IAAI;IAWjB,KAAK,CAAC,OAAO,SAAS;CAKzB"}
|