@tolokoban/tgd 2.0.104 → 2.0.107

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.
Files changed (71) hide show
  1. package/lib/dist/context/context.d.ts +11 -0
  2. package/lib/dist/context/context.d.ts.map +1 -1
  3. package/lib/dist/context/context.js +33 -8
  4. package/lib/dist/filter/anti-aliasing.d.ts +17 -0
  5. package/lib/dist/filter/anti-aliasing.d.ts.map +1 -0
  6. package/lib/dist/filter/anti-aliasing.js +39 -0
  7. package/lib/dist/filter/blur.d.ts +3 -0
  8. package/lib/dist/filter/blur.d.ts.map +1 -1
  9. package/lib/dist/filter/blur.js +11 -2
  10. package/lib/dist/filter/chromatic-aberration.d.ts +1 -0
  11. package/lib/dist/filter/chromatic-aberration.d.ts.map +1 -1
  12. package/lib/dist/filter/chromatic-aberration.js +5 -3
  13. package/lib/dist/filter/filter.d.ts +1 -1
  14. package/lib/dist/filter/filter.d.ts.map +1 -1
  15. package/lib/dist/filter/filter.js +1 -1
  16. package/lib/dist/filter/hue-rotation.js +2 -2
  17. package/lib/dist/filter/index.d.ts +1 -0
  18. package/lib/dist/filter/index.d.ts.map +1 -1
  19. package/lib/dist/filter/index.js +2 -1
  20. package/lib/dist/filter/multiply.d.ts.map +1 -1
  21. package/lib/dist/filter/multiply.js +2 -1
  22. package/lib/dist/filter/verbatim.d.ts.map +1 -1
  23. package/lib/dist/filter/verbatim.js +2 -1
  24. package/lib/dist/filter/zoom.d.ts.map +1 -1
  25. package/lib/dist/filter/zoom.js +4 -3
  26. package/lib/dist/geometry/box.js +9 -2
  27. package/lib/dist/light/light.d.ts +2 -2
  28. package/lib/dist/light/light.d.ts.map +1 -1
  29. package/lib/dist/light/light.js +3 -2
  30. package/lib/dist/painter/filter/filter.d.ts +2 -7
  31. package/lib/dist/painter/filter/filter.d.ts.map +1 -1
  32. package/lib/dist/painter/filter/filter.js +44 -59
  33. package/lib/dist/painter/filter/framebuffers.d.ts +15 -0
  34. package/lib/dist/painter/filter/framebuffers.d.ts.map +1 -0
  35. package/lib/dist/painter/filter/framebuffers.js +72 -0
  36. package/lib/dist/painter/framebuffer-msaa.d.ts +3 -95
  37. package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -1
  38. package/lib/dist/painter/framebuffer-msaa.js +4 -263
  39. package/lib/dist/painter/framebuffer.d.ts +24 -5
  40. package/lib/dist/painter/framebuffer.d.ts.map +1 -1
  41. package/lib/dist/painter/framebuffer.js +183 -74
  42. package/lib/dist/painter/gizmo/gizmo.d.ts.map +1 -1
  43. package/lib/dist/painter/gizmo/gizmo.js +5 -4
  44. package/lib/dist/painter/state/state.d.ts +1 -1
  45. package/lib/dist/painter/state/state.d.ts.map +1 -1
  46. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
  47. package/lib/dist/parser/gltf/gltf.js +1 -7
  48. package/lib/dist/shader/fragment.d.ts +1 -0
  49. package/lib/dist/shader/fragment.d.ts.map +1 -1
  50. package/lib/dist/shader/fragment.js +12 -3
  51. package/lib/dist/texture/texture2d.d.ts +2 -0
  52. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  53. package/lib/dist/texture/texture2d.js +42 -36
  54. package/lib/dist/utils/ensure.d.ts +4 -0
  55. package/lib/dist/utils/ensure.d.ts.map +1 -0
  56. package/lib/dist/utils/ensure.js +21 -0
  57. package/lib/dist/utils/index.d.ts +1 -1
  58. package/lib/dist/utils/index.d.ts.map +1 -1
  59. package/lib/dist/utils/index.js +2 -2
  60. package/lib/dist/version.d.ts +1 -1
  61. package/lib/dist/version.js +1 -1
  62. package/package.json +1 -1
  63. package/lib/dist/painter/gizmo/painters/normal.1.d.ts +0 -21
  64. package/lib/dist/painter/gizmo/painters/normal.1.d.ts.map +0 -1
  65. package/lib/dist/painter/gizmo/painters/normal.1.js +0 -111
  66. package/lib/dist/painter/gizmo/tips.d.ts +0 -22
  67. package/lib/dist/painter/gizmo/tips.d.ts.map +0 -1
  68. package/lib/dist/painter/gizmo/tips.js +0 -51
  69. package/lib/dist/utils/array.d.ts +0 -2
  70. package/lib/dist/utils/array.d.ts.map +0 -1
  71. package/lib/dist/utils/array.js +0 -6
