@tolokoban/tgd 2.0.69 → 2.0.71
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/context/index.d.ts +1 -0
- package/lib/dist/context/index.d.ts.map +1 -1
- package/lib/dist/context/index.js +2 -1
- package/lib/dist/context/logic.d.ts +12 -0
- package/lib/dist/context/logic.d.ts.map +1 -0
- package/lib/dist/context/logic.js +29 -0
- package/lib/dist/material/{principled.d.ts → glass.d.ts} +6 -4
- package/lib/dist/material/glass.d.ts.map +1 -0
- package/lib/dist/material/glass.js +116 -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.map +1 -1
- package/lib/dist/material/material.js +1 -1
- package/lib/dist/painter/group.d.ts +5 -3
- package/lib/dist/painter/group.d.ts.map +1 -1
- package/lib/dist/painter/group.js +8 -20
- package/lib/dist/painter/mesh/mesh/mesh.d.ts +5 -0
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +7 -1
- package/package.json +1 -1
- package/lib/dist/material/bsdf.d.ts +0 -25
- package/lib/dist/material/bsdf.d.ts.map +0 -1
- package/lib/dist/material/bsdf.js +0 -98
- package/lib/dist/material/principled.d.ts.map +0 -1
- package/lib/dist/material/principled.js +0 -112
- package/lib/dist/material/solid.d.ts +0 -22
- package/lib/dist/material/solid.d.ts.map +0 -1
- package/lib/dist/material/solid.js +0 -20
- package/lib/dist/types/input-keyboard.d.ts +0 -8
- package/lib/dist/types/input-keyboard.d.ts.map +0 -1
- package/lib/dist/types/input-keyboard.js +0 -2
- package/lib/dist/utils/math.d.ts +0 -19
- package/lib/dist/utils/math.d.ts.map +0 -1
- package/lib/dist/utils/math.js +0 -59
- package/lib/dist/utils/math.test.d.ts +0 -2
- package/lib/dist/utils/math.test.d.ts.map +0 -1
- package/lib/dist/utils/math.test.js +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from "./context.js";
|
|
2
2
|
export * from "../log.js";
|
|
3
|
-
|
|
3
|
+
export * from "./logic.js";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFNBQVMsQ0FBQSJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type TgdLogicFunction = (time: number, delay: number) => void;
|
|
2
|
+
/**
|
|
3
|
+
* List of logic functions to be called (generaly) on every frame.
|
|
4
|
+
*/
|
|
5
|
+
export declare class TgdLogic {
|
|
6
|
+
private logics;
|
|
7
|
+
clear(): this;
|
|
8
|
+
add(logic: TgdLogicFunction): this;
|
|
9
|
+
remove(logic: TgdLogicFunction): boolean;
|
|
10
|
+
exec(time: number, delay: number): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../src/context/logic.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;AAEpE;;GAEG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAyB;IAEvC,KAAK;IAKL,GAAG,CAAC,KAAK,EAAE,gBAAgB;IAM3B,MAAM,CAAC,KAAK,EAAE,gBAAgB;IAQ9B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAGnC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List of logic functions to be called (generaly) on every frame.
|
|
3
|
+
*/
|
|
4
|
+
export class TgdLogic {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.logics = [];
|
|
7
|
+
}
|
|
8
|
+
clear() {
|
|
9
|
+
this.logics.splice(0);
|
|
10
|
+
return this;
|
|
11
|
+
}
|
|
12
|
+
add(logic) {
|
|
13
|
+
this.remove(logic);
|
|
14
|
+
this.logics.push(logic);
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
remove(logic) {
|
|
18
|
+
const idx = this.logics.indexOf(logic);
|
|
19
|
+
if (idx === -1)
|
|
20
|
+
return false;
|
|
21
|
+
this.logics.splice(idx, 1);
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
exec(time, delay) {
|
|
25
|
+
for (const logic of this.logics)
|
|
26
|
+
logic(time, delay);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dC9sb2dpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFRO0lBQXJCO1FBQ1ksV0FBTSxHQUF1QixFQUFFLENBQUE7SUF3QjNDLENBQUM7SUF0QkcsS0FBSztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JCLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUF1QjtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZCLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUF1QjtRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0QyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUU1QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDMUIsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQsSUFBSSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQzVCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3ZELENBQUM7Q0FDSiJ9
|
|
@@ -3,7 +3,7 @@ import { TgdVec3, TgdVec4 } from "../math";
|
|
|
3
3
|
import { TgdMaterial } from "./material";
|
|
4
4
|
import { TgdLight } from "../light";
|
|
5
5
|
import { TgdTexture2D, TgdTextureCube } from "../texture";
|
|
6
|
-
export type
|
|
6
|
+
export type TgdMaterialGlassOptions = Partial<{
|
|
7
7
|
color: TgdVec4 | ArrayNumber4 | TgdTexture2D;
|
|
8
8
|
lights: TgdLight[];
|
|
9
9
|
ambientColor: TgdVec3 | ArrayNumber3 | TgdTextureCube;
|
|
@@ -12,14 +12,16 @@ export type TgdMaterialPrincipledOptions = Partial<{
|
|
|
12
12
|
specularIntensity: number;
|
|
13
13
|
normalMap: TgdTexture2D;
|
|
14
14
|
}>;
|
|
15
|
-
export declare class
|
|
15
|
+
export declare class TgdMaterialGlass extends TgdMaterial {
|
|
16
16
|
private readonly options;
|
|
17
17
|
specularExponent: number;
|
|
18
18
|
specularIntensity: number;
|
|
19
|
+
opacityMin: number;
|
|
20
|
+
opacityMax: number;
|
|
19
21
|
private textureColor;
|
|
20
22
|
private mustDeleteTextureColor;
|
|
21
23
|
private textureAmbient;
|
|
22
24
|
private mustDeleteTextureAmbient;
|
|
23
|
-
constructor(options?:
|
|
25
|
+
constructor(options?: TgdMaterialGlassOptions);
|
|
24
26
|
}
|
|
25
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=glass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glass.d.ts","sourceRoot":"","sources":["../../src/material/glass.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,YAAY,EAGf,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAS3D,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC;IAC1C,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAA;IAC5C,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,YAAY,EAAE,OAAO,GAAG,YAAY,GAAG,cAAc,CAAA;IACrD,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,YAAY,CAAA;CAC1B,CAAC,CAAA;AAKF,qBAAa,gBAAiB,SAAQ,WAAW;IAWjC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV7B,gBAAgB,SAAM;IACtB,iBAAiB,SAAI;IACrB,UAAU,SAAI;IACd,UAAU,SAAO;IAExB,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,sBAAsB,CAAQ;IACtC,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,wBAAwB,CAAQ;gBAEX,OAAO,GAAE,uBAA4B;CAqHrE"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { TgdVec3, TgdVec4 } from "./../math/index.js";
|
|
2
|
+
import { TgdMaterial } from "./material.js";
|
|
3
|
+
import { TgdTexture2D, TgdTextureCube } from "./../texture/index.js";
|
|
4
|
+
import { tgdCanvasCreateFill, webglPresetBlend, webglPresetDepth, } from "./../utils/index.js";
|
|
5
|
+
const DEFAULT_COLOR = new TgdVec4(0.8, 0.6, 0.1, 1);
|
|
6
|
+
const DEFAULT_AMBIENT = new TgdVec3(0.8, 0.8, 0.8);
|
|
7
|
+
export class TgdMaterialGlass extends TgdMaterial {
|
|
8
|
+
constructor(options = {}) {
|
|
9
|
+
const uniforms = {
|
|
10
|
+
uniTransfoMatrix: "mat4",
|
|
11
|
+
uniSpecularExponent: "float",
|
|
12
|
+
uniSpecularIntensity: "float",
|
|
13
|
+
uniOpacityBase: "float",
|
|
14
|
+
uniOpacityFactor: "float",
|
|
15
|
+
texColor: "sampler2D",
|
|
16
|
+
texAmbient: "samplerCube",
|
|
17
|
+
uniCameraPosition: "vec3",
|
|
18
|
+
};
|
|
19
|
+
const fragmentShaderCode = [
|
|
20
|
+
`vec3 N = normalize(varNormal);`,
|
|
21
|
+
`vec3 L = normalize(varPosition.xyz - uniCameraPosition);`,
|
|
22
|
+
`vec3 R = reflect(L, N);`,
|
|
23
|
+
`vec3 color = texture(texAmbient, R).rgb;`,
|
|
24
|
+
`color = pow(color, vec3(uniSpecularExponent));`,
|
|
25
|
+
`color *= uniSpecularIntensity;`,
|
|
26
|
+
`return vec4(color, uniOpacityBase + uniOpacityFactor * dot(color, color)) * texture(texColor, varUV);`,
|
|
27
|
+
];
|
|
28
|
+
const varyings = {
|
|
29
|
+
varUV: "vec2",
|
|
30
|
+
varNormal: "vec3",
|
|
31
|
+
varPosition: "vec4",
|
|
32
|
+
};
|
|
33
|
+
const vertexShaderCode = () => {
|
|
34
|
+
const code = [
|
|
35
|
+
`varUV = ${this.attUV};`,
|
|
36
|
+
`varNormal = mat3(uniTransfoMatrix) * ${this.attNormal};`,
|
|
37
|
+
`varPosition = uniTransfoMatrix * ${this.attPosition};`,
|
|
38
|
+
];
|
|
39
|
+
return code;
|
|
40
|
+
};
|
|
41
|
+
super({
|
|
42
|
+
state: {
|
|
43
|
+
blend: webglPresetBlend.alpha,
|
|
44
|
+
depth: webglPresetDepth.writeOnly,
|
|
45
|
+
},
|
|
46
|
+
delete: () => {
|
|
47
|
+
var _a, _b;
|
|
48
|
+
if (this.mustDeleteTextureAmbient)
|
|
49
|
+
(_a = this.textureAmbient) === null || _a === void 0 ? void 0 : _a.delete();
|
|
50
|
+
if (this.mustDeleteTextureColor)
|
|
51
|
+
(_b = this.textureColor) === null || _b === void 0 ? void 0 : _b.delete();
|
|
52
|
+
},
|
|
53
|
+
uniforms,
|
|
54
|
+
varyings,
|
|
55
|
+
vertexShaderCode,
|
|
56
|
+
fragmentShaderCode,
|
|
57
|
+
setUniforms: ({ program, camera, }) => {
|
|
58
|
+
var _a, _b;
|
|
59
|
+
if (!this.textureColor) {
|
|
60
|
+
// Lazy creation of a texture from an unique color.
|
|
61
|
+
this.textureColor = new TgdTexture2D(program);
|
|
62
|
+
const color = (_a = this.options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR;
|
|
63
|
+
if (!(color instanceof TgdTexture2D)) {
|
|
64
|
+
this.textureColor.loadBitmap(tgdCanvasCreateFill(1, 1, color));
|
|
65
|
+
}
|
|
66
|
+
this.mustDeleteTextureColor = true;
|
|
67
|
+
}
|
|
68
|
+
if (!this.textureAmbient) {
|
|
69
|
+
// Lazy creation of a texture from an unique color.
|
|
70
|
+
const color = (_b = this.options.ambientColor) !== null && _b !== void 0 ? _b : DEFAULT_AMBIENT;
|
|
71
|
+
const canvas = tgdCanvasCreateFill(1, 1, color instanceof TgdTextureCube
|
|
72
|
+
? DEFAULT_AMBIENT
|
|
73
|
+
: color);
|
|
74
|
+
this.textureAmbient = new TgdTextureCube(program, {
|
|
75
|
+
imagePosX: canvas,
|
|
76
|
+
imagePosY: canvas,
|
|
77
|
+
imagePosZ: canvas,
|
|
78
|
+
imageNegX: canvas,
|
|
79
|
+
imageNegY: canvas,
|
|
80
|
+
imageNegZ: canvas,
|
|
81
|
+
});
|
|
82
|
+
this.mustDeleteTextureAmbient = true;
|
|
83
|
+
}
|
|
84
|
+
this.textureColor.activate(0, program, "texColor");
|
|
85
|
+
this.textureAmbient.activate(1, program, "texAmbient");
|
|
86
|
+
program.uniform3fv("uniCameraPosition", camera.transfo.actualPosition);
|
|
87
|
+
program.uniform1f("uniSpecularExponent", this.specularExponent);
|
|
88
|
+
program.uniform1f("uniSpecularIntensity", this.specularIntensity);
|
|
89
|
+
program.uniform1f("uniOpacityBase", this.opacityMin);
|
|
90
|
+
program.uniform1f("uniOpacityFactor", this.opacityMax - this.opacityMin);
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
this.options = options;
|
|
94
|
+
this.specularExponent = 2.2;
|
|
95
|
+
this.specularIntensity = 2;
|
|
96
|
+
this.opacityMin = 0;
|
|
97
|
+
this.opacityMax = 0.05;
|
|
98
|
+
this.textureColor = null;
|
|
99
|
+
this.mustDeleteTextureColor = false;
|
|
100
|
+
this.textureAmbient = null;
|
|
101
|
+
this.mustDeleteTextureAmbient = false;
|
|
102
|
+
if (typeof options.specularExponent === "number") {
|
|
103
|
+
this.specularExponent = options.specularExponent;
|
|
104
|
+
}
|
|
105
|
+
if (typeof options.specularIntensity === "number") {
|
|
106
|
+
this.specularIntensity = options.specularIntensity;
|
|
107
|
+
}
|
|
108
|
+
if (options.color instanceof TgdTexture2D) {
|
|
109
|
+
this.textureColor = options.color;
|
|
110
|
+
}
|
|
111
|
+
if (options.ambientColor instanceof TgdTextureCube) {
|
|
112
|
+
this.textureAmbient = options.ambientColor;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvZ2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUd4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzRCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixnQkFBZ0IsR0FDbkIsTUFBTSxZQUFZLENBQUE7QUFhbkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDbkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUVsRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBVztJQVc3QyxZQUE2QixVQUFtQyxFQUFFO1FBQzlELE1BQU0sUUFBUSxHQUF5QztZQUNuRCxnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLG1CQUFtQixFQUFFLE9BQU87WUFDNUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixjQUFjLEVBQUUsT0FBTztZQUN2QixnQkFBZ0IsRUFBRSxPQUFPO1lBQ3pCLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLGlCQUFpQixFQUFFLE1BQU07U0FDNUIsQ0FBQTtRQUNELE1BQU0sa0JBQWtCLEdBQWdCO1lBQ3BDLGdDQUFnQztZQUNoQywwREFBMEQ7WUFDMUQseUJBQXlCO1lBQ3pCLDBDQUEwQztZQUMxQyxnREFBZ0Q7WUFDaEQsZ0NBQWdDO1lBQ2hDLHVHQUF1RztTQUMxRyxDQUFBO1FBQ0QsTUFBTSxRQUFRLEdBQTJDO1lBQ3JELEtBQUss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
|
|
@@ -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,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,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"}
|
|
@@ -3,10 +3,11 @@ export * from "./diffuse.js";
|
|
|
3
3
|
export * from "./face-orientation.js";
|
|
4
4
|
export * from "./flat.js";
|
|
5
5
|
export * from "./ghost.js";
|
|
6
|
+
export * from "./glass.js";
|
|
6
7
|
export * from "./global.js";
|
|
7
8
|
export * from "./hull.js";
|
|
8
9
|
export * from "./material.js";
|
|
9
10
|
export * from "./normals.js";
|
|
10
11
|
export * from "./normal-map.js";
|
|
11
12
|
export * from "./toon.js";
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLFFBQVEsQ0FBQSJ9
|
|
@@ -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;AAChE,OAAO,EACH,SAAS,
|
|
1
|
+
{"version":3,"file":"material.d.ts","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,4 +60,4 @@ export class TgdMaterial {
|
|
|
60
60
|
this.state = state;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdILGVBQWUsR0FJbEIsTUFBTSxJQUFJLENBQUE7QUFvRVgsTUFBTSxPQUFPLFdBQVc7SUFzQnBCOztPQUVHO0lBQ0gsSUFBSSxrQkFBa0I7UUFDbEIsSUFBSSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxVQUFVO1lBQzlDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDckMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUE7SUFDbkMsQ0FBQztJQU1ELElBQUksNEJBQTRCO1FBQzVCLElBQUksT0FBTyxJQUFJLENBQUMsNkJBQTZCLEtBQUssVUFBVTtZQUN4RCxPQUFPLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFBO1FBQy9DLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFBO0lBQzdDLENBQUM7SUFJRDs7T0FFRztJQUNILElBQUksZ0JBQWdCO1FBQ2hCLElBQUksT0FBTyxJQUFJLENBQUMsaUJBQWlCLEtBQUssVUFBVTtZQUM1QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFBO0lBQ2pDLENBQUM7SUFNRCxJQUFJLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixLQUFLLFVBQVU7WUFDdEQsT0FBTyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQTtRQUM3QyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQTtJQUMzQyxDQUFDO0lBTUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSw4QkFBOEI7UUFDOUIsSUFBSSxPQUFPLElBQUksQ0FBQywrQkFBK0IsS0FBSyxVQUFVO1lBQzFELE9BQU8sSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUE7UUFDakQsT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUE7SUFDL0MsQ0FBQztJQVFNLFVBQVUsQ0FBQyxFQUEwQixFQUFFLE1BQWtCO1FBQzVELGVBQWUsQ0FBQyxFQUFFLGlCQUVWLEVBQUUsSUFDQyxJQUFJLENBQUMsS0FBSyxHQUVqQixNQUFNLENBQ1QsQ0FBQTtJQUNMLENBQUM7SUFJRCxZQUFZLEVBQ1IsV0FBVyxHQUFHLFVBQVUsRUFDeEIsU0FBUyxHQUFHLFFBQVEsRUFDcEIsVUFBVSxHQUFHLG9CQUFvQixFQUNqQyxLQUFLLEdBQUcsWUFBWSxFQUNwQixRQUFRLEdBQUcsRUFBRSxFQUNiLFFBQVEsR0FBRyxFQUFFLEVBQ2Isa0JBQWtCLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxFQUNyRCw0QkFBNEIsR0FBRyxFQUFFLEVBQ2pDLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsMEJBQTBCLEdBQUcsRUFBRSxFQUMvQiw4QkFBOEIsR0FBRyxhQUFhLEVBQzlDLFdBQVcsRUFDWCxLQUFLLEdBQUcsRUFBRSxFQUNWLEtBQUssR0FBRyxLQUFLLEVBQ2IsTUFBTSxFQUFFLGNBQWMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLEdBQ1A7UUFoSHZCLFVBQUssR0FBRyxLQUFLLENBQUE7UUFpSGhCLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQTtRQUM3QyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsNEJBQTRCLENBQUE7UUFDakUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFBO1FBQ3pDLElBQUksQ0FBQywyQkFBMkIsR0FBRywwQkFBMEIsQ0FBQTtRQUM3RCxJQUFJLENBQUMsK0JBQStCLEdBQUcsOEJBQThCLENBQUE7UUFDckUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDdEIsQ0FBQztDQUNKIn0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TgdPainterFunction } from "../types/painter";
|
|
2
2
|
import { TgdDebugPainterHierarchy as TgdDebugPainterHierarchy, TgdPainter } from "./painter";
|
|
3
|
+
import { TgdLogic } from "../context";
|
|
3
4
|
export type TgdPainterGroupOptions = {
|
|
4
5
|
onEnter?(time: number, delay: number): void;
|
|
5
6
|
onExit?(time: number, delay: number): void;
|
|
@@ -10,6 +11,10 @@ export type TgdPainterGroupOptions = {
|
|
|
10
11
|
* Group several painters together.
|
|
11
12
|
*/
|
|
12
13
|
export declare class TgdPainterGroup extends TgdPainter {
|
|
14
|
+
/**
|
|
15
|
+
* the logic will be executed at the beginning of `paint()`.
|
|
16
|
+
*/
|
|
17
|
+
readonly logic: TgdLogic;
|
|
13
18
|
active: boolean;
|
|
14
19
|
onEnter: TgdPainterFunction | undefined;
|
|
15
20
|
onExit: TgdPainterFunction | undefined;
|
|
@@ -25,9 +30,6 @@ export declare class TgdPainterGroup extends TgdPainter {
|
|
|
25
30
|
remove(...painters: TgdPainter[]): void;
|
|
26
31
|
removeAll(): void;
|
|
27
32
|
delete(): void;
|
|
28
|
-
logicAdd(logic?: (time: number, delay: number) => void): void;
|
|
29
|
-
logicRemove(logic?: (time: number, delay: number) => void): void;
|
|
30
|
-
logicClear(): void;
|
|
31
33
|
paint(time: number, delay: number): void;
|
|
32
34
|
get hierarchy(): TgdDebugPainterHierarchy;
|
|
33
35
|
debugHierarchy(caption?: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../src/painter/group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EACH,wBAAwB,IAAI,wBAAwB,EACpD,UAAU,EACb,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../src/painter/group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EACH,wBAAwB,IAAI,wBAAwB,EACpD,UAAU,EACb,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC3C;;OAEG;IACH,SAAgB,KAAK,WAAiB;IAC/B,MAAM,UAAO;IACb,OAAO,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACvC,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAC7C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmD;;gBAG9D,QAAQ,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,sBAAsB;gBACzD,OAAO,CAAC,EAAE,sBAAsB;IA+B5C,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI;IAKjE,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAIjC,GAAG,CAAC,GAAG,QAAQ,EAAE,UAAU,EAAE;IAM7B,QAAQ,CAAC,GAAG,QAAQ,EAAE,UAAU,EAAE;IAOlC,MAAM,CAAC,GAAG,QAAQ,EAAE,UAAU,EAAE;IAUhC,SAAS;IAOT,MAAM,IAAI,IAAI;IAQd,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAgBxC,IAAI,SAAS,IAAI,wBAAwB,CAKxC;IAED,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM;IAS/B,OAAO,CAAC,cAAc;CAczB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TgdPainter, } from "./painter.js";
|
|
2
2
|
import { TgdConsole } from "./../debug/index.js";
|
|
3
|
+
import { TgdLogic } from "./../context/index.js";
|
|
3
4
|
/**
|
|
4
5
|
* Group several painters together.
|
|
5
6
|
*/
|
|
@@ -7,6 +8,10 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
7
8
|
constructor(arg1, arg2) {
|
|
8
9
|
var _a, _b;
|
|
9
10
|
super();
|
|
11
|
+
/**
|
|
12
|
+
* the logic will be executed at the beginning of `paint()`.
|
|
13
|
+
*/
|
|
14
|
+
this.logic = new TgdLogic();
|
|
10
15
|
this.active = true;
|
|
11
16
|
this.logics = [];
|
|
12
17
|
this.painters = [];
|
|
@@ -74,30 +79,13 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
74
79
|
painter.delete();
|
|
75
80
|
}
|
|
76
81
|
this.painters.splice(0);
|
|
77
|
-
this.
|
|
78
|
-
}
|
|
79
|
-
logicAdd(logic) {
|
|
80
|
-
if (logic) {
|
|
81
|
-
this.logicRemove(logic);
|
|
82
|
-
this.logics.push(logic);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
logicRemove(logic) {
|
|
86
|
-
if (!logic)
|
|
87
|
-
return;
|
|
88
|
-
const { logics } = this;
|
|
89
|
-
const index = logics.indexOf(logic);
|
|
90
|
-
if (index === -1)
|
|
91
|
-
return;
|
|
92
|
-
logics.splice(index, 1);
|
|
93
|
-
}
|
|
94
|
-
logicClear() {
|
|
95
|
-
this.logics.splice(0);
|
|
82
|
+
this.logic.clear();
|
|
96
83
|
}
|
|
97
84
|
paint(time, delay) {
|
|
98
85
|
var _a, _b;
|
|
99
86
|
if (!this.active)
|
|
100
87
|
return;
|
|
88
|
+
this.logic.exec(time, delay);
|
|
101
89
|
(_a = this.onEnter) === null || _a === void 0 ? void 0 : _a.call(this, time, delay);
|
|
102
90
|
for (const painter of this.painters) {
|
|
103
91
|
if (painter.active) {
|
|
@@ -133,4 +121,4 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
133
121
|
}
|
|
134
122
|
}
|
|
135
123
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFpbnRlci9ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUgsVUFBVSxHQUNiLE1BQU0sV0FBVyxDQUFBO0FBQ2xCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQVN2Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLFVBQVU7SUFlM0MsWUFDSSxJQUE0QyxFQUM1QyxJQUE2Qjs7UUFFN0IsS0FBSyxFQUFFLENBQUE7UUFsQlg7O1dBRUc7UUFDYSxVQUFLLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQTtRQUMvQixXQUFNLEdBQUcsSUFBSSxDQUFBO1FBS0gsV0FBTSxHQUFpRCxFQUFFLENBQUE7UUFVdEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJO2dCQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzNELENBQUM7YUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFBO1lBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQUEsSUFBSSxDQUFDLElBQUksbUNBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDN0MsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hCLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDcEUsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFBO1lBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQUEsSUFBSSxDQUFDLElBQUksbUNBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDN0MsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hCLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzt3QkFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7b0JBQy9CLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUFvRDtRQUM3RCxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDaEQsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRUQsR0FBRyxDQUFDLE9BQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFHLFFBQXNCO1FBQ3pCLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRyxRQUFzQjtRQUM5QixLQUFLLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN4RCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDbEMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxRQUFzQjtRQUM1QixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQzVDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztnQkFBRSxTQUFRO1lBRTFCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM5QixPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDcEIsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ0wsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ3BCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMzQixDQUFDO0lBRUQsTUFBTTtRQUNGLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNwQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVksRUFBRSxLQUFhOztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFNO1FBRXhCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM1QixNQUFBLElBQUksQ0FBQyxPQUFPLHFEQUFHLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUMzQixLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDOUIsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5QixLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3RCLENBQUM7UUFDRCxNQUFBLElBQUksQ0FBQyxNQUFNLHFEQUFHLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTztZQUNILENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxhQUFhLENBQUMsRUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDeEQsQ0FBQTtJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZ0I7UUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDeEIsSUFBSSxFQUFFLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLElBQUksQ0FBQyxJQUFJO1lBQzFCLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNoQixDQUFDO0lBRU8sY0FBYyxDQUNsQixJQUFnQixFQUNoQixDQUEyQixFQUMzQixNQUFNLEdBQUcsQ0FBQztRQUVWLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUMvRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDcEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUs7b0JBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDcEQsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0NBQ0oifQ==
|
|
@@ -4,6 +4,7 @@ import { TgdTransfo, TgdTransfoOptions, TgdVec3 } from "../../../math";
|
|
|
4
4
|
import { TgdInterfaceTransformable } from "../../../interface";
|
|
5
5
|
import { TgdPainter } from "../../painter";
|
|
6
6
|
import { TgdCamera } from "../../../camera";
|
|
7
|
+
import { TgdLogic } from "../../../context";
|
|
7
8
|
export interface TgdPainterMeshOptions {
|
|
8
9
|
transfo?: Partial<TgdTransfoOptions> | TgdTransfo;
|
|
9
10
|
geometry?: TgdGeometry;
|
|
@@ -18,6 +19,10 @@ export declare class TgdPainterMesh extends TgdPainter implements TgdInterfaceTr
|
|
|
18
19
|
camera: TgdCamera;
|
|
19
20
|
paint?: () => void;
|
|
20
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* the logic will be executed at the beginning of `paint()`.
|
|
24
|
+
*/
|
|
25
|
+
readonly logic: TgdLogic;
|
|
21
26
|
readonly transfo: TgdTransfo;
|
|
22
27
|
readonly material: TgdMaterial;
|
|
23
28
|
private readonly program;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/mesh/mesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKlE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,qBAAqB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAA;IACjD,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;GACG;AACH,qBAAa,cACT,SAAQ,UACR,YAAW,yBAAyB;
|
|
1
|
+
{"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/mesh/mesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKlE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,MAAM,WAAW,qBAAqB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAA;IACjD,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;GACG;AACH,qBAAa,cACT,SAAQ,UACR,YAAW,yBAAyB;IAmBhC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE;QACxB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB;IArBL;;OAEG;IACH,SAAgB,KAAK,WAAiB;IACtC,SAAgB,OAAO,aAAmB;IAC1C,SAAgB,QAAQ,EAAE,WAAW,CAAA;IAErC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,OAAO,CAAuB;gBAGf,OAAO,EAAE;QACxB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB,EACD,OAAO,GAAE,qBAA0B;IAoFvC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM;IAKtB,kBAAkB,IAAI;QAClB,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtB,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;KACzB;IA4BD,SAAgB,KAAK,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,UA0BnD;IAED,MAAM,IAAI,IAAI;CAGjB"}
|
|
@@ -6,6 +6,7 @@ import { TgdVertexArray } from "./../../../vao/index.js";
|
|
|
6
6
|
import { TgdShaderFragment } from "./../../../shader/fragment.js";
|
|
7
7
|
import { TgdShaderVertex } from "./../../../shader/vertex.js";
|
|
8
8
|
import { TgdPainter } from "../../painter.js";
|
|
9
|
+
import { TgdLogic } from "./../../../context/index.js";
|
|
9
10
|
/**
|
|
10
11
|
*/
|
|
11
12
|
export class TgdPainterMesh extends TgdPainter {
|
|
@@ -13,6 +14,10 @@ export class TgdPainterMesh extends TgdPainter {
|
|
|
13
14
|
var _a, _b;
|
|
14
15
|
super();
|
|
15
16
|
this.context = context;
|
|
17
|
+
/**
|
|
18
|
+
* the logic will be executed at the beginning of `paint()`.
|
|
19
|
+
*/
|
|
20
|
+
this.logic = new TgdLogic();
|
|
16
21
|
this.transfo = new TgdTransfo();
|
|
17
22
|
this.drawMode = 0;
|
|
18
23
|
this.bboxMin = null;
|
|
@@ -21,6 +26,7 @@ export class TgdPainterMesh extends TgdPainter {
|
|
|
21
26
|
var _a;
|
|
22
27
|
const { context, program, geometry, material, drawMode, count, transfo, } = this;
|
|
23
28
|
const { gl, camera } = context;
|
|
29
|
+
this.logic.exec(time, delay);
|
|
24
30
|
program.use();
|
|
25
31
|
(_a = material.setUniforms) === null || _a === void 0 ? void 0 : _a.call(material, { camera, program, time, delay });
|
|
26
32
|
program.uniformMatrix4fv("uniTransfoMatrix", transfo.matrix);
|
|
@@ -130,4 +136,4 @@ export class TgdPainterMesh extends TgdPainter {
|
|
|
130
136
|
this.vao.delete();
|
|
131
137
|
}
|
|
132
138
|
}
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvbWVzaC9tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0QsT0FBTyxFQUFlLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQXFCLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQVN2QztHQUNHO0FBQ0gsTUFBTSxPQUFPLGNBQ1QsU0FBUSxVQUFVO0lBbUJsQixZQUN1QixPQUlsQixFQUNELFVBQWlDLEVBQUU7O1FBRW5DLEtBQUssRUFBRSxDQUFBO1FBUFksWUFBTyxHQUFQLE9BQU8sQ0FJekI7UUFyQkw7O1dBRUc7UUFDYSxVQUFLLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQTtRQUN0QixZQUFPLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQTtRQVF6QixhQUFRLEdBQVcsQ0FBQyxDQUFBO1FBQzdCLFlBQU8sR0FBbUIsSUFBSSxDQUFBO1FBQzlCLFlBQU8sR0FBbUIsSUFBSSxDQUFBO1FBZ0l0QixVQUFLLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLEVBQUU7O1lBQ3BELE1BQU0sRUFDRixPQUFPLEVBQ1AsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEVB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
|
package/package.json
CHANGED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ArrayNumber3, ArrayNumber4 } from "../types";
|
|
2
|
-
import { TgdVec3, TgdVec4 } from "../math";
|
|
3
|
-
import { TgdMaterial } from "./material";
|
|
4
|
-
import { TgdLight } from "../light";
|
|
5
|
-
import { TgdTexture2D, TgdTextureCube } from "../texture";
|
|
6
|
-
export type TgdMaterialBSDFOptions = Partial<{
|
|
7
|
-
color: TgdVec4 | ArrayNumber4 | TgdTexture2D;
|
|
8
|
-
lights: TgdLight[];
|
|
9
|
-
ambientColor: TgdVec3 | ArrayNumber3 | TgdTextureCube;
|
|
10
|
-
ambientIntensity: number;
|
|
11
|
-
specularExponent: number;
|
|
12
|
-
specularIntensity: number;
|
|
13
|
-
normalMap: TgdVec3 | ArrayNumber3 | TgdTexture2D;
|
|
14
|
-
}>;
|
|
15
|
-
export declare class TgdMaterialBSDF extends TgdMaterial {
|
|
16
|
-
light: TgdLight;
|
|
17
|
-
ambient: TgdLight;
|
|
18
|
-
specularExponent: number;
|
|
19
|
-
specularIntensity: number;
|
|
20
|
-
private readonly texture;
|
|
21
|
-
private readonly lightColor;
|
|
22
|
-
private readonly ambientColor;
|
|
23
|
-
constructor(options?: TgdMaterialBSDFOptions);
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=bsdf.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bsdf.d.ts","sourceRoot":"","sources":["../../src/material/bsdf.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,YAAY,EAGf,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG3D,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAA;IAC5C,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,YAAY,EAAE,OAAO,GAAG,YAAY,GAAG,cAAc,CAAA;IACrD,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAA;CACnD,CAAC,CAAA;AAIF,qBAAa,eAAgB,SAAQ,WAAW;IACrC,KAAK,WAAiB;IACtB,OAAO,WAAuD;IAC9D,gBAAgB,SAAK;IACrB,iBAAiB,SAAI;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,OAAO,GAAE,sBAA2B;CAyFnD"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { TgdVec3, TgdVec4 } from "./../math/index.js";
|
|
2
|
-
import { TgdMaterial } from "./material.js";
|
|
3
|
-
import { TgdLight } from "./../light/index.js";
|
|
4
|
-
import { TgdTexture2D } from "./../texture/index.js";
|
|
5
|
-
const DEFAULT_COLOR = new TgdVec4(0.8, 0.6, 0.1, 1);
|
|
6
|
-
export class TgdMaterialBSDF extends TgdMaterial {
|
|
7
|
-
constructor(options = {}) {
|
|
8
|
-
var _a;
|
|
9
|
-
const color = options.color instanceof TgdTexture2D
|
|
10
|
-
? options.color
|
|
11
|
-
: new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
|
|
12
|
-
const hasTexture = !(color instanceof TgdVec4);
|
|
13
|
-
const uniforms = {
|
|
14
|
-
uniLight: "vec3",
|
|
15
|
-
uniLightDir: "vec3",
|
|
16
|
-
uniAmbient: "vec3",
|
|
17
|
-
uniSpecularExponent: "float",
|
|
18
|
-
uniSpecularIntensity: "float",
|
|
19
|
-
uniModelViewMatrix: "mat4",
|
|
20
|
-
};
|
|
21
|
-
const fragmentShaderCode = [
|
|
22
|
-
`vec3 normal = ${options.lockLightsToCamera ? "mat3(uniModelViewMatrix) * " : ""}normalize(varNormal);`,
|
|
23
|
-
`float light = 1.0 - dot(normal, uniLightDir);`,
|
|
24
|
-
options.lockLightsToCamera
|
|
25
|
-
? "light = max(0.0, light - 1.0);"
|
|
26
|
-
: "light *= .5;",
|
|
27
|
-
hasTexture
|
|
28
|
-
? `vec4 color = texture(texDiffuse, varUV);`
|
|
29
|
-
: `vec4 color = vec4(${color.join(", ")});`,
|
|
30
|
-
`vec3 reflection = ${options.lockLightsToCamera ? "" : "mat3(uniModelViewMatrix) * "}reflect(uniLightDir, normal);`,
|
|
31
|
-
`float spec = max(0.0, reflection.z);`,
|
|
32
|
-
`spec = pow(spec, uniSpecularExponent) * uniSpecularIntensity;`,
|
|
33
|
-
`color = vec4(`,
|
|
34
|
-
` color.rgb * (`,
|
|
35
|
-
` uniAmbient + uniLight * light`,
|
|
36
|
-
` ) + vec3(spec),`,
|
|
37
|
-
` 1.0`,
|
|
38
|
-
`);`,
|
|
39
|
-
`return color;`,
|
|
40
|
-
];
|
|
41
|
-
const varyings = {
|
|
42
|
-
varNormal: "vec3",
|
|
43
|
-
};
|
|
44
|
-
if (hasTexture) {
|
|
45
|
-
varyings.varUV = "vec2";
|
|
46
|
-
uniforms.texDiffuse = "sampler2D";
|
|
47
|
-
}
|
|
48
|
-
const vertexShaderCode = () => {
|
|
49
|
-
const code = [
|
|
50
|
-
`varNormal = mat3(uniTransfoMatrix) * ${this.attNormal};`,
|
|
51
|
-
];
|
|
52
|
-
if (hasTexture) {
|
|
53
|
-
code.push(`varUV = ${this.attUV};`);
|
|
54
|
-
}
|
|
55
|
-
return code;
|
|
56
|
-
};
|
|
57
|
-
super({
|
|
58
|
-
uniforms,
|
|
59
|
-
varyings,
|
|
60
|
-
vertexShaderCode,
|
|
61
|
-
fragmentShaderCode,
|
|
62
|
-
setUniforms: (program) => {
|
|
63
|
-
program.uniform3fv("uniLightDir", this.light.direction);
|
|
64
|
-
this.lightColor.from(this.light.color).scale(this.light.color.w);
|
|
65
|
-
program.uniform3fv("uniLight", this.lightColor);
|
|
66
|
-
this.ambientColor
|
|
67
|
-
.from(this.ambient.color)
|
|
68
|
-
.scale(this.ambient.color.w);
|
|
69
|
-
program.uniform3fv("uniAmbient", this.ambientColor);
|
|
70
|
-
program.uniform1f("uniSpecularExponent", this.specularExponent);
|
|
71
|
-
program.uniform1f("uniSpecularIntensity", this.specularIntensity);
|
|
72
|
-
const { texture } = this;
|
|
73
|
-
if (texture)
|
|
74
|
-
texture.activate(0, program, "texDiffuse");
|
|
75
|
-
},
|
|
76
|
-
});
|
|
77
|
-
this.light = new TgdLight();
|
|
78
|
-
this.ambient = new TgdLight({ color: new TgdVec4(0.2, 0.1, 0, 0) });
|
|
79
|
-
this.specularExponent = 20;
|
|
80
|
-
this.specularIntensity = 1;
|
|
81
|
-
this.lightColor = new TgdVec3();
|
|
82
|
-
this.ambientColor = new TgdVec3();
|
|
83
|
-
this.texture = hasTexture ? color : null;
|
|
84
|
-
if (options.light) {
|
|
85
|
-
this.light = options.light;
|
|
86
|
-
}
|
|
87
|
-
if (options.ambient) {
|
|
88
|
-
this.ambient = options.ambient;
|
|
89
|
-
}
|
|
90
|
-
if (typeof options.specularExponent === "number") {
|
|
91
|
-
this.specularExponent = options.specularExponent;
|
|
92
|
-
}
|
|
93
|
-
if (typeof options.specularIntensity === "number") {
|
|
94
|
-
this.specularIntensity = options.specularIntensity;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnNkZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9ic2RmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLGNBQWMsQ0FBQTtBQWEzRCxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVuRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBVTVDLFlBQVksVUFBa0MsRUFBRTs7UUFDNUMsTUFBTSxLQUFLLEdBQ1AsT0FBTyxDQUFDLEtBQUssWUFBWSxZQUFZO1lBQ2pDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSztZQUNmLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFBLE9BQU8sQ0FBQyxLQUFLLG1DQUFJLGFBQWEsQ0FBQyxDQUFBO1FBQ3JELE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLFlBQVksT0FBTyxDQUFDLENBQUE7UUFDOUMsTUFBTSxRQUFRLEdBQXlDO1lBQ25ELFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLG1CQUFtQixFQUFFLE9BQU87WUFDNUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixrQkFBa0IsRUFBRSxNQUFNO1NBQzdCLENBQUE7UUFDRCxNQUFNLGtCQUFrQixHQUFnQjtZQUNwQyxpQkFBaUIsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsRUFBRSx1QkFBdUI7WUFDdkcsK0NB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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"principled.d.ts","sourceRoot":"","sources":["../../src/material/principled.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,YAAY,EAGf,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAK3D,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAAC;IAC/C,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAA;IAC5C,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,YAAY,EAAE,OAAO,GAAG,YAAY,GAAG,cAAc,CAAA;IACrD,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,YAAY,CAAA;CAC1B,CAAC,CAAA;AAKF,qBAAa,qBAAsB,SAAQ,WAAW;IAStC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR7B,gBAAgB,SAAM;IACtB,iBAAiB,SAAI;IAE5B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,sBAAsB,CAAQ;IACtC,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,wBAAwB,CAAQ;gBAEX,OAAO,GAAE,4BAAiC;CAgH1E"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { TgdVec3, TgdVec4 } from "./../math/index.js";
|
|
2
|
-
import { TgdMaterial } from "./material.js";
|
|
3
|
-
import { TgdTexture2D, TgdTextureCube } from "./../texture/index.js";
|
|
4
|
-
import { tgdCanvasCreateFill } from "./../utils/index.js";
|
|
5
|
-
const DEFAULT_COLOR = new TgdVec4(0.8, 0.6, 0.1, 1);
|
|
6
|
-
const DEFAULT_AMBIENT = new TgdVec3(0.8, 0.8, 0.8);
|
|
7
|
-
export class TgdMaterialPrincipled extends TgdMaterial {
|
|
8
|
-
constructor(options = {}) {
|
|
9
|
-
const uniforms = {
|
|
10
|
-
uniTransfoMatrix: "mat4",
|
|
11
|
-
uniSpecularExponent: "float",
|
|
12
|
-
uniSpecularIntensity: "float",
|
|
13
|
-
texColor: "sampler2D",
|
|
14
|
-
texAmbient: "samplerCube",
|
|
15
|
-
uniCameraPosition: "vec3",
|
|
16
|
-
};
|
|
17
|
-
const fragmentShaderCode = [
|
|
18
|
-
`vec3 N = normalize(varNormal);`,
|
|
19
|
-
`vec3 L = normalize(varPosition.xyz - uniCameraPosition);`,
|
|
20
|
-
`vec3 R = reflect(L, N);`,
|
|
21
|
-
`vec3 color = texture(texAmbient, R).rgb;`,
|
|
22
|
-
`color = pow(color, vec3(uniSpecularExponent));`,
|
|
23
|
-
`color *= uniSpecularIntensity;`,
|
|
24
|
-
`return vec4(color, 1) * texture(texColor, varUV);`,
|
|
25
|
-
];
|
|
26
|
-
const varyings = {
|
|
27
|
-
varUV: "vec2",
|
|
28
|
-
varNormal: "vec3",
|
|
29
|
-
varPosition: "vec4",
|
|
30
|
-
};
|
|
31
|
-
const vertexShaderCode = () => {
|
|
32
|
-
const code = [
|
|
33
|
-
`varUV = ${this.attUV};`,
|
|
34
|
-
`varNormal = mat3(uniTransfoMatrix) * ${this.attNormal};`,
|
|
35
|
-
`varPosition = uniTransfoMatrix * ${this.attPosition};`,
|
|
36
|
-
];
|
|
37
|
-
return code;
|
|
38
|
-
};
|
|
39
|
-
super({
|
|
40
|
-
delete: () => {
|
|
41
|
-
var _a, _b;
|
|
42
|
-
if (this.mustDeleteTextureAmbient)
|
|
43
|
-
(_a = this.textureAmbient) === null || _a === void 0 ? void 0 : _a.delete();
|
|
44
|
-
if (this.mustDeleteTextureColor)
|
|
45
|
-
(_b = this.textureColor) === null || _b === void 0 ? void 0 : _b.delete();
|
|
46
|
-
},
|
|
47
|
-
uniforms,
|
|
48
|
-
varyings,
|
|
49
|
-
vertexShaderCode,
|
|
50
|
-
fragmentShaderCode,
|
|
51
|
-
setUniforms: ({ program, camera, }) => {
|
|
52
|
-
var _a, _b;
|
|
53
|
-
if (!this.textureColor) {
|
|
54
|
-
// Lazy creation of a texture from an unique color.
|
|
55
|
-
this.textureColor = new TgdTexture2D(program);
|
|
56
|
-
const color = (_a = this.options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR;
|
|
57
|
-
if (!(color instanceof TgdTexture2D)) {
|
|
58
|
-
this.textureColor.loadBitmap(tgdCanvasCreateFill(1, 1, color));
|
|
59
|
-
}
|
|
60
|
-
this.mustDeleteTextureColor = true;
|
|
61
|
-
}
|
|
62
|
-
if (!this.textureAmbient) {
|
|
63
|
-
// Lazy creation of a texture from an unique color.
|
|
64
|
-
const color = (_b = this.options.ambientColor) !== null && _b !== void 0 ? _b : DEFAULT_AMBIENT;
|
|
65
|
-
const canvas = tgdCanvasCreateFill(1, 1, color instanceof TgdTextureCube
|
|
66
|
-
? DEFAULT_AMBIENT
|
|
67
|
-
: color);
|
|
68
|
-
this.textureAmbient = new TgdTextureCube(program, {
|
|
69
|
-
imagePosX: canvas,
|
|
70
|
-
imagePosY: canvas,
|
|
71
|
-
imagePosZ: canvas,
|
|
72
|
-
imageNegX: canvas,
|
|
73
|
-
imageNegY: canvas,
|
|
74
|
-
imageNegZ: canvas,
|
|
75
|
-
});
|
|
76
|
-
this.mustDeleteTextureAmbient = true;
|
|
77
|
-
}
|
|
78
|
-
this.textureColor.activate(0, program, "texColor");
|
|
79
|
-
this.textureAmbient.activate(1, program, "texAmbient");
|
|
80
|
-
program.uniform3fv("uniCameraPosition", camera.transfo.actualPosition);
|
|
81
|
-
program.uniform1f("uniSpecularExponent", this.specularExponent);
|
|
82
|
-
program.uniform1f("uniSpecularIntensity", this.specularIntensity);
|
|
83
|
-
},
|
|
84
|
-
});
|
|
85
|
-
this.options = options;
|
|
86
|
-
this.specularExponent = 2.2;
|
|
87
|
-
this.specularIntensity = 2;
|
|
88
|
-
this.textureColor = null;
|
|
89
|
-
this.mustDeleteTextureColor = false;
|
|
90
|
-
this.textureAmbient = null;
|
|
91
|
-
this.mustDeleteTextureAmbient = false;
|
|
92
|
-
// if (options.light) {
|
|
93
|
-
// this.light = options.light
|
|
94
|
-
// }
|
|
95
|
-
// if (options.ambient) {
|
|
96
|
-
// this.ambient = options.ambient
|
|
97
|
-
// }
|
|
98
|
-
if (typeof options.specularExponent === "number") {
|
|
99
|
-
this.specularExponent = options.specularExponent;
|
|
100
|
-
}
|
|
101
|
-
if (typeof options.specularIntensity === "number") {
|
|
102
|
-
this.specularIntensity = options.specularIntensity;
|
|
103
|
-
}
|
|
104
|
-
if (options.color instanceof TgdTexture2D) {
|
|
105
|
-
this.textureColor = options.color;
|
|
106
|
-
}
|
|
107
|
-
if (options.ambientColor instanceof TgdTextureCube) {
|
|
108
|
-
this.textureAmbient = options.ambientColor;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbmNpcGxlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9wcmluY2lwbGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFHeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBYWhELE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQ25ELE1BQU0sZUFBZSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFFbEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQVc7SUFTbEQsWUFBNkIsVUFBd0MsRUFBRTtRQUNuRSxNQUFNLFFBQVEsR0FBeUM7WUFDbkQsZ0JBQWdCLEVBQUUsTUFBTTtZQUN4QixtQkFBbUIsRUFBRSxPQUFPO1lBQzVCLG9CQUFvQixFQUFFLE9BQU87WUFDN0IsUUFBUSxFQUFFLFdBQVc7WUFDckIsVUFBVSxFQUFFLGFBQWE7WUFDekIsaUJBQWlCLEVBQUUsTUFBTTtTQUM1QixDQUFBO1FBQ0QsTUFBTSxrQkFBa0IsR0FBZ0I7WUFDcEMsZ0NBQWdDO1lBQ2hDLDBEQUEwRDtZQUMxRCx5QkFBeUI7WUFDekIsMENBQTBDO1lBQzFDLGdEQUFnRDtZQUNoRCxnQ0FBZ0M7WUFDaEMsbURBQW1EO1NBQ3RELENBQUE7UUFDRCxNQUFNLFFBQVEsR0FBMkM7WUFDckQsS0FBSyxFQUFFLE1BQU07WUFDYixTQUFTLEVBQUUsTUFBTTtZQUNqQixXQUFXLEVBQUUsTUFBTTtTQUN0QixDQUFB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
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ArrayNumber4, WebglAttributeType, WebglUniformType } from "../types";
|
|
2
|
-
import { TgdVec4 } from "../math";
|
|
3
|
-
import { TgdMaterial } from "./material";
|
|
4
|
-
import { TgdCodeBloc } from "../shader/code";
|
|
5
|
-
import { TgdProgram } from "../program";
|
|
6
|
-
export type TgdMaterialSolidOptions = Partial<{
|
|
7
|
-
color: ArrayNumber4 | TgdVec4;
|
|
8
|
-
}>;
|
|
9
|
-
export declare class TgdMaterialSolid extends TgdMaterial {
|
|
10
|
-
color: TgdVec4;
|
|
11
|
-
readonly varyings: {
|
|
12
|
-
[name: string]: WebglAttributeType;
|
|
13
|
-
};
|
|
14
|
-
readonly uniforms: {
|
|
15
|
-
[name: string]: WebglUniformType;
|
|
16
|
-
};
|
|
17
|
-
readonly fragmentShaderCode: TgdCodeBloc;
|
|
18
|
-
readonly vertexShaderCode: TgdCodeBloc;
|
|
19
|
-
constructor(options?: TgdMaterialSolidOptions);
|
|
20
|
-
setUniforms(program: TgdProgram): void;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=solid.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"solid.d.ts","sourceRoot":"","sources":["../../src/material/solid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,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,20 +0,0 @@
|
|
|
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 TgdMaterialSolid extends TgdMaterial {
|
|
5
|
-
constructor(options = {}) {
|
|
6
|
-
var _a;
|
|
7
|
-
super();
|
|
8
|
-
this.uniforms = {
|
|
9
|
-
uniColor: "vec4",
|
|
10
|
-
};
|
|
11
|
-
this.color = new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
|
|
12
|
-
this.fragmentShaderCode = [`return uniColor;`];
|
|
13
|
-
this.vertexShaderCode = [];
|
|
14
|
-
this.varyings = {};
|
|
15
|
-
}
|
|
16
|
-
setUniforms(program) {
|
|
17
|
-
program.uniform4fv("uniColor", this.color);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29saWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvc29saWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBUXhDLE1BQU0sYUFBYSxHQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRTVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBVTdDLFlBQVksVUFBbUMsRUFBRTs7UUFDN0MsS0FBSyxFQUFFLENBQUE7UUFQSyxhQUFRLEdBQXlDO1lBQzdELFFBQVEsRUFBRSxNQUFNO1NBQ25CLENBQUE7UUFNRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLE1BQUEsT0FBTyxDQUFDLEtBQUssbUNBQUksYUFBYSxDQUFDLENBQUE7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBbUI7UUFDM0IsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLENBQUM7Q0FDSiJ9
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { TgdEvent } from "../event";
|
|
2
|
-
export interface TgdInputKeyboard {
|
|
3
|
-
readonly eventKeyPress: TgdEvent<KeyboardEvent>;
|
|
4
|
-
isDown(...keys: string[]): boolean;
|
|
5
|
-
isUp(...keys: string[]): boolean;
|
|
6
|
-
hasClicked(key: string): boolean;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=input-keyboard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-keyboard.d.ts","sourceRoot":"","sources":["../../src/types/input-keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IAC/C,MAAM,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAClC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAChC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACnC"}
|
package/lib/dist/utils/math.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export declare function tgdCalcClamp(value: number, min: number, max: number): number;
|
|
2
|
-
export declare function tgdCalcMapRange(value: number, fromMin: number, fromMax: number, toMin: number, toMax: number, clamp?: boolean): number;
|
|
3
|
-
export declare function tgdCalcMix(valueAtT0: number, valueAtT1: number, t: number): number;
|
|
4
|
-
export declare function tgdCalcDegToRad(deg: number): number;
|
|
5
|
-
export declare function tgdCalcRadToDeg(rad: number): number;
|
|
6
|
-
export declare function tgdCalcSmoothStep(boundFor0: number, boundFor1: number, value: number): number;
|
|
7
|
-
export declare function tgdCalcRandom(min?: number, max?: number): number;
|
|
8
|
-
/**
|
|
9
|
-
* Force `value` to be between `min` and `max` by shifting it
|
|
10
|
-
* by `max - min` as many times as needed.
|
|
11
|
-
* @example
|
|
12
|
-
* ```ts
|
|
13
|
-
* tgdCalcModulo(3, 10, 20) === 13
|
|
14
|
-
* tgdCalcModulo(13, 10, 20) === 13
|
|
15
|
-
* tgdCalcModulo(23, 10, 20) === 13
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export declare function tgdCalcModulo(value: number, min: number, max: number): number;
|
|
19
|
-
//# sourceMappingURL=math.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,UAAQ,GACZ,MAAM,CAMR;AAED,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,CAAC,EAAE,MAAM,GACR,MAAM,CAER;AAKD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,UAE1C;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,UAE1C;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,MAAM,CAGR;AAED,wBAAgB,aAAa,CAAC,GAAG,SAAI,EAAE,GAAG,CAAC,EAAE,MAAM,UAGlD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAepE"}
|
package/lib/dist/utils/math.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
export function tgdCalcClamp(value, min, max) {
|
|
2
|
-
if (value < min)
|
|
3
|
-
return min;
|
|
4
|
-
if (value > max)
|
|
5
|
-
return max;
|
|
6
|
-
return value;
|
|
7
|
-
}
|
|
8
|
-
export function tgdCalcMapRange(value, fromMin, fromMax, toMin, toMax, clamp = false) {
|
|
9
|
-
const v = clamp ? tgdCalcClamp(value, fromMin, fromMax) : value;
|
|
10
|
-
if (fromMin === fromMax)
|
|
11
|
-
return v;
|
|
12
|
-
const alpha = (v - fromMin) / (fromMax - fromMin);
|
|
13
|
-
return toMin + alpha * (toMax - toMin);
|
|
14
|
-
}
|
|
15
|
-
export function tgdCalcMix(valueAtT0, valueAtT1, t) {
|
|
16
|
-
return (1 - t) * valueAtT0 + t * valueAtT1;
|
|
17
|
-
}
|
|
18
|
-
const DEG_PER_RAD = 180 / Math.PI;
|
|
19
|
-
const RAD_PER_DEG = Math.PI / 180;
|
|
20
|
-
export function tgdCalcDegToRad(deg) {
|
|
21
|
-
return deg * RAD_PER_DEG;
|
|
22
|
-
}
|
|
23
|
-
export function tgdCalcRadToDeg(rad) {
|
|
24
|
-
return rad * DEG_PER_RAD;
|
|
25
|
-
}
|
|
26
|
-
export function tgdCalcSmoothStep(boundFor0, boundFor1, value) {
|
|
27
|
-
const t = tgdCalcClamp((value - boundFor0) / (boundFor1 - boundFor0), 0, 1);
|
|
28
|
-
return t * t * (3 - 2 * t);
|
|
29
|
-
}
|
|
30
|
-
export function tgdCalcRandom(min = 1, max) {
|
|
31
|
-
if (typeof max !== "number")
|
|
32
|
-
return Math.random() * min;
|
|
33
|
-
return min + (max - min) * Math.random();
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Force `value` to be between `min` and `max` by shifting it
|
|
37
|
-
* by `max - min` as many times as needed.
|
|
38
|
-
* @example
|
|
39
|
-
* ```ts
|
|
40
|
-
* tgdCalcModulo(3, 10, 20) === 13
|
|
41
|
-
* tgdCalcModulo(13, 10, 20) === 13
|
|
42
|
-
* tgdCalcModulo(23, 10, 20) === 13
|
|
43
|
-
* ```
|
|
44
|
-
*/
|
|
45
|
-
export function tgdCalcModulo(value, min, max) {
|
|
46
|
-
const range = max - min;
|
|
47
|
-
if (range === 0)
|
|
48
|
-
return min;
|
|
49
|
-
if (value < min) {
|
|
50
|
-
const n = Math.ceil((min - value) / range);
|
|
51
|
-
return value + n * range;
|
|
52
|
-
}
|
|
53
|
-
if (value > max) {
|
|
54
|
-
const n = Math.ceil((value - max) / range);
|
|
55
|
-
return value - n * range;
|
|
56
|
-
}
|
|
57
|
-
return value;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9tYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxHQUFXO0lBQ2xFLElBQUksS0FBSyxHQUFHLEdBQUc7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUM1QixJQUFJLEtBQUssR0FBRyxHQUFHO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFDNUIsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsS0FBYSxFQUNiLE9BQWUsRUFDZixPQUFlLEVBQ2YsS0FBYSxFQUNiLEtBQWEsRUFDYixLQUFLLEdBQUcsS0FBSztJQUViLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRSxJQUFJLE9BQU8sS0FBSyxPQUFPO1FBQUUsT0FBTyxDQUFDLENBQUM7SUFFbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDbEQsT0FBTyxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixTQUFpQixFQUNqQixTQUFpQixFQUNqQixDQUFTO0lBRVQsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxXQUFXLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDbEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFFbEMsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFXO0lBQ3pDLE9BQU8sR0FBRyxHQUFHLFdBQVcsQ0FBQztBQUMzQixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFXO0lBQ3pDLE9BQU8sR0FBRyxHQUFHLFdBQVcsQ0FBQztBQUMzQixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixTQUFpQixFQUNqQixTQUFpQixFQUNqQixLQUFhO0lBRWIsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBWTtJQUNqRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDeEQsT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQzNDLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWEsRUFBRSxHQUFXLEVBQUUsR0FBVztJQUNuRSxNQUFNLEtBQUssR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ3hCLElBQUksS0FBSyxLQUFLLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUU1QixJQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIn0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"math.test.d.ts","sourceRoot":"","sources":["../../src/utils/math.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { tgdCalcModulo, tgdCalcRandom } from "./math.js";
|
|
2
|
-
describe(`tgdCalc*()`, () => {
|
|
3
|
-
describe(`tgdCalcModulo()`, () => {
|
|
4
|
-
const cases = [
|
|
5
|
-
[-3, 10, 20, 17],
|
|
6
|
-
[3, 10, 20, 13],
|
|
7
|
-
[13, 10, 20, 13],
|
|
8
|
-
[13, 20, 10, 13],
|
|
9
|
-
[23, 10, 20, 13],
|
|
10
|
-
[3.14, 1, 1.5, 1.14],
|
|
11
|
-
[3.64, 1, 1.5, 1.14],
|
|
12
|
-
[tgdCalcRandom(-100, 100), 1.618, 1.618, 1.618],
|
|
13
|
-
[7, 20, 10, 17],
|
|
14
|
-
];
|
|
15
|
-
for (const [value, min, max, expected] of cases) {
|
|
16
|
-
it(`should have (${value}, ${min}, ${max}) === ${expected}`, () => {
|
|
17
|
-
expect(tgdCalcModulo(value, min, max)).toBeCloseTo(expected, 6);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21hdGgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUVyRCxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUN4QixRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO1FBQzdCLE1BQU0sS0FBSyxHQUVQO1lBQ0EsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoQixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNmLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDO1lBQ3BCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDO1lBQ3BCLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1NBQ2xCLENBQUE7UUFDRCxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUM5QyxFQUFFLENBQUMsZ0JBQWdCLEtBQUssS0FBSyxHQUFHLEtBQUssR0FBRyxTQUFTLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRTtnQkFDOUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNuRSxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFBIn0=
|