@tolokoban/tgd 2.0.20 → 2.0.22
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.js +2 -2
- package/lib/dist/camera/camera-node.d.ts +2 -2
- package/lib/dist/camera/camera-node.d.ts.map +1 -1
- package/lib/dist/camera/camera-node.js +4 -4
- package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
- package/lib/dist/camera/camera-orthographic.js +6 -5
- package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
- package/lib/dist/camera/camera-perspective.js +12 -31
- package/lib/dist/camera/camera.d.ts +9 -56
- package/lib/dist/camera/camera.d.ts.map +1 -1
- package/lib/dist/camera/camera.js +28 -257
- package/lib/dist/camera/index.d.ts +0 -1
- package/lib/dist/camera/index.d.ts.map +1 -1
- package/lib/dist/camera/index.js +1 -2
- package/lib/dist/canvas/gizmo/gizmo.d.ts.map +1 -1
- package/lib/dist/canvas/gizmo/gizmo.js +18 -20
- package/lib/dist/canvas/gizmo/painter/tips.js +16 -16
- package/lib/dist/code/color.d.ts +12 -0
- package/lib/dist/code/color.d.ts.map +1 -0
- package/lib/dist/code/color.js +26 -0
- package/lib/dist/code/consts.d.ts +16 -0
- package/lib/dist/code/consts.d.ts.map +1 -0
- package/lib/dist/code/consts.js +20 -0
- package/lib/dist/code/coords.d.ts +46 -0
- package/lib/dist/code/coords.d.ts.map +1 -0
- package/lib/dist/code/coords.js +95 -0
- package/lib/dist/code/index.d.ts +6 -0
- package/lib/dist/code/index.d.ts.map +1 -0
- package/lib/dist/code/index.js +6 -0
- package/lib/dist/code/random.d.ts +8 -0
- package/lib/dist/code/random.d.ts.map +1 -0
- package/lib/dist/code/random.js +13 -0
- package/lib/dist/code/transfo.d.ts +8 -0
- package/lib/dist/code/transfo.d.ts.map +1 -0
- package/lib/dist/code/transfo.js +19 -0
- package/lib/dist/color/color.js +10 -10
- package/lib/dist/context/animation/animation-manager.js +3 -3
- package/lib/dist/context/context.d.ts +6 -0
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +33 -22
- package/lib/dist/controller/camera/orbit.d.ts +9 -2
- package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
- package/lib/dist/controller/camera/orbit.js +47 -45
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +61 -56
- package/lib/dist/debug/debug.d.ts +1 -1
- package/lib/dist/debug/debug.d.ts.map +1 -1
- package/lib/dist/debug/debug.js +3 -3
- package/lib/dist/debug/tools.js +3 -3
- package/lib/dist/event/event.js +3 -2
- package/lib/dist/filter/blur.d.ts.map +1 -1
- package/lib/dist/filter/blur.js +9 -8
- package/lib/dist/filter/filter.d.ts.map +1 -1
- package/lib/dist/filter/hue-rotation.d.ts.map +1 -1
- package/lib/dist/filter/zoom.d.ts.map +1 -1
- package/lib/dist/geometry/box.d.ts +2 -1
- package/lib/dist/geometry/box.d.ts.map +1 -1
- package/lib/dist/geometry/box.js +103 -115
- package/lib/dist/geometry/geometry.d.ts.map +1 -1
- package/lib/dist/geometry/geometry.js +33 -35
- package/lib/dist/index.d.ts +2 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +3 -1
- package/lib/dist/input/keyboard.js +8 -8
- package/lib/dist/input/pointer.d.ts.map +1 -1
- package/lib/dist/input/pointer.js +30 -33
- package/lib/dist/interface/transformable.d.ts +3 -1
- package/lib/dist/interface/transformable.d.ts.map +1 -1
- package/lib/dist/loader/asset.js +2 -2
- package/lib/dist/loader/binary.js +6 -6
- package/lib/dist/loader/image.js +9 -9
- package/lib/dist/loader/index.d.ts +1 -0
- package/lib/dist/loader/index.d.ts.map +1 -1
- package/lib/dist/loader/index.js +2 -1
- package/lib/dist/loader/video.d.ts +6 -0
- package/lib/dist/loader/video.d.ts.map +1 -0
- package/lib/dist/loader/video.js +23 -0
- package/lib/dist/log.d.ts +1 -1
- package/lib/dist/log.d.ts.map +1 -1
- package/lib/dist/log.js +13 -13
- package/lib/dist/math/common.test.d.ts +2 -0
- package/lib/dist/math/common.test.d.ts.map +1 -0
- package/lib/dist/math/common.test.js +22 -0
- package/lib/dist/math/index.d.ts +0 -1
- package/lib/dist/math/index.d.ts.map +1 -1
- package/lib/dist/math/index.js +1 -2
- package/lib/dist/math/mat3.d.ts +40 -16
- package/lib/dist/math/mat3.d.ts.map +1 -1
- package/lib/dist/math/mat3.js +124 -97
- package/lib/dist/math/mat3.test.d.ts +2 -0
- package/lib/dist/math/mat3.test.d.ts.map +1 -0
- package/lib/dist/math/mat3.test.js +32 -0
- package/lib/dist/math/mat4.d.ts +54 -121
- package/lib/dist/math/mat4.d.ts.map +1 -1
- package/lib/dist/math/mat4.js +167 -288
- package/lib/dist/math/quat.d.ts +5 -3
- package/lib/dist/math/quat.d.ts.map +1 -1
- package/lib/dist/math/quat.js +38 -72
- package/lib/dist/math/quat.test.d.ts +1 -0
- package/lib/dist/math/quat.test.d.ts.map +1 -1
- package/lib/dist/math/quat.test.js +81 -27
- package/lib/dist/math/transfo.d.ts +32 -5
- package/lib/dist/math/transfo.d.ts.map +1 -1
- package/lib/dist/math/transfo.js +126 -39
- package/lib/dist/math/vec2.js +6 -6
- package/lib/dist/math/vec3.d.ts +11 -3
- package/lib/dist/math/vec3.d.ts.map +1 -1
- package/lib/dist/math/vec3.js +30 -17
- package/lib/dist/math/vec3.test.js +20 -1
- package/lib/dist/math/vec4.d.ts +12 -3
- package/lib/dist/math/vec4.d.ts.map +1 -1
- package/lib/dist/math/vec4.js +29 -11
- package/lib/dist/painter/{axis/axis.d.ts → axes/axes.d.ts} +4 -4
- package/lib/dist/painter/{axis/axis.d.ts.map → axes/axes.d.ts.map} +1 -1
- package/lib/dist/painter/{axis/axis.frag → axes/axes.frag} +0 -0
- package/lib/dist/painter/axes/axes.js +82 -0
- package/lib/dist/painter/{axis/axis.vert → axes/axes.vert} +0 -0
- package/lib/dist/painter/axes/index.d.ts +2 -0
- package/lib/dist/painter/axes/index.d.ts.map +1 -0
- package/lib/dist/painter/axes/index.js +2 -0
- package/lib/dist/painter/background/background.d.ts +3 -2
- package/lib/dist/painter/background/background.d.ts.map +1 -1
- package/lib/dist/painter/background/background.js +4 -4
- package/lib/dist/painter/clear.js +3 -4
- package/lib/dist/painter/debug/stencil/stencil.js +2 -2
- package/lib/dist/painter/depth.d.ts +4 -4
- package/lib/dist/painter/depth.d.ts.map +1 -1
- package/lib/dist/painter/depth.js +3 -3
- package/lib/dist/painter/filter/filter.d.ts +2 -2
- package/lib/dist/painter/filter/filter.d.ts.map +1 -1
- package/lib/dist/painter/filter/filter.js +33 -24
- package/lib/dist/painter/framebuffer.js +3 -3
- package/lib/dist/painter/group.js +6 -5
- package/lib/dist/painter/index.d.ts +1 -1
- package/lib/dist/painter/index.js +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.d.ts +2 -2
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +21 -10
- package/lib/dist/painter/mesh/normals/normals.d.ts.map +1 -1
- package/lib/dist/painter/mesh/normals/normals.js +4 -4
- package/lib/dist/painter/node/node.d.ts +12 -12
- package/lib/dist/painter/node/node.d.ts.map +1 -1
- package/lib/dist/painter/node/node.js +31 -42
- package/lib/dist/painter/segments/segments.js +13 -13
- package/lib/dist/painter/skybox/skybox.js +3 -3
- package/lib/dist/painter/state/state.d.ts +4 -6
- package/lib/dist/painter/state/state.d.ts.map +1 -1
- package/lib/dist/painter/state/state.js +83 -61
- package/lib/dist/parser/for-each-line.d.ts.map +1 -1
- package/lib/dist/parser/for-each-line.js +5 -5
- package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/parser/gltf/gltf.js +37 -37
- package/lib/dist/parser/gltf/parser.js +10 -11
- package/lib/dist/parser/mesh/wavefront.d.ts.map +1 -1
- package/lib/dist/parser/mesh/wavefront.js +18 -26
- package/lib/dist/program/program.d.ts +2 -4
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +26 -27
- package/lib/dist/{utils/ref-map.d.ts → reference-map.d.ts} +4 -4
- package/lib/dist/reference-map.d.ts.map +1 -0
- package/lib/dist/reference-map.js +52 -0
- package/lib/dist/shader/code.d.ts +2 -2
- package/lib/dist/shader/code.d.ts.map +1 -1
- package/lib/dist/shader/code.js +12 -12
- package/lib/dist/shader/fragment.js +6 -6
- package/lib/dist/shader/vertex.js +6 -6
- package/lib/dist/table/table.d.ts.map +1 -1
- package/lib/dist/table/table.js +7 -4
- package/lib/dist/texture/index.d.ts +1 -1
- package/lib/dist/texture/index.d.ts.map +1 -1
- package/lib/dist/texture/index.js +2 -2
- package/lib/dist/texture/{textureCube.d.ts → texture-cube.d.ts} +1 -1
- package/lib/dist/texture/texture-cube.d.ts.map +1 -0
- package/lib/dist/texture/texture-cube.js +69 -0
- package/lib/dist/texture/texture2d.d.ts +6 -3
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +30 -12
- package/lib/dist/types/elements.js +2 -2
- package/lib/dist/types/guards.d.ts.map +1 -1
- package/lib/dist/types/guards.js +36 -37
- 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/{textureCube.d.ts → texture-cube.d.ts} +1 -1
- package/lib/dist/types/texture-cube.d.ts.map +1 -0
- package/lib/dist/types/texture-cube.js +2 -0
- package/lib/dist/types/webgl.d.ts +5 -4
- package/lib/dist/types/webgl.d.ts.map +1 -1
- package/lib/dist/types/webgl.js +37 -30
- package/lib/dist/utils/action/camera.d.ts.map +1 -1
- package/lib/dist/utils/action/camera.js +15 -26
- package/lib/dist/utils/action/transfo.d.ts +3 -0
- package/lib/dist/utils/action/transfo.d.ts.map +1 -0
- package/lib/dist/utils/action/transfo.js +18 -0
- package/lib/dist/utils/action/vector.d.ts.map +1 -1
- package/lib/dist/utils/action/vector.js +11 -11
- package/lib/dist/utils/assert.d.ts.map +1 -1
- package/lib/dist/utils/assert.js +2 -2
- package/lib/dist/utils/bbox.test.js +18 -19
- package/lib/dist/utils/canvas.d.ts +3 -3
- package/lib/dist/utils/canvas.d.ts.map +1 -1
- package/lib/dist/utils/canvas.js +14 -14
- package/lib/dist/utils/{ease-func/ease-func.d.ts → easing-function/easing-function.d.ts} +1 -1
- package/lib/dist/utils/easing-function/easing-function.d.ts.map +1 -0
- package/lib/dist/utils/easing-function/easing-function.js +142 -0
- package/lib/dist/utils/easing-function/index.d.ts +2 -0
- package/lib/dist/utils/easing-function/index.d.ts.map +1 -0
- package/lib/dist/utils/easing-function/index.js +2 -0
- package/lib/dist/utils/framebuffer.js +2 -2
- package/lib/dist/utils/fullscreen.d.ts +1 -1
- package/lib/dist/utils/fullscreen.d.ts.map +1 -1
- package/lib/dist/utils/fullscreen.js +19 -19
- package/lib/dist/utils/index.d.ts +2 -1
- package/lib/dist/utils/index.d.ts.map +1 -1
- package/lib/dist/utils/index.js +3 -2
- package/lib/dist/utils/math.d.ts +4 -2
- package/lib/dist/utils/math.d.ts.map +1 -1
- package/lib/dist/utils/math.js +12 -4
- package/lib/dist/utils/pbo.d.ts.map +1 -1
- package/lib/dist/utils/pbo.js +3 -3
- package/lib/dist/{ref-map.d.ts → utils/reference-map.d.ts} +4 -4
- package/lib/dist/utils/reference-map.d.ts.map +1 -0
- package/lib/dist/utils/reference-map.js +52 -0
- package/lib/dist/utils/state/blend.d.ts +5 -5
- package/lib/dist/utils/state/blend.d.ts.map +1 -1
- package/lib/dist/utils/state/blend.js +10 -10
- package/lib/dist/utils/state/depth.d.ts +2 -2
- package/lib/dist/utils/state/depth.d.ts.map +1 -1
- package/lib/dist/utils/state/depth.js +5 -5
- package/lib/dist/utils/state/stencil.js +9 -9
- package/lib/dist/utils/template.js +3 -3
- package/lib/dist/utils/webgl.js +5 -5
- package/lib/dist/vao/vao.d.ts.map +1 -1
- package/lib/dist/vao/vao.js +13 -9
- package/lib/dist/webgl/texture/texture2d.js +2 -2
- package/package.json +1 -1
- package/lib/dist/geometry/place.d.ts +0 -12
- package/lib/dist/geometry/place.d.ts.map +0 -1
- package/lib/dist/geometry/place.js +0 -145
- package/lib/dist/math/math.d.ts +0 -9
- package/lib/dist/math/math.d.ts.map +0 -1
- package/lib/dist/math/math.js +0 -13
- package/lib/dist/painter/axis/axis.js +0 -82
- package/lib/dist/painter/axis/index.d.ts +0 -2
- package/lib/dist/painter/axis/index.d.ts.map +0 -1
- package/lib/dist/painter/axis/index.js +0 -2
- package/lib/dist/painter/debug/stencil.d.ts +0 -11
- package/lib/dist/painter/debug/stencil.d.ts.map +0 -1
- package/lib/dist/painter/debug/stencil.js +0 -41
- package/lib/dist/painter/framebuffer-old.d.ts +0 -38
- package/lib/dist/painter/framebuffer-old.d.ts.map +0 -1
- package/lib/dist/painter/framebuffer-old.js +0 -102
- package/lib/dist/painter/framebuffer.backup.d.ts +0 -39
- package/lib/dist/painter/framebuffer.backup.d.ts.map +0 -1
- package/lib/dist/painter/framebuffer.backup.js +0 -122
- package/lib/dist/painter/mesh/hull/hull.d.ts +0 -12
- package/lib/dist/painter/mesh/hull/hull.d.ts.map +0 -1
- package/lib/dist/painter/mesh/hull/hull.js +0 -11
- package/lib/dist/painter/node.d.ts +0 -32
- package/lib/dist/painter/node.d.ts.map +0 -1
- package/lib/dist/painter/node.js +0 -73
- package/lib/dist/ref-map.d.ts.map +0 -1
- package/lib/dist/ref-map.js +0 -52
- package/lib/dist/resource/index.d.ts +0 -5
- package/lib/dist/resource/index.d.ts.map +0 -1
- package/lib/dist/resource/index.js +0 -5
- package/lib/dist/resource/program.d.ts +0 -10
- package/lib/dist/resource/program.d.ts.map +0 -1
- package/lib/dist/resource/program.js +0 -19
- package/lib/dist/resource/resource.d.ts +0 -17
- package/lib/dist/resource/resource.d.ts.map +0 -1
- package/lib/dist/resource/resource.js +0 -52
- package/lib/dist/resource/texture2d.d.ts +0 -10
- package/lib/dist/resource/texture2d.d.ts.map +0 -1
- package/lib/dist/resource/texture2d.js +0 -19
- package/lib/dist/resource/textureCube.d.ts +0 -9
- package/lib/dist/resource/textureCube.d.ts.map +0 -1
- package/lib/dist/resource/textureCube.js +0 -16
- package/lib/dist/scene/scene-node.d.ts +0 -8
- package/lib/dist/scene/scene-node.d.ts.map +0 -1
- package/lib/dist/scene/scene-node.js +0 -13
- package/lib/dist/texture/texture2dArray.d.ts +0 -43
- package/lib/dist/texture/texture2dArray.d.ts.map +0 -1
- package/lib/dist/texture/texture2dArray.js +0 -112
- package/lib/dist/texture/textureCube.d.ts.map +0 -1
- package/lib/dist/texture/textureCube.js +0 -69
- package/lib/dist/types/context.d.ts +0 -27
- package/lib/dist/types/context.d.ts.map +0 -1
- package/lib/dist/types/context.js +0 -2
- package/lib/dist/types/texture2d.d.ts +0 -51
- package/lib/dist/types/texture2d.d.ts.map +0 -1
- package/lib/dist/types/texture2d.js +0 -2
- package/lib/dist/types/textureCube.d.ts.map +0 -1
- package/lib/dist/types/textureCube.js +0 -2
- package/lib/dist/uniform/uniform-buffer-object.d.ts +0 -49
- package/lib/dist/uniform/uniform-buffer-object.d.ts.map +0 -1
- package/lib/dist/uniform/uniform-buffer-object.js +0 -93
- package/lib/dist/utils/ease-func/ease-func.d.ts.map +0 -1
- package/lib/dist/utils/ease-func/ease-func.js +0 -142
- package/lib/dist/utils/ease-func/index.d.ts +0 -2
- package/lib/dist/utils/ease-func/index.d.ts.map +0 -1
- package/lib/dist/utils/ease-func/index.js +0 -2
- package/lib/dist/utils/fetch/fetch.d.ts +0 -2
- package/lib/dist/utils/fetch/fetch.d.ts.map +0 -1
- package/lib/dist/utils/fetch/fetch.js +0 -5
- package/lib/dist/utils/fetch/index.d.ts +0 -2
- package/lib/dist/utils/fetch/index.d.ts.map +0 -1
- package/lib/dist/utils/fetch/index.js +0 -2
- package/lib/dist/utils/ref-map.d.ts.map +0 -1
- package/lib/dist/utils/ref-map.js +0 -52
|
@@ -16,8 +16,8 @@ export class TgdPainterFilter extends TgdPainter {
|
|
|
16
16
|
this.z = (_a = options.z) !== null && _a !== void 0 ? _a : 0.999999;
|
|
17
17
|
this.texture = options.texture;
|
|
18
18
|
const filters = options.filters;
|
|
19
|
-
if (filters.length
|
|
20
|
-
throw Error(`[TgdPainterFilter] filters is expected to have at least one element!`);
|
|
19
|
+
if (filters.length === 0) {
|
|
20
|
+
throw new Error(`[TgdPainterFilter] filters is expected to have at least one element!`);
|
|
21
21
|
}
|
|
22
22
|
const programs = options.filters.map(filter => {
|
|
23
23
|
const vert = new TgdShaderVertex({
|
|
@@ -46,7 +46,7 @@ export class TgdPainterFilter extends TgdPainter {
|
|
|
46
46
|
mainCode: filter.fragmentShaderCode,
|
|
47
47
|
functions: filter.extraFunctions,
|
|
48
48
|
}).code;
|
|
49
|
-
return new TgdProgram(context, { vert, frag });
|
|
49
|
+
return new TgdProgram(context.gl, { vert, frag });
|
|
50
50
|
});
|
|
51
51
|
const vaos = programs.map(program => createVAO(context, program, options.flipY ? -1 : +1));
|
|
52
52
|
this.program = programs.pop();
|
|
@@ -59,54 +59,63 @@ export class TgdPainterFilter extends TgdPainter {
|
|
|
59
59
|
this.vao = count % 2 === 0 ? vao : createVAO(context, this.program, -1);
|
|
60
60
|
const framebuffer = context.gl.createFramebuffer();
|
|
61
61
|
if (!framebuffer)
|
|
62
|
-
throw Error("Unable to create a WebGL Framebuffer!");
|
|
62
|
+
throw new Error("Unable to create a WebGL Framebuffer!");
|
|
63
63
|
this.framebuffer = framebuffer;
|
|
64
64
|
this.name = (_b = options.name) !== null && _b !== void 0 ? _b : `Filter/${this.name}`;
|
|
65
65
|
}
|
|
66
66
|
delete() {
|
|
67
67
|
const { context, textures, vaos, vao, framebuffer } = this;
|
|
68
68
|
const { gl } = context;
|
|
69
|
-
|
|
69
|
+
for (const vao of vaos)
|
|
70
|
+
vao.delete();
|
|
70
71
|
vao.delete();
|
|
71
72
|
gl.deleteFramebuffer(framebuffer);
|
|
72
73
|
if (textures) {
|
|
73
|
-
|
|
74
|
+
for (const tex of textures)
|
|
75
|
+
gl.deleteTexture(tex);
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
paint(time) {
|
|
77
79
|
const { vaos, texture, z, context } = this;
|
|
78
80
|
const { gl } = this.program;
|
|
79
|
-
let
|
|
81
|
+
let inputTexture = texture === null || texture === void 0 ? void 0 : texture.glTexture;
|
|
82
|
+
if (!inputTexture) {
|
|
83
|
+
console.warn("[TgdPainterFilter] Input texture is undefined!");
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
80
86
|
if (vaos.length > 0) {
|
|
81
87
|
const { programs, filters, framebuffer } = this;
|
|
82
88
|
const currentFramebuffer = gl.getParameter(gl.FRAMEBUFFER_BINDING);
|
|
83
89
|
const textures = this.getTextures(gl);
|
|
84
90
|
let texIndex = 0;
|
|
85
|
-
let
|
|
86
|
-
for (
|
|
91
|
+
let outputTexture = textures[texIndex];
|
|
92
|
+
for (const [index, vao] of vaos.entries()) {
|
|
87
93
|
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
|
|
88
|
-
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D,
|
|
89
|
-
paintOneFilter(time,
|
|
94
|
+
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, outputTexture, 0);
|
|
95
|
+
paintOneFilter(time, vao, programs[index], filters[index], inputTexture, z, context);
|
|
90
96
|
texIndex = 1 - texIndex;
|
|
91
|
-
|
|
92
|
-
|
|
97
|
+
inputTexture = outputTexture;
|
|
98
|
+
outputTexture = textures[texIndex];
|
|
93
99
|
}
|
|
94
100
|
gl.bindFramebuffer(gl.FRAMEBUFFER, currentFramebuffer);
|
|
95
101
|
}
|
|
96
|
-
paintOneFilter(time, this.vao, this.program, this.filter,
|
|
102
|
+
paintOneFilter(time, this.vao, this.program, this.filter, inputTexture, z, context);
|
|
97
103
|
gl.bindVertexArray(null);
|
|
98
104
|
}
|
|
99
105
|
getTextures(gl) {
|
|
100
|
-
|
|
106
|
+
var _a;
|
|
107
|
+
const { width, height } = (_a = this.texture) !== null && _a !== void 0 ? _a : { width: 64, height: 64 };
|
|
101
108
|
if (this.textures &&
|
|
102
|
-
this.texturesWith ===
|
|
103
|
-
this.texturesHeight ===
|
|
109
|
+
this.texturesWith === width &&
|
|
110
|
+
this.texturesHeight === height) {
|
|
104
111
|
return [...this.textures];
|
|
105
112
|
}
|
|
106
|
-
if (this.textures)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
113
|
+
if (this.textures) {
|
|
114
|
+
for (const tex of this.textures)
|
|
115
|
+
gl.deleteTexture(tex);
|
|
116
|
+
}
|
|
117
|
+
this.texturesWith = width;
|
|
118
|
+
this.texturesHeight = height;
|
|
110
119
|
this.textures = [0, 1].map(() => {
|
|
111
120
|
const texture = gl.createTexture();
|
|
112
121
|
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
@@ -114,7 +123,7 @@ export class TgdPainterFilter extends TgdPainter {
|
|
|
114
123
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
115
124
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
|
|
116
125
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
|
|
117
|
-
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA,
|
|
126
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
|
|
118
127
|
return texture;
|
|
119
128
|
});
|
|
120
129
|
return this.textures;
|
|
@@ -146,7 +155,7 @@ function createVAO(context, program, flipY = +1) {
|
|
|
146
155
|
dataset.set("attUV", new Float32Array([0, 0, 1, 0, 0, 1, 1, 1]));
|
|
147
156
|
const vao = new TgdVertexArray(context.gl, program, [dataset]);
|
|
148
157
|
if (!vao)
|
|
149
|
-
throw Error("Unable to create WebGL VAO!");
|
|
158
|
+
throw new Error("Unable to create WebGL VAO!");
|
|
150
159
|
return vao;
|
|
151
160
|
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvZmlsdGVyL2ZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFHekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFVekMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFVBQVU7SUFlNUMsWUFDcUIsT0FBbUIsRUFDcEMsT0FBZ0M7O1FBRWhDLEtBQUssRUFBRSxDQUFBO1FBSFUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQWRqQyxNQUFDLEdBQUcsQ0FBQyxDQUFBO1FBU0osYUFBUSxHQUF3QyxJQUFJLENBQUE7UUFDcEQsaUJBQVksR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNqQixtQkFBYyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBT3ZCLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBQSxPQUFPLENBQUMsQ0FBQyxtQ0FBSSxRQUFRLENBQUE7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFBO1FBQzlCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUE7UUFDL0IsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQ1gsc0VBQXNFLENBQ3pFLENBQUE7UUFDTCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENB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
|
|
@@ -68,7 +68,7 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
68
68
|
// framebuffer has none.
|
|
69
69
|
const depthBuffer = gl.createRenderbuffer();
|
|
70
70
|
if (!depthBuffer)
|
|
71
|
-
throw Error("Unable to create WebGLRenderBuffer for depth!");
|
|
71
|
+
throw new Error("Unable to create WebGLRenderBuffer for depth!");
|
|
72
72
|
this._depthBuffer = depthBuffer;
|
|
73
73
|
gl.bindRenderbuffer(gl.RENDERBUFFER, depthBuffer);
|
|
74
74
|
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, width, height);
|
|
@@ -80,7 +80,7 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
80
80
|
const { width, height } = this;
|
|
81
81
|
const stencilBuffer = gl.createRenderbuffer();
|
|
82
82
|
if (!stencilBuffer)
|
|
83
|
-
throw Error("Unable to create WebGLRenderBuffer for stencil!");
|
|
83
|
+
throw new Error("Unable to create WebGLRenderBuffer for stencil!");
|
|
84
84
|
this._stencilBuffer = stencilBuffer;
|
|
85
85
|
gl.bindRenderbuffer(gl.RENDERBUFFER, stencilBuffer);
|
|
86
86
|
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, width, height);
|
|
@@ -137,4 +137,4 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVidWZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFpbnRlci9mcmFtZWJ1ZmZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUEwQ2hFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFlO0lBZXRELFlBQ3FCLE9BQW1CLEVBQ25CLFVBQWlELEVBQUU7UUFFcEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUhOLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBNEM7UUFWaEUsVUFBSyxHQUFHLElBQUksQ0FBQTtRQUNaLFdBQU0sR0FBRyxDQUFDLENBQUE7UUFDVixZQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ1gsaUJBQVksR0FBNEIsSUFBSSxDQUFBO1FBQzVDLGlCQUFZLEdBQTZCLElBQUksQ0FBQTtRQUM3QyxtQkFBYyxHQUE2QixJQUFJLENBQUE7UUFRbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFBO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQTtRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUE7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFBO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQTtRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFBO1FBQzVCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMs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
|
|
@@ -12,7 +12,8 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
12
12
|
this.name = name !== null && name !== void 0 ? name : `Group/${this.name}`;
|
|
13
13
|
}
|
|
14
14
|
forEachChild(callback) {
|
|
15
|
-
|
|
15
|
+
for (const [index, child] of this.painters.entries())
|
|
16
|
+
callback(child, index);
|
|
16
17
|
}
|
|
17
18
|
has(painter) {
|
|
18
19
|
return this.painters.includes(painter);
|
|
@@ -23,15 +24,15 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
addFirst(...painters) {
|
|
26
|
-
for (let
|
|
27
|
-
const painter = painters[
|
|
27
|
+
for (let index = painters.length - 1; index >= 0; index--) {
|
|
28
|
+
const painter = painters[index];
|
|
28
29
|
this.painters.unshift(painter);
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
remove(...painters) {
|
|
32
33
|
for (const painter of painters) {
|
|
33
34
|
const index = this.painters.indexOf(painter);
|
|
34
|
-
if (index
|
|
35
|
+
if (index === -1)
|
|
35
36
|
continue;
|
|
36
37
|
this.painters.splice(index, 1);
|
|
37
38
|
painter.delete();
|
|
@@ -67,4 +68,4 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
67
68
|
};
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFpbnRlci9ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQTRCLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVFoRTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLFVBQVU7SUFNM0MsWUFDSSxXQUF5QixFQUFFLEVBQzNCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEtBQTZCLEVBQUU7UUFFdEQsS0FBSyxFQUFFLENBQUE7UUFUSixXQUFNLEdBQUcsSUFBSSxDQUFBO1FBVWhCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFBO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUMsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUFvRDtRQUM3RCxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ2hGLENBQUM7SUFFRCxHQUFHLENBQUMsT0FBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQUcsUUFBc0I7UUFDekIsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMvQixDQUFDO0lBQ0ws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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TgdContext } from "../../../context";
|
|
2
2
|
import { TgdGeometry } from "../../../geometry";
|
|
3
3
|
import { TgdMaterial } from "../../../material";
|
|
4
|
-
import {
|
|
4
|
+
import { TgdTransfo, TgdVec3 } from "../../../math";
|
|
5
5
|
import { TgdInterfaceTransformable } from "../../../interface";
|
|
6
6
|
import { TgdPainter } from "../../painter";
|
|
7
7
|
export interface TgdPainterMeshOptions {
|
|
@@ -13,7 +13,7 @@ export interface TgdPainterMeshOptions {
|
|
|
13
13
|
*/
|
|
14
14
|
export declare class TgdPainterMesh extends TgdPainter implements TgdInterfaceTransformable {
|
|
15
15
|
protected readonly context: TgdContext;
|
|
16
|
-
|
|
16
|
+
readonly transfo: TgdTransfo;
|
|
17
17
|
readonly material: TgdMaterial;
|
|
18
18
|
private readonly prg;
|
|
19
19
|
private readonly vao;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/mesh/mesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/mesh/mesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAK/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,WAAW,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;GACG;AACH,qBAAa,cAAe,SAAQ,UAAW,YAAW,yBAAyB;IAc3E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU;IAb1C,SAAgB,OAAO,aAAmB;IAC1C,SAAgB,QAAQ,EAAE,WAAW,CAAA;IAErC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,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,UAAU,EACtC,OAAO,EAAE,qBAAqB;IAsElC,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,UAgBnD;IAED,MAAM,IAAI,IAAI;CAGjB"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TgdTransfo, TgdVec3 } from "./../../../math/index.js";
|
|
2
2
|
import { TgdProgram } from "./../../../program/index.js";
|
|
3
3
|
import { TgdVertexArray } from "./../../../vao/index.js";
|
|
4
4
|
import { TgdShaderFragment } from "./../../../shader/fragment.js";
|
|
5
5
|
import { TgdShaderVertex } from "./../../../shader/vertex.js";
|
|
6
6
|
import { TgdPainter } from "../../painter.js";
|
|
7
|
-
import { tgdCodeStringify } from "./../../../shader/index.js";
|
|
8
7
|
/**
|
|
9
8
|
*/
|
|
10
9
|
export class TgdPainterMesh extends TgdPainter {
|
|
@@ -12,16 +11,16 @@ export class TgdPainterMesh extends TgdPainter {
|
|
|
12
11
|
var _a, _b;
|
|
13
12
|
super();
|
|
14
13
|
this.context = context;
|
|
15
|
-
this.
|
|
14
|
+
this.transfo = new TgdTransfo();
|
|
16
15
|
this.drawMode = 0;
|
|
17
16
|
this.bboxMin = null;
|
|
18
17
|
this.bboxMax = null;
|
|
19
18
|
this.paint = (time, delay) => {
|
|
20
|
-
const { context, prg, geometry, material, drawMode, count,
|
|
19
|
+
const { context, prg, geometry, material, drawMode, count, transfo } = this;
|
|
21
20
|
const { gl, camera } = context;
|
|
22
21
|
prg.use();
|
|
23
22
|
material.setUniforms(prg, time, delay);
|
|
24
|
-
prg.uniformMatrix4fv("uniTransfoMatrix",
|
|
23
|
+
prg.uniformMatrix4fv("uniTransfoMatrix", transfo.matrix);
|
|
25
24
|
prg.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
|
|
26
25
|
prg.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
|
|
27
26
|
this.vao.bind();
|
|
@@ -49,8 +48,16 @@ export class TgdPainterMesh extends TgdPainter {
|
|
|
49
48
|
},
|
|
50
49
|
varying: material.varyings,
|
|
51
50
|
functions: {
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
applyMaterial: [
|
|
52
|
+
"void applyMaterial() {",
|
|
53
|
+
[material.vertexShaderCode],
|
|
54
|
+
"}",
|
|
55
|
+
],
|
|
56
|
+
getPosition: [
|
|
57
|
+
"vec4 getPosition(vec4 pos) {",
|
|
58
|
+
[(_a = material.vertexShaderCodeForGetPosition) !== null && _a !== void 0 ? _a : "return pos;"],
|
|
59
|
+
"}",
|
|
60
|
+
],
|
|
54
61
|
},
|
|
55
62
|
mainCode: [
|
|
56
63
|
"gl_Position = uniProjectionMatrix * uniModelViewMatrix * uniTransfoMatrix * getPosition(POSITION);",
|
|
@@ -62,11 +69,15 @@ export class TgdPainterMesh extends TgdPainter {
|
|
|
62
69
|
outputs: { FragColor: "vec4" },
|
|
63
70
|
varying: material.varyings,
|
|
64
71
|
functions: {
|
|
65
|
-
|
|
72
|
+
applyMaterial: [
|
|
73
|
+
"vec4 applyMaterial() {",
|
|
74
|
+
[material.fragmentShaderCode],
|
|
75
|
+
"}",
|
|
76
|
+
],
|
|
66
77
|
},
|
|
67
78
|
mainCode: [`FragColor = applyMaterial();`],
|
|
68
79
|
}).code;
|
|
69
|
-
const prg = new TgdProgram(context, {
|
|
80
|
+
const prg = new TgdProgram(context.gl, {
|
|
70
81
|
vert,
|
|
71
82
|
frag,
|
|
72
83
|
});
|
|
@@ -107,4 +118,4 @@ export class TgdPainterMesh extends TgdPainter {
|
|
|
107
118
|
this.vao.delete();
|
|
108
119
|
}
|
|
109
120
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvbWVzaC9tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQVExQztHQUNHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBYTFDLFlBQ3VCLE9BQW1CLEVBQ3RDLE9BQThCOztRQUU5QixLQUFLLEVBQUUsQ0FBQTtRQUhZLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFiMUIsWUFBTyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7UUFRekIsYUFBUSxHQUFXLENBQUMsQ0FBQTtRQUM3QixZQUFPLEdBQW1CLElBQUksQ0FBQTtRQUM5QixZQUFPLEdBQW1CLElBQUksQ0FBQTtRQXlHdEIsVUFBSyxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ3BELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FDaEUsSUFBSSxDQUFBO1lBQ1IsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUE7WUFDOUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFBO1lBQ1QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUss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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normals.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/normals/normals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"normals.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/normals/normals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAOjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IAMrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;gBAET,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW;IAmBvE,SAAgB,KAAK,aAWpB;IAED,MAAM,IAAI,IAAI;CAGjB"}
|
|
@@ -24,11 +24,11 @@ export class TgdPainterMeshNormals extends TgdPainter {
|
|
|
24
24
|
gl.drawElements(gl.TRIANGLES, this.elementsCount, this.elementsType, 0);
|
|
25
25
|
this.vao.unbind();
|
|
26
26
|
};
|
|
27
|
-
const { dataset, count,
|
|
27
|
+
const { dataset, count, attNormal, elements } = geometry;
|
|
28
28
|
if (!attNormal) {
|
|
29
|
-
throw Error("This mesh has no normal!");
|
|
29
|
+
throw new Error("This mesh has no normal!");
|
|
30
30
|
}
|
|
31
|
-
const prg = new TgdProgram(context, {
|
|
31
|
+
const prg = new TgdProgram(context.gl, {
|
|
32
32
|
vert: VERT,
|
|
33
33
|
frag: FRAG,
|
|
34
34
|
});
|
|
@@ -43,4 +43,4 @@ export class TgdPainterMeshNormals extends TgdPainter {
|
|
|
43
43
|
this.vao.delete();
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvbm9ybWFscy9ub3JtYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFekMsT0FBTyxJQUFJLE1BQU0sZUFBZSxDQUFBO0FBQ2hDLE9BQU8sSUFBSSxNQUFNLGVBQWUsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFHM0Q7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFVBQVU7SUFNakQsWUFBNkIsT0FBbUIsRUFBRSxRQUFxQjtRQUNuRSxLQUFLLEVBQUUsQ0FBQTtRQURrQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBbUJoQyxVQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBO1lBQzdCLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFBO1lBQzlCLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ3ZCLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3BCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUNULEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDbEUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1lBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDZixFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3ZFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDckIsQ0FBQyxDQUFBO1FBNUJHLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxRQUFRLENBQUE7UUFDeEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBQy9DLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQTtRQUNkLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVE7WUFDeEIsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLFFBQVEsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQTtJQUM5QixDQUFDO0lBZUQsTUFBTTtRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDckIsQ0FBQztDQUNKIn0=
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { TgdMat4 } from "../../math";
|
|
2
1
|
import { TgdPainter } from "../painter";
|
|
3
|
-
import { TgdTransfo } from "../../math/transfo";
|
|
4
|
-
|
|
2
|
+
import { TgdTransfo, TgdTransfoOptions } from "../../math/transfo";
|
|
3
|
+
import { TgdInterfaceTransformable } from "../../interface";
|
|
4
|
+
interface TgdPainterNodeChild extends TgdInterfaceTransformable {
|
|
5
5
|
paint(time: number, delay: number): void;
|
|
6
6
|
delete(): void;
|
|
7
|
-
matrixTransfo: TgdMat4;
|
|
8
7
|
}
|
|
9
8
|
export interface TgdPainterNodeOptions {
|
|
10
|
-
|
|
9
|
+
transfo: TgdTransfo | Partial<TgdTransfoOptions>;
|
|
10
|
+
painter: TgdPainterNodeChild;
|
|
11
|
+
children: TgdPainterNode[];
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* A Node can hold others Nodes or any object providing the
|
|
@@ -16,17 +17,16 @@ export interface TgdPainterNodeOptions {
|
|
|
16
17
|
* Each Node is a local space for its children.
|
|
17
18
|
*/
|
|
18
19
|
export declare class TgdPainterNode extends TgdPainter {
|
|
19
|
-
parentTransfo: TgdTransfo;
|
|
20
20
|
readonly transfo: TgdTransfo;
|
|
21
|
-
|
|
22
|
-
private
|
|
23
|
-
private
|
|
24
|
-
private readonly childrenNodes;
|
|
21
|
+
painter: TgdPainterNodeChild | null;
|
|
22
|
+
private readonly parentMatrix;
|
|
23
|
+
private readonly globalMatrix;
|
|
25
24
|
private readonly children;
|
|
26
25
|
constructor(options?: Partial<TgdPainterNodeOptions>);
|
|
27
26
|
delete(): void;
|
|
28
|
-
add(...children:
|
|
29
|
-
remove(...children:
|
|
27
|
+
add(...children: TgdPainterNode[]): this;
|
|
28
|
+
remove(...children: TgdPainterNode[]): void;
|
|
30
29
|
paint(time: number, delay: number): void;
|
|
31
30
|
}
|
|
31
|
+
export {};
|
|
32
32
|
//# sourceMappingURL=node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/painter/node/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/painter/node/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAE3D,UAAU,mBAAoB,SAAQ,yBAAyB;IAC3D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,MAAM,IAAI,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAChD,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC7B;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC1C,SAAgB,OAAO,EAAE,UAAU,CAAA;IAC5B,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAO;IAEjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;gBAEpC,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAQxD,MAAM,IAAI,IAAI;IAOd,GAAG,CAAC,GAAG,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAOxC,MAAM,CAAC,GAAG,QAAQ,EAAE,cAAc,EAAE;IAOpC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAkB3C"}
|
|
@@ -10,64 +10,53 @@ import { TgdTransfo } from "../../math/transfo.js";
|
|
|
10
10
|
export class TgdPainterNode extends TgdPainter {
|
|
11
11
|
constructor(options = {}) {
|
|
12
12
|
super();
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
16
|
-
this.parentUpdateCount = 0;
|
|
17
|
-
this.updateCount = 0;
|
|
18
|
-
this.childrenNodes = [];
|
|
13
|
+
this.painter = null;
|
|
14
|
+
this.parentMatrix = new TgdMat4();
|
|
15
|
+
this.globalMatrix = new TgdMat4();
|
|
19
16
|
this.children = [];
|
|
20
|
-
const { children = [] } = options;
|
|
21
|
-
|
|
17
|
+
const { children = [], painter = null, transfo } = options;
|
|
18
|
+
for (const child of children)
|
|
19
|
+
this.add(child);
|
|
20
|
+
this.painter = painter;
|
|
21
|
+
this.transfo = new TgdTransfo(transfo);
|
|
22
22
|
}
|
|
23
23
|
delete() {
|
|
24
|
+
var _a;
|
|
24
25
|
for (const child of this.children) {
|
|
25
26
|
child.delete();
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
-
child.delete();
|
|
29
|
-
}
|
|
28
|
+
(_a = this.painter) === null || _a === void 0 ? void 0 : _a.delete();
|
|
30
29
|
}
|
|
31
30
|
add(...children) {
|
|
32
31
|
for (const child of children) {
|
|
33
|
-
|
|
34
|
-
this.childrenNodes.push(child);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this.children.push(child);
|
|
38
|
-
}
|
|
32
|
+
this.children.push(child);
|
|
39
33
|
}
|
|
34
|
+
return this;
|
|
40
35
|
}
|
|
41
36
|
remove(...children) {
|
|
42
37
|
for (const child of children) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
this.childrenNodes.splice(idxNode, 1);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
const idx = this.children.indexOf(child);
|
|
50
|
-
if (idx > -1)
|
|
51
|
-
this.children.splice(idx, 1);
|
|
52
|
-
}
|
|
38
|
+
const nodePosition = this.children.indexOf(child);
|
|
39
|
+
if (nodePosition !== -1)
|
|
40
|
+
this.children.splice(nodePosition, 1);
|
|
53
41
|
}
|
|
54
42
|
}
|
|
55
43
|
paint(time, delay) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
44
|
+
this.parentMatrix.reset();
|
|
45
|
+
const fringe = [this];
|
|
46
|
+
while (fringe.length > 0) {
|
|
47
|
+
const node = fringe.shift();
|
|
48
|
+
node.globalMatrix
|
|
49
|
+
.from(node.parentMatrix)
|
|
50
|
+
.multiply(node.transfo.matrix);
|
|
51
|
+
if (node.painter) {
|
|
52
|
+
node.painter.transfo.matrix.from(node.globalMatrix);
|
|
53
|
+
node.painter.paint(time, delay);
|
|
54
|
+
}
|
|
55
|
+
for (const child of node.children) {
|
|
56
|
+
child.parentMatrix.from(node.globalMatrix);
|
|
57
|
+
fringe.push(child);
|
|
58
|
+
}
|
|
70
59
|
}
|
|
71
60
|
}
|
|
72
61
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWludGVyL25vZGUvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxvQkFBb0IsQ0FBQTtBQWNsRTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsVUFBVTtJQVExQyxZQUFZLFVBQTBDLEVBQUU7UUFDcEQsS0FBSyxFQUFFLENBQUE7UUFQSixZQUFPLEdBQStCLElBQUksQ0FBQTtRQUVoQyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDNUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBQzVCLGFBQVEsR0FBcUIsRUFBRSxDQUFBO1FBSTVDLE1BQU0sRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQzFELEtBQUssTUFBTSxLQUFLLElBQUksUUFBUTtZQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsTUFBTTs7UUFDRixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDbEIsQ0FBQztRQUNELE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFHLFFBQTBCO1FBQzdCLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0IsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLFFBQTBCO1FBQ2hDLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7WUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDakQsSUFBSSxZQUFZLEtBQUssQ0FBQyxDQUFDO2dCQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNsRSxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ3pCLE1BQU0sTUFBTSxHQUFxQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFvQixDQUFBO1lBQzdDLElBQUksQ0FBQyxZQUFZO2lCQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2lCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNsQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ25DLENBQUM7WUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO2dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3RCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztDQUNKIn0=
|