@@ -110,6 +110,8 @@ export declare class TgdContext extends TgdPainterGroup {
110
110
  */
111
111
  private doSnapshot;
112
112
  private _camera;
113
+ private _width;
114
+ private _height;
113
115
  private _fps;
114
116
  private _aspectRatio;
115
117
  private _aspectRatioInverse;
@@ -149,7 +151,9 @@ export declare class TgdContext extends TgdPainterGroup {
149
151
  animCancelArray(animations: TgdAnimation[]): void;
150
152
  animDebug(caption?: string): void;
151
153
  get width(): number;
154
+ private set width(value);
152
155
  get height(): number;
156
+ private set height(value);
153
157
  get aspectRatio(): number;
154
158
  get aspectRatioInverse(): number;
155
159
  set aspectRatio(aspectRatio: number);
@@ -184,6 +188,13 @@ export declare class TgdContext extends TgdPainterGroup {
184
188
  * @param restorationDelayInMilliseconds Time, in milliseconds, before the context is restored.
185
189
  */
186
190
  loseContext(restorationDelayInMilliseconds?: number): void;
191
+ /**
192
+ * Most of the painters rely on the current viewport which is based on the canvas size.
193
+ * But if you want to paint in a framebuffer, you may want to use the texture widt/height
194
+ * instead.
195
+ */
196
+ paintInCustomSize(width: number, height: number, paint: () => void): void;
197
+ private setCurrentSize;
187
198
  /**
188
199
  * When you need a painter to be painted only one time.
189
200
  *
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"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"}
@@ -81,6 +81,8 @@ export class TgdContext extends TgdPainterGroup {
81
81
  fovy: Math.PI / 8,
82
82
  zoom: 1,
83
83
  });
84
+ this._width = 0;
85
+ this._height = 0;
84
86
  this._fps = 0;
85
87
  this._aspectRatio = 1;
86
88
  this._aspectRatioInverse = 1;
@@ -140,20 +142,17 @@ export class TgdContext extends TgdPainterGroup {
140
142
  return;
141
143
  }
142
144
  try {
145
+ const { gl } = this;
146
+ this.setCurrentSize(gl.drawingBufferWidth, gl.drawingBufferHeight);
143
147
  this.timeShift = timeInSec - this.now();
144
148
  if (this.playing) {
145
149
  // the pause is like a frozen time.
146
150
  timeInSec -= this.pauseAccumulation;
147
151
  }
148
152
  this.eventPaintEnter.dispatch(this);
149
- const { gl, webglParams } = this;
150
153
  const delayInSec = timeInSec - this.lastTimeInSec;
151
154
  this._fps = Math.round(1 / delayInSec);
152
155
  this.lastTimeInSec = timeInSec;
153
- this._camera.screenWidth = gl.drawingBufferWidth;
154
- this._camera.screenHeight = gl.drawingBufferHeight;
155
- this.aspectRatio = gl.drawingBufferWidth / gl.drawingBufferHeight;
156
- webglParams.setViewport(0, 0, gl.canvas.width, gl.canvas.height);
157
156
  for (const oneTimePainter of this.oneTimePainters) {
158
157
  oneTimePainter.paint(timeInSec, delayInSec);
159
158
  }
@@ -167,6 +166,7 @@ export class TgdContext extends TgdPainterGroup {
167
166
  }
168
167
  catch (error) {
169
168
  console.error(error);
169
+ this.pause();
170
170
  }
171
171
  finally {
172
172
  this.paintingIsOngoing = false;
@@ -335,10 +335,16 @@ export class TgdContext extends TgdPainterGroup {
335
335
  this.animationManager.debug(caption);
336
336
  }
337
337
  get width() {
338
- return this.gl.drawingBufferWidth;
338
+ return this._width;
339
+ }
340
+ set width(width) {
341
+ this._width = width;
339
342
  }
340
343
  get height() {
341
- return this.gl.drawingBufferHeight;
344
+ return this._height;
345
+ }
346
+ set height(height) {
347
+ this._height = height;
342
348
  }
343
349
  get aspectRatio() {
344
350
  return this._aspectRatio;
@@ -446,6 +452,25 @@ export class TgdContext extends TgdPainterGroup {
446
452
  }, restorationDelayInMilliseconds);
447
453
  }
448
454
  }
455
+ /**
456
+ * Most of the painters rely on the current viewport which is based on the canvas size.
457
+ * But if you want to paint in a framebuffer, you may want to use the texture widt/height
458
+ * instead.
459
+ */
460
+ paintInCustomSize(width, height, paint) {
461
+ const { width: savedWidth, height: savedHeight } = this;
462
+ this.setCurrentSize(width, height);
463
+ paint();
464
+ this.setCurrentSize(savedWidth, savedHeight);
465
+ }
466
+ setCurrentSize(width, height) {
467
+ this.width = width;
468
+ this.height = height;
469
+ this.camera.screenWidth = this.width;
470
+ this.camera.screenHeight = this.height;
471
+ this.aspectRatio = this.width / this.height;
472
+ this.webglParams.setViewport(0, 0, this.width, this.height);
473
+ }
449
474
  now() {
450
475
  return Date.now() * 1e-3;
451
476
  }
@@ -546,4 +571,4 @@ TgdContext.incrementalId = 1;
546
571
  function isOffscreen(canvas) {
547
572
  return canvas instanceof OffscreenCanvas;
548
573
  }
549
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFrQixvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBMkMzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLE9BQU8sVUFBVyxTQUFRLGVBQWU7SUFHM0M7Ozs7T0FJRztJQUNJLE1BQU0sS0FBSyxnQkFBZ0I7O1FBQzlCLE9BQU8sTUFBQSxVQUFVLENBQUMsZ0JBQWdCLG1DQUFJLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBb0VEOzs7T0FHRztJQUNILFlBQ29CLE1BQTJDLEVBQzNDLFVBQXVDLEVBQUU7O1FBRXpELEtBQUssRUFBRSxDQUFBO1FBSFMsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7UUFDM0MsWUFBTyxHQUFQLE9BQU8sQ0FBa0M7UUFwRTdEOztXQUVHO1FBQ2EsZUFBVSxHQUFHLElBQUksUUFBUSxFQUFjLENBQUE7UUFDdkQ7O1dBRUc7UUFDYSxvQkFBZSxHQUFHLElBQUksUUFBUSxFQUFjLENBQUE7UUFDNUQ7OztXQUdHO1FBQ2EsMEJBQXFCLEdBQUcs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
574
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFrQixvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBMkMzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLE9BQU8sVUFBVyxTQUFRLGVBQWU7SUFHM0M7Ozs7T0FJRztJQUNJLE1BQU0sS0FBSyxnQkFBZ0I7O1FBQzlCLE9BQU8sTUFBQSxVQUFVLENBQUMsZ0JBQWdCLG1DQUFJLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBc0VEOzs7T0FHRztJQUNILFlBQ29CLE1BQTJDLEVBQzNDLFVBQXVDLEVBQUU7O1FBRXpELEtBQUssRUFBRSxDQUFBO1FBSFMsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7UUFDM0MsWUFBTyxHQUFQLE9BQU8sQ0FBa0M7UUF0RTdEOztXQUVHO1FBQ2EsZUFBVSxHQUFHLElBQUksUUFBUSxFQUFjLENBQUE7UUFDdkQ7O1dBRUc7UUFDYSxvQkFBZSxHQUFHLElBQUksUUFBUSxFQUFjLENBQUE7UUFDNUQ7OztXQUdHO1FBQ2EsMEJBQXFCLEdBQUcsSUFBSSxRQUFRLEVBQWMsQ0FBQTtRQUNsRTs7Ozs7OztXQU9HO1FBQ2EsOEJBQXlCLEdBQUcsSUFBSSxRQUFRLEVBQWMsQ0FBQTtRQUMvRCxlQUFVLEdBQUcsQ0FBQyxDQUFBO1FBQ0wseUJBQW9CLEdBQUcsSUFBSSwyQkFBMkIsRUFBRSxDQUFBO1FBRWhFLFFBQUcsR0FBa0MsSUFBSSxDQUFBO1FBQ2pEOzs7V0FHRztRQUNLLGVBQVUsR0FBd0IsSUFBSSxDQUFBO1FBQ3RDLFlBQU8sR0FBYyxJQUFJLG9CQUFvQixDQUFDO1lBQ2xELE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7WUFDekIsR0FBRyxFQUFFLEdBQUc7WUFDUixJQUFJLEVBQUUsR0FBRztZQUNULElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUM7WUFDakIsSUFBSSxFQUFFLENBQUM7U0FDVixDQUFDLENBQUE7UUFDTSxXQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ1YsWUFBTyxHQUFHLENBQUMsQ0FBQTtRQUNYLFNBQUksR0FBRyxDQUFDLENBQUE7UUFDUixpQkFBWSxHQUFHLENBQUMsQ0FBQTtRQUNoQix3QkFBbUIsR0FBRyxDQUFDLENBQUE7UUFFdkIsc0JBQWlCLEdBQUcsS0FBSyxDQUFBO1FBQ2pDLHFFQUFxRTtRQUM3RCxxQkFBZ0IsR0FBRyxLQUFLLENBQUE7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQTtRQUNqQiwwQkFBcUIsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNsQywwQ0FBMEM7UUFDbEMsa0JBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMxQiw2RUFBNkU7UUFDckUsY0FBUyxHQUFHLENBQUMsQ0FBQTtRQUNyQixrQ0FBa0M7UUFDMUIsY0FBUyxHQUFHLENBQUMsQ0FBQTtRQUNyQixpREFBaUQ7UUFDekMsc0JBQWlCLEdBQUcsQ0FBQyxDQUFBO1FBQ1oscUJBQWdCLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFBO1FBQzdELHlEQUF5RDtRQUN4QyxtQkFBYyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBR2xDLG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUE7UUFtVDNFOzs7Ozs7V0FNRztRQUNNLGlCQUFZLEdBQUcsQ0FBQyxHQUFHLFFBQThDLEVBQUUsRUFBRTtZQUMxRSxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUNyQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLENBQUMsQ0FBQTtRQUVEOztXQUVHO1FBQ00sVUFBSyxHQUFHLEdBQUcsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFBO1lBQ2hDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFBO2dCQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFBO2dCQUM3QixVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUE7Z0JBQzNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ25GLENBQUM7UUFDTCxDQUFDLENBQUE7UUFNZ0IsZ0JBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFOztZQUM1QyxJQUFJLFNBQVMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFBO1lBQzNCLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7Z0JBQzlCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUE7Z0JBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7Z0JBQzdCLG1EQUFtRDtnQkFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO2dCQUNaLE9BQU07WUFDVixDQUFDO1lBQ0QsSUFBSSxDQUFDO2dCQUNELE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUE7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO2dCQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7Z0JBQ3ZDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNmLG1DQUFtQztvQkFDbkMsU0FBUyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQTtnQkFDdkMsQ0FBQztnQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDbkMsTUFBTSxVQUFVLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7Z0JBQ2pELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUE7Z0JBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFBO2dCQUM5QixLQUFLLE1BQU0sY0FBYyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDaEQsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUE7Z0JBQy9DLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtnQkFDNUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUE7Z0JBQ2xDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNwRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO29CQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7Z0JBQ2hCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDbEMsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDcEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQ2hCLENBQUM7b0JBQVMsQ0FBQztnQkFDUCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO2dCQUM5QixNQUFBLElBQUksQ0FBQyxVQUFVLG9EQUFJLENBQUE7WUFDdkIsQ0FBQztRQUNMLENBQUMsQ0FBQTtRQWdEZ0IsdUJBQWtCLEdBQUcsR0FBRyxFQUFFOztZQUN2QyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQTtZQUNoQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUMvQyxJQUFJLENBQUMsRUFBRTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUE7WUFFOUQsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUE7WUFDYixFQUFFLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUN0QixrQkFBa0IsRUFDbEIsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDSiwyREFBMkQ7Z0JBQzNELEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtnQkFDcEIsT0FBTyxDQUFDLEtBQUssQ0FDVCwyQ0FBMkMsRUFDM0MsR0FBRyxZQUFZLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQzdELENBQUE7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO2dCQUNaLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQTtnQkFDZCxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzdDLENBQUMsRUFDRCxLQUFLLENBQ1IsQ0FBQTtZQUNELEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQ3RCLHNCQUFzQixFQUN0QixHQUFHLEVBQUU7O2dCQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsK0NBQStDLENBQUMsQ0FBQTtnQkFDN0QsTUFBQSxJQUFJLENBQUMsVUFBVSxxREFBRyxJQUFJLENBQUMsQ0FBQTtnQkFDdkIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqRCxDQUFDLEVBQ0QsS0FBSyxDQUNSLENBQUE7WUFDRCxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsT0FBTyxDQUFDLFVBQVUsbUNBQUksQ0FBQyxDQUFBO1lBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFBLFVBQVUsQ0FBQyxnQkFBZ0IsbUNBQUksQ0FBQyxDQUFBO1lBQ3RELENBQUM7WUFDRCxJQUFJLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2dCQUNwQyxFQUFFLENBQUMsWUFBWSxDQUFDLHdCQUF3QixDQUFDLENBQUE7WUFDN0MsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtZQUNqQixPQUFPLEVBQUUsQ0FBQTtRQUNiLENBQUMsQ0FBQTtRQXZjRyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUE7UUFDcEMsTUFBTSxDQUFDLGdCQUFnQixDQUNuQixrQkFBa0IsRUFDbEIsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNKLFVBQVUsQ0FBQyxLQUFLLENBQ1o7Z0JBQ0ksSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLEtBQUssRUFBRSxPQUFPO2dCQUNkLFVBQVUsRUFBRSxNQUFNO2FBQ3JCLEVBQ0QsaUNBQWlDLEdBQUcsWUFBWSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQ2hHLENBQUE7WUFDRCwyREFBMkQ7WUFDM0QsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQ2hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0MsQ0FBQyxFQUNELEtBQUssQ0FDUixDQUFBO1FBQ0QsTUFBTSxDQUFDLGdCQUFnQixDQUNuQixzQkFBc0IsRUFDdEIsR0FBRyxFQUFFO1lBQ0QsVUFBVSxDQUFDLEtBQUssQ0FDWjtnQkFDSSxJQUFJLEVBQUUsY0FBYztnQkFDcEIsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsVUFBVSxFQUFFLE1BQU07YUFDckIsRUFDRCxrQ0FBa0MsQ0FDckMsQ0FBQTtZQUNELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUE7WUFDM0IsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtnQkFDekIsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3BCLENBQUM7WUFDRCxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2pELENBQUMsRUFDRCxLQUFLLENBQ1IsQ0FBQTtRQUNELEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxPQUFPLENBQUMsVUFBVSxtQ0FBSSxDQUFDLENBQUE7UUFDekMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxVQUFVLENBQUMsZ0JBQWdCLG1DQUFJLENBQUMsQ0FBQTtRQUN0RCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNwQyxFQUFFLENBQUMsWUFBWSxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDN0MsQ0FBQztRQUNELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBVyxDQUFBO1FBQ25HLElBQUksQ0FBQywyQkFBMkIsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBVyxDQUFBO1FBQy9GLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFBO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUE7WUFDdkYsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUE7WUFDekYsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQTtZQUM1QixJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDdkIsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFDM0QsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtnQkFDcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7WUFDMUIsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNoQixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFBO1FBQ2pDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNuQywyQkFBMkI7WUFDM0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFBO1FBQ3JDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFBO1FBQ2pELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBQSxPQUFPLENBQUMsSUFBSSxtQ0FBSSxXQUFXLFVBQVUsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFBO1FBQ25FLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7UUFDaEYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQTtJQUNuQixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFBO0lBQ3BCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUE7SUFDN0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUN2QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBaUI7UUFDeEIsSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFNO1FBRW5DLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO1FBQ3JCLGtEQUFrRDtRQUNsRCxvREFBb0Q7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxPQUFlLEVBQUUsTUFBbUI7UUFDM0MsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNuQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDM0IsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLFFBQVEsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDM0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsT0FBTyxHQUFHLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFDL0QsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxFQUFJLENBQUE7WUFDVixPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQUcsVUFBMEI7O1FBQ3RDLE1BQU0sTUFBTSxHQUFtQixFQUFFLENBQUE7UUFDakMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFBO1FBQ2IsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBQSxTQUFTLENBQUMsS0FBSyxtQ0FBSSxDQUFDLENBQUMsQ0FBQTtZQUM1RCxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLE1BQUEsU0FBUyxDQUFDLEtBQUssbUNBQUksQ0FBQyxDQUFDLENBQUE7WUFDaEQsS0FBSyxJQUFJLFFBQVEsQ0FBQTtZQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtRQUMxRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ1osT0FBTyxNQUFNLENBQUE7SUFDakIsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUF1QjtRQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBMEI7UUFDdEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVO1lBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUMvRSxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUN0QixDQUFDO0lBQ0QsSUFBWSxLQUFLLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtJQUN2QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3ZCLENBQUM7SUFDRCxJQUFZLE1BQU0sQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDNUIsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBO0lBQ25DLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxXQUFtQjtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQTtRQUMvQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQTtJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDekIsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3RCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTTtRQUVwQyxJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7YUFDbEIsQ0FBQztZQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUE7WUFDOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtZQUM3QixVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUE7WUFDM0QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ25DLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUMxQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJO1FBQ0EsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7UUFDbkIsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUE7UUFDeEQsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUs7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDMUIsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQzNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsWUFBWTtRQUNSLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDdkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtRQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDM0IsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDUixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQ1osT0FBTTtnQkFDVixDQUFDO2dCQUNELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ3JDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO2dCQUNiLDZEQUE2RDtnQkFDN0QsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDbkMsQ0FBQyxDQUFBO1lBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7Z0JBQ25CLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE1BQU07eUJBQ0QsYUFBYSxFQUFFO3lCQUNmLElBQUksQ0FBQyxXQUFXLENBQUM7eUJBQ2pCLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDbEMsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7Z0JBQzlCLENBQUM7WUFDTCxDQUFDLENBQUE7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFhO1FBQzdCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDbkIsS0FBSyxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNuQixJQUFJLEVBQUUsQ0FBQyxHQUFtQyxDQUFDLEtBQUssS0FBSztnQkFBRSxPQUFPLEdBQUcsQ0FBQTtRQUNyRSxDQUFDO1FBQ0QsT0FBTyxjQUFjLEtBQUssR0FBRyxDQUFBO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsOEJBQThCLEdBQUcsSUFBSTtRQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBQ3RELElBQUksR0FBRyxFQUFFLENBQUM7WUFDTixHQUFHLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDakIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZCLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtZQUN4QixDQUFDLEVBQUUsOEJBQThCLENBQUMsQ0FBQTtRQUN0QyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsTUFBYyxFQUFFLEtBQWlCO1FBQzlELE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDbEMsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUE4Qk8sR0FBRztRQUNQLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtJQUM1QixDQUFDO0lBMkNEOzs7Ozs7Ozs7T0FTRztJQUNILFNBQVMsQ0FBQyxPQUFlLEVBQUUsT0FBZTtRQUN0QyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQ3ZFLEVBQUUsQ0FBQyxVQUFVLENBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixDQUFDLEVBQUUsUUFBUTtRQUNYLENBQUMsRUFBRSxTQUFTO1FBQ1osRUFBRSxDQUFDLElBQUksRUFBRSxTQUFTO1FBQ2xCLEVBQUUsQ0FBQyxhQUFhLEVBQUUsT0FBTztRQUN6QixJQUFJLENBQUMsY0FBYyxDQUN0QixDQUFBO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzlCLENBQUM7SUFFRCxNQUFNLENBQUMsRUFDSCx5QkFBeUIsR0FBRyxLQUFLLE1BR2pDLEVBQUU7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDcEMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDL0MsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDdkQsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3hDLENBQUM7UUFDRCxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDZCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQTtJQUNuQixDQUFDO0lBNENPLFVBQVU7UUFDZCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ25CLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFXLENBQUE7UUFDdEUsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ25DLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUN6QyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsYUFBYSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDeEMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQy9CLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNwRCxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM1QixDQUFDO1FBQ0QsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUUxQixNQUFNLGtCQUFrQixHQUFXLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFXLENBQUE7UUFDeEYsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDN0MsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFBO1lBQ2xDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFBO1lBQ3pDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN2QyxDQUFDO1FBRUQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDN0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNuQixFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDcEMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDNUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3hDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQzFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BCLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3hCLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3pCLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3JCLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzNCLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDekIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDN0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3QixFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3pCLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDaEIsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ25CLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDcEMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDcEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNsQixFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNuQixFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNwQixFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDOUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNmLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNwQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN0QyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM3QyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUN4RCxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN0QixFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUMzQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuRCxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQ3hDLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDMUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3ZDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3BELEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUzRSxPQUFPLEVBQUUsQ0FBQTtJQUNiLENBQUM7O0FBM2xCYyx3QkFBYSxHQUFHLENBQUMsQUFBSixDQUFJO0FBOGxCcEMsU0FBUyxXQUFXLENBQUMsTUFBMkM7SUFDNUQsT0FBTyxNQUFNLFlBQVksZUFBZSxDQUFBO0FBQzVDLENBQUMifQ==
@@ -0,0 +1,17 @@
1
+ import { TgdFilter } from "./filter";
2
+ export interface TgdFilterAntiAliasingOptions {
3
+ strength: number;
4
+ }
5
+ export declare class TgdFilterAntiAliasing extends TgdFilter {
6
+ /**
7
+ * Percentage of displacement of the color or the border of the image.
8
+ * The blue is push await from the center, and the red is pulled to
9
+ * the center. But if you use a negative `strength`, the process is
10
+ * reversed.
11
+ *
12
+ * Default to 1.0 (means 1% of displacement).
13
+ */
14
+ strength: number;
15
+ constructor(options?: Partial<TgdFilterAntiAliasingOptions>);
16
+ }
17
+ //# sourceMappingURL=anti-aliasing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anti-aliasing.d.ts","sourceRoot":"","sources":["../../src/filter/anti-aliasing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IAChD;;;;;;;OAOG;IACI,QAAQ,SAAI;gBAEP,OAAO,GAAE,OAAO,CAAC,4BAA4B,CAAM;CA0BlE"}
@@ -0,0 +1,39 @@
1
+ import { TgdFilter } from "./filter.js";
2
+ export class TgdFilterAntiAliasing extends TgdFilter {
3
+ constructor(options = {}) {
4
+ const { strength = 1 } = options;
5
+ const ang = Math.atan(1 / 2);
6
+ const radius = Math.sqrt(5) / 4;
7
+ const A = Math.cos(ang) * radius;
8
+ const B = Math.sin(ang) * radius;
9
+ super({
10
+ name: `TgdFilterAntiAliasing/${TgdFilter.id++}`,
11
+ fragmentShaderCode: [
12
+ `float a = ${A.toFixed(9)} * uniStrength;`,
13
+ `float b = ${B.toFixed(9)} * uniStrength;`,
14
+ "vec4 col1 = texture(uniTexture, varUV + vec2(a, b) * varPixel);",
15
+ "vec4 col2 = texture(uniTexture, varUV + vec2(-b, a) * varPixel);",
16
+ "vec4 col3 = texture(uniTexture, varUV + vec2(-a, -b) * varPixel);",
17
+ "vec4 col4 = texture(uniTexture, varUV + vec2(b, -a) * varPixel);",
18
+ `FragColor = 0.25 * (col1 + col2 + col3 + col4);`,
19
+ ],
20
+ uniforms: {
21
+ uniStrength: "float",
22
+ },
23
+ setUniforms: ({ program }) => {
24
+ program.uniform1f("uniStrength", this.strength);
25
+ },
26
+ });
27
+ /**
28
+ * Percentage of displacement of the color or the border of the image.
29
+ * The blue is push await from the center, and the red is pulled to
30
+ * the center. But if you use a negative `strength`, the process is
31
+ * reversed.
32
+ *
33
+ * Default to 1.0 (means 1% of displacement).
34
+ */
35
+ this.strength = 1;
36
+ this.strength = strength;
37
+ }
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW50aS1hbGlhc2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWx0ZXIvYW50aS1hbGlhc2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBTXBDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxTQUFTO0lBV2hELFlBQVksVUFBaUQsRUFBRTtRQUMzRCxNQUFNLEVBQUUsUUFBUSxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMvQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQTtRQUNoQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQTtRQUNoQyxLQUFLLENBQUM7WUFDRixJQUFJLEVBQUUseUJBQXlCLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUMvQyxrQkFBa0IsRUFBRTtnQkFDaEIsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7Z0JBQzFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCO2dCQUMxQyxpRUFBaUU7Z0JBQ2pFLGtFQUFrRTtnQkFDbEUsbUVBQW1FO2dCQUNuRSxrRUFBa0U7Z0JBQ2xFLGlEQUFpRDthQUNwRDtZQUNELFFBQVEsRUFBRTtnQkFDTixXQUFXLEVBQUUsT0FBTzthQUN2QjtZQUNELFdBQVcsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtnQkFDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQ25ELENBQUM7U0FDSixDQUFDLENBQUE7UUFqQ047Ozs7Ozs7V0FPRztRQUNJLGFBQVEsR0FBRyxDQUFDLENBQUE7UUEwQmYsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7SUFDNUIsQ0FBQztDQUNKIn0=
@@ -12,6 +12,9 @@ export interface TgdFilterBlurOptions {
12
12
  strength: number;
13
13
  }
14
14
  export declare class TgdFilterBlur extends TgdFilter {
15
+ static createPair(options?: Partial<Omit<TgdFilterBlurOptions, "direction"> & {
16
+ direction?: number;
17
+ }>): TgdFilterBlur[];
15
18
  strength: number;
16
19
  constructor(options?: Partial<TgdFilterBlurOptions>);
17
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"blur.d.ts","sourceRoot":"","sources":["../../src/filter/blur.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;CACnB;AAID,qBAAa,aAAc,SAAQ,SAAS;IACjC,QAAQ,EAAE,MAAM,CAAA;gBAEX,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM;CAkD1D"}
1
+ {"version":3,"file":"blur.d.ts","sourceRoot":"","sources":["../../src/filter/blur.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;CACnB;AAID,qBAAa,aAAc,SAAQ,SAAS;WAC1B,UAAU,CAAC,OAAO,GAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAM;IAgBzG,QAAQ,EAAE,MAAM,CAAA;gBAEX,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM;CAkD1D"}
@@ -3,6 +3,15 @@ import { TgdVec2 } from "../math/index.js";
3
3
  import { TgdFilter } from "./filter.js";
4
4
  const DEFAULT_DIRECTION = new TgdVec2(1, 0);
5
5
  export class TgdFilterBlur extends TgdFilter {
6
+ static createPair(options = {}) {
7
+ var _a, _b;
8
+ const direction = (_a = options.direction) !== null && _a !== void 0 ? _a : 0;
9
+ const name = (_b = options.name) !== null && _b !== void 0 ? _b : "TgdFilterBlur/Pair/";
10
+ return [
11
+ new TgdFilterBlur(Object.assign(Object.assign({}, options), { direction, name: `${name}/${direction}°` })),
12
+ new TgdFilterBlur(Object.assign(Object.assign({}, options), { direction: direction + 90, name: `${name}/${direction}°` })),
13
+ ];
14
+ }
6
15
  constructor(options = {}) {
7
16
  var _a, _b;
8
17
  const { size = 4, strength = 1 } = options;
@@ -27,7 +36,7 @@ export class TgdFilterBlur extends TgdFilter {
27
36
  super({
28
37
  name: (_a = options.name) !== null && _a !== void 0 ? _a : `TgdFilterBlur(${(_b = options.direction) !== null && _b !== void 0 ? _b : 0} deg)`,
29
38
  fragmentShaderCode: [
30
- "vec2 dir = uniStrength * uniPixel * vec2(",
39
+ "vec2 dir = uniStrength * varPixel * vec2(",
31
40
  [`${sx.toFixed(9)},`, `${sy.toFixed(9)}`],
32
41
  ");",
33
42
  `vec4 color = ${(size + 1).toFixed(1)} * texture(uniTexture, varUV);`,
@@ -55,4 +64,4 @@ function figureOutDirection(direction) {
55
64
  }
56
65
  return direction;
57
66
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmx1ci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWx0ZXIvYmx1ci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQWNwQyxNQUFNLGlCQUFpQixHQUFzQixJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFOUQsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUFTO0lBR3hDLFlBQVksVUFBeUMsRUFBRTs7UUFDbkQsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUMxQyxNQUFNLFNBQVMsR0FBWSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDaEUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQTtRQUM3QixNQUFNLFNBQVMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDN0MsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUE7UUFDbEMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUE7UUFDbEMsTUFBTSxLQUFLLEdBQWEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDL0MsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFBO1FBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUE7WUFDdkIsS0FBSyxJQUFJLE1BQU0sQ0FBQTtZQUNmLEtBQUssQ0FBQyxJQUFJLENBQ04sT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDcEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQzNCLDhDQUE4QyxFQUM5Qyw4Q0FBOEMsQ0FDakQsQ0FBQTtRQUNMLENBQUM7UUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNYLDBCQUEwQjtZQUMxQixLQUFLLENBQUMsSUFBSSxDQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUMvQiwwQ0FBMEMsRUFDMUMsMENBQTBDLENBQzdDLENBQUE7WUFDRCxLQUFLLEVBQUUsQ0FBQTtRQUNYLENBQUM7UUFDRCxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFBO1FBQ2hDLEtBQUssQ0FBQztZQUNGLElBQUksRUFBRSxNQUFBLE9BQU8sQ0FBQyxJQUFJLG1DQUFJLGlCQUFpQixNQUFBLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLENBQUMsT0FBTztZQUNwRSxrQkFBa0IsRUFBRTtnQkFDaEIsMkNBQTJDO2dCQUMzQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJO2dCQUNKLGdCQUFnQixDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGdDQUFnQztnQkFDckUsR0FBRyxLQUFLO2dCQUNSLHVCQUF1QixDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUc7YUFDbkQ7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sV0FBVyxFQUFFLE9BQU87Z0JBQ3BCLGVBQWUsRUFBRSxPQUFPO2dCQUN4QixnQkFBZ0IsRUFBRSxPQUFPO2FBQzVCO1lBQ0QsV0FBVyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO2dCQUN6QixPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDbkQsQ0FBQztTQUNKLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO0lBQzVCLENBQUM7Q0FDSjtBQUVELFNBQVMsa0JBQWtCLENBQUMsU0FBaUQ7SUFDekUsSUFBSSxTQUFTLEtBQUssU0FBUztRQUFFLE9BQU8saUJBQWlCLENBQUE7SUFFckQsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDdEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUE7QUFDcEIsQ0FBQyJ9
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmx1ci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWx0ZXIvYmx1ci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQWNwQyxNQUFNLGlCQUFpQixHQUFzQixJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFOUQsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUFTO0lBQ2pDLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBcUYsRUFBRTs7UUFDNUcsTUFBTSxTQUFTLEdBQUcsTUFBQSxPQUFPLENBQUMsU0FBUyxtQ0FBSSxDQUFDLENBQUE7UUFDeEMsTUFBTSxJQUFJLEdBQUcsTUFBQSxPQUFPLENBQUMsSUFBSSxtQ0FBSSxxQkFBcUIsQ0FBQTtRQUNsRCxPQUFPO1lBQ0gsSUFBSSxhQUFhLGlDQUNWLE9BQU8sS0FDVixTQUFTLEVBQ1QsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLFNBQVMsR0FBRyxJQUMvQjtZQUNGLElBQUksYUFBYSxpQ0FDVixPQUFPLEtBQ1YsU0FBUyxFQUFFLFNBQVMsR0FBRyxFQUFFLEVBQ3pCLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxTQUFTLEdBQUcsSUFDL0I7U0FDTCxDQUFBO0lBQ0wsQ0FBQztJQUdELFlBQVksVUFBeUMsRUFBRTs7UUFDbkQsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUMxQyxNQUFNLFNBQVMsR0FBWSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDaEUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQTtRQUM3QixNQUFNLFNB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
@@ -1,5 +1,6 @@
1
1
  import { TgdFilter } from "./filter";
2
2
  export interface TgdFilterChromaticAberrationOptions {
3
+ mode: "horizontal" | "circular";
3
4
  /**
4
5
  * Percentage of displacement of the color or the border of the image.
5
6
  * The blue is push await from the center, and the red is pulled to
@@ -1 +1 @@
1
- {"version":3,"file":"chromatic-aberration.d.ts","sourceRoot":"","sources":["../../src/filter/chromatic-aberration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,mCAAmC;IAChD;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,4BAA6B,SAAQ,SAAS;IACvD;;;;;;;OAOG;IACI,QAAQ,SAAI;gBAEP,OAAO,GAAE,OAAO,CAAC,mCAAmC,CAAM;CAoBzE"}
1
+ {"version":3,"file":"chromatic-aberration.d.ts","sourceRoot":"","sources":["../../src/filter/chromatic-aberration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,mCAAmC;IAChD,IAAI,EAAE,YAAY,GAAG,UAAU,CAAA;IAC/B;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,4BAA6B,SAAQ,SAAS;IACvD;;;;;;;OAOG;IACI,QAAQ,SAAI;gBAEP,OAAO,GAAE,OAAO,CAAC,mCAAmC,CAAM;CAsBzE"}
@@ -3,8 +3,11 @@ export class TgdFilterChromaticAberration extends TgdFilter {
3
3
  constructor(options = {}) {
4
4
  const { strength = 1 } = options;
5
5
  super({
6
+ name: `TgdFilterChromaticAberration/${TgdFilter.id++}`,
6
7
  fragmentShaderCode: [
7
- "vec2 dir = (varUV - vec2(0.5)) * 0.01 * uniStrength;",
8
+ options.mode === "circular"
9
+ ? "vec2 dir = (varUV - vec2(0.5)) * varPixel * 2.0 * uniStrength;"
10
+ : "vec2 dir = vec2(varPixel.x, 0.0) * uniStrength;",
8
11
  "float r = texture(uniTexture, varUV + dir).r;",
9
12
  "float g = texture(uniTexture, varUV).g;",
10
13
  "float b = texture(uniTexture, varUV - dir).b;",
@@ -15,7 +18,6 @@ export class TgdFilterChromaticAberration extends TgdFilter {
15
18
  },
16
19
  setUniforms: ({ program }) => {
17
20
  program.uniform1f("uniStrength", this.strength);
18
- program.uniform1f("uniInverseHeight", 1 / program.gl.drawingBufferHeight);
19
21
  },
20
22
  });
21
23
  /**
@@ -30,4 +32,4 @@ export class TgdFilterChromaticAberration extends TgdFilter {
30
32
  this.strength = strength;
31
33
  }
32
34
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21hdGljLWFiZXJyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVyL2Nocm9tYXRpYy1hYmVycmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFjcEMsTUFBTSxPQUFPLDRCQUE2QixTQUFRLFNBQVM7SUFXdkQsWUFBWSxVQUF3RCxFQUFFO1FBQ2xFLE1BQU0sRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ2hDLEtBQUssQ0FBQztZQUNGLGtCQUFrQixFQUFFO2dCQUNoQixzREFBc0Q7Z0JBQ3RELCtDQUErQztnQkFDL0MseUNBQXlDO2dCQUN6QywrQ0FBK0M7Z0JBQy9DLCtCQUErQjthQUNsQztZQUNELFFBQVEsRUFBRTtnQkFDTixXQUFXLEVBQUUsT0FBTzthQUN2QjtZQUNELFdBQVcsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtnQkFDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUMvQyxPQUFPLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUE7WUFDN0UsQ0FBQztTQUNKLENBQUMsQ0FBQTtRQTNCTjs7Ozs7OztXQU9HO1FBQ0ksYUFBUSxHQUFHLENBQUMsQ0FBQTtRQW9CZixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtJQUM1QixDQUFDO0NBQ0oifQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21hdGljLWFiZXJyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVyL2Nocm9tYXRpYy1hYmVycmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFlcEMsTUFBTSxPQUFPLDRCQUE2QixTQUFRLFNBQVM7SUFXdkQsWUFBWSxVQUF3RCxFQUFFO1FBQ2xFLE1BQU0sRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ2hDLEtBQUssQ0FBQztZQUNGLElBQUksRUFBRSxnQ0FBZ0MsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3RELGtCQUFrQixFQUFFO2dCQUNoQixPQUFPLENBQUMsSUFBSSxLQUFLLFVBQVU7b0JBQ3ZCLENBQUMsQ0FBQyxnRUFBZ0U7b0JBQ2xFLENBQUMsQ0FBQyxpREFBaUQ7Z0JBQ3ZELCtDQUErQztnQkFDL0MseUNBQXlDO2dCQUN6QywrQ0FBK0M7Z0JBQy9DLCtCQUErQjthQUNsQztZQUNELFFBQVEsRUFBRTtnQkFDTixXQUFXLEVBQUUsT0FBTzthQUN2QjtZQUNELFdBQVcsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtnQkFDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQ25ELENBQUM7U0FDSixDQUFDLENBQUE7UUE3Qk47Ozs7Ozs7V0FPRztRQUNJLGFBQVEsR0FBRyxDQUFDLENBQUE7UUFzQmYsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7SUFDNUIsQ0FBQztDQUNKIn0=
@@ -15,7 +15,7 @@ import { WebglUniformType } from "../types";
15
15
  * * `float uniHeight`: height of the texture in pixels.
16
16
  */
17
17
  export declare class TgdFilter {
18
- private static id;
18
+ protected static id: number;
19
19
  name: string;
20
20
  /**
21
21
  * If you need more uniforms, define them here.
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/filter/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAI;IAEd,IAAI,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAK;IAEnE;;;OAGG;IACH,SAAgB,kBAAkB,EAAE,WAAW,CAAgE;IAE/G,SAAgB,cAAc,EAAE,gBAAgB,GAAG,WAAW,CAAK;IAEnE,SAAgB,WAAW,GAAI,aAAa,8BAA8B,KAAG,IAAI,CAAM;gBAE3E,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM;IASnD,wBAAwB;IACxB,MAAM;CACT;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;IAC9C,kBAAkB,EAAE,WAAW,CAAA;IAC/B,cAAc,EAAE,gBAAgB,GAAG,WAAW,CAAA;IAC9C,WAAW,CAAC,UAAU,EAAE,8BAA8B,GAAG,IAAI,CAAA;CAChE;AAED,MAAM,WAAW,8BAA8B;IAC3C,OAAO,EAAE;QAAE,EAAE,EAAE,sBAAsB,CAAA;KAAE,CAAA;IACvC,OAAO,EAAE,UAAU,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CAChB"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/filter/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAS;IAClB,SAAS,CAAC,MAAM,CAAC,EAAE,SAAI;IAEhB,IAAI,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAK;IAEnE;;;OAGG;IACH,SAAgB,kBAAkB,EAAE,WAAW,CAAgE;IAE/G,SAAgB,cAAc,EAAE,gBAAgB,GAAG,WAAW,CAAK;IAEnE,SAAgB,WAAW,GAAI,aAAa,8BAA8B,KAAG,IAAI,CAAM;gBAE3E,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM;IASnD,wBAAwB;IACxB,MAAM;CACT;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;IAC9C,kBAAkB,EAAE,WAAW,CAAA;IAC/B,cAAc,EAAE,gBAAgB,GAAG,WAAW,CAAA;IAC9C,WAAW,CAAC,UAAU,EAAE,8BAA8B,GAAG,IAAI,CAAA;CAChE;AAED,MAAM,WAAW,8BAA8B;IAC3C,OAAO,EAAE;QAAE,EAAE,EAAE,sBAAsB,CAAA;KAAE,CAAA;IACvC,OAAO,EAAE,UAAU,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CAChB"}
@@ -41,4 +41,4 @@ export class TgdFilter {
41
41
  delete() { }
42
42
  }
43
43
  TgdFilter.id = 1;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpbHRlci9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFvQmxCLFlBQVksVUFBcUMsRUFBRTs7UUFoQm5EOzs7V0FHRztRQUNhLGFBQVEsR0FBeUMsRUFBRSxDQUFBO1FBRW5FOzs7V0FHRztRQUNhLHVCQUFrQixHQUFnQixDQUFDLDBDQUEwQyxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBRS9GLG1CQUFjLEdBQW1DLEVBQUUsQ0FBQTtRQUVuRCxnQkFBVyxHQUFHLENBQUMsV0FBMkMsRUFBUSxFQUFFLEdBQUUsQ0FBQyxDQUFBO1FBR25GLE1BQU0sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUM3RSxJQUFJLFFBQVE7WUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN0QyxJQUFJLGtCQUFrQjtZQUFFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQTtRQUNwRSxJQUFJLGNBQWM7WUFBRSxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtRQUN4RCxJQUFJLFdBQVc7WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUMvQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQUEsT0FBTyxDQUFDLElBQUksbUNBQUksYUFBYSxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLE1BQU0sS0FBSSxDQUFDOztBQTdCSSxZQUFFLEdBQUcsQ0FBQyxBQUFKLENBQUkifQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpbHRlci9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFvQmxCLFlBQVksVUFBcUMsRUFBRTs7UUFoQm5EOzs7V0FHRztRQUNhLGFBQVEsR0FBeUMsRUFBRSxDQUFBO1FBRW5FOzs7V0FHRztRQUNhLHVCQUFrQixHQUFnQixDQUFDLDBDQUEwQyxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBRS9GLG1CQUFjLEdBQW1DLEVBQUUsQ0FBQTtRQUVuRCxnQkFBVyxHQUFHLENBQUMsV0FBMkMsRUFBUSxFQUFFLEdBQUUsQ0FBQyxDQUFBO1FBR25GLE1BQU0sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUM3RSxJQUFJLFFBQVE7WUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN0QyxJQUFJLGtCQUFrQjtZQUFFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQTtRQUNwRSxJQUFJLGNBQWM7WUFBRSxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtRQUN4RCxJQUFJLFdBQVc7WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUMvQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQUEsT0FBTyxDQUFDLElBQUksbUNBQUksYUFBYSxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLE1BQU0sS0FBSSxDQUFDOztBQTdCTSxZQUFFLEdBQUcsQ0FBQyxBQUFKLENBQUkifQ==
@@ -2,7 +2,7 @@ import { TgdFilter } from "./filter.js";
2
2
  export class TgdFilterHueRotation extends TgdFilter {
3
3
  constructor({ hueShiftInDegrees = 0, name } = {}) {
4
4
  super({
5
- name: name !== null && name !== void 0 ? name : "TgdFilterHueRotation",
5
+ name: name !== null && name !== void 0 ? name : `TgdFilterHueRotation/${TgdFilter.id++}`,
6
6
  fragmentShaderCode: [
7
7
  "vec4 color = texture(uniTexture, varUV);",
8
8
  "vec3 rgb = color.rgb;",
@@ -40,4 +40,4 @@ export class TgdFilterHueRotation extends TgdFilter {
40
40
  this.hueShift = (v * Math.PI) / 180;
41
41
  }
42
42
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVlLXJvdGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpbHRlci9odWUtcm90YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBa0MsTUFBTSxVQUFVLENBQUE7QUFFcEUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFNBQVM7SUFHL0MsWUFBWSxFQUFFLGlCQUFpQixHQUFHLENBQUMsRUFBRSxJQUFJLEtBQTJELEVBQUU7UUFDbEcsS0FBSyxDQUFDO1lBQ0YsSUFBSSxFQUFFLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLHNCQUFzQjtZQUNwQyxrQkFBa0IsRUFBRTtnQkFDaEIsMENBQTBDO2dCQUMxQyx1QkFBdUI7Z0JBQ3ZCLDBDQUEwQztnQkFDMUMsb0NBQW9DO2dCQUNwQyxtQkFBbUI7Z0JBQ25CO29CQUNJLGlCQUFpQjtvQkFDakIscUNBQXFDO29CQUNyQyx1Q0FBdUM7b0JBQ3ZDLFNBQVM7aUJBQ1o7Z0JBQ0QsSUFBSTthQUNQO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLFdBQVcsRUFBRSxPQUFPO2FBQ3ZCO1NBQ0osQ0FBQyxDQUFBO1FBdEJFLGFBQVEsR0FBRyxDQUFDLENBQUE7UUF3Q0osZ0JBQVcsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFrQyxFQUFRLEVBQUU7WUFDaEYsT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ25ELENBQUMsQ0FBQTtRQW5CRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUE7SUFDOUMsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUN4QixDQUFDO0lBQ0QsSUFBSSxpQkFBaUIsQ0FBQyxDQUFTO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFBO0lBQ3JCLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBO0lBQzFDLENBQUM7SUFDRCxJQUFJLGlCQUFpQixDQUFDLENBQVM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFBO0lBQ3ZDLENBQUM7Q0FLSiJ9
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVlLXJvdGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpbHRlci9odWUtcm90YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBa0MsTUFBTSxVQUFVLENBQUE7QUFFcEUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFNBQVM7SUFHL0MsWUFBWSxFQUFFLGlCQUFpQixHQUFHLENBQUMsRUFBRSxJQUFJLEtBQTJELEVBQUU7UUFDbEcsS0FBSyxDQUFDO1lBQ0YsSUFBSSxFQUFFLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLHdCQUF3QixTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDdEQsa0JBQWtCLEVBQUU7Z0JBQ2hCLDBDQUEwQztnQkFDMUMsdUJBQXVCO2dCQUN2QiwwQ0FBMEM7Z0JBQzFDLG9DQUFvQztnQkFDcEMsbUJBQW1CO2dCQUNuQjtvQkFDSSxpQkFBaUI7b0JBQ2pCLHFDQUFxQztvQkFDckMsdUNBQXVDO29CQUN2QyxTQUFTO2lCQUNaO2dCQUNELElBQUk7YUFDUDtZQUNELFFBQVEsRUFBRTtnQkFDTixXQUFXLEVBQUUsT0FBTzthQUN2QjtTQUNKLENBQUMsQ0FBQTtRQXRCRSxhQUFRLEdBQUcsQ0FBQyxDQUFBO1FBd0NKLGdCQUFXLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBa0MsRUFBUSxFQUFFO1lBQ2hGLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNuRCxDQUFDLENBQUE7UUFuQkcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFBO0lBQzlDLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDeEIsQ0FBQztJQUNELElBQUksaUJBQWlCLENBQUMsQ0FBUztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQTtJQUNyQixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsSUFBSSxpQkFBaUIsQ0FBQyxDQUFTO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtJQUN2QyxDQUFDO0NBS0oifQ==
@@ -1,3 +1,4 @@
1
+ export * from "./anti-aliasing";
1
2
  export * from "./blur";
2
3
  export * from "./chromatic-aberration";
3
4
  export * from "./filter";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filter/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,wBAAwB,CAAA;AACtC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filter/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,QAAQ,CAAA;AACtB,cAAc,wBAAwB,CAAA;AACtC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * from "./anti-aliasing.js";
1
2
  export * from "./blur.js";
2
3
  export * from "./chromatic-aberration.js";
3
4
  export * from "./filter.js";
@@ -5,4 +6,4 @@ export * from "./hue-rotation.js";
5
6
  export * from "./multiply.js";
6
7
  export * from "./verbatim.js";
7
8
  export * from "./zoom.js";
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLFFBQVEsQ0FBQSJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUE7QUFDL0IsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsUUFBUSxDQUFBIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"multiply.d.ts","sourceRoot":"","sources":["../../src/filter/multiply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC5C,SAAgB,KAAK,UAA0B;gBAEnC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;KAAE;CAmB5D"}
1
+ {"version":3,"file":"multiply.d.ts","sourceRoot":"","sources":["../../src/filter/multiply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC5C,SAAgB,KAAK,UAA0B;gBAEnC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;KAAE;CAoB5D"}
@@ -6,6 +6,7 @@ import { TgdFilter } from "./filter.js";
6
6
  export class TgdFilterMultiply extends TgdFilter {
7
7
  constructor({ color }) {
8
8
  super({
9
+ name: `TgdFilterMultiply/${TgdFilter.id++}`,
9
10
  fragmentShaderCode: [
10
11
  "vec2 uv = varUV;",
11
12
  "vec4 color = texture(uniTexture, uv);",
@@ -25,4 +26,4 @@ export class TgdFilterMultiply extends TgdFilter {
25
26
  }
26
27
  }
27
28
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVyL211bHRpcGx5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUVwQzs7R0FFRztBQUNILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxTQUFTO0lBRzVDLFlBQVksRUFBRSxLQUFLLEVBQXNDO1FBQ3JELEtBQUssQ0FBQztZQUNGLGtCQUFrQixFQUFFO2dCQUNoQixrQkFBa0I7Z0JBQ2xCLHVDQUF1QztnQkFDdkMsK0JBQStCO2FBQ2xDO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxNQUFNO2FBQ25CO1lBQ0QsV0FBVyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDckQsQ0FBQztTQUNKLENBQUMsQ0FBQTtRQWZVLFVBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQWdCM0MsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUE7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDaEMsQ0FBQztJQUNMLENBQUM7Q0FDSiJ9
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVyL211bHRpcGx5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUVwQzs7R0FFRztBQUNILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxTQUFTO0lBRzVDLFlBQVksRUFBRSxLQUFLLEVBQXNDO1FBQ3JELEtBQUssQ0FBQztZQUNGLElBQUksRUFBRSxxQkFBcUIsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQzNDLGtCQUFrQixFQUFFO2dCQUNoQixrQkFBa0I7Z0JBQ2xCLHVDQUF1QztnQkFDdkMsK0JBQStCO2FBQ2xDO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxNQUFNO2FBQ25CO1lBQ0QsV0FBVyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDckQsQ0FBQztTQUNKLENBQUMsQ0FBQTtRQWhCVSxVQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFpQjNDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFBO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0NBQ0oifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"verbatim.d.ts","sourceRoot":"","sources":["../../src/filter/verbatim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;;CAM/C"}
1
+ {"version":3,"file":"verbatim.d.ts","sourceRoot":"","sources":["../../src/filter/verbatim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;;CAO/C"}
@@ -5,8 +5,9 @@ import { TgdFilter } from "./filter.js";
5
5
  export class TgdFilterVerbatim extends TgdFilter {
6
6
  constructor() {
7
7
  super({
8
+ name: `TgdFilterVerbatim/${TgdFilter.id++}`,
8
9
  fragmentShaderCode: ["vec2 uv = varUV;", "vec4 color = texture(uniTexture, uv);", "FragColor = color;"],
9
10
  });
10
11
  }
11
12
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmF0aW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVyL3ZlcmJhdGltLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsU0FBUztJQUM1QztRQUNJLEtBQUssQ0FBQztZQUNGLGtCQUFrQixFQUFFLENBQUMsa0JBQWtCLEVBQUUsdUNBQXVDLEVBQUUsb0JBQW9CLENBQUM7U0FDMUcsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKIn0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmF0aW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVyL3ZlcmJhdGltLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsU0FBUztJQUM1QztRQUNJLEtBQUssQ0FBQztZQUNGLElBQUksRUFBRSxxQkFBcUIsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQzNDLGtCQUFrQixFQUFFLENBQUMsa0JBQWtCLEVBQUUsdUNBQXVDLEVBQUUsb0JBQW9CLENBQUM7U0FDMUcsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../src/filter/zoom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,8BAA8B,IAAI,8BAA8B,EAAE,MAAM,UAAU,CAAA;AAEtG,qBAAa,aAAc,SAAQ,SAAS;IACjC,IAAI,SAAI;IACf,SAAgB,WAAW,EAAE,OAAO,CAAA;gBAExB,EAAE,IAAQ,EAAE,GAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAM;IAgBxD,SAAgB,WAAW,GAAI,aAAa,8BAA8B,KAAG,IAAI,CAGhF;CACJ"}
1
+ {"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../src/filter/zoom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,8BAA8B,IAAI,8BAA8B,EAAE,MAAM,UAAU,CAAA;AAEtG,qBAAa,aAAc,SAAQ,SAAS;IACjC,IAAI,SAAI;IACf,SAAgB,WAAW,EAAE,OAAO,CAAA;gBAExB,EAAE,IAAQ,EAAE,GAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAM;IAiBxD,SAAgB,WAAW,GAAI,aAAa,8BAA8B,KAAG,IAAI,CAGhF;CACJ"}
@@ -3,8 +3,9 @@ import { TgdFilter } from "./filter.js";
3
3
  export class TgdFilterZoom extends TgdFilter {
4
4
  constructor({ zoom = 1 } = {}) {
5
5
  super({
6
+ name: `TgdFilterZoom/${TgdFilter.id++}`,
6
7
  fragmentShaderCode: [
7
- "vec2 uv = (varUV - vec2(0.5) - uniTranslation) * uniZoom + vec2(0.5);",
8
+ "vec2 uv = (varUV - vec2(0.5)) * uniZoom + uniTranslation + vec2(0.5);",
8
9
  "vec4 color = texture(uniTexture, uv);",
9
10
  "FragColor = color;",
10
11
  ],
@@ -16,10 +17,10 @@ export class TgdFilterZoom extends TgdFilter {
16
17
  this.zoom = 1;
17
18
  this.setUniforms = ({ program }) => {
18
19
  program.uniform1f("uniZoom", 1 / this.zoom);
19
- program.uniform2f("uniTranslation", this.translation.x, this.translation.y);
20
+ program.uniform2fv("uniTranslation", this.translation);
20
21
  };
21
22
  this.zoom = zoom;
22
23
  this.translation = new TgdVec2();
23
24
  }
24
25
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWx0ZXIvem9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQW9FLE1BQU0sVUFBVSxDQUFBO0FBRXRHLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQUl4QyxZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUMsS0FBZ0MsRUFBRTtRQUNwRCxLQUFLLENBQUM7WUFDRixrQkFBa0IsRUFBRTtnQkFDaEIsdUVBQXVFO2dCQUN2RSx1Q0FBdUM7Z0JBQ3ZDLG9CQUFvQjthQUN2QjtZQUNELFFBQVEsRUFBRTtnQkFDTixPQUFPLEVBQUUsT0FBTztnQkFDaEIsY0FBYyxFQUFFLE1BQU07YUFDekI7U0FDSixDQUFDLENBQUE7UUFkQyxTQUFJLEdBQUcsQ0FBQyxDQUFBO1FBbUJDLGdCQUFXLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBa0MsRUFBUSxFQUFFO1lBQ2hGLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDM0MsT0FBTyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQy9FLENBQUMsQ0FBQTtRQVBHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtJQUNwQyxDQUFDO0NBTUoifQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWx0ZXIvem9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQW9FLE1BQU0sVUFBVSxDQUFBO0FBRXRHLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQUl4QyxZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUMsS0FBZ0MsRUFBRTtRQUNwRCxLQUFLLENBQUM7WUFDRixJQUFJLEVBQUUsaUJBQWlCLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUN2QyxrQkFBa0IsRUFBRTtnQkFDaEIsdUVBQXVFO2dCQUN2RSx1Q0FBdUM7Z0JBQ3ZDLG9CQUFvQjthQUN2QjtZQUNELFFBQVEsRUFBRTtnQkFDTixPQUFPLEVBQUUsT0FBTztnQkFDaEIsY0FBYyxFQUFFLE1BQU07YUFDekI7U0FDSixDQUFDLENBQUE7UUFmQyxTQUFJLEdBQUcsQ0FBQyxDQUFBO1FBb0JDLGdCQUFXLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBa0MsRUFBUSxFQUFFO1lBQ2hGLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDM0MsT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDMUQsQ0FBQyxDQUFBO1FBUEcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBQ3BDLENBQUM7Q0FNSiJ9