@tolokoban/tgd 2.0.74 → 2.0.76

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.
@@ -0,0 +1,25 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,98 @@
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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
@@ -0,0 +1,25 @@
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 TgdMaterialPrincipledOptions = 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: TgdTexture2D;
14
+ }>;
15
+ export declare class TgdMaterialPrincipled extends TgdMaterial {
16
+ private readonly options;
17
+ specularExponent: number;
18
+ specularIntensity: number;
19
+ private textureColor;
20
+ private mustDeleteTextureColor;
21
+ private textureAmbient;
22
+ private mustDeleteTextureAmbient;
23
+ constructor(options?: TgdMaterialPrincipledOptions);
24
+ }
25
+ //# sourceMappingURL=principled.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,112 @@
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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
@@ -0,0 +1,22 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,20 @@
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
@@ -31,13 +31,43 @@ export interface TgdPainterPointsCloudOptions {
31
31
  mustDeleteTexture?: boolean;
32
32
  texture?: TgdTexture2D;
33
33
  /**
34
- * The content of a fragment shader function tht takes
34
+ * The content of a fragment shader function that takes
35
35
  * `vec4 color` as argument and must return a `vec4` color.
36
36
  *
37
+ * The following uniforms are available:
38
+ *
39
+ * ```glsl
40
+ * uniform float uniSpecularExponent;
41
+ * uniform float uniSpecularIntensity;
42
+ * uniform float uniShadowThickness;
43
+ * uniform float uniShadowIntensity;
44
+ * uniform float uniLight;
45
+ * ```
46
+ *
37
47
  * You can also use `TgdPainterPointsCloud.fragCode*()` static functions
38
48
  * to provide preset functions.
39
49
  */
40
50
  fragCode?: TgdCodeBloc;
51
+ /**
52
+ * Default to 10
53
+ */
54
+ specularExponent?: number;
55
+ /**
56
+ * Default to 0.33
57
+ */
58
+ specularIntensity?: number;
59
+ /**
60
+ * Default to 0.5
61
+ */
62
+ shadowIntensity?: number;
63
+ /**
64
+ * Default to 1
65
+ */
66
+ shadowThickness?: number;
67
+ /**
68
+ * Default to 1
69
+ */
70
+ light?: number;
41
71
  }
