@tolokoban/tgd 2.0.64 → 2.0.66
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/buffer/buffer.d.ts +3 -2
- package/lib/dist/buffer/buffer.d.ts.map +1 -1
- package/lib/dist/buffer/buffer.js +1 -1
- package/lib/dist/context/context.d.ts +48 -5
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +127 -9
- package/lib/dist/debug/console.d.ts +7 -1
- package/lib/dist/debug/console.d.ts.map +1 -1
- package/lib/dist/debug/console.js +30 -5
- package/lib/dist/input/inputs.d.ts +2 -2
- package/lib/dist/input/inputs.d.ts.map +1 -1
- package/lib/dist/input/inputs.js +5 -5
- package/lib/dist/input/keyboard.d.ts +1 -2
- package/lib/dist/input/keyboard.d.ts.map +1 -1
- package/lib/dist/input/keyboard.js +2 -2
- package/lib/dist/input/pointer.d.ts +2 -2
- package/lib/dist/input/pointer.d.ts.map +1 -1
- package/lib/dist/input/pointer.js +2 -2
- package/lib/dist/material/{principled.d.ts → global.d.ts} +4 -4
- package/lib/dist/material/global.d.ts.map +1 -0
- package/lib/dist/material/{principled.js → global.js} +2 -2
- package/lib/dist/material/index.d.ts +1 -1
- package/lib/dist/material/index.d.ts.map +1 -1
- package/lib/dist/material/index.js +2 -2
- package/lib/dist/material/material.d.ts +6 -1
- package/lib/dist/material/material.d.ts.map +1 -1
- package/lib/dist/material/material.js +3 -2
- package/lib/dist/painter/mesh/mesh/mesh.d.ts +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +9 -9
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +7 -3
- package/lib/dist/shader/code.d.ts +1 -0
- package/lib/dist/shader/code.d.ts.map +1 -1
- package/lib/dist/shader/code.js +26 -7
- package/lib/dist/texture/procedural.d.ts +20 -0
- package/lib/dist/texture/procedural.d.ts.map +1 -0
- package/lib/dist/texture/procedural.js +8 -0
- package/lib/dist/types/buffer.d.ts +5 -0
- package/lib/dist/types/buffer.d.ts.map +1 -0
- package/lib/dist/types/buffer.js +8 -0
- package/lib/dist/types/index.d.ts +1 -1
- package/lib/dist/types/index.d.ts.map +1 -1
- package/lib/dist/types/index.js +2 -2
- package/lib/dist/types/input-pointer.d.ts +0 -20
- package/lib/dist/types/input-pointer.d.ts.map +1 -1
- package/lib/dist/utils/canvas.js +18 -7
- package/lib/dist/utils/webgl.d.ts +1 -1
- package/lib/dist/utils/webgl.d.ts.map +1 -1
- package/lib/dist/vao/vao.js +3 -3
- package/lib/dist/wasm/index.js +1 -1
- package/package.json +3 -2
- 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/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
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TgdTypeArrayForElements } from "./elements";
|
|
2
|
+
export type TgdTypeArray = TgdTypeArrayForElements | Float32Array;
|
|
3
|
+
export declare function assertTgdTypeArray(data: unknown): asserts data is TgdTypeArrayForElements;
|
|
4
|
+
export type TgdTypeArrayOrBuffer = TgdTypeArray | ArrayBuffer;
|
|
5
|
+
//# sourceMappingURL=buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/types/buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,uBAAuB,EAC1B,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,YAAY,GAAG,uBAAuB,GAAG,YAAY,CAAA;AAEjE,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,IAAI,uBAAuB,CAOzC;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,WAAW,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { assertTgdTypeArrayForElements, } from "./elements.js";
|
|
2
|
+
export function assertTgdTypeArray(data) {
|
|
3
|
+
if (data instanceof Float32Array)
|
|
4
|
+
return;
|
|
5
|
+
assertTgdTypeArrayForElements(data);
|
|
6
|
+
throw new Error("Expected Float32Array, Uint8Array, Uint16Array or Uint32Array!");
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2J1ZmZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsNkJBQTZCLEdBRWhDLE1BQU0sWUFBWSxDQUFBO0FBSW5CLE1BQU0sVUFBVSxrQkFBa0IsQ0FDOUIsSUFBYTtJQUViLElBQUksSUFBSSxZQUFZLFlBQVk7UUFBRSxPQUFNO0lBQ3hDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFBO0lBRW5DLE1BQU0sSUFBSSxLQUFLLENBQ1gsZ0VBQWdFLENBQ25FLENBQUE7QUFDTCxDQUFDIn0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * from "./animation";
|
|
2
2
|
export * from "./arrays";
|
|
3
|
+
export * from "./buffer";
|
|
3
4
|
export * from "./elements";
|
|
4
5
|
export * from "./gltf";
|
|
5
|
-
export * from "./input-keyboard";
|
|
6
6
|
export * from "./input-pointer";
|
|
7
7
|
export * from "./program";
|
|
8
8
|
export * from "./texture-cube";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA"}
|
package/lib/dist/types/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export * from "./animation.js";
|
|
2
2
|
export * from "./arrays.js";
|
|
3
|
+
export * from "./buffer.js";
|
|
3
4
|
export * from "./elements.js";
|
|
4
5
|
export * from "./gltf.js";
|
|
5
|
-
export * from "./input-keyboard.js";
|
|
6
6
|
export * from "./input-pointer.js";
|
|
7
7
|
export * from "./program.js";
|
|
8
8
|
export * from "./texture-cube.js";
|
|
9
9
|
export * from "./webgl.js";
|
|
10
10
|
export * from "../interface/index.js";
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxZQUFZLENBQUE7QUFDMUIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsY0FBYyxDQUFBIn0=
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TgdEvent } from "../event";
|
|
2
1
|
export interface TgdInputPointerEventFinger {
|
|
3
2
|
x: number;
|
|
4
3
|
y: number;
|
|
@@ -34,23 +33,4 @@ export interface TgdInputPointerEventMove extends TgdInputPointerModifierKeys {
|
|
|
34
33
|
previous: TgdInputPointerEventFinger;
|
|
35
34
|
start: TgdInputPointerEventFinger;
|
|
36
35
|
}
|
|
37
|
-
export interface TgdInputPointer {
|
|
38
|
-
readonly eventTap: TgdEvent<Readonly<TgdInputPointerEventTap>>;
|
|
39
|
-
readonly eventTapMultiple: TgdEvent<Readonly<TgdInputPointerEventTapMultiple>>;
|
|
40
|
-
readonly eventMoveStart: TgdEvent<Readonly<TgdInputPointerEventMove>>;
|
|
41
|
-
readonly eventMove: TgdEvent<Readonly<TgdInputPointerEventMove>>;
|
|
42
|
-
readonly eventHover: TgdEvent<Readonly<TgdInputPointerEventMove>>;
|
|
43
|
-
readonly eventMoveEnd: TgdEvent<Readonly<TgdInputPointerEventMove>>;
|
|
44
|
-
readonly eventZoom: TgdEvent<Readonly<TgdInputPointerEventZoom>>;
|
|
45
|
-
readonly x: number;
|
|
46
|
-
readonly y: number;
|
|
47
|
-
readonly speedX: number;
|
|
48
|
-
readonly speedY: number;
|
|
49
|
-
/**
|
|
50
|
-
* This is a tap only of the pointer touched for less that
|
|
51
|
-
* `tapDelay` milliseconds.
|
|
52
|
-
*/
|
|
53
|
-
tapDelay: number;
|
|
54
|
-
isTouching(hitTest?: (event: Readonly<TgdInputPointerEventFinger>) => boolean): boolean;
|
|
55
|
-
}
|
|
56
36
|
//# sourceMappingURL=input-pointer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-pointer.d.ts","sourceRoot":"","sources":["../../src/types/input-pointer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input-pointer.d.ts","sourceRoot":"","sources":["../../src/types/input-pointer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,0BAA0B;IACvC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,YAAY,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,wBAAyB,SAAQ,2BAA2B;IACzE,OAAO,EAAE,0BAA0B,CAAA;IACnC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;IACjB,cAAc,EAAE,MAAM,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,uBAAwB,SAAQ,2BAA2B;IACxE,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,YAAY,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,+BACb,SAAQ,uBAAuB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,wBAAyB,SAAQ,2BAA2B;IACzE,OAAO,EAAE,0BAA0B,CAAA;IACnC,QAAQ,EAAE,0BAA0B,CAAA;IACpC,KAAK,EAAE,0BAA0B,CAAA;CACpC"}
|
package/lib/dist/utils/canvas.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TgdColor } from "./../color/index.js";
|
|
2
|
+
import { TgdVec4 } from "./../math/index.js";
|
|
2
3
|
/**
|
|
3
4
|
* Helper to get a canvas with the given size.
|
|
4
5
|
*/
|
|
@@ -89,11 +90,21 @@ export function tgdCanvasCreateGradient(width, height, directionX, directionY, c
|
|
|
89
90
|
return canvas;
|
|
90
91
|
}
|
|
91
92
|
function colorToString(color) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
try {
|
|
94
|
+
if (typeof color === "string")
|
|
95
|
+
return color;
|
|
96
|
+
if (color instanceof TgdColor)
|
|
97
|
+
return color.toString();
|
|
98
|
+
if (Array.isArray(color)) {
|
|
99
|
+
const [r, g, b, a] = color;
|
|
100
|
+
return new TgdColor(r, b, g, a !== null && a !== void 0 ? a : 1).toString();
|
|
101
|
+
}
|
|
102
|
+
return new TgdColor(color.x, color.y, color.z, color instanceof TgdVec4 ? color.w : 1).toString();
|
|
103
|
+
}
|
|
104
|
+
catch (_a) {
|
|
105
|
+
console.error("[Tgd::colorToString] Invalid color argument:", color);
|
|
106
|
+
console.info("[Tgd::colorToString] We will use purple (#F0F).");
|
|
107
|
+
return "#f0f";
|
|
108
|
+
}
|
|
98
109
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NhbnZhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3JDLE9BQU8sRUFBVyxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFHNUM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUMzQixLQUFhLEVBQ2IsTUFBYztJQUVkLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDL0MsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsT0FBTyxNQUFNLENBQUE7QUFDakIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSw0QkFBNEIsQ0FDeEMsS0FBYSxFQUNiLE1BQWMsRUFDZCxRQUEyQztJQUUzQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9DLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3BCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO0lBQ3RCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ2pELElBQUksQ0FBQyxPQUFPO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0lBRTdELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ25DLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsR0FBcUI7SUFDcEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcs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
|
|
@@ -15,6 +15,6 @@ export declare function webglElementTypeFromTypedArray(typedArray: TgdTypeArrayF
|
|
|
15
15
|
* because a byte will suffice to store each value.
|
|
16
16
|
*/
|
|
17
17
|
export declare function webglElementTypeArrayFromNumberArray(arr: number[]): Uint8Array<ArrayBuffer> | Uint16Array<ArrayBuffer> | Uint32Array<ArrayBuffer>;
|
|
18
|
-
export declare function webglTypedArrayFromBufferSource(bufferSource: BufferSource, type: number): Int8Array<
|
|
18
|
+
export declare function webglTypedArrayFromBufferSource(bufferSource: BufferSource, type: number): Int8Array<ArrayBuffer> | Uint8Array<ArrayBuffer> | Int16Array<ArrayBuffer> | Uint16Array<ArrayBuffer> | Uint32Array<ArrayBuffer> | Float32Array<ArrayBuffer>;
|
|
19
19
|
export declare function webglLookup(type: number | keyof WebGL2RenderingContext): keyof WebGL2RenderingContext;
|
|
20
20
|
//# sourceMappingURL=webgl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl.d.ts","sourceRoot":"","sources":["../../src/utils/webgl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAGpD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,uBAAuB,GACpC,IAAI,GAAG,IAAI,GAAG,IAAI,CAWpB;AAED;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,MAAM,EAAE,iFAMjE;AAED,wBAAgB,+BAA+B,CAC3C,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"webgl.d.ts","sourceRoot":"","sources":["../../src/utils/webgl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAGpD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,uBAAuB,GACpC,IAAI,GAAG,IAAI,GAAG,IAAI,CAWpB;AAED;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,MAAM,EAAE,iFAMjE;AAED,wBAAgB,+BAA+B,CAC3C,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,gKAwBf;AAED,wBAAgB,WAAW,CACvB,IAAI,EAAE,MAAM,GAAG,MAAM,sBAAsB,GAC5C,MAAM,sBAAsB,CAU9B"}
|
package/lib/dist/vao/vao.js
CHANGED
|
@@ -14,7 +14,7 @@ export class TgdVertexArray {
|
|
|
14
14
|
if (!program || !datasets)
|
|
15
15
|
return;
|
|
16
16
|
gl.bindVertexArray(vao);
|
|
17
|
-
this.drawBuffers = datasets.map(dataset => {
|
|
17
|
+
this.drawBuffers = datasets.map((dataset) => {
|
|
18
18
|
const buffer = new TgdBuffer(gl, {
|
|
19
19
|
data: dataset.data,
|
|
20
20
|
target: dataset.target,
|
|
@@ -103,7 +103,7 @@ export class TgdVertexArray {
|
|
|
103
103
|
lines.push(` const buff${index} = gl.createBuffer()`, ` gl.bindBuffer(gl.${dataset.target}, buff${index})`, ` gl.bufferData(gl.${dataset.target}, data${index}, gl.${dataset.usage})`, dataset.toCode({ indent: `${indent} ` }));
|
|
104
104
|
}
|
|
105
105
|
lines.push(" return vao", "}");
|
|
106
|
-
return lines.map(line => `${indent}${line}`).join("\n");
|
|
106
|
+
return lines.map((line) => `${indent}${line}`).join("\n");
|
|
107
107
|
}
|
|
108
108
|
debug(caption = "TgdVertexArray") {
|
|
109
109
|
console.log(caption);
|
|
@@ -132,4 +132,4 @@ export class TgdVertexArray {
|
|
|
132
132
|
elemBuffer.delete();
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Zhby92YW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUt2QyxNQUFNLE9BQU8sY0FBYztJQU12QixZQUNvQixFQUEwQixFQUN6QixPQUFvQixFQUNwQixRQUFpQyxFQUMxQyxRQUFrQztRQUgxQixPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQXlCO1FBQzFDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBUDdCLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQTtRQUM3QixlQUFVLEdBQXFCLElBQUksQ0FBQTtRQVFoRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUNsQyxJQUFJLENBQUMsR0FBRztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQTtRQUVoRSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQTtRQUNkLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUVqQyxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO2dCQUNsQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07Z0JBQ3RCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSzthQUN2QixDQUFDLENBQUE7WUFDRixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDYixPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxF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
|
package/lib/dist/wasm/index.js
CHANGED
|
@@ -28,4 +28,4 @@ export function tgdWasmCompile(typeGuard_1, module_1) {
|
|
|
28
28
|
return exports;
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FzbS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFOUMsT0FBTyxLQUFLLElBQUksTUFBTSxRQUFRLENBQUE7QUFHOUIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFFeEIsTUFBTSxVQUFnQixjQUFjO3lEQUNoQyxTQUErQyxFQUMvQyxNQUFrQixFQUNsQixlQUdJLEVBQUU7UUFFTixPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLFVBQVUsQ0FBQyxDQUFBLENBQUMsMERBQTBEO1FBQzdHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUEsQ0FBQywwREFBMEQ7UUFDakcsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBSTNCLENBQUE7UUFDRCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUNsRCxNQUFNLE1BQU0sR0FBZSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsa0JBQWtCO1FBQzFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxNQUFNLElBQUksR0FBYSxFQUFFLENBQUE7WUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDdkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQ2hFLENBQUM7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMvQixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUMxQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBc0IsQ0FBQyxFQUM5QyxZQUFZLENBQ2YsQ0FBQTtRQUNELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUE7UUFDNUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2xCLE9BQU8sT0FBWSxDQUFBO0lBQ3ZCLENBQUM7Q0FBQSJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tolokoban/tgd",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.66",
|
|
4
4
|
"description": "ToloGameDev library for WebGL2",
|
|
5
5
|
"homepage": "https://tolokoban.github.io/tgd2",
|
|
6
6
|
"main": "./lib/dist/index.js",
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
"doc": "cd lib && npm run doc && cd ../doc && npm run deploy",
|
|
15
15
|
"test": "cd lib && npm test",
|
|
16
16
|
"build": "cd lib && npm run build && cd ../doc && npm run build",
|
|
17
|
-
"predeploy": "npm run ci && cd doc
|
|
17
|
+
"predeploy": "npm run ci && cd doc",
|
|
18
18
|
"deploy": "npm run ci && npm publish --access=public",
|
|
19
|
+
"deploy:lib": "cd lib && npm install && npm run build && cd .. && npm publish --access=public",
|
|
19
20
|
"minor": "npm version minor --no-git-tag-version && cd lib && npm version minor --no-git-tag-version && cd ../doc && npm version minor --no-git-tag-version",
|
|
20
21
|
"patch": "npm version patch --no-git-tag-version && cd lib && npm version patch --no-git-tag-version && cd ../doc && npm version patch --no-git-tag-version"
|
|
21
22
|
},
|
|
@@ -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,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=
|