42
72
  export declare class TgdPainterPointsCloud extends TgdPainter {
43
73
  readonly context: TgdContext;
@@ -54,6 +84,11 @@ export declare class TgdPainterPointsCloud extends TgdPainter {
54
84
  texture: TgdTexture2D;
55
85
  radiusMultiplier: number;
56
86
  minSizeInPixels: number;
87
+ specularExponent: number;
88
+ specularIntensity: number;
89
+ shadowIntensity: number;
90
+ shadowThickness: number;
91
+ light: number;
57
92
  private readonly dataPoint;
58
93
  private readonly dataUV;
59
94
  private readonly textureMustBeDeleted;
@@ -1 +1 @@
1
- {"version":3,"file":"points-cloud.d.ts","sourceRoot":"","sources":["../../../src/painter/points-cloud/points-cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,OAAO,EAAE,WAAW,EAAsC,MAAM,aAAa,CAAA;AAE7E,MAAM,WAAW,4BAA4B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,SAAS,EAAE,YAAY,CAAA;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;CACzB;AAED,qBAAa,qBAAsB,SAAQ,UAAU;aAyC7B,OAAO,EAAE,UAAU;IAxCvC;;OAEG;IACH,MAAM,CAAC,cAAc,CACjB,OAAO,GAAE,OAAO,CAAC;QACb,gBAAgB,EAAE,MAAM,CAAA;QACxB,iBAAiB,EAAE,MAAM,CAAA;QACzB,eAAe,EAAE,MAAM,CAAA;QACvB,eAAe,EAAE,MAAM,CAAA;KAC1B,CAAM,GACR,WAAW;IAiBd,SAAgB,KAAK,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,YAAY,CAAA;IACrB,gBAAgB,SAAI;IACpB,eAAe,SAAI;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAGhB,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE,4BAA4B;IA2CzC,MAAM,IAAI,IAAI;IAMd,KAAK,IAAI,IAAI;IAuBb,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;CA0DxB"}
1
+ {"version":3,"file":"points-cloud.d.ts","sourceRoot":"","sources":["../../../src/painter/points-cloud/points-cloud.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,OAAO,EAAE,WAAW,EAAsC,MAAM,aAAa,CAAA;AAE7E,MAAM,WAAW,4BAA4B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,SAAS,EAAE,YAAY,CAAA;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,qBAAsB,SAAQ,UAAU;aAgD7B,OAAO,EAAE,UAAU;IA/CvC;;OAEG;IACH,MAAM,CAAC,cAAc,CACjB,OAAO,GAAE,OAAO,CAAC;QACb,gBAAgB,EAAE,MAAM,CAAA;QACxB,iBAAiB,EAAE,MAAM,CAAA;QACzB,eAAe,EAAE,MAAM,CAAA;QACvB,eAAe,EAAE,MAAM,CAAA;KAC1B,CAAM,GACR,WAAW;IAkBd,SAAgB,KAAK,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,YAAY,CAAA;IACrB,gBAAgB,SAAI;IACpB,eAAe,SAAI;IAEnB,gBAAgB,SAAK;IACrB,iBAAiB,SAAO;IACxB,eAAe,SAAM;IACrB,eAAe,SAAI;IACnB,KAAK,SAAI;IAEhB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAGhB,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE,4BAA4B;IAgDzC,MAAM,IAAI,IAAI;IAMd,KAAK,IAAI,IAAI;IA4Bb,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;CA+DxB"}
@@ -16,26 +16,37 @@ export class TgdPainterPointsCloud extends TgdPainter {
16
16
  "vec2 coords = 2.0 * (gl_PointCoord - vec2(.5));",
17
17
  "float len = 1.0 - dot(coords, coords);",
18
18
  "if (len < 0.0) discard;",
19
+ "gl_FragDepth = gl_FragCoord.z - len * 1e-5;",
19
20
  `float light = smoothstep(0.0, ${shadowThickness.toFixed(6)}, len) * ${shadowIntensity} + ${(1 - shadowIntensity).toFixed(6)};`,
20
21
  `float spec = pow(len, ${specularExponent.toFixed(6)}) * ${specularIntensity.toFixed(6)};`,
21
22
  "return color * vec4(vec3(light), 1.0) + vec4(vec3(spec), 0.0);",
22
23
  ];
23
24
  }
24
25
  constructor(context, options) {
25
- var _a, _b, _c, _d, _e;
26
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
26
27
  super();
27
28
  this.context = context;
28
29
  this.radiusMultiplier = 1;
29
30
  this.minSizeInPixels = 0;
31
+ this.specularExponent = 10;
32
+ this.specularIntensity = 0.33;
33
+ this.shadowIntensity = 0.5;
34
+ this.shadowThickness = 1;
35
+ this.light = 1;
30
36
  this.name = (_a = options.name) !== null && _a !== void 0 ? _a : this.name;
31
37
  this.radiusMultiplier = (_b = options.radiusMultiplier) !== null && _b !== void 0 ? _b : 1;
32
38
  this.minSizeInPixels = (_c = options.minSizeInPixels) !== null && _c !== void 0 ? _c : 0;
39
+ this.specularExponent = (_d = options.specularExponent) !== null && _d !== void 0 ? _d : 10;
40
+ this.specularIntensity = (_e = options.specularIntensity) !== null && _e !== void 0 ? _e : 0.33;
41
+ this.shadowIntensity = (_f = options.shadowIntensity) !== null && _f !== void 0 ? _f : 0.5;
42
+ this.shadowThickness = (_g = options.shadowThickness) !== null && _g !== void 0 ? _g : 1;
43
+ this.light = (_h = options.light) !== null && _h !== void 0 ? _h : 1;
33
44
  this.dataPoint = options.dataPoint;
34
45
  if ((this.dataPoint.length & 3) !== 0) {
35
46
  throw new Error(`dataPoint must have a length that is an integral multiple of 4: [x, y, z, radius, ...]!\ndataPoint.length === ${this.dataPoint.length}`);
36
47
  }
37
48
  this.dataUV =
38
- (_d = options.dataUV) !== null && _d !== void 0 ? _d : new Float32Array(this.dataPoint.length >> 1);
49
+ (_j = options.dataUV) !== null && _j !== void 0 ? _j : new Float32Array(this.dataPoint.length >> 1);
39
50
  if (this.dataPoint.length !== this.dataUV.length * 2) {
40
51
  const message = `dataUV must be half of the size of dataPoint: [u, v, ...]!\ndataPoint.length === ${this.dataPoint.length}, \ndataUV.length === ${this.dataUV.length}`;
41
52
  console.error("[TgdPainterPointsCloud]", message);
@@ -46,7 +57,7 @@ export class TgdPainterPointsCloud extends TgdPainter {
46
57
  }
47
58
  if (options.texture) {
48
59
  this.texture = options.texture;
49
- this.textureMustBeDeleted = (_e = options.mustDeleteTexture) !== null && _e !== void 0 ? _e : false;
60
+ this.textureMustBeDeleted = (_k = options.mustDeleteTexture) !== null && _k !== void 0 ? _k : false;
50
61
  }
51
62
  else {
52
63
  this.texture = new TgdTexture2D(context).loadBitmap(tgdCanvasCreateGradientHorizontal(128, tgdColorMakeHueWheel({ luminance: 0.2 })));
@@ -71,6 +82,11 @@ export class TgdPainterPointsCloud extends TgdPainter {
71
82
  program.uniform1f("uniRadiusMultiplier", radiusMultiplier);
72
83
  program.uniform1f("uniMinSizeInPixels", minSizeInPixels);
73
84
  program.uniform1f("uniHalfScreenHeightInPixels", context.height * 0.5);
85
+ program.uniform1f("uniSpecularExponent", this.specularExponent);
86
+ program.uniform1f("uniSpecularIntensity", this.specularIntensity);
87
+ program.uniform1f("uniShadowIntensity", this.shadowIntensity);
88
+ program.uniform1f("uniShadowThickness", this.shadowThickness);
89
+ program.uniform1f("uniLight", this.light);
74
90
  program.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
75
91
  program.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
76
92
  vao.bind();
@@ -116,6 +132,11 @@ export class TgdPainterPointsCloud extends TgdPainter {
116
132
  const frag = new TgdShaderFragment({
117
133
  uniforms: {
118
134
  uniTexture: "sampler2D",
135
+ uniSpecularExponent: "float",
136
+ uniSpecularIntensity: "float",
137
+ uniShadowIntensity: "float",
138
+ uniShadowThickness: "float",
139
+ uniLight: "float",
119
140
  },
120
141
  varying: {
121
142
  varUV: "vec2",
@@ -124,15 +145,15 @@ export class TgdPainterPointsCloud extends TgdPainter {
124
145
  functions: {
125
146
  render: [
126
147
  "vec4 render(vec4 color) {",
127
- render !== null && render !== void 0 ? render : TgdPainterPointsCloud.fragCodeSphere(),
128
- // [
129
- // "vec2 coords = 2.0 * (gl_PointCoord - vec2(.5));",
130
- // "float len = 1.0 - dot(coords, coords);",
131
- // "if (len < 0.0) discard;",
132
- // "float light = smoothstep(0.0, 0.75, len) * .1 + .9;",
133
- // "float spec = pow(len, 6.0) * .5;",
134
- // "return color * vec4(vec3(light), 1.0) + vec4(vec3(spec), 0.0);",
135
- // ],
148
+ render !== null && render !== void 0 ? render : [
149
+ "vec2 coords = 2.0 * (gl_PointCoord - vec2(.5));",
150
+ "float len = 1.0 - dot(coords, coords);",
151
+ "if (len < 0.0) discard;",
152
+ "gl_FragDepth = gl_FragCoord.z - len * 1e-5;",
153
+ `float light = smoothstep(0.0, uniShadowThickness, len) * uniShadowIntensity + (1.0 - uniShadowIntensity);`,
154
+ `float spec = pow(len, uniSpecularExponent) * uniSpecularIntensity;`,
155
+ "return color * vec4(vec3(light * uniLight), 1.0) + vec4(vec3(spec), 0.0);",
156
+ ],
136
157
  "}",
137
158
  ],
138
159
  },
@@ -145,4 +166,4 @@ export class TgdPainterPointsCloud extends TgdPainter {
145
166
  return program;
146
167
  }
147
168
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRzLWNsb3VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvcG9pbnRzLWNsb3VkL3BvaW50cy1jbG91ZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFekMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNqRCxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBd0M3RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBVTtJQUNqRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQ2pCLFVBS0ssRUFBRTtRQUVQLE1BQU0sRUFDRixnQkFBZ0IsR0FBRyxFQUFFLEVBQ3JCLGlCQUFpQixHQUFHLElBQUksRUFDeEIsZUFBZSxHQUFHLEdBQUcsRUFDckIsZUFBZSxHQUFHLEdBQUcsR0FDeEIsR0FBRyxPQUFPLENBQUE7UUFDWCxPQUFPO1lBQ0gsaURBQWlEO1lBQ2pELHdDQUF3QztZQUN4Qyx5QkFBeUI7WUFDekIsaUNBQWlDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksZUFBZSxNQUFNLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRztZQUMvSCx5QkFBeUIsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLGlCQUFp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
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRzLWNsb3VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvcG9pbnRzLWNsb3VkL3BvaW50cy1jbG91ZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFekMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNqRCxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBc0U3RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBVTtJQUNqRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQ2pCLFVBS0ssRUFBRTtRQUVQLE1BQU0sRUFDRixnQkFBZ0IsR0FBRyxFQUFFLEVBQ3JCLGlCQUFpQixHQUFHLElBQUksRUFDeEIsZUFBZSxHQUFHLEdBQUcsRUFDckIsZUFBZSxHQUFHLEdBQUcsR0FDeEIsR0FBRyxPQUFPLENBQUE7UUFDWCxPQUFPO1lBQ0gsaURBQWlEO1lBQ2pELHdDQUF3QztZQUN4Qyx5QkFBeUI7WUFDekIsNkNBQTZDO1lBQzdDLGlDQUFpQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLGVBQWUsTUFBTSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUc7WUFDL0gseUJBQXlCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENB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
@@ -39,7 +39,7 @@ export declare class TgdTexture2D {
39
39
  get glTexture(): WebGLTexture;
40
40
  bind(): void;
41
41
  unbind(): void;
42
- loadBitmap(bmp: string | WebglImage | null | Promise<WebglImage | null>, options?: {
42
+ loadBitmap(bmp: string | WebglImage | null | Promise<WebglImage | null> | undefined, options?: {
43
43
  level?: number;
44
44
  generateMipmap?: boolean;
45
45
  onLoad?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"texture2d.d.ts","sourceRoot":"","sources":["../../src/texture/texture2d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texture2d.d.ts","sourceRoot":"","sources":["../../src/texture/texture2d.ts"],"names":[],"mappings":"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"}
@@ -293,4 +293,4 @@ function printArray(data) {
293
293
  }
294
294
  return JSON.stringify(data);
295
295
  }
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZTJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RleHR1cmUvdGV4dHVyZTJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQWlDLE1BQU0sWUFBWSxDQUFBO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUdILHlCQUF5QixHQUM1QixNQUFNLFlBQVksQ0FBQTtBQW1EbkIsTUFBTSxPQUFPLFlBQVk7SUFtQnJCLFlBQ29CLE9BRWYsRUFDRCxPQUFzQzs7UUFIdEIsWUFBTyxHQUFQLE9BQU8sQ0FFdEI7UUFuQlcsZ0JBQVcsR0FBRyxJQUFJLFFBQVEsRUFBZ0IsQ0FBQTtRQUVsRCxhQUFRLEdBQXdCLElBQUksQ0FBQTtRQUNwQyxXQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDWCxZQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFFWixXQUFNLEdBQTJCO1lBQ3JDLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsUUFBUTtTQUNsQixDQUFBO1FBVUcsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQTtRQUNqRCxJQUFJLENBQUMsT0FBTyxtQkFDUixLQUFLLEVBQUUsQ0FBQyxFQUNSLE1BQU0sRUFBRSxDQUFDLEVBQ1QsY0FBYyxFQUFFLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJB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
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZTJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RleHR1cmUvdGV4dHVyZTJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQWlDLE1BQU0sWUFBWSxDQUFBO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUdILHlCQUF5QixHQUM1QixNQUFNLFlBQVksQ0FBQTtBQW1EbkIsTUFBTSxPQUFPLFlBQVk7SUFtQnJCLFlBQ29CLE9BRWYsRUFDRCxPQUFzQzs7UUFIdEIsWUFBTyxHQUFQLE9BQU8sQ0FFdEI7UUFuQlcsZ0JBQVcsR0FBRyxJQUFJLFFBQVEsRUFBZ0IsQ0FBQTtRQUVsRCxhQUFRLEdBQXdCLElBQUksQ0FBQTtRQUNwQyxXQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDWCxZQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFFWixXQUFNLEdBQTJCO1lBQ3JDLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsUUFBUTtTQUNsQixDQUFBO1FBVUcsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQTtRQUNqRCxJQUFJLENBQUMsT0FBTyxtQkFDUixLQUFLLEVBQUUsQ0FBQyxFQUNSLE1BQU0sRUFBRSxDQUFDLEVBQ1QsY0FBYyxFQUFFLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJB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
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQta2V5Ym9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5wdXQta2V5Ym9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,19 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,59 @@
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=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=math.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.test.d.ts","sourceRoot":"","sources":["../../src/utils/math.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
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=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tolokoban/tgd",
3
- "version": "2.0.74",
3
+ "version": "2.0.76",
4
4
  "description": "ToloGameDev library for WebGL2",
5
5
  "homepage": "https://tolokoban.github.io/tgd2",
6
6
  "main": "./lib/dist/index.js",