angular-three-postprocessing 2.0.0-beta.315 → 2.0.0-beta.316

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.
@@ -4,7 +4,7 @@ import { mergeInputs } from 'ngxtension/inject-inputs';
4
4
  import { Effect } from 'postprocessing';
5
5
  import { CanvasTexture, Color, NearestFilter, RepeatWrapping, Texture, Uniform } from 'three';
6
6
  import * as i0 from "@angular/core";
7
- const fragment = `
7
+ const fragment = /* language=glsl glsl */ `
8
8
  uniform sampler2D uCharacters;
9
9
  uniform float uCharactersCount;
10
10
  uniform float uCellSize;
@@ -117,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
117
117
  changeDetection: ChangeDetectionStrategy.OnPush,
118
118
  }]
119
119
  }] });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNjaWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9hc2NpaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFOUYsTUFBTSxRQUFRLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVDaEIsQ0FBQztBQVdGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQ1gsSUFBSSxHQUFHLE9BQU8sRUFDZCxVQUFVLEdBQUcsc0JBQXNCLEVBQ25DLFFBQVEsR0FBRyxFQUFFLEVBQ2IsUUFBUSxHQUFHLEVBQUUsRUFDYixLQUFLLEdBQUcsU0FBUyxFQUNqQixNQUFNLEdBQUcsS0FBSyxNQUNTLEVBQUU7UUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQWtCO1lBQ3pDLENBQUMsYUFBYSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMzQyxDQUFDLFdBQVcsRUFBRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxDQUFDLGtCQUFrQixFQUFFLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENB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Q0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RSxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDekQ7OEdBSFksU0FBUztrR0FBVCxTQUFTLGdOQVBYOztFQUVULDREQUNTLE9BQU87OzJGQUlMLFNBQVM7a0JBVnJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBDYW52YXNUZXh0dXJlLCBDb2xvciwgTmVhcmVzdEZpbHRlciwgUmVwZWF0V3JhcHBpbmcsIFRleHR1cmUsIFVuaWZvcm0gfSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IGZyYWdtZW50ID0gYFxudW5pZm9ybSBzYW1wbGVyMkQgdUNoYXJhY3RlcnM7XG51bmlmb3JtIGZsb2F0IHVDaGFyYWN0ZXJzQ291bnQ7XG51bmlmb3JtIGZsb2F0IHVDZWxsU2l6ZTtcbnVuaWZvcm0gYm9vbCB1SW52ZXJ0O1xudW5pZm9ybSB2ZWMzIHVDb2xvcjtcblxuY29uc3QgdmVjMiBTSVpFID0gdmVjMigxNi4pO1xuXG52ZWMzIGdyZXlzY2FsZSh2ZWMzIGNvbG9yLCBmbG9hdCBzdHJlbmd0aCkge1xuICAgIGZsb2F0IGcgPSBkb3QoY29sb3IsIHZlYzMoMC4yOTksIDAuNTg3LCAwLjExNCkpO1xuICAgIHJldHVybiBtaXgoY29sb3IsIHZlYzMoZyksIHN0cmVuZ3RoKTtcbn1cblxudmVjMyBncmV5c2NhbGUodmVjMyBjb2xvcikge1xuICAgIHJldHVybiBncmV5c2NhbGUoY29sb3IsIDEuMCk7XG59XG5cbnZvaWQgbWFpbkltYWdlKGNvbnN0IGluIHZlYzQgaW5wdXRDb2xvciwgY29uc3QgaW4gdmVjMiB1diwgb3V0IHZlYzQgb3V0cHV0Q29sb3IpIHtcbiAgICB2ZWMyIGNlbGwgPSByZXNvbHV0aW9uIC8gdUNlbGxTaXplO1xuICAgIHZlYzIgZ3JpZCA9IDEuMCAvIGNlbGw7XG4gICAgdmVjMiBwaXhlbGl6ZWRVViA9IGdyaWQgKiAoMC41ICsgZmxvb3IodXYgLyBncmlkKSk7XG4gICAgdmVjNCBwaXhlbGl6ZWQgPSB0ZXh0dXJlMkQoaW5wdXRCdWZmZXIsIHBpeGVsaXplZFVWKTtcbiAgICBmbG9hdCBncmV5c2NhbGVkID0gZ3JleXNjYWxlKHBpeGVsaXplZC5yZ2IpLnI7XG5cbiAgICBpZiAodUludmVydCkge1xuICAgICAgICBncmV5c2NhbGVkID0gMS4wIC0gZ3JleXNjYWxlZDtcbiAgICB9XG5cbiAgICBmbG9hdCBjaGFyYWN0ZXJJbmRleCA9IGZsb29yKCh1Q2hhcmFjdGVyc0NvdW50IC0gMS4wKSAqIGdyZXlzY2FsZWQpO1xuICAgIHZlYzIgY2hhcmFjdGVyUG9zaXRpb24gPSB2ZWMyKG1vZChjaGFyYWN0ZXJJbmRleCwgU0laRS54KSwgZmxvb3IoY2hhcmFjdGVySW5kZXggLyBTSVpFLnkpKTtcbiAgICB2ZWMyIG9mZnNldCA9IHZlYzIoY2hhcmFjdGVyUG9zaXRpb24ueCwgLWNoYXJhY3RlclBvc2l0aW9uLnkpIC8gU0laRTtcbiAgICB2ZWMyIGNoYXJVViA9IG1vZCh1diAqIChjZWxsIC8gU0laRSksIDEuMCAvIFNJWkUpIC0gdmVjMigwLiwgMS4wIC8gU0laRSkgKyBvZmZzZXQ7XG4gICAgdmVjNCBhc2NpaUNoYXJhY3RlciA9IHRleHR1cmUyRCh1Q2hhcmFjdGVycywgY2hhclVWKTtcblxuICAgIGFzY2lpQ2hhcmFjdGVyLnJnYiA9IHVDb2xvciAqIGFzY2lpQ2hhcmFjdGVyLnI7XG4gICAgYXNjaWlDaGFyYWN0ZXIuYSA9IHBpeGVsaXplZC5hO1xuICAgIG91dHB1dENvbG9yID0gYXNjaWlDaGFyYWN0ZXI7XG59XG5gO1xuXG5pbnRlcmZhY2UgQVNDSUlFZmZlY3RPcHRpb25zIHtcblx0Zm9udD86IHN0cmluZztcblx0Y2hhcmFjdGVycz86IHN0cmluZztcblx0Zm9udFNpemU/OiBudW1iZXI7XG5cdGNlbGxTaXplPzogbnVtYmVyO1xuXHRjb2xvcj86IHN0cmluZztcblx0aW52ZXJ0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFTQ0lJRWZmZWN0IGV4dGVuZHMgRWZmZWN0IHtcblx0Y29uc3RydWN0b3Ioe1xuXHRcdGZvbnQgPSAnYXJpYWwnLFxuXHRcdGNoYXJhY3RlcnMgPSBgIC46LCctXj0qKz8hfDAjWCVXTUBgLFxuXHRcdGZvbnRTaXplID0gNTQsXG5cdFx0Y2VsbFNpemUgPSAxNixcblx0XHRjb2xvciA9ICcjZmZmZmZmJyxcblx0XHRpbnZlcnQgPSBmYWxzZSxcblx0fTogQVNDSUlFZmZlY3RPcHRpb25zID0ge30pIHtcblx0XHRjb25zdCB1bmlmb3JtcyA9IG5ldyBNYXA8c3RyaW5nLCBVbmlmb3JtPihbXG5cdFx0XHRbJ3VDaGFyYWN0ZXJzJywgbmV3IFVuaWZvcm0obmV3IFRleHR1cmUoKSldLFxuXHRcdFx0Wyd1Q2VsbFNpemUnLCBuZXcgVW5pZm9ybShjZWxsU2l6ZSldLFxuXHRcdFx0Wyd1Q2hhcmFjdGVyc0NvdW50JywgbmV3IFVuaWZvcm0oY2hhcmFjdGVycy5sZW5ndGgpXSxcblx0XHRcdFsndUNvbG9yJywgbmV3IFVuaWZvcm0obmV3IENvbG9yKGNvbG9yKSldLFxuXHRcdFx0Wyd1SW52ZXJ0JywgbmV3IFVuaWZvcm0oaW52ZXJ0KV0sXG5cdFx0XSk7XG5cblx0XHRzdXBlcignQVNDSUlFZmZlY3QnLCBmcmFnbWVudCwgeyB1bmlmb3JtcyB9KTtcblxuXHRcdGNvbnN0IGNoYXJhY3RlcnNUZXh0dXJlVW5pZm9ybSA9IHRoaXMudW5pZm9ybXMuZ2V0KCd1Q2hhcmFjdGVycycpO1xuXG5cdFx0aWYgKGNoYXJhY3RlcnNUZXh0dXJlVW5pZm9ybSkge1xuXHRcdFx0Y2hhcmFjdGVyc1RleHR1cmVVbmlmb3JtLnZhbHVlID0gdGhpcy5jcmVhdGVDaGFyYWN0ZXJzVGV4dHVyZShjaGFyYWN0ZXJzLCBmb250LCBmb250U2l6ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqIERyYXdzIHRoZSBjaGFyYWN0ZXJzIG9uIGEgQ2FudmFzIGFuZCByZXR1cm5zIGEgdGV4dHVyZSAqL1xuXHRwdWJsaWMgY3JlYXRlQ2hhcmFjdGVyc1RleHR1cmUoY2hhcmFjdGVyczogc3RyaW5nLCBmb250OiBzdHJpbmcsIGZvbnRTaXplOiBudW1iZXIpOiBUZXh0dXJlIHtcblx0XHRjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcblx0XHRjb25zdCBTSVpFID0gMTAyNDtcblx0XHRjb25zdCBNQVhfUEVSX1JPVyA9IDE2O1xuXHRcdGNvbnN0IENFTEwgPSBTSVpFIC8gTUFYX1BFUl9ST1c7XG5cblx0XHRjYW52YXMud2lkdGggPSBjYW52YXMuaGVpZ2h0ID0gU0laRTtcblx0XHRjb25zdCB0ZXh0dXJlID0gbmV3IENhbnZhc1RleHR1cmUoY2FudmFzLCB1bmRlZmluZWQsIFJlcGVhdFdyYXBwaW5nLCBSZXBlYXRXcmFwcGluZywgTmVhcmVzdEZpbHRlciwgTmVhcmVzdEZpbHRlcik7XG5cdFx0Y29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuXG5cdFx0aWYgKCFjb250ZXh0KSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0NvbnRleHQgbm90IGF2YWlsYWJsZScpO1xuXHRcdH1cblxuXHRcdGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIFNJWkUsIFNJWkUpO1xuXHRcdGNvbnRleHQuZm9udCA9IGAke2ZvbnRTaXplfXB4ICR7Zm9udH1gO1xuXHRcdGNvbnRleHQudGV4dEFsaWduID0gJ2NlbnRlcic7XG5cdFx0Y29udGV4dC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcblx0XHRjb250ZXh0LmZpbGxTdHlsZSA9ICcjZmZmJztcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY2hhcmFjdGVycy5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgY2hhciA9IGNoYXJhY3RlcnNbaV07XG5cdFx0XHRjb25zdCB4ID0gaSAlIE1BWF9QRVJfUk9XO1xuXHRcdFx0Y29uc3QgeSA9IE1hdGguZmxvb3IoaSAvIE1BWF9QRVJfUk9XKTtcblx0XHRcdGNvbnRleHQuZmlsbFRleHQoY2hhciwgeCAqIENFTEwgKyBDRUxMIC8gMiwgeSAqIENFTEwgKyBDRUxMIC8gMik7XG5cdFx0fVxuXG5cdFx0dGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XG5cdFx0cmV0dXJuIHRleHR1cmU7XG5cdH1cbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IEFTQ0lJRWZmZWN0T3B0aW9ucyA9IHtcblx0Zm9udDogJ2FyaWFsJyxcblx0Y2hhcmFjdGVyczogYCAuOiwnLV49Kis/IXwwI1glV01AYCxcblx0Zm9udFNpemU6IDU0LFxuXHRjZWxsU2l6ZTogMTYsXG5cdGNvbG9yOiAnI2ZmZmZmZicsXG5cdGludmVydDogZmFsc2UsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWFzY2lpJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBBU0NJSSB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0ZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4gbmV3IEFTQ0lJRWZmZWN0KHRoaXMub3B0aW9ucygpKSk7XG59XG4iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNjaWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9hc2NpaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFOUYsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVDekMsQ0FBQztBQVdGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQ1gsSUFBSSxHQUFHLE9BQU8sRUFDZCxVQUFVLEdBQUcsc0JBQXNCLEVBQ25DLFFBQVEsR0FBRyxFQUFFLEVBQ2IsUUFBUSxHQUFHLEVBQUUsRUFDYixLQUFLLEdBQUcsU0FBUyxFQUNqQixNQUFNLEdBQUcsS0FBSyxNQUNTLEVBQUU7UUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQWtCO1lBQ3pDLENBQUMsYUFBYSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMzQyxDQUFDLFdBQVcsRUFBRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxDQUFDLGtCQUFrQixFQUFFLElBQUksT0FBTyxDQUFDLFVBQVUs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TyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RSxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDekQ7OEdBSFksU0FBUztrR0FBVCxTQUFTLGdOQVBYOztFQUVULDREQUNTLE9BQU87OzJGQUlMLFNBQVM7a0JBVnJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBDYW52YXNUZXh0dXJlLCBDb2xvciwgTmVhcmVzdEZpbHRlciwgUmVwZWF0V3JhcHBpbmcsIFRleHR1cmUsIFVuaWZvcm0gfSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IGZyYWdtZW50ID0gLyogbGFuZ3VhZ2U9Z2xzbCBnbHNsICovIGBcbnVuaWZvcm0gc2FtcGxlcjJEIHVDaGFyYWN0ZXJzO1xudW5pZm9ybSBmbG9hdCB1Q2hhcmFjdGVyc0NvdW50O1xudW5pZm9ybSBmbG9hdCB1Q2VsbFNpemU7XG51bmlmb3JtIGJvb2wgdUludmVydDtcbnVuaWZvcm0gdmVjMyB1Q29sb3I7XG5cbmNvbnN0IHZlYzIgU0laRSA9IHZlYzIoMTYuKTtcblxudmVjMyBncmV5c2NhbGUodmVjMyBjb2xvciwgZmxvYXQgc3RyZW5ndGgpIHtcbiAgICBmbG9hdCBnID0gZG90KGNvbG9yLCB2ZWMzKDAuMjk5LCAwLjU4NywgMC4xMTQpKTtcbiAgICByZXR1cm4gbWl4KGNvbG9yLCB2ZWMzKGcpLCBzdHJlbmd0aCk7XG59XG5cbnZlYzMgZ3JleXNjYWxlKHZlYzMgY29sb3IpIHtcbiAgICByZXR1cm4gZ3JleXNjYWxlKGNvbG9yLCAxLjApO1xufVxuXG52b2lkIG1haW5JbWFnZShjb25zdCBpbiB2ZWM0IGlucHV0Q29sb3IsIGNvbnN0IGluIHZlYzIgdXYsIG91dCB2ZWM0IG91dHB1dENvbG9yKSB7XG4gICAgdmVjMiBjZWxsID0gcmVzb2x1dGlvbiAvIHVDZWxsU2l6ZTtcbiAgICB2ZWMyIGdyaWQgPSAxLjAgLyBjZWxsO1xuICAgIHZlYzIgcGl4ZWxpemVkVVYgPSBncmlkICogKDAuNSArIGZsb29yKHV2IC8gZ3JpZCkpO1xuICAgIHZlYzQgcGl4ZWxpemVkID0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCBwaXhlbGl6ZWRVVik7XG4gICAgZmxvYXQgZ3JleXNjYWxlZCA9IGdyZXlzY2FsZShwaXhlbGl6ZWQucmdiKS5yO1xuXG4gICAgaWYgKHVJbnZlcnQpIHtcbiAgICAgICAgZ3JleXNjYWxlZCA9IDEuMCAtIGdyZXlzY2FsZWQ7XG4gICAgfVxuXG4gICAgZmxvYXQgY2hhcmFjdGVySW5kZXggPSBmbG9vcigodUNoYXJhY3RlcnNDb3VudCAtIDEuMCkgKiBncmV5c2NhbGVkKTtcbiAgICB2ZWMyIGNoYXJhY3RlclBvc2l0aW9uID0gdmVjMihtb2QoY2hhcmFjdGVySW5kZXgsIFNJWkUueCksIGZsb29yKGNoYXJhY3RlckluZGV4IC8gU0laRS55KSk7XG4gICAgdmVjMiBvZmZzZXQgPSB2ZWMyKGNoYXJhY3RlclBvc2l0aW9uLngsIC1jaGFyYWN0ZXJQb3NpdGlvbi55KSAvIFNJWkU7XG4gICAgdmVjMiBjaGFyVVYgPSBtb2QodXYgKiAoY2VsbCAvIFNJWkUpLCAxLjAgLyBTSVpFKSAtIHZlYzIoMC4sIDEuMCAvIFNJWkUpICsgb2Zmc2V0O1xuICAgIHZlYzQgYXNjaWlDaGFyYWN0ZXIgPSB0ZXh0dXJlMkQodUNoYXJhY3RlcnMsIGNoYXJVVik7XG5cbiAgICBhc2NpaUNoYXJhY3Rlci5yZ2IgPSB1Q29sb3IgKiBhc2NpaUNoYXJhY3Rlci5yO1xuICAgIGFzY2lpQ2hhcmFjdGVyLmEgPSBwaXhlbGl6ZWQuYTtcbiAgICBvdXRwdXRDb2xvciA9IGFzY2lpQ2hhcmFjdGVyO1xufVxuYDtcblxuaW50ZXJmYWNlIEFTQ0lJRWZmZWN0T3B0aW9ucyB7XG5cdGZvbnQ/OiBzdHJpbmc7XG5cdGNoYXJhY3RlcnM/OiBzdHJpbmc7XG5cdGZvbnRTaXplPzogbnVtYmVyO1xuXHRjZWxsU2l6ZT86IG51bWJlcjtcblx0Y29sb3I/OiBzdHJpbmc7XG5cdGludmVydD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBU0NJSUVmZmVjdCBleHRlbmRzIEVmZmVjdCB7XG5cdGNvbnN0cnVjdG9yKHtcblx0XHRmb250ID0gJ2FyaWFsJyxcblx0XHRjaGFyYWN0ZXJzID0gYCAuOiwnLV49Kis/IXwwI1glV01AYCxcblx0XHRmb250U2l6ZSA9IDU0LFxuXHRcdGNlbGxTaXplID0gMTYsXG5cdFx0Y29sb3IgPSAnI2ZmZmZmZicsXG5cdFx0aW52ZXJ0ID0gZmFsc2UsXG5cdH06IEFTQ0lJRWZmZWN0T3B0aW9ucyA9IHt9KSB7XG5cdFx0Y29uc3QgdW5pZm9ybXMgPSBuZXcgTWFwPHN0cmluZywgVW5pZm9ybT4oW1xuXHRcdFx0Wyd1Q2hhcmFjdGVycycsIG5ldyBVbmlmb3JtKG5ldyBUZXh0dXJlKCkpXSxcblx0XHRcdFsndUNlbGxTaXplJywgbmV3IFVuaWZvcm0oY2VsbFNpemUpXSxcblx0XHRcdFsndUNoYXJhY3RlcnNDb3VudCcsIG5ldyBVbmlmb3JtKGNoYXJhY3RlcnMubGVuZ3RoKV0sXG5cdFx0XHRbJ3VDb2xvcicsIG5ldyBVbmlmb3JtKG5ldyBDb2xvcihjb2xvcikpXSxcblx0XHRcdFsndUludmVydCcsIG5ldyBVbmlmb3JtKGludmVydCldLFxuXHRcdF0pO1xuXG5cdFx0c3VwZXIoJ0FTQ0lJRWZmZWN0JywgZnJhZ21lbnQsIHsgdW5pZm9ybXMgfSk7XG5cblx0XHRjb25zdCBjaGFyYWN0ZXJzVGV4dHVyZVVuaWZvcm0gPSB0aGlzLnVuaWZvcm1zLmdldCgndUNoYXJhY3RlcnMnKTtcblxuXHRcdGlmIChjaGFyYWN0ZXJzVGV4dHVyZVVuaWZvcm0pIHtcblx0XHRcdGNoYXJhY3RlcnNUZXh0dXJlVW5pZm9ybS52YWx1ZSA9IHRoaXMuY3JlYXRlQ2hhcmFjdGVyc1RleHR1cmUoY2hhcmFjdGVycywgZm9udCwgZm9udFNpemUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBEcmF3cyB0aGUgY2hhcmFjdGVycyBvbiBhIENhbnZhcyBhbmQgcmV0dXJucyBhIHRleHR1cmUgKi9cblx0cHVibGljIGNyZWF0ZUNoYXJhY3RlcnNUZXh0dXJlKGNoYXJhY3RlcnM6IHN0cmluZywgZm9udDogc3RyaW5nLCBmb250U2l6ZTogbnVtYmVyKTogVGV4dHVyZSB7XG5cdFx0Y29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG5cdFx0Y29uc3QgU0laRSA9IDEwMjQ7XG5cdFx0Y29uc3QgTUFYX1BFUl9ST1cgPSAxNjtcblx0XHRjb25zdCBDRUxMID0gU0laRSAvIE1BWF9QRVJfUk9XO1xuXG5cdFx0Y2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IFNJWkU7XG5cdFx0Y29uc3QgdGV4dHVyZSA9IG5ldyBDYW52YXNUZXh0dXJlKGNhbnZhcywgdW5kZWZpbmVkLCBSZXBlYXRXcmFwcGluZywgUmVwZWF0V3JhcHBpbmcsIE5lYXJlc3RGaWx0ZXIsIE5lYXJlc3RGaWx0ZXIpO1xuXHRcdGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblxuXHRcdGlmICghY29udGV4dCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdDb250ZXh0IG5vdCBhdmFpbGFibGUnKTtcblx0XHR9XG5cblx0XHRjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBTSVpFLCBTSVpFKTtcblx0XHRjb250ZXh0LmZvbnQgPSBgJHtmb250U2l6ZX1weCAke2ZvbnR9YDtcblx0XHRjb250ZXh0LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdGNvbnRleHQudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG5cdFx0Y29udGV4dC5maWxsU3R5bGUgPSAnI2ZmZic7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGNoYXIgPSBjaGFyYWN0ZXJzW2ldO1xuXHRcdFx0Y29uc3QgeCA9IGkgJSBNQVhfUEVSX1JPVztcblx0XHRcdGNvbnN0IHkgPSBNYXRoLmZsb29yKGkgLyBNQVhfUEVSX1JPVyk7XG5cdFx0XHRjb250ZXh0LmZpbGxUZXh0KGNoYXIsIHggKiBDRUxMICsgQ0VMTCAvIDIsIHkgKiBDRUxMICsgQ0VMTCAvIDIpO1xuXHRcdH1cblxuXHRcdHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdHJldHVybiB0ZXh0dXJlO1xuXHR9XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBBU0NJSUVmZmVjdE9wdGlvbnMgPSB7XG5cdGZvbnQ6ICdhcmlhbCcsXG5cdGNoYXJhY3RlcnM6IGAgLjosJy1ePSorPyF8MCNYJVdNQGAsXG5cdGZvbnRTaXplOiA1NCxcblx0Y2VsbFNpemU6IDE2LFxuXHRjb2xvcjogJyNmZmZmZmYnLFxuXHRpbnZlcnQ6IGZhbHNlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1hc2NpaScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwQVNDSUkge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IG5ldyBBU0NJSUVmZmVjdCh0aGlzLm9wdGlvbnMoKSkpO1xufVxuIl19
@@ -6,7 +6,7 @@ import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaul
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../effect";
8
8
  const TiltShiftShader = {
9
- fragmentShader: `
9
+ fragmentShader: /* language=glsl glsl */ `
10
10
 
11
11
  // original shader by Evan Wallace
12
12
 
@@ -118,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
118
118
  providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],
119
119
  }]
120
120
  }] });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsdC1zaGlmdC0yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvdGlsdC1zaGlmdC0yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUVsSCxNQUFNLGVBQWUsR0FBRztJQUN2QixjQUFjLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBd0RaO0NBQ0osQ0FBQztBQUVGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxNQUFNO0lBQzNDLFlBQVksRUFDWCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFDcEMsSUFBSSxHQUFHLElBQUksRUFBRSxvQ0FBb0M7SUFDakQsS0FBSyxHQUFHLEdBQUcsRUFBRSxvQ0FBb0M7SUFDakQsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLHNDQUFzQztJQUMxRCxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsc0NBQXNDO0lBQ3hELE9BQU8sR0FBRyxJQUFJLEVBQUUseUJBQXlCO0lBQ3pDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxvQkFBb0I7TUFDeEMsR0FBRyxFQUFFO1FBQ0wsS0FBSyxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxjQUFjLEVBQUU7WUFDeEQsYUFBYTtZQUNiLFVBQVUsRUFBRSxlQUFlLENBQUMsV0FBVztZQUN2QyxRQUFRLEVBQUUsSUFBSSxHQUFHLENBQXFDO2dCQUNyRCxDQUFDLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdCLENBQUMsT0FBTyxFQUFFLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QixDQUFDLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pDLENBQUMsV0FBVyxFQUFFLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3JDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0Q7QUFJRCxNQUFNLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7QUFpQjdCLE1BQU0sT0FBTyxjQUFjO0lBZjNCO1FBZ0JDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFvRCxDQUFDLENBQUM7S0FDdEU7OEdBSFksY0FBYztrR0FBZCxjQUFjLHlNQUZmLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsNElBVnZFOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFJMUIsY0FBYztrQkFmMUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDekMsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBFZmZlY3QsIEVmZmVjdEF0dHJpYnV0ZSB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IFVuaWZvcm0gfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlLCBOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuY29uc3QgVGlsdFNoaWZ0U2hhZGVyID0ge1xuXHRmcmFnbWVudFNoYWRlcjogYFxuXG4gICAgLy8gb3JpZ2luYWwgc2hhZGVyIGJ5IEV2YW4gV2FsbGFjZVxuXG4gICAgI2RlZmluZSBNQVhfSVRFUkFUSU9OUyAxMDBcblxuICAgIHVuaWZvcm0gZmxvYXQgYmx1cjtcbiAgICB1bmlmb3JtIGZsb2F0IHRhcGVyO1xuICAgIHVuaWZvcm0gdmVjMiBzdGFydDtcbiAgICB1bmlmb3JtIHZlYzIgZW5kO1xuICAgIHVuaWZvcm0gdmVjMiBkaXJlY3Rpb247XG4gICAgdW5pZm9ybSBpbnQgc2FtcGxlcztcblxuICAgIGZsb2F0IHJhbmRvbSh2ZWMzIHNjYWxlLCBmbG9hdCBzZWVkKSB7XG4gICAgICAgIC8qIHVzZSB0aGUgZnJhZ21lbnQgcG9zaXRpb24gZm9yIGEgZGlmZmVyZW50IHNlZWQgcGVyLXBpeGVsICovXG4gICAgICAgIHJldHVybiBmcmFjdChzaW4oZG90KGdsX0ZyYWdDb29yZC54eXogKyBzZWVkLCBzY2FsZSkpICogNDM3NTguNTQ1MyArIHNlZWQpO1xuICAgIH1cblxuICAgIHZvaWQgbWFpbkltYWdlKGNvbnN0IGluIHZlYzQgaW5wdXRDb2xvciwgY29uc3QgaW4gdmVjMiB1diwgb3V0IHZlYzQgb3V0cHV0Q29sb3IpIHtcbiAgICAgICAgdmVjNCBjb2xvciA9IHZlYzQoMC4wKTtcbiAgICAgICAgZmxvYXQgdG90YWwgPSAwLjA7XG4gICAgICAgIHZlYzIgc3RhcnRQaXhlbCA9IHZlYzIoc3RhcnQueCAqIHJlc29sdXRpb24ueCwgc3RhcnQueSAqIHJlc29sdXRpb24ueSk7XG4gICAgICAgIHZlYzIgZW5kUGl4ZWwgPSB2ZWMyKGVuZC54ICogcmVzb2x1dGlvbi54LCBlbmQueSAqIHJlc29sdXRpb24ueSk7XG4gICAgICAgIGZsb2F0IGZfc2FtcGxlcyA9IGZsb2F0KHNhbXBsZXMpO1xuICAgICAgICBmbG9hdCBoYWxmX3NhbXBsZXMgPSBmX3NhbXBsZXMgLyAyLjA7XG5cbiAgICAgICAgLy8gdXNlIHNjcmVlbiBkaWFnb25hbCB0byBub3JtYWxpemUgYmx1ciByYWRpaVxuICAgICAgICBmbG9hdCBtYXhTY3JlZW5EaXN0YW5jZSA9IGRpc3RhbmNlKHZlYzIoMC4wKSwgcmVzb2x1dGlvbik7IC8vIGRpYWdvbmFsIGRpc3RhbmNlXG4gICAgICAgIGZsb2F0IGdyYWRpZW50UmFkaXVzID0gdGFwZXIgKiAobWF4U2NyZWVuRGlzdGFuY2UpO1xuICAgICAgICBmbG9hdCBibHVyUmFkaXVzID0gYmx1ciAqIChtYXhTY3JlZW5EaXN0YW5jZSAvIDE2LjApO1xuXG4gICAgICAgIC8qIHJhbmRvbWl6ZSB0aGUgbG9va3VwIHZhbHVlcyB0byBoaWRlIHRoZSBmaXhlZCBudW1iZXIgb2Ygc2FtcGxlcyAqL1xuICAgICAgICBmbG9hdCBvZmZzZXQgPSByYW5kb20odmVjMygxMi45ODk4LCA3OC4yMzMsIDE1MS43MTgyKSwgMC4wKTtcbiAgICAgICAgdmVjMiBub3JtYWwgPSBub3JtYWxpemUodmVjMihzdGFydFBpeGVsLnkgLSBlbmRQaXhlbC55LCBlbmRQaXhlbC54IC0gc3RhcnRQaXhlbC54KSk7XG4gICAgICAgIGZsb2F0IHJhZGl1cyA9IHNtb290aHN0ZXAoMC4wLCAxLjAsIGFicyhkb3QodXYgKiByZXNvbHV0aW9uIC0gc3RhcnRQaXhlbCwgbm9ybWFsKSkgLyBncmFkaWVudFJhZGl1cykgKiBibHVyUmFkaXVzO1xuXG4gICAgICAgICNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcbiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gTUFYX0lURVJBVElPTlM7IGkrKykge1xuICAgICAgICAgICAgaWYgKGkgPj0gc2FtcGxlcykgeyBicmVhazsgfSAvLyByZXR1cm4gZWFybHkgaWYgb3ZlciBzYW1wbGUgY291bnRcbiAgICAgICAgICAgIGZsb2F0IGZfaSA9IGZsb2F0KGkpO1xuICAgICAgICAgICAgZmxvYXQgc19pID0gLWhhbGZfc2FtcGxlcyArIGZfaTtcbiAgICAgICAgICAgIGZsb2F0IHBlcmNlbnQgPSAoc19pICsgb2Zmc2V0IC0gMC41KSAvIGhhbGZfc2FtcGxlcztcbiAgICAgICAgICAgIGZsb2F0IHdlaWdodCA9IDEuMCAtIGFicyhwZXJjZW50KTtcbiAgICAgICAgICAgIHZlYzQgc2FtcGxlX2kgPSB0ZXh0dXJlMkQoaW5wdXRCdWZmZXIsIHV2ICsgbm9ybWFsaXplKGRpcmVjdGlvbikgLyByZXNvbHV0aW9uICogcGVyY2VudCAqIHJhZGl1cyk7XG4gICAgICAgICAgICAvKiBzd2l0Y2ggdG8gcHJlLW11bHRpcGxpZWQgYWxwaGEgdG8gY29ycmVjdGx5IGJsdXIgdHJhbnNwYXJlbnQgaW1hZ2VzICovXG4gICAgICAgICAgICBzYW1wbGVfaS5yZ2IgKj0gc2FtcGxlX2kuYTtcbiAgICAgICAgICAgIGNvbG9yICs9IHNhbXBsZV9pICogd2VpZ2h0O1xuICAgICAgICAgICAgdG90YWwgKz0gd2VpZ2h0O1xuICAgICAgICB9XG4gICAgICAgICNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cbiAgICAgICAgb3V0cHV0Q29sb3IgPSBjb2xvciAvIHRvdGFsO1xuXG4gICAgICAgIC8qIHN3aXRjaCBiYWNrIGZyb20gcHJlLW11bHRpcGxpZWQgYWxwaGEgKi9cbiAgICAgICAgb3V0cHV0Q29sb3IucmdiIC89IG91dHB1dENvbG9yLmEgKyAwLjAwMDAxO1xuICAgIH1cbiAgICBgLFxufTtcblxuZXhwb3J0IGNsYXNzIFRpbHRTaGlmdDJFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuXHRjb25zdHJ1Y3Rvcih7XG5cdFx0YmxlbmRGdW5jdGlvbiA9IEJsZW5kRnVuY3Rpb24uTk9STUFMLFxuXHRcdGJsdXIgPSAwLjE1LCAvLyBbMCwgMV0sIGNhbiBnbyBiZXlvbmQgMSBmb3IgZXh0cmFcblx0XHR0YXBlciA9IDAuNSwgLy8gWzAsIDFdLCBjYW4gZ28gYmV5b25kIDEgZm9yIGV4dHJhXG5cdFx0c3RhcnQgPSBbMC41LCAwLjBdLCAvLyBbMCwxXSBwZXJjZW50YWdlIHgseSBvZiBzY3JlZW5zcGFjZVxuXHRcdGVuZCA9IFswLjUsIDEuMF0sIC8vIFswLDFdIHBlcmNlbnRhZ2UgeCx5IG9mIHNjcmVlbnNwYWNlXG5cdFx0c2FtcGxlcyA9IDEwLjAsIC8vIG51bWJlciBvZiBibHVyIHNhbXBsZXNcblx0XHRkaXJlY3Rpb24gPSBbMSwgMV0sIC8vIGRpcmVjdGlvbiBvZiBibHVyXG5cdH0gPSB7fSkge1xuXHRcdHN1cGVyKCdUaWx0U2hpZnRFZmZlY3QnLCBUaWx0U2hpZnRTaGFkZXIuZnJhZ21lbnRTaGFkZXIsIHtcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRhdHRyaWJ1dGVzOiBFZmZlY3RBdHRyaWJ1dGUuQ09OVk9MVVRJT04sXG5cdFx0XHR1bmlmb3JtczogbmV3IE1hcDxzdHJpbmcsIFVuaWZvcm08bnVtYmVyIHwgbnVtYmVyW10+PihbXG5cdFx0XHRcdFsnYmx1cicsIG5ldyBVbmlmb3JtKGJsdXIpXSxcblx0XHRcdFx0Wyd0YXBlcicsIG5ldyBVbmlmb3JtKHRhcGVyKV0sXG5cdFx0XHRcdFsnc3RhcnQnLCBuZXcgVW5pZm9ybShzdGFydCldLFxuXHRcdFx0XHRbJ2VuZCcsIG5ldyBVbmlmb3JtKGVuZCldLFxuXHRcdFx0XHRbJ3NhbXBsZXMnLCBuZXcgVW5pZm9ybShzYW1wbGVzKV0sXG5cdFx0XHRcdFsnZGlyZWN0aW9uJywgbmV3IFVuaWZvcm0oZGlyZWN0aW9uKV0sXG5cdFx0XHRdKSxcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgdHlwZSBUaWx0U2hpZnQyRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBUaWx0U2hpZnQyRWZmZWN0PlswXT4+O1xuXG5leHRlbmQoeyBUaWx0U2hpZnQyRWZmZWN0IH0pO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXRpbHQtc2hpZnQyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXRpbHQtc2hpZnQyLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXRpbHQtc2hpZnQyLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW05ndHBFZmZlY3RIb3N0RGlyZWN0aXZlXSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zKHsgYmxlbmRGdW5jdGlvbjogQmxlbmRGdW5jdGlvbi5OT1JNQUwgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwVGlsdFNoaWZ0MiB7XG5cdGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PFRpbHRTaGlmdDJFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcbn1cbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsdC1zaGlmdC0yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvdGlsdC1zaGlmdC0yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUVsSCxNQUFNLGVBQWUsR0FBRztJQUN2QixjQUFjLEVBQUUsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBd0RyQztDQUNKLENBQUM7QUFFRixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsTUFBTTtJQUMzQyxZQUFZLEVBQ1gsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQ3BDLElBQUksR0FBRyxJQUFJLEVBQUUsb0NBQW9DO0lBQ2pELEtBQUssR0FBRyxHQUFHLEVBQUUsb0NBQW9DO0lBQ2pELEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxzQ0FBc0M7SUFDMUQsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLHNDQUFzQztJQUN4RCxPQUFPLEdBQUcsSUFBSSxFQUFFLHlCQUF5QjtJQUN6QyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CO01BQ3hDLEdBQUcsRUFBRTtRQUNMLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsY0FBYyxFQUFFO1lBQ3hELGFBQWE7WUFDYixVQUFVLEVBQUUsZUFBZSxDQUFDLFdBQVc7WUFDdkMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFxQztnQkFDckQsQ0FBQyxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLENBQUMsT0FBTyxFQUFFLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QixDQUFDLE9BQU8sRUFBRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsU0FBUyxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqQyxDQUFDLFdBQVcsRUFBRSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNyQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNEO0FBSUQsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0FBaUI3QixNQUFNLE9BQU8sY0FBYztJQWYzQjtRQWdCQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsQ0FBQyxDQUFDO0tBQ3RFOzhHQUhZLGNBQWM7a0dBQWQsY0FBYyx5TUFGZixDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLDRJQVZ2RTs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSTFCLGNBQWM7a0JBZjFCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0LCBFZmZlY3RBdHRyaWJ1dGUgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBVbmlmb3JtIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgTmd0cEVmZmVjdEhvc3REaXJlY3RpdmUsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmNvbnN0IFRpbHRTaGlmdFNoYWRlciA9IHtcblx0ZnJhZ21lbnRTaGFkZXI6IC8qIGxhbmd1YWdlPWdsc2wgZ2xzbCAqLyBgXG5cbiAgICAvLyBvcmlnaW5hbCBzaGFkZXIgYnkgRXZhbiBXYWxsYWNlXG5cbiAgICAjZGVmaW5lIE1BWF9JVEVSQVRJT05TIDEwMFxuXG4gICAgdW5pZm9ybSBmbG9hdCBibHVyO1xuICAgIHVuaWZvcm0gZmxvYXQgdGFwZXI7XG4gICAgdW5pZm9ybSB2ZWMyIHN0YXJ0O1xuICAgIHVuaWZvcm0gdmVjMiBlbmQ7XG4gICAgdW5pZm9ybSB2ZWMyIGRpcmVjdGlvbjtcbiAgICB1bmlmb3JtIGludCBzYW1wbGVzO1xuXG4gICAgZmxvYXQgcmFuZG9tKHZlYzMgc2NhbGUsIGZsb2F0IHNlZWQpIHtcbiAgICAgICAgLyogdXNlIHRoZSBmcmFnbWVudCBwb3NpdGlvbiBmb3IgYSBkaWZmZXJlbnQgc2VlZCBwZXItcGl4ZWwgKi9cbiAgICAgICAgcmV0dXJuIGZyYWN0KHNpbihkb3QoZ2xfRnJhZ0Nvb3JkLnh5eiArIHNlZWQsIHNjYWxlKSkgKiA0Mzc1OC41NDUzICsgc2VlZCk7XG4gICAgfVxuXG4gICAgdm9pZCBtYWluSW1hZ2UoY29uc3QgaW4gdmVjNCBpbnB1dENvbG9yLCBjb25zdCBpbiB2ZWMyIHV2LCBvdXQgdmVjNCBvdXRwdXRDb2xvcikge1xuICAgICAgICB2ZWM0IGNvbG9yID0gdmVjNCgwLjApO1xuICAgICAgICBmbG9hdCB0b3RhbCA9IDAuMDtcbiAgICAgICAgdmVjMiBzdGFydFBpeGVsID0gdmVjMihzdGFydC54ICogcmVzb2x1dGlvbi54LCBzdGFydC55ICogcmVzb2x1dGlvbi55KTtcbiAgICAgICAgdmVjMiBlbmRQaXhlbCA9IHZlYzIoZW5kLnggKiByZXNvbHV0aW9uLngsIGVuZC55ICogcmVzb2x1dGlvbi55KTtcbiAgICAgICAgZmxvYXQgZl9zYW1wbGVzID0gZmxvYXQoc2FtcGxlcyk7XG4gICAgICAgIGZsb2F0IGhhbGZfc2FtcGxlcyA9IGZfc2FtcGxlcyAvIDIuMDtcblxuICAgICAgICAvLyB1c2Ugc2NyZWVuIGRpYWdvbmFsIHRvIG5vcm1hbGl6ZSBibHVyIHJhZGlpXG4gICAgICAgIGZsb2F0IG1heFNjcmVlbkRpc3RhbmNlID0gZGlzdGFuY2UodmVjMigwLjApLCByZXNvbHV0aW9uKTsgLy8gZGlhZ29uYWwgZGlzdGFuY2VcbiAgICAgICAgZmxvYXQgZ3JhZGllbnRSYWRpdXMgPSB0YXBlciAqIChtYXhTY3JlZW5EaXN0YW5jZSk7XG4gICAgICAgIGZsb2F0IGJsdXJSYWRpdXMgPSBibHVyICogKG1heFNjcmVlbkRpc3RhbmNlIC8gMTYuMCk7XG5cbiAgICAgICAgLyogcmFuZG9taXplIHRoZSBsb29rdXAgdmFsdWVzIHRvIGhpZGUgdGhlIGZpeGVkIG51bWJlciBvZiBzYW1wbGVzICovXG4gICAgICAgIGZsb2F0IG9mZnNldCA9IHJhbmRvbSh2ZWMzKDEyLjk4OTgsIDc4LjIzMywgMTUxLjcxODIpLCAwLjApO1xuICAgICAgICB2ZWMyIG5vcm1hbCA9IG5vcm1hbGl6ZSh2ZWMyKHN0YXJ0UGl4ZWwueSAtIGVuZFBpeGVsLnksIGVuZFBpeGVsLnggLSBzdGFydFBpeGVsLngpKTtcbiAgICAgICAgZmxvYXQgcmFkaXVzID0gc21vb3Roc3RlcCgwLjAsIDEuMCwgYWJzKGRvdCh1diAqIHJlc29sdXRpb24gLSBzdGFydFBpeGVsLCBub3JtYWwpKSAvIGdyYWRpZW50UmFkaXVzKSAqIGJsdXJSYWRpdXM7XG5cbiAgICAgICAgI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBNQVhfSVRFUkFUSU9OUzsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoaSA+PSBzYW1wbGVzKSB7IGJyZWFrOyB9IC8vIHJldHVybiBlYXJseSBpZiBvdmVyIHNhbXBsZSBjb3VudFxuICAgICAgICAgICAgZmxvYXQgZl9pID0gZmxvYXQoaSk7XG4gICAgICAgICAgICBmbG9hdCBzX2kgPSAtaGFsZl9zYW1wbGVzICsgZl9pO1xuICAgICAgICAgICAgZmxvYXQgcGVyY2VudCA9IChzX2kgKyBvZmZzZXQgLSAwLjUpIC8gaGFsZl9zYW1wbGVzO1xuICAgICAgICAgICAgZmxvYXQgd2VpZ2h0ID0gMS4wIC0gYWJzKHBlcmNlbnQpO1xuICAgICAgICAgICAgdmVjNCBzYW1wbGVfaSA9IHRleHR1cmUyRChpbnB1dEJ1ZmZlciwgdXYgKyBub3JtYWxpemUoZGlyZWN0aW9uKSAvIHJlc29sdXRpb24gKiBwZXJjZW50ICogcmFkaXVzKTtcbiAgICAgICAgICAgIC8qIHN3aXRjaCB0byBwcmUtbXVsdGlwbGllZCBhbHBoYSB0byBjb3JyZWN0bHkgYmx1ciB0cmFuc3BhcmVudCBpbWFnZXMgKi9cbiAgICAgICAgICAgIHNhbXBsZV9pLnJnYiAqPSBzYW1wbGVfaS5hO1xuICAgICAgICAgICAgY29sb3IgKz0gc2FtcGxlX2kgKiB3ZWlnaHQ7XG4gICAgICAgICAgICB0b3RhbCArPSB3ZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblxuICAgICAgICBvdXRwdXRDb2xvciA9IGNvbG9yIC8gdG90YWw7XG5cbiAgICAgICAgLyogc3dpdGNoIGJhY2sgZnJvbSBwcmUtbXVsdGlwbGllZCBhbHBoYSAqL1xuICAgICAgICBvdXRwdXRDb2xvci5yZ2IgLz0gb3V0cHV0Q29sb3IuYSArIDAuMDAwMDE7XG4gICAgfVxuICAgIGAsXG59O1xuXG5leHBvcnQgY2xhc3MgVGlsdFNoaWZ0MkVmZmVjdCBleHRlbmRzIEVmZmVjdCB7XG5cdGNvbnN0cnVjdG9yKHtcblx0XHRibGVuZEZ1bmN0aW9uID0gQmxlbmRGdW5jdGlvbi5OT1JNQUwsXG5cdFx0Ymx1ciA9IDAuMTUsIC8vIFswLCAxXSwgY2FuIGdvIGJleW9uZCAxIGZvciBleHRyYVxuXHRcdHRhcGVyID0gMC41LCAvLyBbMCwgMV0sIGNhbiBnbyBiZXlvbmQgMSBmb3IgZXh0cmFcblx0XHRzdGFydCA9IFswLjUsIDAuMF0sIC8vIFswLDFdIHBlcmNlbnRhZ2UgeCx5IG9mIHNjcmVlbnNwYWNlXG5cdFx0ZW5kID0gWzAuNSwgMS4wXSwgLy8gWzAsMV0gcGVyY2VudGFnZSB4LHkgb2Ygc2NyZWVuc3BhY2Vcblx0XHRzYW1wbGVzID0gMTAuMCwgLy8gbnVtYmVyIG9mIGJsdXIgc2FtcGxlc1xuXHRcdGRpcmVjdGlvbiA9IFsxLCAxXSwgLy8gZGlyZWN0aW9uIG9mIGJsdXJcblx0fSA9IHt9KSB7XG5cdFx0c3VwZXIoJ1RpbHRTaGlmdEVmZmVjdCcsIFRpbHRTaGlmdFNoYWRlci5mcmFnbWVudFNoYWRlciwge1xuXHRcdFx0YmxlbmRGdW5jdGlvbixcblx0XHRcdGF0dHJpYnV0ZXM6IEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTixcblx0XHRcdHVuaWZvcm1zOiBuZXcgTWFwPHN0cmluZywgVW5pZm9ybTxudW1iZXIgfCBudW1iZXJbXT4+KFtcblx0XHRcdFx0WydibHVyJywgbmV3IFVuaWZvcm0oYmx1cildLFxuXHRcdFx0XHRbJ3RhcGVyJywgbmV3IFVuaWZvcm0odGFwZXIpXSxcblx0XHRcdFx0WydzdGFydCcsIG5ldyBVbmlmb3JtKHN0YXJ0KV0sXG5cdFx0XHRcdFsnZW5kJywgbmV3IFVuaWZvcm0oZW5kKV0sXG5cdFx0XHRcdFsnc2FtcGxlcycsIG5ldyBVbmlmb3JtKHNhbXBsZXMpXSxcblx0XHRcdFx0WydkaXJlY3Rpb24nLCBuZXcgVW5pZm9ybShkaXJlY3Rpb24pXSxcblx0XHRcdF0pLFxuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCB0eXBlIFRpbHRTaGlmdDJFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFRpbHRTaGlmdDJFZmZlY3Q+WzBdPj47XG5cbmV4dGVuZCh7IFRpbHRTaGlmdDJFZmZlY3QgfSk7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtdGlsdC1zaGlmdDInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtdGlsdC1zaGlmdDItZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtdGlsdC1zaGlmdDItZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbTmd0cEVmZmVjdEhvc3REaXJlY3RpdmVdLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBUaWx0U2hpZnQyIHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VGlsdFNoaWZ0MkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xufVxuIl19
@@ -6,7 +6,7 @@ import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaul
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../effect";
8
8
  const WaterShader = {
9
- fragmentShader: `
9
+ fragmentShader: /* language=glsl glsl */ `
10
10
  uniform float factor;
11
11
  void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
12
12
  vec2 vUv = uv;
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
61
61
  providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],
62
62
  }]
63
63
  }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy93YXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFbEgsTUFBTSxXQUFXLEdBQUc7SUFDbkIsY0FBYyxFQUFFOzs7Ozs7Ozs7Ozs7SUFZYjtDQUNILENBQUM7QUFFRixNQUFNLE9BQU8sV0FBWSxTQUFRLE1BQU07SUFDdEMsWUFBWSxFQUFFLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFO1FBQ3BFLEtBQUssQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLGNBQWMsRUFBRTtZQUNoRCxhQUFhO1lBQ2IsVUFBVSxFQUFFLGVBQWUsQ0FBQyxXQUFXO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBcUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEYsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNEO0FBSUQsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztBQWlCeEIsTUFBTSxPQUFPLFNBQVM7SUFmdEI7UUFnQkMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQStDLENBQUMsQ0FBQztLQUNqRTs4R0FIWSxTQUFTO2tHQUFULFNBQVMsbU1BRlYsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyw0SUFWdkU7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUkxQixTQUFTO2tCQWZyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDekMsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBFZmZlY3QsIEVmZmVjdEF0dHJpYnV0ZSB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IFVuaWZvcm0gfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlLCBOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuY29uc3QgV2F0ZXJTaGFkZXIgPSB7XG5cdGZyYWdtZW50U2hhZGVyOiBgXG4gIHVuaWZvcm0gZmxvYXQgZmFjdG9yO1xuICB2b2lkIG1haW5JbWFnZShjb25zdCBpbiB2ZWM0IGlucHV0Q29sb3IsIGNvbnN0IGluIHZlYzIgdXYsIG91dCB2ZWM0IG91dHB1dENvbG9yKSB7XG4gICAgdmVjMiB2VXYgPSB1djtcbiAgICBmbG9hdCBmcmVxdWVuY3kgPSA2LjAgKiBmYWN0b3I7XG4gICAgZmxvYXQgYW1wbGl0dWRlID0gMC4wMTUgKiBmYWN0b3I7XG4gICAgZmxvYXQgeCA9IHZVdi55ICogZnJlcXVlbmN5ICsgdGltZSAqIC43O1xuICAgIGZsb2F0IHkgPSB2VXYueCAqIGZyZXF1ZW5jeSArIHRpbWUgKiAuMztcbiAgICB2VXYueCArPSBjb3MoeCt5KSAqIGFtcGxpdHVkZSAqIGNvcyh5KTtcbiAgICB2VXYueSArPSBzaW4oeC15KSAqIGFtcGxpdHVkZSAqIGNvcyh5KTtcbiAgICB2ZWM0IHJnYmEgPSB0ZXh0dXJlMkQoaW5wdXRCdWZmZXIsIHZVdik7XG4gICAgb3V0cHV0Q29sb3IgPSByZ2JhO1xuICB9YCxcbn07XG5cbmV4cG9ydCBjbGFzcyBXYXRlckVmZmVjdCBleHRlbmRzIEVmZmVjdCB7XG5cdGNvbnN0cnVjdG9yKHsgYmxlbmRGdW5jdGlvbiA9IEJsZW5kRnVuY3Rpb24uTk9STUFMLCBmYWN0b3IgPSAwIH0gPSB7fSkge1xuXHRcdHN1cGVyKCdXYXRlckVmZmVjdCcsIFdhdGVyU2hhZGVyLmZyYWdtZW50U2hhZGVyLCB7XG5cdFx0XHRibGVuZEZ1bmN0aW9uLFxuXHRcdFx0YXR0cmlidXRlczogRWZmZWN0QXR0cmlidXRlLkNPTlZPTFVUSU9OLFxuXHRcdFx0dW5pZm9ybXM6IG5ldyBNYXA8c3RyaW5nLCBVbmlmb3JtPG51bWJlciB8IG51bWJlcltdPj4oW1snZmFjdG9yJywgbmV3IFVuaWZvcm0oZmFjdG9yKV1dKSxcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgdHlwZSBXYXRlckVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgV2F0ZXJFZmZlY3Q+WzBdPj47XG5cbmV4dGVuZCh7IFdhdGVyRWZmZWN0IH0pO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXdhdGVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXdhdGVyLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXdhdGVyLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW05ndHBFZmZlY3RIb3N0RGlyZWN0aXZlXSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zKHsgYmxlbmRGdW5jdGlvbjogQmxlbmRGdW5jdGlvbi5OT1JNQUwgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwV2F0ZXIge1xuXHRlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxXYXRlckVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xufVxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy93YXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFbEgsTUFBTSxXQUFXLEdBQUc7SUFDbkIsY0FBYyxFQUFFLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7SUFZdEM7Q0FDSCxDQUFDO0FBRUYsTUFBTSxPQUFPLFdBQVksU0FBUSxNQUFNO0lBQ3RDLFlBQVksRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRTtRQUNwRSxLQUFLLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxjQUFjLEVBQUU7WUFDaEQsYUFBYTtZQUNiLFVBQVUsRUFBRSxlQUFlLENBQUMsV0FBVztZQUN2QyxRQUFRLEVBQUUsSUFBSSxHQUFHLENBQXFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hGLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRDtBQUlELE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFpQnhCLE1BQU0sT0FBTyxTQUFTO0lBZnRCO1FBZ0JDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxDQUFDLENBQUM7S0FDakU7OEdBSFksU0FBUztrR0FBVCxTQUFTLG1NQUZWLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsNElBVnZFOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFJMUIsU0FBUztrQkFmckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0LCBFZmZlY3RBdHRyaWJ1dGUgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBVbmlmb3JtIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgTmd0cEVmZmVjdEhvc3REaXJlY3RpdmUsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmNvbnN0IFdhdGVyU2hhZGVyID0ge1xuXHRmcmFnbWVudFNoYWRlcjogLyogbGFuZ3VhZ2U9Z2xzbCBnbHNsICovIGBcbiAgdW5pZm9ybSBmbG9hdCBmYWN0b3I7XG4gIHZvaWQgbWFpbkltYWdlKGNvbnN0IGluIHZlYzQgaW5wdXRDb2xvciwgY29uc3QgaW4gdmVjMiB1diwgb3V0IHZlYzQgb3V0cHV0Q29sb3IpIHtcbiAgICB2ZWMyIHZVdiA9IHV2O1xuICAgIGZsb2F0IGZyZXF1ZW5jeSA9IDYuMCAqIGZhY3RvcjtcbiAgICBmbG9hdCBhbXBsaXR1ZGUgPSAwLjAxNSAqIGZhY3RvcjtcbiAgICBmbG9hdCB4ID0gdlV2LnkgKiBmcmVxdWVuY3kgKyB0aW1lICogLjc7XG4gICAgZmxvYXQgeSA9IHZVdi54ICogZnJlcXVlbmN5ICsgdGltZSAqIC4zO1xuICAgIHZVdi54ICs9IGNvcyh4K3kpICogYW1wbGl0dWRlICogY29zKHkpO1xuICAgIHZVdi55ICs9IHNpbih4LXkpICogYW1wbGl0dWRlICogY29zKHkpO1xuICAgIHZlYzQgcmdiYSA9IHRleHR1cmUyRChpbnB1dEJ1ZmZlciwgdlV2KTtcbiAgICBvdXRwdXRDb2xvciA9IHJnYmE7XG4gIH1gLFxufTtcblxuZXhwb3J0IGNsYXNzIFdhdGVyRWZmZWN0IGV4dGVuZHMgRWZmZWN0IHtcblx0Y29uc3RydWN0b3IoeyBibGVuZEZ1bmN0aW9uID0gQmxlbmRGdW5jdGlvbi5OT1JNQUwsIGZhY3RvciA9IDAgfSA9IHt9KSB7XG5cdFx0c3VwZXIoJ1dhdGVyRWZmZWN0JywgV2F0ZXJTaGFkZXIuZnJhZ21lbnRTaGFkZXIsIHtcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRhdHRyaWJ1dGVzOiBFZmZlY3RBdHRyaWJ1dGUuQ09OVk9MVVRJT04sXG5cdFx0XHR1bmlmb3JtczogbmV3IE1hcDxzdHJpbmcsIFVuaWZvcm08bnVtYmVyIHwgbnVtYmVyW10+PihbWydmYWN0b3InLCBuZXcgVW5pZm9ybShmYWN0b3IpXV0pLFxuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCB0eXBlIFdhdGVyRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBXYXRlckVmZmVjdD5bMF0+PjtcblxuZXh0ZW5kKHsgV2F0ZXJFZmZlY3QgfSk7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtd2F0ZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtd2F0ZXItZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3Qtd2F0ZXItZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbTmd0cEVmZmVjdEhvc3REaXJlY3RpdmVdLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBXYXRlciB7XG5cdGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PFdhdGVyRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG59XG4iXX0=
@@ -235,7 +235,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
235
235
  }]
236
236
  }], ctorParameters: () => [] });
237
237
 
238
- const fragment = `
238
+ const fragment = /* language=glsl glsl */ `
239
239
  uniform sampler2D uCharacters;
240
240
  uniform float uCharactersCount;
241
241
  uniform float uCellSize;
@@ -1403,7 +1403,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
1403
1403
  }] });
1404
1404
 
1405
1405
  const TiltShiftShader = {
1406
- fragmentShader: `
1406
+ fragmentShader: /* language=glsl glsl */ `
1407
1407
 
1408
1408
  // original shader by Evan Wallace
1409
1409
 
@@ -1549,7 +1549,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
1549
1549
  }] });
1550
1550
 
1551
1551
  const WaterShader = {
1552
- fragmentShader: `
1552
+ fragmentShader: /* language=glsl glsl */ `
1553
1553
  uniform float factor;
1554
1554
  void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
1555
1555
  vec2 vUv = uv;
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-postprocessing.mjs","sources":["../../../../libs/postprocessing/src/lib/effect.ts","../../../../libs/postprocessing/src/lib/effect-composer.ts","../../../../libs/postprocessing/src/lib/effects/ascii.ts","../../../../libs/postprocessing/src/lib/effects/bloom.ts","../../../../libs/postprocessing/src/lib/effects/brightness-contrast.ts","../../../../libs/postprocessing/src/lib/effects/chromatic-abberation.ts","../../../../libs/postprocessing/src/lib/effects/color-average.ts","../../../../libs/postprocessing/src/lib/effects/color-depth.ts","../../../../libs/postprocessing/src/lib/effects/depth.ts","../../../../libs/postprocessing/src/lib/effects/depth-of-field.ts","../../../../libs/postprocessing/src/lib/effects/dot-screen.ts","../../../../libs/postprocessing/src/lib/effects/fxaa.ts","../../../../libs/postprocessing/src/lib/effects/glitch.ts","../../../../libs/postprocessing/src/lib/effects/god-rays.ts","../../../../libs/postprocessing/src/lib/effects/grid.ts","../../../../libs/postprocessing/src/lib/effects/hue-saturation.ts","../../../../libs/postprocessing/src/lib/effects/lens-flare.ts","../../../../libs/postprocessing/src/lib/effects/lut.ts","../../../../libs/postprocessing/src/lib/effects/noise.ts","../../../../libs/postprocessing/src/lib/effects/outline.ts","../../../../libs/postprocessing/src/lib/effects/pixelation.ts","../../../../libs/postprocessing/src/lib/effects/scanline.ts","../../../../libs/postprocessing/src/lib/effects/sepia.ts","../../../../libs/postprocessing/src/lib/effects/shock-wave.ts","../../../../libs/postprocessing/src/lib/effects/smaa.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift-2.ts","../../../../libs/postprocessing/src/lib/effects/vignette.ts","../../../../libs/postprocessing/src/lib/effects/water.ts","../../../../libs/postprocessing/src/angular-three-postprocessing.ts"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, inject, input } from '@angular/core';\nimport { injectStore } from 'angular-three';\nimport { createNoopInjectionToken } from 'ngxtension/create-injection-token';\nimport { BlendFunction } from 'postprocessing';\n\nexport const [injectDefaultEffectOptions, provideDefaultEffectOptions] = createNoopInjectionToken<{\n\tblendFunction?: BlendFunction;\n\topacity?: number;\n}>('Default Effect options');\n\n@Component({\n\tselector: 'ngtp-effect-blend-mode',\n\tstandalone: true,\n\ttemplate: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpEffectBlendMode {\n\teffect = inject(NgtpEffect, { optional: true });\n}\n\n@Directive({ standalone: true })\nexport class NgtpEffect {\n\tdefaultEffectOptions = injectDefaultEffectOptions({ optional: true });\n\n\tblendFunction = input(this.defaultEffectOptions?.blendFunction);\n\topacity = input(this.defaultEffectOptions?.opacity);\n\n\tprivate store = injectStore();\n\tcamera = this.store.select('camera');\n\tinvalidate = this.store.select('invalidate');\n}\n\nexport const NgtpEffectHostDirective = { directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] };\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInjector,\n\tafterNextRender,\n\tcomputed,\n\tinject,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport { extend, getLocalState, injectBeforeRender, injectStore, pick } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport {\n\tDepthDownsamplingPass,\n\tEffect,\n\tEffectAttribute,\n\tEffectComposer,\n\tEffectPass,\n\tNormalPass,\n\tPass,\n\tRenderPass,\n} from 'postprocessing';\nimport { Camera, Group, HalfFloatType, NoToneMapping, Scene, TextureDataType } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\n\nexport interface NgtpEffectComposerOptions {\n\tenabled: boolean;\n\tdepthBuffer?: boolean;\n\t/** Only used for SSGI currently, leave it disabled for everything else unless it's needed */\n\tenableNormalPass?: boolean;\n\tstencilBuffer?: boolean;\n\tautoClear: boolean;\n\tresolutionScale?: number;\n\tmultisampling: number;\n\tframeBufferType: TextureDataType;\n\trenderPriority: number;\n\tcamera?: Camera;\n\tscene?: Scene;\n}\n\nconst defaultOptions: NgtpEffectComposerOptions = {\n\tenabled: true,\n\trenderPriority: 1,\n\tautoClear: true,\n\tmultisampling: 8,\n\tframeBufferType: HalfFloatType,\n};\n\nfunction isConvolution(effect: Effect) {\n\treturn (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION;\n}\n\n@Component({\n\tselector: 'ngtp-effect-composer',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpEffectComposer {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate injector = inject(Injector);\n\tprivate autoEffect = injectAutoEffect();\n\tprivate store = injectStore();\n\tprivate size = this.store.select('size');\n\tprivate gl = this.store.select('gl');\n\tprivate defaultScene = this.store.select('scene');\n\tprivate defaultCamera = this.store.select('camera');\n\n\tdepthBuffer = pick(this.options, 'depthBuffer');\n\tstencilBuffer = pick(this.options, 'stencilBuffer');\n\tmultisampling = pick(this.options, 'multisampling');\n\tframeBufferType = pick(this.options, 'frameBufferType');\n\tscene = computed(() => this.options().scene ?? this.defaultScene());\n\tcamera = computed(() => this.options().camera ?? this.defaultCamera());\n\tenableNormalPass = pick(this.options, 'enableNormalPass');\n\tresolutionScale = pick(this.options, 'resolutionScale');\n\n\tgroupRef = viewChild.required<ElementRef<Group>>('group');\n\n\tcomposerData = computed(() => {\n\t\tconst webGL2Available = isWebGL2Available();\n\t\tconst [\n\t\t\tgl,\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling,\n\t\t\tframeBufferType,\n\t\t\tenableNormalPass,\n\t\t\tresolutionScale,\n\t\t] = [\n\t\t\tthis.gl(),\n\t\t\tthis.scene(),\n\t\t\tthis.camera(),\n\t\t\tthis.depthBuffer(),\n\t\t\tthis.stencilBuffer(),\n\t\t\tthis.multisampling(),\n\t\t\tthis.frameBufferType(),\n\t\t\tthis.enableNormalPass(),\n\t\t\tthis.resolutionScale(),\n\t\t];\n\n\t\t// initialize composer\n\t\tconst composer = new EffectComposer(gl, {\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n\t\t\tframeBufferType,\n\t\t});\n\n\t\t// add render pass\n\t\tcomposer.addPass(new RenderPass(scene, camera));\n\n\t\t// create normal pass\n\t\tlet downSamplingPass = null;\n\t\tlet normalPass = null;\n\t\tif (enableNormalPass) {\n\t\t\tnormalPass = new NormalPass(scene, camera);\n\t\t\tnormalPass.enabled = false;\n\t\t\tcomposer.addPass(normalPass);\n\t\t\tif (resolutionScale !== undefined && webGL2Available) {\n\t\t\t\tdownSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n\t\t\t\tdownSamplingPass.enabled = false;\n\t\t\t\tcomposer.addPass(downSamplingPass);\n\t\t\t}\n\t\t}\n\n\t\treturn { composer, normalPass, downSamplingPass };\n\t});\n\n\tconstructor() {\n\t\textend({ Group });\n\n\t\tafterNextRender(() => {\n\t\t\tthis.disableToneMapping();\n\t\t\tthis.setComposerSize();\n\t\t\tthis.updatePasses();\n\n\t\t\tinjectBeforeRender(\n\t\t\t\t({ delta }) => {\n\t\t\t\t\tconst [{ composer }, { enabled, autoClear, stencilBuffer }, gl] = [\n\t\t\t\t\t\tthis.composerData(),\n\t\t\t\t\t\tthis.options(),\n\t\t\t\t\t\tthis.gl(),\n\t\t\t\t\t];\n\n\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\tconst currentAutoClear = gl.autoClear;\n\t\t\t\t\t\tgl.autoClear = autoClear;\n\t\t\t\t\t\tif (stencilBuffer && !autoClear) gl.clearStencil();\n\t\t\t\t\t\tcomposer.render(delta);\n\t\t\t\t\t\tgl.autoClear = currentAutoClear;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ injector: this.injector, priority: this.options().enabled ? this.options().renderPriority : 0 },\n\t\t\t);\n\t\t});\n\t}\n\n\t// NOTE: Disable tone mapping because threejs disallows tonemapping on render targets\n\tprivate disableToneMapping() {\n\t\tthis.autoEffect(() => {\n\t\t\tconst gl = this.gl();\n\t\t\tconst currentTonemapping = gl.toneMapping;\n\t\t\tgl.toneMapping = NoToneMapping;\n\t\t\treturn () => {\n\t\t\t\tgl.toneMapping = currentTonemapping;\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate setComposerSize() {\n\t\tthis.autoEffect(() => {\n\t\t\tconst [{ composer }, { width, height }] = [this.composerData(), this.size()];\n\t\t\tif (composer) {\n\t\t\t\tcomposer.setSize(width, height);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate updatePasses() {\n\t\tthis.autoEffect(() => {\n\t\t\tconst [group, { composer, normalPass, downSamplingPass }, camera] = [\n\t\t\t\tthis.groupRef(),\n\t\t\t\tthis.composerData(),\n\t\t\t\tthis.camera(),\n\t\t\t];\n\n\t\t\tconst passes: Pass[] = [];\n\n\t\t\tif (group.nativeElement && composer) {\n\t\t\t\tconst localState = getLocalState(group.nativeElement);\n\t\t\t\tif (!localState) return;\n\n\t\t\t\tconst children = localState.nonObjects();\n\t\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\t\tconst child = children[i];\n\t\t\t\t\tif (child instanceof Effect) {\n\t\t\t\t\t\tconst effects: Effect[] = [child];\n\n\t\t\t\t\t\tif (!isConvolution(child)) {\n\t\t\t\t\t\t\tlet next: unknown = null;\n\t\t\t\t\t\t\twhile ((next = children[i + 1]) instanceof Effect) {\n\t\t\t\t\t\t\t\tif (isConvolution(next)) break;\n\t\t\t\t\t\t\t\teffects.push(next as Effect);\n\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst pass = new EffectPass(camera, ...effects);\n\t\t\t\t\t\tpasses.push(pass);\n\t\t\t\t\t} else if (child instanceof Pass) {\n\t\t\t\t\t\tpasses.push(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const pass of passes) {\n\t\t\t\t\tcomposer.addPass(pass);\n\t\t\t\t}\n\n\t\t\t\tif (normalPass) normalPass.enabled = true;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = true;\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\tfor (const pass of passes) composer?.removePass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = false;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = false;\n\t\t\t};\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { Effect } from 'postprocessing';\nimport { CanvasTexture, Color, NearestFilter, RepeatWrapping, Texture, Uniform } from 'three';\n\nconst fragment = `\nuniform sampler2D uCharacters;\nuniform float uCharactersCount;\nuniform float uCellSize;\nuniform bool uInvert;\nuniform vec3 uColor;\n\nconst vec2 SIZE = vec2(16.);\n\nvec3 greyscale(vec3 color, float strength) {\n float g = dot(color, vec3(0.299, 0.587, 0.114));\n return mix(color, vec3(g), strength);\n}\n\nvec3 greyscale(vec3 color) {\n return greyscale(color, 1.0);\n}\n\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 cell = resolution / uCellSize;\n vec2 grid = 1.0 / cell;\n vec2 pixelizedUV = grid * (0.5 + floor(uv / grid));\n vec4 pixelized = texture2D(inputBuffer, pixelizedUV);\n float greyscaled = greyscale(pixelized.rgb).r;\n\n if (uInvert) {\n greyscaled = 1.0 - greyscaled;\n }\n\n float characterIndex = floor((uCharactersCount - 1.0) * greyscaled);\n vec2 characterPosition = vec2(mod(characterIndex, SIZE.x), floor(characterIndex / SIZE.y));\n vec2 offset = vec2(characterPosition.x, -characterPosition.y) / SIZE;\n vec2 charUV = mod(uv * (cell / SIZE), 1.0 / SIZE) - vec2(0., 1.0 / SIZE) + offset;\n vec4 asciiCharacter = texture2D(uCharacters, charUV);\n\n asciiCharacter.rgb = uColor * asciiCharacter.r;\n asciiCharacter.a = pixelized.a;\n outputColor = asciiCharacter;\n}\n`;\n\ninterface ASCIIEffectOptions {\n\tfont?: string;\n\tcharacters?: string;\n\tfontSize?: number;\n\tcellSize?: number;\n\tcolor?: string;\n\tinvert?: boolean;\n}\n\nexport class ASCIIEffect extends Effect {\n\tconstructor({\n\t\tfont = 'arial',\n\t\tcharacters = ` .:,'-^=*+?!|0#X%WM@`,\n\t\tfontSize = 54,\n\t\tcellSize = 16,\n\t\tcolor = '#ffffff',\n\t\tinvert = false,\n\t}: ASCIIEffectOptions = {}) {\n\t\tconst uniforms = new Map<string, Uniform>([\n\t\t\t['uCharacters', new Uniform(new Texture())],\n\t\t\t['uCellSize', new Uniform(cellSize)],\n\t\t\t['uCharactersCount', new Uniform(characters.length)],\n\t\t\t['uColor', new Uniform(new Color(color))],\n\t\t\t['uInvert', new Uniform(invert)],\n\t\t]);\n\n\t\tsuper('ASCIIEffect', fragment, { uniforms });\n\n\t\tconst charactersTextureUniform = this.uniforms.get('uCharacters');\n\n\t\tif (charactersTextureUniform) {\n\t\t\tcharactersTextureUniform.value = this.createCharactersTexture(characters, font, fontSize);\n\t\t}\n\t}\n\n\t/** Draws the characters on a Canvas and returns a texture */\n\tpublic createCharactersTexture(characters: string, font: string, fontSize: number): Texture {\n\t\tconst canvas = document.createElement('canvas');\n\t\tconst SIZE = 1024;\n\t\tconst MAX_PER_ROW = 16;\n\t\tconst CELL = SIZE / MAX_PER_ROW;\n\n\t\tcanvas.width = canvas.height = SIZE;\n\t\tconst texture = new CanvasTexture(canvas, undefined, RepeatWrapping, RepeatWrapping, NearestFilter, NearestFilter);\n\t\tconst context = canvas.getContext('2d');\n\n\t\tif (!context) {\n\t\t\tthrow new Error('Context not available');\n\t\t}\n\n\t\tcontext.clearRect(0, 0, SIZE, SIZE);\n\t\tcontext.font = `${fontSize}px ${font}`;\n\t\tcontext.textAlign = 'center';\n\t\tcontext.textBaseline = 'middle';\n\t\tcontext.fillStyle = '#fff';\n\n\t\tfor (let i = 0; i < characters.length; i++) {\n\t\t\tconst char = characters[i];\n\t\t\tconst x = i % MAX_PER_ROW;\n\t\t\tconst y = Math.floor(i / MAX_PER_ROW);\n\t\t\tcontext.fillText(char, x * CELL + CELL / 2, y * CELL + CELL / 2);\n\t\t}\n\n\t\ttexture.needsUpdate = true;\n\t\treturn texture;\n\t}\n}\n\nconst defaultOptions: ASCIIEffectOptions = {\n\tfont: 'arial',\n\tcharacters: ` .:,'-^=*+?!|0#X%WM@`,\n\tfontSize: 54,\n\tcellSize: 16,\n\tcolor: '#ffffff',\n\tinvert: false,\n};\n\n@Component({\n\tselector: 'ngtp-ascii',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpASCII {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\teffect = computed(() => new ASCIIEffect(this.options()));\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect, BloomEffectOptions } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nextend({ BloomEffect });\n\n@Component({\n\tselector: 'ngtp-bloom',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n})\nexport class NgtpBloom {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<BloomEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ BrightnessContrastEffect });\n\nexport type BrightnessEffectOptions = NonNullable<ConstructorParameters<typeof BrightnessContrastEffect>[0]>;\n\n@Component({\n\tselector: 'ngtp-brightness-contrast',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpBrightnessContrast {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<BrightnessEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ChromaticAberrationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ ChromaticAberrationEffect });\n\nexport type ChromaticAberrationEffectOptions = Partial<\n\tNonNullable<ConstructorParameters<typeof ChromaticAberrationEffect>[0]>\n>;\n\n@Component({\n\tselector: 'ngtp-chromatic-aberration',\n\ttemplate: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpChromaticAberration {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<ChromaticAberrationEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ColorAverageEffect } from 'postprocessing';\n\nextend({ ColorAverageEffect });\n\n@Component({\n\tselector: 'ngtp-color-average',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpColorAverage {\n\toptions = input(\n\t\t{ blendFunction: BlendFunction.NORMAL },\n\t\t{ transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) },\n\t);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ ColorDepthEffect });\n\nexport type ColorDepthEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ColorDepthEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-color-depth',\n\ttemplate: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpColorDepth {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<ColorDepthEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ DepthEffect });\n\nexport type DepthEffectOptions = Partial<NonNullable<ConstructorParameters<typeof DepthEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-depth',\n\ttemplate: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpDepth {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<DepthEffectOptions, 'blendFunction'>);\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tafterNextRender,\n\tcomputed,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtAnyRecord, NgtArgs, NgtVector3 } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { DepthOfFieldEffect, MaskFunction } from 'postprocessing';\nimport { DepthPackingStrategies, Texture, Vector3 } from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\ntype DOFOptions = NonNullable<ConstructorParameters<typeof DepthOfFieldEffect>[1]> &\n\tPartial<{ target: NgtVector3; depthTexture: { texture: Texture; packing: DepthPackingStrategies } }>;\n\n@Component({\n\tselector: 'ngtp-depth-of-field',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpDepthOfField {\n\tprivate autoEffect = injectAutoEffect();\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\toptions = input({} as DOFOptions);\n\n\tprivate autoFocus = computed(() => this.options().target != null);\n\n\teffect = computed(() => {\n\t\tconst [camera, options, autoFocus] = [this.effectComposer.camera(), this.options(), this.autoFocus()];\n\n\t\tconst effect = new DepthOfFieldEffect(camera, options);\n\n\t\t// Creating a target enables autofocus, R3F will set via props\n\t\tif (autoFocus) effect.target = new Vector3();\n\t\t// Depth texture for depth picking with optional packing strategy\n\t\tif (options.depthTexture) {\n\t\t\teffect.setDepthTexture(options.depthTexture.texture, options.depthTexture.packing as DepthPackingStrategies);\n\t\t}\n\t\t// Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur\n\t\tconst maskPass = (effect as NgtAnyRecord)['maskPass'];\n\t\tmaskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;\n\n\t\treturn effect;\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst effect = this.effect();\n\t\t\t\treturn () => {\n\t\t\t\t\teffect.dispose();\n\t\t\t\t};\n\t\t\t});\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ DotScreenEffect });\n\nexport type DotScreenEffectOptions = Partial<NonNullable<ConstructorParameters<typeof DotScreenEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-dot-screen',\n\ttemplate: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpDotScreen {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<DotScreenEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { FXAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ FXAAEffect });\n\nexport type FXAAEffectOptions = Partial<NonNullable<ConstructorParameters<typeof FXAAEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-fxaa',\n\ttemplate: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpFXAA {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<FXAAEffectOptions, 'blendFunction'>);\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tafterNextRender,\n\tcomputed,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, NgtVector2, injectStore, pick, vector2 } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { GlitchEffect, GlitchMode } from 'postprocessing';\n\nexport type GlitchOptions = NonNullable<ConstructorParameters<typeof GlitchEffect>[0]> &\n\tPartial<{\n\t\tmode: GlitchMode;\n\t\tactive: boolean;\n\t\tdelay: NgtVector2;\n\t\tduration: NgtVector2;\n\t\tchromaticAberrationOffset: NgtVector2;\n\t\tstrength: NgtVector2;\n\t}>;\n\n@Component({\n\tselector: 'ngtp-glitch',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpGlitch {\n\tprivate autoEffect = injectAutoEffect();\n\tprivate store = injectStore();\n\tprivate invalidate = this.store.select('invalidate');\n\n\toptions = input({ active: true } as GlitchOptions, { transform: mergeInputs({ active: true }) });\n\n\tprivate active = pick(this.options, 'active');\n\tprivate mode = pick(this.options, 'mode');\n\n\tprivate delay = vector2(this.options, 'delay');\n\tprivate duration = vector2(this.options, 'duration');\n\tprivate chromaticAberrationOffset = vector2(this.options, 'chromaticAberrationOffset');\n\tprivate strength = vector2(this.options, 'strength');\n\n\teffect = computed(() => {\n\t\tconst [\n\t\t\t{ ratio, dtSize, columns, blendFunction, perturbationMap },\n\t\t\tdelay,\n\t\t\tduration,\n\t\t\tchromaticAberrationOffset,\n\t\t\tstrength,\n\t\t] = [this.options(), this.delay(), this.duration(), this.chromaticAberrationOffset(), this.strength()];\n\t\treturn new GlitchEffect({\n\t\t\tratio,\n\t\t\tdtSize,\n\t\t\tcolumns,\n\t\t\tblendFunction,\n\t\t\tperturbationMap,\n\t\t\tdelay,\n\t\t\tduration,\n\t\t\tchromaticAberrationOffset,\n\t\t\tstrength,\n\t\t});\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst effect = this.effect();\n\t\t\t\treturn () => effect.dispose();\n\t\t\t});\n\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst [effect, invalidate, mode, active] = [this.effect(), this.invalidate(), this.mode(), this.active()];\n\t\t\t\teffect.mode = active ? mode || GlitchMode.SPORADIC : GlitchMode.DISABLED;\n\t\t\t\tinvalidate();\n\t\t\t});\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tafterNextRender,\n\tcomputed,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, is } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { GodRaysEffect } from 'postprocessing';\nimport { Mesh, Points } from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\ntype GodRaysOptions = ConstructorParameters<typeof GodRaysEffect>[2] & {\n\tsun: Mesh | Points | ElementRef<Mesh | Points>;\n};\n\n@Component({\n\tselector: 'ngtp-god-rays',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpGodRays {\n\tprivate autoEffect = injectAutoEffect();\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\toptions = input({} as GodRaysOptions);\n\n\teffect = computed(() => {\n\t\tconst [camera, { sun, ...options }] = [this.effectComposer.camera(), this.options()];\n\t\treturn new GodRaysEffect(camera, is.ref(sun) ? sun.nativeElement : sun, options);\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst [sun, effect] = [this.options().sun, this.effect()];\n\t\t\t\teffect.lightSource = is.ref(sun) ? sun.nativeElement : sun;\n\t\t\t});\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tafterNextRender,\n\tcomputed,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, pick } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { GridEffect } from 'postprocessing';\n\ntype GridOptions = NonNullable<ConstructorParameters<typeof GridEffect>[0]> &\n\tPartial<{ size: { width: number; height: number } }>;\n\n@Component({\n\tselector: 'ngtp-grid',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpGrid {\n\tprivate autoEffect = injectAutoEffect();\n\n\toptions = input({} as GridOptions);\n\tprivate size = pick(this.options, 'size');\n\n\teffect = computed(() => {\n\t\tconst { size: _, ...options } = this.options();\n\t\treturn new GridEffect(options);\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst [size, effect] = [this.size(), this.effect()];\n\t\t\t\tif (size) {\n\t\t\t\t\teffect.setSize(size.width, size.height);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ HueSaturationEffect });\n\nexport type HueSaturationEffectOptions = Partial<NonNullable<ConstructorParameters<typeof HueSaturationEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-hue-saturation',\n\ttemplate: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpHueSaturation {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<HueSaturationEffectOptions, 'blendFunction'>);\n}\n","// Created by Anderson Mancini 2023\n// React Three Fiber Ultimate LensFlare\n\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tafterNextRender,\n\tcomputed,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, injectBeforeRender, injectStore } from 'angular-three';\nimport { easing } from 'maath';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, Effect } from 'postprocessing';\nimport { Color, Mesh, Texture, Uniform, Vector2, Vector3, WebGLRenderTarget, WebGLRenderer } from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\nconst LensFlareShader = {\n\tfragmentShader: /* language=glsl glsl */ `\n\n uniform float iTime;\n uniform vec2 lensPosition;\n uniform vec2 iResolution;\n uniform vec3 colorGain;\n uniform float starPoints;\n uniform float glareSize;\n uniform float flareSize;\n uniform float flareSpeed;\n uniform float flareShape;\n uniform float haloScale;\n uniform float opacity;\n uniform bool animated;\n uniform bool anamorphic;\n uniform bool enabled;\n uniform bool secondaryGhosts;\n uniform bool starBurst;\n uniform float ghostScale;\n uniform bool aditionalStreaks;\n uniform sampler2D lensDirtTexture;\n vec2 vxtC;\n\n float rndf(float n){return fract(sin(n) * 43758.5453123);}float niz(float p){float fl = floor(p);float fc = fract(p);return mix(rndf(fl),rndf(fl + 1.0), fc);}\n vec3 hsv2rgb(vec3 c){vec4 k = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);vec3 p = abs(fract(c.xxx + k.xyz) * 6.0 - k.www);return c.z * mix(k.xxx, clamp(p - k.xxx, 0.0, 1.0), c.y);}\n float satU(float x){return clamp(x, 0.,1.);}vec2 rtU(vec2 naz, float rtn){return vec2(cos(rtn) * naz.x + sin(rtn) * naz.y,cos(rtn) * naz.y - sin(rtn) * naz.x);}\n vec3 drwF(vec2 p, float intensity, float rnd, float speed, int id){float flhos = (1. / 32.) * float(id) * 0.1;float lingrad = distance(vec2(0.), p);float expg = 1. / exp(lingrad * (fract(rnd) * 0.66 + 0.33));vec3 qzTg = hsv2rgb(vec3( fract( (expg * 8.) + speed * flareSpeed + flhos), pow(1.-abs(expg*2.-1.), 0.45), 20.0 * expg * intensity));float internalStarPoints;if(anamorphic){internalStarPoints = 1.0;} else{internalStarPoints = starPoints;}float ams = length(p * flareShape * sin(internalStarPoints * atan(p.x, p.y)));float kJhg = pow(1.-satU(ams), ( anamorphic ? 100. : 12.));kJhg += satU(expg-0.9) * 3.;kJhg = pow(kJhg * expg, 8. + (1.-intensity) * 5.);if(flareSpeed > 0.0){return vec3(kJhg) * qzTg;} else{return vec3(kJhg) * flareSize * 15.;}}\n float ams2(vec3 a, vec3 b) { return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);}vec3 satU(vec3 x){return clamp(x, vec3(0.0), vec3(1.0));}\n float glR(vec2 naz, vec2 pos, float zsi){vec2 mni;if(animated){mni = rtU(naz-pos, iTime * 0.1);} else{mni = naz-pos;}float ang = atan(mni.y, mni.x) * (anamorphic ? 1.0 : starPoints);float ams2 = length(mni);ams2 = pow(ams2, .9);float f0 = 1.0/(length(naz-pos)*(1.0/zsi*16.0)+.2);return f0+f0*(sin((ang))*.2 +.3);}\n float sdHex(vec2 p){p = abs(p);vec2 q = vec2(p.x*2.0*0.5773503, p.y + p.x*0.5773503);return dot(step(q.xy,q.yx), 1.0-q.yx);}float fpow(float x, float k){return x > k ? pow((x-k)/(1.0-k),2.0) : 0.0;}\n vec3 rHx(vec2 naz, vec2 p, float s, vec3 col){naz -= p;if (abs(naz.x) < 0.2*s && abs(naz.y) < 0.2*s){return mix(vec3(0),mix(vec3(0),col,0.1 + fpow(length(naz/s),0.1)*10.0),smoothstep(0.0,0.1,sdHex(naz*20.0/s)));}return vec3(0);}\n vec3 mLs(vec2 naz, vec2 pos){vec2 mni = naz-pos;vec2 zxMp = naz*(length(naz));float ang = atan(mni.x,mni.y);float f0 = .3/(length(naz-pos)*16.0+1.0);f0 = f0*(sin(niz(sin(ang*3.9-(animated ? iTime : 0.0) * 0.3) * starPoints))*.2 );float f1 = max(0.01-pow(length(naz+1.2*pos),1.9),.0)*7.0;float f2 = max(.9/(10.0+32.0*pow(length(zxMp+0.99*pos),2.0)),.0)*0.35;float f22 = max(.9/(11.0+32.0*pow(length(zxMp+0.85*pos),2.0)),.0)*0.23;float f23 = max(.9/(12.0+32.0*pow(length(zxMp+0.95*pos),2.0)),.0)*0.6;vec2 ztX = mix(naz,zxMp, 0.1);float f4 = max(0.01-pow(length(ztX+0.4*pos),2.9),.0)*4.02;float f42 = max(0.0-pow(length(ztX+0.45*pos),2.9),.0)*4.1;float f43 = max(0.01-pow(length(ztX+0.5*pos),2.9),.0)*4.6;ztX = mix(naz,zxMp,-.4);float f5 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;float f52 = max(0.01-pow(length(ztX+0.2*pos),5.5),.0)*2.0;float f53 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;ztX = mix(naz,zxMp, 2.1);float f6 = max(0.01-pow(length(ztX-0.3*pos),1.61),.0)*3.159;float f62 = max(0.01-pow(length(ztX-0.325*pos),1.614),.0)*3.14;float f63 = max(0.01-pow(length(ztX-0.389*pos),1.623),.0)*3.12;vec3 c = vec3(glR(naz,pos, glareSize));vec2 prot;if(animated){prot = rtU(naz - pos, (iTime * 0.1));} else if(anamorphic){prot = rtU(naz - pos, 1.570796);} else {prot = naz - pos;}c += drwF(prot, (anamorphic ? flareSize * 10. : flareSize), 0.1, iTime, 1);c.r+=f1+f2+f4+f5+f6; c.g+=f1+f22+f42+f52+f62; c.b+=f1+f23+f43+f53+f63;c = c*1.3 * vec3(length(zxMp)+.09);c+=vec3(f0);return c;}\n vec3 cc(vec3 clr, float fct,float fct2){float w = clr.x+clr.y+clr.z;return mix(clr,vec3(w)*fct,w*fct2);}float rnd(vec2 p){float f = fract(sin(dot(p, vec2(12.1234, 72.8392) )*45123.2));return f;}float rnd(float w){float f = fract(sin(w)*1000.);return f;}\n float rShp(vec2 p, int N){float f;float a=atan(p.x,p.y)+.2;float b=6.28319/float(N);f=smoothstep(.5,.51, cos(floor(.5+a/b)*b-a)*length(p.xy)* 2.0 -ghostScale);return f;}\n vec3 drC(vec2 p, float zsi, float dCy, vec3 clr, vec3 clr2, float ams2, vec2 esom){float l = length(p + esom*(ams2*2.))+zsi/2.;float l2 = length(p + esom*(ams2*4.))+zsi/3.;float c = max(0.01-pow(length(p + esom*ams2), zsi*ghostScale), 0.0)*10.;float c1 = max(0.001-pow(l-0.3, 1./40.)+sin(l*20.), 0.0)*3.;float c2 = max(0.09/pow(length(p-esom*ams2/.5)*1., .95), 0.0)/20.;float s = max(0.02-pow(rShp(p*5. + esom*ams2*5. + dCy, 6) , 1.), 0.0)*1.5;clr = cos(vec3(0.44, .24, .2)*8. + ams2*4.)*0.5+.5;vec3 f = c*clr;f += c1*clr;f += c2*clr;f += s*clr;return f-0.01;}\n vec4 geLC(float x){return vec4(vec3(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(vec3(0., 0., 0.),vec3(0., 0., 0.), smoothstep(0.0, 0.063, x)),vec3(0., 0., 0.), smoothstep(0.063, 0.125, x)),vec3(0.0, 0., 0.), smoothstep(0.125, 0.188, x)),vec3(0.188, 0.131, 0.116), smoothstep(0.188, 0.227, x)),vec3(0.31, 0.204, 0.537), smoothstep(0.227, 0.251, x)),vec3(0.192, 0.106, 0.286), smoothstep(0.251, 0.314, x)),vec3(0.102, 0.008, 0.341), smoothstep(0.314, 0.392, x)),vec3(0.086, 0.0, 0.141), smoothstep(0.392, 0.502, x)),vec3(1.0, 0.31, 0.0), smoothstep(0.502, 0.604, x)),vec3(.1, 0.1, 0.1), smoothstep(0.604, 0.643, x)),vec3(1.0, 0.929, 0.0), smoothstep(0.643, 0.761, x)),vec3(1.0, 0.086, 0.424), smoothstep(0.761, 0.847, x)),vec3(1.0, 0.49, 0.0), smoothstep(0.847, 0.89, x)),vec3(0.945, 0.275, 0.475), smoothstep(0.89, 0.941, x)),vec3(0.251, 0.275, 0.796), smoothstep(0.941, 1.0, x))),1.0);}\n float diTN(vec2 p){vec2 f = fract(p);f = (f * f) * (3.0 - (2.0 * f));float n = dot(floor(p), vec2(1.0, 157.0));vec4 a = fract(sin(vec4(n + 0.0, n + 1.0, n + 157.0, n + 158.0)) * 43758.5453123);return mix(mix(a.x, a.y, f.x), mix(a.z, a.w, f.x), f.y);}\n float fbm(vec2 p){const mat2 m = mat2(0.80, -0.60, 0.60, 0.80);float f = 0.0;f += 0.5000*diTN(p); p = m*p*2.02;f += 0.2500*diTN(p); p = m*p*2.03;f += 0.1250*diTN(p); p = m*p*2.01;f += 0.0625*diTN(p);return f/0.9375;}\n vec4 geLS(vec2 p){vec2 pp = (p - vec2(0.5)) * 2.0;float a = atan(pp.y, pp.x);vec4 cp = vec4(sin(a * 1.0), length(pp), sin(a * 13.0), sin(a * 53.0));float d = sin(clamp(pow(length(vec2(0.5) - p) * 0.5 + haloScale /2., 5.0), 0.0, 1.0) * 3.14159);vec3 c = vec3(d) * vec3(fbm(cp.xy * 16.0) * fbm(cp.zw * 9.0) * max(max(max(max(0.5, sin(a * 1.0)), sin(a * 3.0) * 0.8), sin(a * 7.0) * 0.8), sin(a * 9.0) * 10.6));c *= vec3(mix(2.0, (sin(length(pp.xy) * 256.0) * 0.5) + 0.5, sin((clamp((length(pp.xy) - 0.875) / 0.1, 0.0, 1.0) + 0.0) * 2.0 * 3.14159) * 1.5) + 0.5) * 0.3275;return vec4(vec3(c * 1.0), d);}\n vec4 geLD(vec2 p){p.xy += vec2(fbm(p.yx * 3.0), fbm(p.yx * 2.0)) * 0.0825;vec3 o = vec3(mix(0.125, 0.25, max(max(smoothstep(0.1, 0.0, length(p - vec2(0.25))),smoothstep(0.4, 0.0, length(p - vec2(0.75)))),smoothstep(0.8, 0.0, length(p - vec2(0.875, 0.125))))));o += vec3(max(fbm(p * 1.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 2.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 4.0) - 0.5, 0.0)) * 0.25;o += vec3(max(fbm(p * 8.0) - 0.75, 0.0)) * 1.0;o += vec3(max(fbm(p * 16.0) - 0.75, 0.0)) * 0.75;o += vec3(max(fbm(p * 64.0) - 0.75, 0.0)) * 0.5;return vec4(clamp(o, vec3(0.15), vec3(1.0)), 1.0);}\n vec4 txL(sampler2D tex, vec2 xtC){if(((xtC.x < 0.) || (xtC.y < 0.)) || ((xtC.x > 1.) || (xtC.y > 1.))){return vec4(0.0);}else{return texture(tex, xtC); }}\n vec4 txD(sampler2D tex, vec2 xtC, vec2 dir, vec3 ditn) {return vec4(txL(tex, (xtC + (dir * ditn.r))).r,txL(tex, (xtC + (dir * ditn.g))).g,txL(tex, (xtC + (dir * ditn.b))).b,1.0);}\n vec4 strB(){vec2 aspXtc = vec2(1.0) - (((vxtC - vec2(0.5)) * vec2(1.0)) + vec2(0.5)); vec2 xtC = vec2(1.0) - vxtC; vec2 ghvc = (vec2(0.5) - xtC) * 0.3 - lensPosition; vec2 ghNm = normalize(ghvc * vec2(1.0)) * vec2(1.0);vec2 haloVec = normalize(ghvc) * 0.6;vec2 hlNm = ghNm * 0.6;vec2 texelSize = vec2(1.0) / vec2(iResolution.xy);vec3 ditn = vec3(-(texelSize.x * 1.5), 0.2, texelSize.x * 1.5);vec4 c = vec4(0.0);for (int i = 0; i < 8; i++) {vec2 offset = xtC + (ghvc * float(i));c += txD(lensDirtTexture, offset, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - offset) / length(vec2(0.5)))), 10.0);}vec2 uyTrz = xtC + hlNm; return (c * geLC((length(vec2(0.5) - aspXtc) / length(vec2(haloScale))))) +(txD(lensDirtTexture, uyTrz, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - uyTrz) / length(vec2(0.5)))), 10.0));}\n void mainImage(vec4 v,vec2 r,out vec4 i){vec2 g=r-.5;g.y*=iResolution.y/iResolution.x;vec2 l=lensPosition*.5;l.y*=iResolution.y/iResolution.x;vec3 f=mLs(g,l)*20.*colorGain/256.;if(aditionalStreaks){vec3 o=vec3(.9,.2,.1),p=vec3(.3,.1,.9);for(float n=0.;n<10.;n++)f+=drC(g,pow(rnd(n*2e3)*2.8,.1)+1.41,0.,o+n,p+n,rnd(n*20.)*3.+.2-.5,lensPosition);}if(secondaryGhosts){vec3 n=vec3(0);n+=rHx(g,-lensPosition*.25,ghostScale*1.4,vec3(.25,.35,0));n+=rHx(g,lensPosition*.25,ghostScale*.5,vec3(1,.5,.5));n+=rHx(g,lensPosition*.1,ghostScale*1.6,vec3(1));n+=rHx(g,lensPosition*1.8,ghostScale*2.,vec3(0,.5,.75));n+=rHx(g,lensPosition*1.25,ghostScale*.8,vec3(1,1,.5));n+=rHx(g,-lensPosition*1.25,ghostScale*5.,vec3(.5,.5,.25));n+=fpow(1.-abs(distance(lensPosition*.8,g)-.7),.985)*colorGain/2100.;f+=n;}if(starBurst){vxtC=g+.5;vec4 n=geLD(g);float o=1.-clamp(0.5,0.,.5)*2.;n+=mix(n,pow(n*2.,vec4(2))*.5,o);float s=(g.x+g.y)*(1./6.);vec2 d=mat2(cos(s),-sin(s),sin(s),cos(s))*vxtC;n+=geLS(d)*2.;f+=clamp(n.xyz*strB().xyz,.01,1.);}i=enabled?vec4(mix(f,vec3(0),opacity)+v.xyz,v.w):vec4(v);}\n`,\n};\n\nexport class LensFlareEffect extends Effect {\n\tconstructor({\n\t\tblendFunction = BlendFunction.NORMAL,\n\t\tenabled = true,\n\t\tglareSize = 0.2,\n\t\tlensPosition = [0.01, 0.01],\n\t\tiResolution = [0, 0],\n\t\tstarPoints = 6,\n\t\tflareSize = 0.01,\n\t\tflareSpeed = 0.01,\n\t\tflareShape = 0.01,\n\t\tanimated = true,\n\t\tanamorphic = false,\n\t\tcolorGain = new Color(20, 20, 20),\n\t\tlensDirtTexture = null as Texture | null,\n\t\thaloScale = 0.5,\n\t\tsecondaryGhosts = true,\n\t\taditionalStreaks = true,\n\t\tghostScale = 0.0,\n\t\topacity = 1.0,\n\t\tstarBurst = false,\n\t} = {}) {\n\t\tsuper('LensFlareEffect', LensFlareShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tuniforms: new Map<string, Uniform>([\n\t\t\t\t['enabled', new Uniform(enabled)],\n\t\t\t\t['glareSize', new Uniform(glareSize)],\n\t\t\t\t['lensPosition', new Uniform(lensPosition)],\n\t\t\t\t['iTime', new Uniform(0)],\n\t\t\t\t['iResolution', new Uniform(iResolution)],\n\t\t\t\t['starPoints', new Uniform(starPoints)],\n\t\t\t\t['flareSize', new Uniform(flareSize)],\n\t\t\t\t['flareSpeed', new Uniform(flareSpeed)],\n\t\t\t\t['flareShape', new Uniform(flareShape)],\n\t\t\t\t['animated', new Uniform(animated)],\n\t\t\t\t['anamorphic', new Uniform(anamorphic)],\n\t\t\t\t['colorGain', new Uniform(colorGain)],\n\t\t\t\t['lensDirtTexture', new Uniform(lensDirtTexture)],\n\t\t\t\t['haloScale', new Uniform(haloScale)],\n\t\t\t\t['secondaryGhosts', new Uniform(secondaryGhosts)],\n\t\t\t\t['aditionalStreaks', new Uniform(aditionalStreaks)],\n\t\t\t\t['ghostScale', new Uniform(ghostScale)],\n\t\t\t\t['starBurst', new Uniform(starBurst)],\n\t\t\t\t['opacity', new Uniform(opacity)],\n\t\t\t]),\n\t\t});\n\t}\n\n\toverride update(_renderer: WebGLRenderer, _inputBuffer: WebGLRenderTarget, deltaTime: number) {\n\t\tconst iTime = this.uniforms.get('iTime');\n\t\tif (iTime) {\n\t\t\tiTime.value += deltaTime;\n\t\t}\n\t}\n}\n\nexport type LensFlareOptions = ConstructorParameters<typeof LensFlareEffect>[0] & {\n\tposition: Vector3;\n\tfollowMouse: boolean;\n\tsmoothTime: number;\n};\n\nconst defaultOptions: LensFlareOptions = {\n\tposition: new Vector3(-25, 6, -60),\n\tfollowMouse: false,\n\tsmoothTime: 0.7,\n};\n\n@Component({\n\tselector: 'ngtp-lens-flare',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpLensFlare {\n\tprivate autoEffect = injectAutoEffect();\n\tprivate store = injectStore();\n\tprivate viewport = this.store.select('viewport');\n\tprivate raycaster = this.store.select('raycaster');\n\tprivate pointer = this.store.select('pointer');\n\n\teffectComposer = inject(NgtpEffectComposer);\n\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate projectedPosition = new Vector3();\n\tprivate mouse2d = new Vector2();\n\n\teffect = computed(() => {\n\t\tconst { position: _, followMouse: __, smoothTime: ___, ...options } = this.options();\n\t\treturn new LensFlareEffect(options);\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst [effect, viewport] = [this.effect(), this.viewport()];\n\t\t\t\tconst iResolution = effect.uniforms.get('iResolution');\n\t\t\t\tif (iResolution) {\n\t\t\t\t\tiResolution.value.x = viewport.width;\n\t\t\t\t\tiResolution.value.y = viewport.height;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tinjectBeforeRender(({ delta }) => {\n\t\t\tconst [effect] = [this.effect()];\n\t\t\tif (!effect) return;\n\n\t\t\tconst [{ followMouse, position, smoothTime }, pointer, camera, scene, raycaster] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.pointer(),\n\t\t\t\tthis.effectComposer.camera(),\n\t\t\t\tthis.effectComposer.scene(),\n\t\t\t\tthis.raycaster(),\n\t\t\t];\n\n\t\t\tconst uLensPosition = effect.uniforms.get('lensPosition');\n\t\t\tconst uOpacity = effect.uniforms.get('opacity');\n\t\t\tif (!uLensPosition || !uOpacity) return;\n\n\t\t\tlet target = 1;\n\n\t\t\tif (followMouse) {\n\t\t\t\tuLensPosition.value.x = pointer.x;\n\t\t\t\tuLensPosition.value.y = pointer.y;\n\t\t\t\ttarget = 0;\n\t\t\t} else {\n\t\t\t\tthis.projectedPosition.copy(position).project(camera);\n\t\t\t\tif (this.projectedPosition.z > 1) return;\n\n\t\t\t\tuLensPosition.value.x = this.projectedPosition.x;\n\t\t\t\tuLensPosition.value.y = this.projectedPosition.y;\n\n\t\t\t\tthis.mouse2d.set(this.projectedPosition.x, this.projectedPosition.y);\n\t\t\t\traycaster.setFromCamera(this.mouse2d, camera);\n\t\t\t\tconst intersects = raycaster.intersectObjects(scene.children, true);\n\t\t\t\tconst { object } = intersects[0] ?? {};\n\t\t\t\tif (object) {\n\t\t\t\t\tif (object.userData?.['lensflare'] === 'no-occlusion') {\n\t\t\t\t\t\ttarget = 0;\n\t\t\t\t\t} else if (object instanceof Mesh) {\n\t\t\t\t\t\tif (object.material.uniforms?._transmission?.value > 0.2) {\n\t\t\t\t\t\t\t//Check for MeshTransmissionMaterial\n\t\t\t\t\t\t\ttarget = 0.2;\n\t\t\t\t\t\t} else if (object.material._transmission && object.material._transmission > 0.2) {\n\t\t\t\t\t\t\t//Check for MeshPhysicalMaterial with transmission setting\n\t\t\t\t\t\t\ttarget = 0.2;\n\t\t\t\t\t\t} else if (object.material.transparent) {\n\t\t\t\t\t\t\t// Check for OtherMaterials with transparent parameter\n\t\t\t\t\t\t\ttarget = object.material.opacity;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\teasing.damp(uOpacity, 'value', target, smoothTime, delta);\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tafterNextRender,\n\tcomputed,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, injectStore, pick } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { BlendFunction, LUT3DEffect } from 'postprocessing';\nimport { Texture } from 'three';\n\nexport interface LUTOptions {\n\tlut: Texture;\n\tblendFunction?: BlendFunction;\n\ttetrahedralInterpolation?: boolean;\n}\n\n@Component({\n\tselector: 'ngtp-lut',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n\timports: [NgtArgs],\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpLUT {\n\tprivate autoEffect = injectAutoEffect();\n\tprivate store = injectStore();\n\tprivate invalidate = this.store.select('invalidate');\n\n\toptions = input({} as LUTOptions);\n\tprivate lut = pick(this.options, 'lut');\n\n\teffect = computed(() => {\n\t\tconst [lut, { lut: _, ...options }] = [this.lut(), this.options()];\n\t\treturn new LUT3DEffect(lut, options);\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst [effect, { lut, tetrahedralInterpolation }, invalidate] = [\n\t\t\t\t\tthis.effect(),\n\t\t\t\t\tthis.options(),\n\t\t\t\t\tthis.invalidate(),\n\t\t\t\t];\n\n\t\t\t\tif (tetrahedralInterpolation) effect.tetrahedralInterpolation = tetrahedralInterpolation;\n\t\t\t\tif (lut) effect.lut = lut;\n\t\t\t\tinvalidate();\n\t\t\t});\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nextend({ NoiseEffect });\n\nexport type NoiseEffectOptions = Partial<NonNullable<ConstructorParameters<typeof NoiseEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-noise',\n\ttemplate: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })],\n})\nexport class NgtpNoise {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<NoiseEffectOptions, 'blendFunction'>);\n}\n","import {\n\tafterNextRender,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tElementRef,\n\tinject,\n\tinput,\n\tuntracked,\n} from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelection, omit, pick, resolveRef } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { OutlineEffect } from 'postprocessing';\nimport { Object3D } from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\nexport type NgtpOutlineOptions = ConstructorParameters<typeof OutlineEffect>[2] & {\n\tselection?: Array<Object3D | ElementRef<Object3D>>;\n\tselectionLayer: number;\n};\n\nconst defaultOptions: NgtpOutlineOptions = {\n\tselectionLayer: 10,\n};\n\n@Component({\n\tselector: 'ngtp-outline',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs],\n})\nexport class NgtpOutline {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate ngtSelection = inject(NgtSelection, { optional: true });\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\tprivate store = injectStore();\n\tprivate invalidate = this.store.select('invalidate');\n\n\tprivate selection = pick(this.options, 'selection');\n\tprivate selectionLayer = pick(this.options, 'selectionLayer');\n\n\tprivate blendFunction = pick(this.options, 'blendFunction');\n\tprivate patternTexture = pick(this.options, 'patternTexture');\n\tprivate edgeStrength = pick(this.options, 'edgeStrength');\n\tprivate pulseSpeed = pick(this.options, 'pulseSpeed');\n\tprivate visibleEdgeColor = pick(this.options, 'visibleEdgeColor');\n\tprivate hiddenEdgeColor = pick(this.options, 'hiddenEdgeColor');\n\tprivate width = pick(this.options, 'width');\n\tprivate height = pick(this.options, 'height');\n\tprivate kernelSize = pick(this.options, 'kernelSize');\n\tprivate blur = pick(this.options, 'blur');\n\tprivate xRay = pick(this.options, 'xRay');\n\tprivate restOptions = omit(this.options, [\n\t\t'blendFunction',\n\t\t'patternTexture',\n\t\t'edgeStrength',\n\t\t'pulseSpeed',\n\t\t'visibleEdgeColor',\n\t\t'hiddenEdgeColor',\n\t\t'width',\n\t\t'height',\n\t\t'kernelSize',\n\t\t'blur',\n\t\t'xRay',\n\t]);\n\n\teffect = computed(() => {\n\t\tconst [\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tblendFunction,\n\t\t\tpatternTexture,\n\t\t\tedgeStrength,\n\t\t\tpulseSpeed,\n\t\t\tvisibleEdgeColor,\n\t\t\thiddenEdgeColor,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tkernelSize,\n\t\t\tblur,\n\t\t\txRay,\n\t\t\trestOptions,\n\t\t] = [\n\t\t\tthis.effectComposer.scene(),\n\t\t\tthis.effectComposer.camera(),\n\t\t\tthis.blendFunction(),\n\t\t\tthis.patternTexture(),\n\t\t\tthis.edgeStrength(),\n\t\t\tthis.pulseSpeed(),\n\t\t\tthis.visibleEdgeColor(),\n\t\t\tthis.hiddenEdgeColor(),\n\t\t\tthis.width(),\n\t\t\tthis.height(),\n\t\t\tthis.kernelSize(),\n\t\t\tthis.blur(),\n\t\t\tthis.xRay(),\n\t\t\tuntracked(this.restOptions),\n\t\t];\n\n\t\treturn new OutlineEffect(scene, camera, {\n\t\t\tblendFunction,\n\t\t\tpatternTexture,\n\t\t\tedgeStrength,\n\t\t\tpulseSpeed,\n\t\t\tvisibleEdgeColor,\n\t\t\thiddenEdgeColor,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tkernelSize,\n\t\t\tblur,\n\t\t\txRay,\n\t\t\t...restOptions,\n\t\t});\n\t});\n\n\tconstructor() {\n\t\tconst autoEffect = injectAutoEffect();\n\n\t\tafterNextRender(() => {\n\t\t\tautoEffect(() => {\n\t\t\t\tconst effect = this.effect();\n\t\t\t\treturn () => effect.dispose();\n\t\t\t});\n\n\t\t\tautoEffect(() => {\n\t\t\t\tconst [effect, invalidate, selectionLayer] = [this.effect(), this.invalidate(), this.selectionLayer()];\n\t\t\t\teffect.selectionLayer = selectionLayer;\n\t\t\t\tinvalidate();\n\t\t\t});\n\n\t\t\tautoEffect(() => {\n\t\t\t\t// NOTE: we run this effect if declarative NgtSelection is not enabled\n\t\t\t\tif (!this.ngtSelection) {\n\t\t\t\t\t// NOTE: if NgtSelection is not used and selection is not provided, we throw\n\t\t\t\t\tif (this.selection() === undefined) {\n\t\t\t\t\t\tthrow new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.handleSelectionChangeEffect(this.selection, this.effect, this.invalidate);\n\t\t\t\t}\n\n\t\t\t\t// NOTE: we run this effect if declarative NgtSelection is enabled\n\t\t\t\tconst selectionEnabled = this.ngtSelection.enabled();\n\t\t\t\tif (!selectionEnabled) return;\n\t\t\t\treturn this.handleSelectionChangeEffect(this.ngtSelection.selected, this.effect, this.invalidate);\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate handleSelectionChangeEffect(\n\t\tselected: () => Array<Object3D | ElementRef<Object3D>> | undefined,\n\t\t_effect: () => OutlineEffect,\n\t\t_invalidate: () => () => void,\n\t) {\n\t\tconst selection = selected();\n\t\tif (!selection || selection.length === 0) return;\n\n\t\tconst [effect, invalidate] = [_effect(), _invalidate()];\n\n\t\tconst objects: Object3D[] = [];\n\t\tfor (const el of selection) {\n\t\t\tconst obj = resolveRef(el);\n\t\t\tif (!obj) continue;\n\t\t\tobjects.push(obj);\n\t\t}\n\n\t\tif (objects.length === 0) return;\n\n\t\teffect.selection.set(objects);\n\t\tinvalidate();\n\n\t\treturn () => {\n\t\t\teffect.selection.clear();\n\t\t\tinvalidate();\n\t\t};\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgtArgs, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { PixelationEffect } from 'postprocessing';\n\nexport interface PixelationOptions {\n\tgranularity: number;\n}\n@Component({\n\tselector: 'ngtp-pixelation',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\timports: [NgtArgs],\n})\nexport class NgtpPixelation {\n\toptions = input({ granularity: 5 } as PixelationOptions, { transform: mergeInputs({ granularity: 5 }) });\n\tprivate granularity = pick(this.options, 'granularity');\n\n\teffect = computed(() => new PixelationEffect(this.granularity()));\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nextend({ ScanlineEffect });\n\nexport type ScanlineEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ScanlineEffect>[0]>>;\n\nconst defaultOptions: Omit<ScanlineEffectOptions, 'blendFunction'> = {\n\tdensity: 1.25,\n};\n\n@Component({\n\tselector: 'ngtp-scanline',\n\ttemplate: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })],\n})\nexport class NgtpScanline {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ SepiaEffect });\n\nexport type SepiaEffectOptions = Partial<NonNullable<ConstructorParameters<typeof SepiaEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-sepia',\n\ttemplate: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpSepia {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<SepiaEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ ShockWaveEffect });\n\nexport type ShockWaveEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ShockWaveEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-shock-wave',\n\ttemplate: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpShockWave {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<ShockWaveEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SMAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ SMAAEffect });\n\nexport type SMAAEffectOptions = Partial<NonNullable<ConstructorParameters<typeof SMAAEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-smaa',\n\ttemplate: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpSMAA {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<SMAAEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nextend({ TiltShiftEffect });\n\nexport type TiltShiftEffectOptions = Partial<NonNullable<ConstructorParameters<typeof TiltShiftEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-tilt-shift',\n\ttemplate: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n})\nexport class NgtpTiltShift {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<TiltShiftEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport { Uniform } from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nconst TiltShiftShader = {\n\tfragmentShader: `\n\n // original shader by Evan Wallace\n\n #define MAX_ITERATIONS 100\n\n uniform float blur;\n uniform float taper;\n uniform vec2 start;\n uniform vec2 end;\n uniform vec2 direction;\n uniform int samples;\n\n float random(vec3 scale, float seed) {\n /* use the fragment position for a different seed per-pixel */\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n }\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec4 color = vec4(0.0);\n float total = 0.0;\n vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);\n vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);\n float f_samples = float(samples);\n float half_samples = f_samples / 2.0;\n\n // use screen diagonal to normalize blur radii\n float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance\n float gradientRadius = taper * (maxScreenDistance);\n float blurRadius = blur * (maxScreenDistance / 16.0);\n\n /* randomize the lookup values to hide the fixed number of samples */\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;\n\n #pragma unroll_loop_start\n for (int i = 0; i <= MAX_ITERATIONS; i++) {\n if (i >= samples) { break; } // return early if over sample count\n float f_i = float(i);\n float s_i = -half_samples + f_i;\n float percent = (s_i + offset - 0.5) / half_samples;\n float weight = 1.0 - abs(percent);\n vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);\n /* switch to pre-multiplied alpha to correctly blur transparent images */\n sample_i.rgb *= sample_i.a;\n color += sample_i * weight;\n total += weight;\n }\n #pragma unroll_loop_end\n\n outputColor = color / total;\n\n /* switch back from pre-multiplied alpha */\n outputColor.rgb /= outputColor.a + 0.00001;\n }\n `,\n};\n\nexport class TiltShift2Effect extends Effect {\n\tconstructor({\n\t\tblendFunction = BlendFunction.NORMAL,\n\t\tblur = 0.15, // [0, 1], can go beyond 1 for extra\n\t\ttaper = 0.5, // [0, 1], can go beyond 1 for extra\n\t\tstart = [0.5, 0.0], // [0,1] percentage x,y of screenspace\n\t\tend = [0.5, 1.0], // [0,1] percentage x,y of screenspace\n\t\tsamples = 10.0, // number of blur samples\n\t\tdirection = [1, 1], // direction of blur\n\t} = {}) {\n\t\tsuper('TiltShiftEffect', TiltShiftShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tattributes: EffectAttribute.CONVOLUTION,\n\t\t\tuniforms: new Map<string, Uniform<number | number[]>>([\n\t\t\t\t['blur', new Uniform(blur)],\n\t\t\t\t['taper', new Uniform(taper)],\n\t\t\t\t['start', new Uniform(start)],\n\t\t\t\t['end', new Uniform(end)],\n\t\t\t\t['samples', new Uniform(samples)],\n\t\t\t\t['direction', new Uniform(direction)],\n\t\t\t]),\n\t\t});\n\t}\n}\n\nexport type TiltShift2EffectOptions = Partial<NonNullable<ConstructorParameters<typeof TiltShift2Effect>[0]>>;\n\nextend({ TiltShift2Effect });\n\n@Component({\n\tselector: 'ngtp-tilt-shift2',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n})\nexport class NgtpTiltShift2 {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<TiltShift2EffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ VignetteEffect });\n\nexport type VignetteEffectOptions = Partial<NonNullable<ConstructorParameters<typeof VignetteEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-vignette',\n\ttemplate: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpVignette {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<VignetteEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport { Uniform } from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nconst WaterShader = {\n\tfragmentShader: `\n uniform float factor;\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 vUv = uv;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = vUv.y * frequency + time * .7;\n float y = vUv.x * frequency + time * .3;\n vUv.x += cos(x+y) * amplitude * cos(y);\n vUv.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(inputBuffer, vUv);\n outputColor = rgba;\n }`,\n};\n\nexport class WaterEffect extends Effect {\n\tconstructor({ blendFunction = BlendFunction.NORMAL, factor = 0 } = {}) {\n\t\tsuper('WaterEffect', WaterShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tattributes: EffectAttribute.CONVOLUTION,\n\t\t\tuniforms: new Map<string, Uniform<number | number[]>>([['factor', new Uniform(factor)]]),\n\t\t});\n\t}\n}\n\nexport type WaterEffectOptions = Partial<NonNullable<ConstructorParameters<typeof WaterEffect>[0]>>;\n\nextend({ WaterEffect });\n\n@Component({\n\tselector: 'ngtp-water',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n})\nexport class NgtpWater {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<WaterEffectOptions, 'blendFunction'>);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["defaultOptions","i1.NgtpEffect"],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-postprocessing.mjs","sources":["../../../../libs/postprocessing/src/lib/effect.ts","../../../../libs/postprocessing/src/lib/effect-composer.ts","../../../../libs/postprocessing/src/lib/effects/ascii.ts","../../../../libs/postprocessing/src/lib/effects/bloom.ts","../../../../libs/postprocessing/src/lib/effects/brightness-contrast.ts","../../../../libs/postprocessing/src/lib/effects/chromatic-abberation.ts","../../../../libs/postprocessing/src/lib/effects/color-average.ts","../../../../libs/postprocessing/src/lib/effects/color-depth.ts","../../../../libs/postprocessing/src/lib/effects/depth.ts","../../../../libs/postprocessing/src/lib/effects/depth-of-field.ts","../../../../libs/postprocessing/src/lib/effects/dot-screen.ts","../../../../libs/postprocessing/src/lib/effects/fxaa.ts","../../../../libs/postprocessing/src/lib/effects/glitch.ts","../../../../libs/postprocessing/src/lib/effects/god-rays.ts","../../../../libs/postprocessing/src/lib/effects/grid.ts","../../../../libs/postprocessing/src/lib/effects/hue-saturation.ts","../../../../libs/postprocessing/src/lib/effects/lens-flare.ts","../../../../libs/postprocessing/src/lib/effects/lut.ts","../../../../libs/postprocessing/src/lib/effects/noise.ts","../../../../libs/postprocessing/src/lib/effects/outline.ts","../../../../libs/postprocessing/src/lib/effects/pixelation.ts","../../../../libs/postprocessing/src/lib/effects/scanline.ts","../../../../libs/postprocessing/src/lib/effects/sepia.ts","../../../../libs/postprocessing/src/lib/effects/shock-wave.ts","../../../../libs/postprocessing/src/lib/effects/smaa.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift-2.ts","../../../../libs/postprocessing/src/lib/effects/vignette.ts","../../../../libs/postprocessing/src/lib/effects/water.ts","../../../../libs/postprocessing/src/angular-three-postprocessing.ts"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, inject, input } from '@angular/core';\nimport { injectStore } from 'angular-three';\nimport { createNoopInjectionToken } from 'ngxtension/create-injection-token';\nimport { BlendFunction } from 'postprocessing';\n\nexport const [injectDefaultEffectOptions, provideDefaultEffectOptions] = createNoopInjectionToken<{\n\tblendFunction?: BlendFunction;\n\topacity?: number;\n}>('Default Effect options');\n\n@Component({\n\tselector: 'ngtp-effect-blend-mode',\n\tstandalone: true,\n\ttemplate: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpEffectBlendMode {\n\teffect = inject(NgtpEffect, { optional: true });\n}\n\n@Directive({ standalone: true })\nexport class NgtpEffect {\n\tdefaultEffectOptions = injectDefaultEffectOptions({ optional: true });\n\n\tblendFunction = input(this.defaultEffectOptions?.blendFunction);\n\topacity = input(this.defaultEffectOptions?.opacity);\n\n\tprivate store = injectStore();\n\tcamera = this.store.select('camera');\n\tinvalidate = this.store.select('invalidate');\n}\n\nexport const NgtpEffectHostDirective = { directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] };\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInjector,\n\tafterNextRender,\n\tcomputed,\n\tinject,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport { extend, getLocalState, injectBeforeRender, injectStore, pick } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport {\n\tDepthDownsamplingPass,\n\tEffect,\n\tEffectAttribute,\n\tEffectComposer,\n\tEffectPass,\n\tNormalPass,\n\tPass,\n\tRenderPass,\n} from 'postprocessing';\nimport { Camera, Group, HalfFloatType, NoToneMapping, Scene, TextureDataType } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\n\nexport interface NgtpEffectComposerOptions {\n\tenabled: boolean;\n\tdepthBuffer?: boolean;\n\t/** Only used for SSGI currently, leave it disabled for everything else unless it's needed */\n\tenableNormalPass?: boolean;\n\tstencilBuffer?: boolean;\n\tautoClear: boolean;\n\tresolutionScale?: number;\n\tmultisampling: number;\n\tframeBufferType: TextureDataType;\n\trenderPriority: number;\n\tcamera?: Camera;\n\tscene?: Scene;\n}\n\nconst defaultOptions: NgtpEffectComposerOptions = {\n\tenabled: true,\n\trenderPriority: 1,\n\tautoClear: true,\n\tmultisampling: 8,\n\tframeBufferType: HalfFloatType,\n};\n\nfunction isConvolution(effect: Effect) {\n\treturn (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION;\n}\n\n@Component({\n\tselector: 'ngtp-effect-composer',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpEffectComposer {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate injector = inject(Injector);\n\tprivate autoEffect = injectAutoEffect();\n\tprivate store = injectStore();\n\tprivate size = this.store.select('size');\n\tprivate gl = this.store.select('gl');\n\tprivate defaultScene = this.store.select('scene');\n\tprivate defaultCamera = this.store.select('camera');\n\n\tdepthBuffer = pick(this.options, 'depthBuffer');\n\tstencilBuffer = pick(this.options, 'stencilBuffer');\n\tmultisampling = pick(this.options, 'multisampling');\n\tframeBufferType = pick(this.options, 'frameBufferType');\n\tscene = computed(() => this.options().scene ?? this.defaultScene());\n\tcamera = computed(() => this.options().camera ?? this.defaultCamera());\n\tenableNormalPass = pick(this.options, 'enableNormalPass');\n\tresolutionScale = pick(this.options, 'resolutionScale');\n\n\tgroupRef = viewChild.required<ElementRef<Group>>('group');\n\n\tcomposerData = computed(() => {\n\t\tconst webGL2Available = isWebGL2Available();\n\t\tconst [\n\t\t\tgl,\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling,\n\t\t\tframeBufferType,\n\t\t\tenableNormalPass,\n\t\t\tresolutionScale,\n\t\t] = [\n\t\t\tthis.gl(),\n\t\t\tthis.scene(),\n\t\t\tthis.camera(),\n\t\t\tthis.depthBuffer(),\n\t\t\tthis.stencilBuffer(),\n\t\t\tthis.multisampling(),\n\t\t\tthis.frameBufferType(),\n\t\t\tthis.enableNormalPass(),\n\t\t\tthis.resolutionScale(),\n\t\t];\n\n\t\t// initialize composer\n\t\tconst composer = new EffectComposer(gl, {\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n\t\t\tframeBufferType,\n\t\t});\n\n\t\t// add render pass\n\t\tcomposer.addPass(new RenderPass(scene, camera));\n\n\t\t// create normal pass\n\t\tlet downSamplingPass = null;\n\t\tlet normalPass = null;\n\t\tif (enableNormalPass) {\n\t\t\tnormalPass = new NormalPass(scene, camera);\n\t\t\tnormalPass.enabled = false;\n\t\t\tcomposer.addPass(normalPass);\n\t\t\tif (resolutionScale !== undefined && webGL2Available) {\n\t\t\t\tdownSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n\t\t\t\tdownSamplingPass.enabled = false;\n\t\t\t\tcomposer.addPass(downSamplingPass);\n\t\t\t}\n\t\t}\n\n\t\treturn { composer, normalPass, downSamplingPass };\n\t});\n\n\tconstructor() {\n\t\textend({ Group });\n\n\t\tafterNextRender(() => {\n\t\t\tthis.disableToneMapping();\n\t\t\tthis.setComposerSize();\n\t\t\tthis.updatePasses();\n\n\t\t\tinjectBeforeRender(\n\t\t\t\t({ delta }) => {\n\t\t\t\t\tconst [{ composer }, { enabled, autoClear, stencilBuffer }, gl] = [\n\t\t\t\t\t\tthis.composerData(),\n\t\t\t\t\t\tthis.options(),\n\t\t\t\t\t\tthis.gl(),\n\t\t\t\t\t];\n\n\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\tconst currentAutoClear = gl.autoClear;\n\t\t\t\t\t\tgl.autoClear = autoClear;\n\t\t\t\t\t\tif (stencilBuffer && !autoClear) gl.clearStencil();\n\t\t\t\t\t\tcomposer.render(delta);\n\t\t\t\t\t\tgl.autoClear = currentAutoClear;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ injector: this.injector, priority: this.options().enabled ? this.options().renderPriority : 0 },\n\t\t\t);\n\t\t});\n\t}\n\n\t// NOTE: Disable tone mapping because threejs disallows tonemapping on render targets\n\tprivate disableToneMapping() {\n\t\tthis.autoEffect(() => {\n\t\t\tconst gl = this.gl();\n\t\t\tconst currentTonemapping = gl.toneMapping;\n\t\t\tgl.toneMapping = NoToneMapping;\n\t\t\treturn () => {\n\t\t\t\tgl.toneMapping = currentTonemapping;\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate setComposerSize() {\n\t\tthis.autoEffect(() => {\n\t\t\tconst [{ composer }, { width, height }] = [this.composerData(), this.size()];\n\t\t\tif (composer) {\n\t\t\t\tcomposer.setSize(width, height);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate updatePasses() {\n\t\tthis.autoEffect(() => {\n\t\t\tconst [group, { composer, normalPass, downSamplingPass }, camera] = [\n\t\t\t\tthis.groupRef(),\n\t\t\t\tthis.composerData(),\n\t\t\t\tthis.camera(),\n\t\t\t];\n\n\t\t\tconst passes: Pass[] = [];\n\n\t\t\tif (group.nativeElement && composer) {\n\t\t\t\tconst localState = getLocalState(group.nativeElement);\n\t\t\t\tif (!localState) return;\n\n\t\t\t\tconst children = localState.nonObjects();\n\t\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\t\tconst child = children[i];\n\t\t\t\t\tif (child instanceof Effect) {\n\t\t\t\t\t\tconst effects: Effect[] = [child];\n\n\t\t\t\t\t\tif (!isConvolution(child)) {\n\t\t\t\t\t\t\tlet next: unknown = null;\n\t\t\t\t\t\t\twhile ((next = children[i + 1]) instanceof Effect) {\n\t\t\t\t\t\t\t\tif (isConvolution(next)) break;\n\t\t\t\t\t\t\t\teffects.push(next as Effect);\n\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst pass = new EffectPass(camera, ...effects);\n\t\t\t\t\t\tpasses.push(pass);\n\t\t\t\t\t} else if (child instanceof Pass) {\n\t\t\t\t\t\tpasses.push(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const pass of passes) {\n\t\t\t\t\tcomposer.addPass(pass);\n\t\t\t\t}\n\n\t\t\t\tif (normalPass) normalPass.enabled = true;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = true;\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\tfor (const pass of passes) composer?.removePass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = false;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = false;\n\t\t\t};\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { Effect } from 'postprocessing';\nimport { CanvasTexture, Color, NearestFilter, RepeatWrapping, Texture, Uniform } from 'three';\n\nconst fragment = /* language=glsl glsl */ `\nuniform sampler2D uCharacters;\nuniform float uCharactersCount;\nuniform float uCellSize;\nuniform bool uInvert;\nuniform vec3 uColor;\n\nconst vec2 SIZE = vec2(16.);\n\nvec3 greyscale(vec3 color, float strength) {\n float g = dot(color, vec3(0.299, 0.587, 0.114));\n return mix(color, vec3(g), strength);\n}\n\nvec3 greyscale(vec3 color) {\n return greyscale(color, 1.0);\n}\n\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 cell = resolution / uCellSize;\n vec2 grid = 1.0 / cell;\n vec2 pixelizedUV = grid * (0.5 + floor(uv / grid));\n vec4 pixelized = texture2D(inputBuffer, pixelizedUV);\n float greyscaled = greyscale(pixelized.rgb).r;\n\n if (uInvert) {\n greyscaled = 1.0 - greyscaled;\n }\n\n float characterIndex = floor((uCharactersCount - 1.0) * greyscaled);\n vec2 characterPosition = vec2(mod(characterIndex, SIZE.x), floor(characterIndex / SIZE.y));\n vec2 offset = vec2(characterPosition.x, -characterPosition.y) / SIZE;\n vec2 charUV = mod(uv * (cell / SIZE), 1.0 / SIZE) - vec2(0., 1.0 / SIZE) + offset;\n vec4 asciiCharacter = texture2D(uCharacters, charUV);\n\n asciiCharacter.rgb = uColor * asciiCharacter.r;\n asciiCharacter.a = pixelized.a;\n outputColor = asciiCharacter;\n}\n`;\n\ninterface ASCIIEffectOptions {\n\tfont?: string;\n\tcharacters?: string;\n\tfontSize?: number;\n\tcellSize?: number;\n\tcolor?: string;\n\tinvert?: boolean;\n}\n\nexport class ASCIIEffect extends Effect {\n\tconstructor({\n\t\tfont = 'arial',\n\t\tcharacters = ` .:,'-^=*+?!|0#X%WM@`,\n\t\tfontSize = 54,\n\t\tcellSize = 16,\n\t\tcolor = '#ffffff',\n\t\tinvert = false,\n\t}: ASCIIEffectOptions = {}) {\n\t\tconst uniforms = new Map<string, Uniform>([\n\t\t\t['uCharacters', new Uniform(new Texture())],\n\t\t\t['uCellSize', new Uniform(cellSize)],\n\t\t\t['uCharactersCount', new Uniform(characters.length)],\n\t\t\t['uColor', new Uniform(new Color(color))],\n\t\t\t['uInvert', new Uniform(invert)],\n\t\t]);\n\n\t\tsuper('ASCIIEffect', fragment, { uniforms });\n\n\t\tconst charactersTextureUniform = this.uniforms.get('uCharacters');\n\n\t\tif (charactersTextureUniform) {\n\t\t\tcharactersTextureUniform.value = this.createCharactersTexture(characters, font, fontSize);\n\t\t}\n\t}\n\n\t/** Draws the characters on a Canvas and returns a texture */\n\tpublic createCharactersTexture(characters: string, font: string, fontSize: number): Texture {\n\t\tconst canvas = document.createElement('canvas');\n\t\tconst SIZE = 1024;\n\t\tconst MAX_PER_ROW = 16;\n\t\tconst CELL = SIZE / MAX_PER_ROW;\n\n\t\tcanvas.width = canvas.height = SIZE;\n\t\tconst texture = new CanvasTexture(canvas, undefined, RepeatWrapping, RepeatWrapping, NearestFilter, NearestFilter);\n\t\tconst context = canvas.getContext('2d');\n\n\t\tif (!context) {\n\t\t\tthrow new Error('Context not available');\n\t\t}\n\n\t\tcontext.clearRect(0, 0, SIZE, SIZE);\n\t\tcontext.font = `${fontSize}px ${font}`;\n\t\tcontext.textAlign = 'center';\n\t\tcontext.textBaseline = 'middle';\n\t\tcontext.fillStyle = '#fff';\n\n\t\tfor (let i = 0; i < characters.length; i++) {\n\t\t\tconst char = characters[i];\n\t\t\tconst x = i % MAX_PER_ROW;\n\t\t\tconst y = Math.floor(i / MAX_PER_ROW);\n\t\t\tcontext.fillText(char, x * CELL + CELL / 2, y * CELL + CELL / 2);\n\t\t}\n\n\t\ttexture.needsUpdate = true;\n\t\treturn texture;\n\t}\n}\n\nconst defaultOptions: ASCIIEffectOptions = {\n\tfont: 'arial',\n\tcharacters: ` .:,'-^=*+?!|0#X%WM@`,\n\tfontSize: 54,\n\tcellSize: 16,\n\tcolor: '#ffffff',\n\tinvert: false,\n};\n\n@Component({\n\tselector: 'ngtp-ascii',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpASCII {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\teffect = computed(() => new ASCIIEffect(this.options()));\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect, BloomEffectOptions } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nextend({ BloomEffect });\n\n@Component({\n\tselector: 'ngtp-bloom',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n})\nexport class NgtpBloom {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<BloomEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ BrightnessContrastEffect });\n\nexport type BrightnessEffectOptions = NonNullable<ConstructorParameters<typeof BrightnessContrastEffect>[0]>;\n\n@Component({\n\tselector: 'ngtp-brightness-contrast',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpBrightnessContrast {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<BrightnessEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ChromaticAberrationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ ChromaticAberrationEffect });\n\nexport type ChromaticAberrationEffectOptions = Partial<\n\tNonNullable<ConstructorParameters<typeof ChromaticAberrationEffect>[0]>\n>;\n\n@Component({\n\tselector: 'ngtp-chromatic-aberration',\n\ttemplate: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpChromaticAberration {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<ChromaticAberrationEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ColorAverageEffect } from 'postprocessing';\n\nextend({ ColorAverageEffect });\n\n@Component({\n\tselector: 'ngtp-color-average',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpColorAverage {\n\toptions = input(\n\t\t{ blendFunction: BlendFunction.NORMAL },\n\t\t{ transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) },\n\t);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ ColorDepthEffect });\n\nexport type ColorDepthEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ColorDepthEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-color-depth',\n\ttemplate: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpColorDepth {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<ColorDepthEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ DepthEffect });\n\nexport type DepthEffectOptions = Partial<NonNullable<ConstructorParameters<typeof DepthEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-depth',\n\ttemplate: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpDepth {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<DepthEffectOptions, 'blendFunction'>);\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tafterNextRender,\n\tcomputed,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtAnyRecord, NgtArgs, NgtVector3 } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { DepthOfFieldEffect, MaskFunction } from 'postprocessing';\nimport { DepthPackingStrategies, Texture, Vector3 } from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\ntype DOFOptions = NonNullable<ConstructorParameters<typeof DepthOfFieldEffect>[1]> &\n\tPartial<{ target: NgtVector3; depthTexture: { texture: Texture; packing: DepthPackingStrategies } }>;\n\n@Component({\n\tselector: 'ngtp-depth-of-field',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpDepthOfField {\n\tprivate autoEffect = injectAutoEffect();\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\toptions = input({} as DOFOptions);\n\n\tprivate autoFocus = computed(() => this.options().target != null);\n\n\teffect = computed(() => {\n\t\tconst [camera, options, autoFocus] = [this.effectComposer.camera(), this.options(), this.autoFocus()];\n\n\t\tconst effect = new DepthOfFieldEffect(camera, options);\n\n\t\t// Creating a target enables autofocus, R3F will set via props\n\t\tif (autoFocus) effect.target = new Vector3();\n\t\t// Depth texture for depth picking with optional packing strategy\n\t\tif (options.depthTexture) {\n\t\t\teffect.setDepthTexture(options.depthTexture.texture, options.depthTexture.packing as DepthPackingStrategies);\n\t\t}\n\t\t// Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur\n\t\tconst maskPass = (effect as NgtAnyRecord)['maskPass'];\n\t\tmaskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;\n\n\t\treturn effect;\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst effect = this.effect();\n\t\t\t\treturn () => {\n\t\t\t\t\teffect.dispose();\n\t\t\t\t};\n\t\t\t});\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ DotScreenEffect });\n\nexport type DotScreenEffectOptions = Partial<NonNullable<ConstructorParameters<typeof DotScreenEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-dot-screen',\n\ttemplate: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpDotScreen {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<DotScreenEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { FXAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ FXAAEffect });\n\nexport type FXAAEffectOptions = Partial<NonNullable<ConstructorParameters<typeof FXAAEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-fxaa',\n\ttemplate: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpFXAA {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<FXAAEffectOptions, 'blendFunction'>);\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tafterNextRender,\n\tcomputed,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, NgtVector2, injectStore, pick, vector2 } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { GlitchEffect, GlitchMode } from 'postprocessing';\n\nexport type GlitchOptions = NonNullable<ConstructorParameters<typeof GlitchEffect>[0]> &\n\tPartial<{\n\t\tmode: GlitchMode;\n\t\tactive: boolean;\n\t\tdelay: NgtVector2;\n\t\tduration: NgtVector2;\n\t\tchromaticAberrationOffset: NgtVector2;\n\t\tstrength: NgtVector2;\n\t}>;\n\n@Component({\n\tselector: 'ngtp-glitch',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpGlitch {\n\tprivate autoEffect = injectAutoEffect();\n\tprivate store = injectStore();\n\tprivate invalidate = this.store.select('invalidate');\n\n\toptions = input({ active: true } as GlitchOptions, { transform: mergeInputs({ active: true }) });\n\n\tprivate active = pick(this.options, 'active');\n\tprivate mode = pick(this.options, 'mode');\n\n\tprivate delay = vector2(this.options, 'delay');\n\tprivate duration = vector2(this.options, 'duration');\n\tprivate chromaticAberrationOffset = vector2(this.options, 'chromaticAberrationOffset');\n\tprivate strength = vector2(this.options, 'strength');\n\n\teffect = computed(() => {\n\t\tconst [\n\t\t\t{ ratio, dtSize, columns, blendFunction, perturbationMap },\n\t\t\tdelay,\n\t\t\tduration,\n\t\t\tchromaticAberrationOffset,\n\t\t\tstrength,\n\t\t] = [this.options(), this.delay(), this.duration(), this.chromaticAberrationOffset(), this.strength()];\n\t\treturn new GlitchEffect({\n\t\t\tratio,\n\t\t\tdtSize,\n\t\t\tcolumns,\n\t\t\tblendFunction,\n\t\t\tperturbationMap,\n\t\t\tdelay,\n\t\t\tduration,\n\t\t\tchromaticAberrationOffset,\n\t\t\tstrength,\n\t\t});\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst effect = this.effect();\n\t\t\t\treturn () => effect.dispose();\n\t\t\t});\n\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst [effect, invalidate, mode, active] = [this.effect(), this.invalidate(), this.mode(), this.active()];\n\t\t\t\teffect.mode = active ? mode || GlitchMode.SPORADIC : GlitchMode.DISABLED;\n\t\t\t\tinvalidate();\n\t\t\t});\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tafterNextRender,\n\tcomputed,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, is } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { GodRaysEffect } from 'postprocessing';\nimport { Mesh, Points } from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\ntype GodRaysOptions = ConstructorParameters<typeof GodRaysEffect>[2] & {\n\tsun: Mesh | Points | ElementRef<Mesh | Points>;\n};\n\n@Component({\n\tselector: 'ngtp-god-rays',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpGodRays {\n\tprivate autoEffect = injectAutoEffect();\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\n\toptions = input({} as GodRaysOptions);\n\n\teffect = computed(() => {\n\t\tconst [camera, { sun, ...options }] = [this.effectComposer.camera(), this.options()];\n\t\treturn new GodRaysEffect(camera, is.ref(sun) ? sun.nativeElement : sun, options);\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst [sun, effect] = [this.options().sun, this.effect()];\n\t\t\t\teffect.lightSource = is.ref(sun) ? sun.nativeElement : sun;\n\t\t\t});\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tafterNextRender,\n\tcomputed,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, pick } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { GridEffect } from 'postprocessing';\n\ntype GridOptions = NonNullable<ConstructorParameters<typeof GridEffect>[0]> &\n\tPartial<{ size: { width: number; height: number } }>;\n\n@Component({\n\tselector: 'ngtp-grid',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\timports: [NgtArgs],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpGrid {\n\tprivate autoEffect = injectAutoEffect();\n\n\toptions = input({} as GridOptions);\n\tprivate size = pick(this.options, 'size');\n\n\teffect = computed(() => {\n\t\tconst { size: _, ...options } = this.options();\n\t\treturn new GridEffect(options);\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst [size, effect] = [this.size(), this.effect()];\n\t\t\t\tif (size) {\n\t\t\t\t\teffect.setSize(size.width, size.height);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ HueSaturationEffect });\n\nexport type HueSaturationEffectOptions = Partial<NonNullable<ConstructorParameters<typeof HueSaturationEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-hue-saturation',\n\ttemplate: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpHueSaturation {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<HueSaturationEffectOptions, 'blendFunction'>);\n}\n","// Created by Anderson Mancini 2023\n// React Three Fiber Ultimate LensFlare\n\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tafterNextRender,\n\tcomputed,\n\tinject,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, injectBeforeRender, injectStore } from 'angular-three';\nimport { easing } from 'maath';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, Effect } from 'postprocessing';\nimport { Color, Mesh, Texture, Uniform, Vector2, Vector3, WebGLRenderTarget, WebGLRenderer } from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\nconst LensFlareShader = {\n\tfragmentShader: /* language=glsl glsl */ `\n\n uniform float iTime;\n uniform vec2 lensPosition;\n uniform vec2 iResolution;\n uniform vec3 colorGain;\n uniform float starPoints;\n uniform float glareSize;\n uniform float flareSize;\n uniform float flareSpeed;\n uniform float flareShape;\n uniform float haloScale;\n uniform float opacity;\n uniform bool animated;\n uniform bool anamorphic;\n uniform bool enabled;\n uniform bool secondaryGhosts;\n uniform bool starBurst;\n uniform float ghostScale;\n uniform bool aditionalStreaks;\n uniform sampler2D lensDirtTexture;\n vec2 vxtC;\n\n float rndf(float n){return fract(sin(n) * 43758.5453123);}float niz(float p){float fl = floor(p);float fc = fract(p);return mix(rndf(fl),rndf(fl + 1.0), fc);}\n vec3 hsv2rgb(vec3 c){vec4 k = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);vec3 p = abs(fract(c.xxx + k.xyz) * 6.0 - k.www);return c.z * mix(k.xxx, clamp(p - k.xxx, 0.0, 1.0), c.y);}\n float satU(float x){return clamp(x, 0.,1.);}vec2 rtU(vec2 naz, float rtn){return vec2(cos(rtn) * naz.x + sin(rtn) * naz.y,cos(rtn) * naz.y - sin(rtn) * naz.x);}\n vec3 drwF(vec2 p, float intensity, float rnd, float speed, int id){float flhos = (1. / 32.) * float(id) * 0.1;float lingrad = distance(vec2(0.), p);float expg = 1. / exp(lingrad * (fract(rnd) * 0.66 + 0.33));vec3 qzTg = hsv2rgb(vec3( fract( (expg * 8.) + speed * flareSpeed + flhos), pow(1.-abs(expg*2.-1.), 0.45), 20.0 * expg * intensity));float internalStarPoints;if(anamorphic){internalStarPoints = 1.0;} else{internalStarPoints = starPoints;}float ams = length(p * flareShape * sin(internalStarPoints * atan(p.x, p.y)));float kJhg = pow(1.-satU(ams), ( anamorphic ? 100. : 12.));kJhg += satU(expg-0.9) * 3.;kJhg = pow(kJhg * expg, 8. + (1.-intensity) * 5.);if(flareSpeed > 0.0){return vec3(kJhg) * qzTg;} else{return vec3(kJhg) * flareSize * 15.;}}\n float ams2(vec3 a, vec3 b) { return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);}vec3 satU(vec3 x){return clamp(x, vec3(0.0), vec3(1.0));}\n float glR(vec2 naz, vec2 pos, float zsi){vec2 mni;if(animated){mni = rtU(naz-pos, iTime * 0.1);} else{mni = naz-pos;}float ang = atan(mni.y, mni.x) * (anamorphic ? 1.0 : starPoints);float ams2 = length(mni);ams2 = pow(ams2, .9);float f0 = 1.0/(length(naz-pos)*(1.0/zsi*16.0)+.2);return f0+f0*(sin((ang))*.2 +.3);}\n float sdHex(vec2 p){p = abs(p);vec2 q = vec2(p.x*2.0*0.5773503, p.y + p.x*0.5773503);return dot(step(q.xy,q.yx), 1.0-q.yx);}float fpow(float x, float k){return x > k ? pow((x-k)/(1.0-k),2.0) : 0.0;}\n vec3 rHx(vec2 naz, vec2 p, float s, vec3 col){naz -= p;if (abs(naz.x) < 0.2*s && abs(naz.y) < 0.2*s){return mix(vec3(0),mix(vec3(0),col,0.1 + fpow(length(naz/s),0.1)*10.0),smoothstep(0.0,0.1,sdHex(naz*20.0/s)));}return vec3(0);}\n vec3 mLs(vec2 naz, vec2 pos){vec2 mni = naz-pos;vec2 zxMp = naz*(length(naz));float ang = atan(mni.x,mni.y);float f0 = .3/(length(naz-pos)*16.0+1.0);f0 = f0*(sin(niz(sin(ang*3.9-(animated ? iTime : 0.0) * 0.3) * starPoints))*.2 );float f1 = max(0.01-pow(length(naz+1.2*pos),1.9),.0)*7.0;float f2 = max(.9/(10.0+32.0*pow(length(zxMp+0.99*pos),2.0)),.0)*0.35;float f22 = max(.9/(11.0+32.0*pow(length(zxMp+0.85*pos),2.0)),.0)*0.23;float f23 = max(.9/(12.0+32.0*pow(length(zxMp+0.95*pos),2.0)),.0)*0.6;vec2 ztX = mix(naz,zxMp, 0.1);float f4 = max(0.01-pow(length(ztX+0.4*pos),2.9),.0)*4.02;float f42 = max(0.0-pow(length(ztX+0.45*pos),2.9),.0)*4.1;float f43 = max(0.01-pow(length(ztX+0.5*pos),2.9),.0)*4.6;ztX = mix(naz,zxMp,-.4);float f5 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;float f52 = max(0.01-pow(length(ztX+0.2*pos),5.5),.0)*2.0;float f53 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;ztX = mix(naz,zxMp, 2.1);float f6 = max(0.01-pow(length(ztX-0.3*pos),1.61),.0)*3.159;float f62 = max(0.01-pow(length(ztX-0.325*pos),1.614),.0)*3.14;float f63 = max(0.01-pow(length(ztX-0.389*pos),1.623),.0)*3.12;vec3 c = vec3(glR(naz,pos, glareSize));vec2 prot;if(animated){prot = rtU(naz - pos, (iTime * 0.1));} else if(anamorphic){prot = rtU(naz - pos, 1.570796);} else {prot = naz - pos;}c += drwF(prot, (anamorphic ? flareSize * 10. : flareSize), 0.1, iTime, 1);c.r+=f1+f2+f4+f5+f6; c.g+=f1+f22+f42+f52+f62; c.b+=f1+f23+f43+f53+f63;c = c*1.3 * vec3(length(zxMp)+.09);c+=vec3(f0);return c;}\n vec3 cc(vec3 clr, float fct,float fct2){float w = clr.x+clr.y+clr.z;return mix(clr,vec3(w)*fct,w*fct2);}float rnd(vec2 p){float f = fract(sin(dot(p, vec2(12.1234, 72.8392) )*45123.2));return f;}float rnd(float w){float f = fract(sin(w)*1000.);return f;}\n float rShp(vec2 p, int N){float f;float a=atan(p.x,p.y)+.2;float b=6.28319/float(N);f=smoothstep(.5,.51, cos(floor(.5+a/b)*b-a)*length(p.xy)* 2.0 -ghostScale);return f;}\n vec3 drC(vec2 p, float zsi, float dCy, vec3 clr, vec3 clr2, float ams2, vec2 esom){float l = length(p + esom*(ams2*2.))+zsi/2.;float l2 = length(p + esom*(ams2*4.))+zsi/3.;float c = max(0.01-pow(length(p + esom*ams2), zsi*ghostScale), 0.0)*10.;float c1 = max(0.001-pow(l-0.3, 1./40.)+sin(l*20.), 0.0)*3.;float c2 = max(0.09/pow(length(p-esom*ams2/.5)*1., .95), 0.0)/20.;float s = max(0.02-pow(rShp(p*5. + esom*ams2*5. + dCy, 6) , 1.), 0.0)*1.5;clr = cos(vec3(0.44, .24, .2)*8. + ams2*4.)*0.5+.5;vec3 f = c*clr;f += c1*clr;f += c2*clr;f += s*clr;return f-0.01;}\n vec4 geLC(float x){return vec4(vec3(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(vec3(0., 0., 0.),vec3(0., 0., 0.), smoothstep(0.0, 0.063, x)),vec3(0., 0., 0.), smoothstep(0.063, 0.125, x)),vec3(0.0, 0., 0.), smoothstep(0.125, 0.188, x)),vec3(0.188, 0.131, 0.116), smoothstep(0.188, 0.227, x)),vec3(0.31, 0.204, 0.537), smoothstep(0.227, 0.251, x)),vec3(0.192, 0.106, 0.286), smoothstep(0.251, 0.314, x)),vec3(0.102, 0.008, 0.341), smoothstep(0.314, 0.392, x)),vec3(0.086, 0.0, 0.141), smoothstep(0.392, 0.502, x)),vec3(1.0, 0.31, 0.0), smoothstep(0.502, 0.604, x)),vec3(.1, 0.1, 0.1), smoothstep(0.604, 0.643, x)),vec3(1.0, 0.929, 0.0), smoothstep(0.643, 0.761, x)),vec3(1.0, 0.086, 0.424), smoothstep(0.761, 0.847, x)),vec3(1.0, 0.49, 0.0), smoothstep(0.847, 0.89, x)),vec3(0.945, 0.275, 0.475), smoothstep(0.89, 0.941, x)),vec3(0.251, 0.275, 0.796), smoothstep(0.941, 1.0, x))),1.0);}\n float diTN(vec2 p){vec2 f = fract(p);f = (f * f) * (3.0 - (2.0 * f));float n = dot(floor(p), vec2(1.0, 157.0));vec4 a = fract(sin(vec4(n + 0.0, n + 1.0, n + 157.0, n + 158.0)) * 43758.5453123);return mix(mix(a.x, a.y, f.x), mix(a.z, a.w, f.x), f.y);}\n float fbm(vec2 p){const mat2 m = mat2(0.80, -0.60, 0.60, 0.80);float f = 0.0;f += 0.5000*diTN(p); p = m*p*2.02;f += 0.2500*diTN(p); p = m*p*2.03;f += 0.1250*diTN(p); p = m*p*2.01;f += 0.0625*diTN(p);return f/0.9375;}\n vec4 geLS(vec2 p){vec2 pp = (p - vec2(0.5)) * 2.0;float a = atan(pp.y, pp.x);vec4 cp = vec4(sin(a * 1.0), length(pp), sin(a * 13.0), sin(a * 53.0));float d = sin(clamp(pow(length(vec2(0.5) - p) * 0.5 + haloScale /2., 5.0), 0.0, 1.0) * 3.14159);vec3 c = vec3(d) * vec3(fbm(cp.xy * 16.0) * fbm(cp.zw * 9.0) * max(max(max(max(0.5, sin(a * 1.0)), sin(a * 3.0) * 0.8), sin(a * 7.0) * 0.8), sin(a * 9.0) * 10.6));c *= vec3(mix(2.0, (sin(length(pp.xy) * 256.0) * 0.5) + 0.5, sin((clamp((length(pp.xy) - 0.875) / 0.1, 0.0, 1.0) + 0.0) * 2.0 * 3.14159) * 1.5) + 0.5) * 0.3275;return vec4(vec3(c * 1.0), d);}\n vec4 geLD(vec2 p){p.xy += vec2(fbm(p.yx * 3.0), fbm(p.yx * 2.0)) * 0.0825;vec3 o = vec3(mix(0.125, 0.25, max(max(smoothstep(0.1, 0.0, length(p - vec2(0.25))),smoothstep(0.4, 0.0, length(p - vec2(0.75)))),smoothstep(0.8, 0.0, length(p - vec2(0.875, 0.125))))));o += vec3(max(fbm(p * 1.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 2.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 4.0) - 0.5, 0.0)) * 0.25;o += vec3(max(fbm(p * 8.0) - 0.75, 0.0)) * 1.0;o += vec3(max(fbm(p * 16.0) - 0.75, 0.0)) * 0.75;o += vec3(max(fbm(p * 64.0) - 0.75, 0.0)) * 0.5;return vec4(clamp(o, vec3(0.15), vec3(1.0)), 1.0);}\n vec4 txL(sampler2D tex, vec2 xtC){if(((xtC.x < 0.) || (xtC.y < 0.)) || ((xtC.x > 1.) || (xtC.y > 1.))){return vec4(0.0);}else{return texture(tex, xtC); }}\n vec4 txD(sampler2D tex, vec2 xtC, vec2 dir, vec3 ditn) {return vec4(txL(tex, (xtC + (dir * ditn.r))).r,txL(tex, (xtC + (dir * ditn.g))).g,txL(tex, (xtC + (dir * ditn.b))).b,1.0);}\n vec4 strB(){vec2 aspXtc = vec2(1.0) - (((vxtC - vec2(0.5)) * vec2(1.0)) + vec2(0.5)); vec2 xtC = vec2(1.0) - vxtC; vec2 ghvc = (vec2(0.5) - xtC) * 0.3 - lensPosition; vec2 ghNm = normalize(ghvc * vec2(1.0)) * vec2(1.0);vec2 haloVec = normalize(ghvc) * 0.6;vec2 hlNm = ghNm * 0.6;vec2 texelSize = vec2(1.0) / vec2(iResolution.xy);vec3 ditn = vec3(-(texelSize.x * 1.5), 0.2, texelSize.x * 1.5);vec4 c = vec4(0.0);for (int i = 0; i < 8; i++) {vec2 offset = xtC + (ghvc * float(i));c += txD(lensDirtTexture, offset, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - offset) / length(vec2(0.5)))), 10.0);}vec2 uyTrz = xtC + hlNm; return (c * geLC((length(vec2(0.5) - aspXtc) / length(vec2(haloScale))))) +(txD(lensDirtTexture, uyTrz, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - uyTrz) / length(vec2(0.5)))), 10.0));}\n void mainImage(vec4 v,vec2 r,out vec4 i){vec2 g=r-.5;g.y*=iResolution.y/iResolution.x;vec2 l=lensPosition*.5;l.y*=iResolution.y/iResolution.x;vec3 f=mLs(g,l)*20.*colorGain/256.;if(aditionalStreaks){vec3 o=vec3(.9,.2,.1),p=vec3(.3,.1,.9);for(float n=0.;n<10.;n++)f+=drC(g,pow(rnd(n*2e3)*2.8,.1)+1.41,0.,o+n,p+n,rnd(n*20.)*3.+.2-.5,lensPosition);}if(secondaryGhosts){vec3 n=vec3(0);n+=rHx(g,-lensPosition*.25,ghostScale*1.4,vec3(.25,.35,0));n+=rHx(g,lensPosition*.25,ghostScale*.5,vec3(1,.5,.5));n+=rHx(g,lensPosition*.1,ghostScale*1.6,vec3(1));n+=rHx(g,lensPosition*1.8,ghostScale*2.,vec3(0,.5,.75));n+=rHx(g,lensPosition*1.25,ghostScale*.8,vec3(1,1,.5));n+=rHx(g,-lensPosition*1.25,ghostScale*5.,vec3(.5,.5,.25));n+=fpow(1.-abs(distance(lensPosition*.8,g)-.7),.985)*colorGain/2100.;f+=n;}if(starBurst){vxtC=g+.5;vec4 n=geLD(g);float o=1.-clamp(0.5,0.,.5)*2.;n+=mix(n,pow(n*2.,vec4(2))*.5,o);float s=(g.x+g.y)*(1./6.);vec2 d=mat2(cos(s),-sin(s),sin(s),cos(s))*vxtC;n+=geLS(d)*2.;f+=clamp(n.xyz*strB().xyz,.01,1.);}i=enabled?vec4(mix(f,vec3(0),opacity)+v.xyz,v.w):vec4(v);}\n`,\n};\n\nexport class LensFlareEffect extends Effect {\n\tconstructor({\n\t\tblendFunction = BlendFunction.NORMAL,\n\t\tenabled = true,\n\t\tglareSize = 0.2,\n\t\tlensPosition = [0.01, 0.01],\n\t\tiResolution = [0, 0],\n\t\tstarPoints = 6,\n\t\tflareSize = 0.01,\n\t\tflareSpeed = 0.01,\n\t\tflareShape = 0.01,\n\t\tanimated = true,\n\t\tanamorphic = false,\n\t\tcolorGain = new Color(20, 20, 20),\n\t\tlensDirtTexture = null as Texture | null,\n\t\thaloScale = 0.5,\n\t\tsecondaryGhosts = true,\n\t\taditionalStreaks = true,\n\t\tghostScale = 0.0,\n\t\topacity = 1.0,\n\t\tstarBurst = false,\n\t} = {}) {\n\t\tsuper('LensFlareEffect', LensFlareShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tuniforms: new Map<string, Uniform>([\n\t\t\t\t['enabled', new Uniform(enabled)],\n\t\t\t\t['glareSize', new Uniform(glareSize)],\n\t\t\t\t['lensPosition', new Uniform(lensPosition)],\n\t\t\t\t['iTime', new Uniform(0)],\n\t\t\t\t['iResolution', new Uniform(iResolution)],\n\t\t\t\t['starPoints', new Uniform(starPoints)],\n\t\t\t\t['flareSize', new Uniform(flareSize)],\n\t\t\t\t['flareSpeed', new Uniform(flareSpeed)],\n\t\t\t\t['flareShape', new Uniform(flareShape)],\n\t\t\t\t['animated', new Uniform(animated)],\n\t\t\t\t['anamorphic', new Uniform(anamorphic)],\n\t\t\t\t['colorGain', new Uniform(colorGain)],\n\t\t\t\t['lensDirtTexture', new Uniform(lensDirtTexture)],\n\t\t\t\t['haloScale', new Uniform(haloScale)],\n\t\t\t\t['secondaryGhosts', new Uniform(secondaryGhosts)],\n\t\t\t\t['aditionalStreaks', new Uniform(aditionalStreaks)],\n\t\t\t\t['ghostScale', new Uniform(ghostScale)],\n\t\t\t\t['starBurst', new Uniform(starBurst)],\n\t\t\t\t['opacity', new Uniform(opacity)],\n\t\t\t]),\n\t\t});\n\t}\n\n\toverride update(_renderer: WebGLRenderer, _inputBuffer: WebGLRenderTarget, deltaTime: number) {\n\t\tconst iTime = this.uniforms.get('iTime');\n\t\tif (iTime) {\n\t\t\tiTime.value += deltaTime;\n\t\t}\n\t}\n}\n\nexport type LensFlareOptions = ConstructorParameters<typeof LensFlareEffect>[0] & {\n\tposition: Vector3;\n\tfollowMouse: boolean;\n\tsmoothTime: number;\n};\n\nconst defaultOptions: LensFlareOptions = {\n\tposition: new Vector3(-25, 6, -60),\n\tfollowMouse: false,\n\tsmoothTime: 0.7,\n};\n\n@Component({\n\tselector: 'ngtp-lens-flare',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpLensFlare {\n\tprivate autoEffect = injectAutoEffect();\n\tprivate store = injectStore();\n\tprivate viewport = this.store.select('viewport');\n\tprivate raycaster = this.store.select('raycaster');\n\tprivate pointer = this.store.select('pointer');\n\n\teffectComposer = inject(NgtpEffectComposer);\n\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate projectedPosition = new Vector3();\n\tprivate mouse2d = new Vector2();\n\n\teffect = computed(() => {\n\t\tconst { position: _, followMouse: __, smoothTime: ___, ...options } = this.options();\n\t\treturn new LensFlareEffect(options);\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst [effect, viewport] = [this.effect(), this.viewport()];\n\t\t\t\tconst iResolution = effect.uniforms.get('iResolution');\n\t\t\t\tif (iResolution) {\n\t\t\t\t\tiResolution.value.x = viewport.width;\n\t\t\t\t\tiResolution.value.y = viewport.height;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tinjectBeforeRender(({ delta }) => {\n\t\t\tconst [effect] = [this.effect()];\n\t\t\tif (!effect) return;\n\n\t\t\tconst [{ followMouse, position, smoothTime }, pointer, camera, scene, raycaster] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.pointer(),\n\t\t\t\tthis.effectComposer.camera(),\n\t\t\t\tthis.effectComposer.scene(),\n\t\t\t\tthis.raycaster(),\n\t\t\t];\n\n\t\t\tconst uLensPosition = effect.uniforms.get('lensPosition');\n\t\t\tconst uOpacity = effect.uniforms.get('opacity');\n\t\t\tif (!uLensPosition || !uOpacity) return;\n\n\t\t\tlet target = 1;\n\n\t\t\tif (followMouse) {\n\t\t\t\tuLensPosition.value.x = pointer.x;\n\t\t\t\tuLensPosition.value.y = pointer.y;\n\t\t\t\ttarget = 0;\n\t\t\t} else {\n\t\t\t\tthis.projectedPosition.copy(position).project(camera);\n\t\t\t\tif (this.projectedPosition.z > 1) return;\n\n\t\t\t\tuLensPosition.value.x = this.projectedPosition.x;\n\t\t\t\tuLensPosition.value.y = this.projectedPosition.y;\n\n\t\t\t\tthis.mouse2d.set(this.projectedPosition.x, this.projectedPosition.y);\n\t\t\t\traycaster.setFromCamera(this.mouse2d, camera);\n\t\t\t\tconst intersects = raycaster.intersectObjects(scene.children, true);\n\t\t\t\tconst { object } = intersects[0] ?? {};\n\t\t\t\tif (object) {\n\t\t\t\t\tif (object.userData?.['lensflare'] === 'no-occlusion') {\n\t\t\t\t\t\ttarget = 0;\n\t\t\t\t\t} else if (object instanceof Mesh) {\n\t\t\t\t\t\tif (object.material.uniforms?._transmission?.value > 0.2) {\n\t\t\t\t\t\t\t//Check for MeshTransmissionMaterial\n\t\t\t\t\t\t\ttarget = 0.2;\n\t\t\t\t\t\t} else if (object.material._transmission && object.material._transmission > 0.2) {\n\t\t\t\t\t\t\t//Check for MeshPhysicalMaterial with transmission setting\n\t\t\t\t\t\t\ttarget = 0.2;\n\t\t\t\t\t\t} else if (object.material.transparent) {\n\t\t\t\t\t\t\t// Check for OtherMaterials with transparent parameter\n\t\t\t\t\t\t\ttarget = object.material.opacity;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\teasing.damp(uOpacity, 'value', target, smoothTime, delta);\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tafterNextRender,\n\tcomputed,\n\tinput,\n} from '@angular/core';\nimport { NgtArgs, injectStore, pick } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { BlendFunction, LUT3DEffect } from 'postprocessing';\nimport { Texture } from 'three';\n\nexport interface LUTOptions {\n\tlut: Texture;\n\tblendFunction?: BlendFunction;\n\ttetrahedralInterpolation?: boolean;\n}\n\n@Component({\n\tselector: 'ngtp-lut',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n\timports: [NgtArgs],\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpLUT {\n\tprivate autoEffect = injectAutoEffect();\n\tprivate store = injectStore();\n\tprivate invalidate = this.store.select('invalidate');\n\n\toptions = input({} as LUTOptions);\n\tprivate lut = pick(this.options, 'lut');\n\n\teffect = computed(() => {\n\t\tconst [lut, { lut: _, ...options }] = [this.lut(), this.options()];\n\t\treturn new LUT3DEffect(lut, options);\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.autoEffect(() => {\n\t\t\t\tconst [effect, { lut, tetrahedralInterpolation }, invalidate] = [\n\t\t\t\t\tthis.effect(),\n\t\t\t\t\tthis.options(),\n\t\t\t\t\tthis.invalidate(),\n\t\t\t\t];\n\n\t\t\t\tif (tetrahedralInterpolation) effect.tetrahedralInterpolation = tetrahedralInterpolation;\n\t\t\t\tif (lut) effect.lut = lut;\n\t\t\t\tinvalidate();\n\t\t\t});\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nextend({ NoiseEffect });\n\nexport type NoiseEffectOptions = Partial<NonNullable<ConstructorParameters<typeof NoiseEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-noise',\n\ttemplate: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })],\n})\nexport class NgtpNoise {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<NoiseEffectOptions, 'blendFunction'>);\n}\n","import {\n\tafterNextRender,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tElementRef,\n\tinject,\n\tinput,\n\tuntracked,\n} from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelection, omit, pick, resolveRef } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { OutlineEffect } from 'postprocessing';\nimport { Object3D } from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\n\nexport type NgtpOutlineOptions = ConstructorParameters<typeof OutlineEffect>[2] & {\n\tselection?: Array<Object3D | ElementRef<Object3D>>;\n\tselectionLayer: number;\n};\n\nconst defaultOptions: NgtpOutlineOptions = {\n\tselectionLayer: 10,\n};\n\n@Component({\n\tselector: 'ngtp-outline',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs],\n})\nexport class NgtpOutline {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tprivate ngtSelection = inject(NgtSelection, { optional: true });\n\tprivate effectComposer = inject(NgtpEffectComposer);\n\tprivate store = injectStore();\n\tprivate invalidate = this.store.select('invalidate');\n\n\tprivate selection = pick(this.options, 'selection');\n\tprivate selectionLayer = pick(this.options, 'selectionLayer');\n\n\tprivate blendFunction = pick(this.options, 'blendFunction');\n\tprivate patternTexture = pick(this.options, 'patternTexture');\n\tprivate edgeStrength = pick(this.options, 'edgeStrength');\n\tprivate pulseSpeed = pick(this.options, 'pulseSpeed');\n\tprivate visibleEdgeColor = pick(this.options, 'visibleEdgeColor');\n\tprivate hiddenEdgeColor = pick(this.options, 'hiddenEdgeColor');\n\tprivate width = pick(this.options, 'width');\n\tprivate height = pick(this.options, 'height');\n\tprivate kernelSize = pick(this.options, 'kernelSize');\n\tprivate blur = pick(this.options, 'blur');\n\tprivate xRay = pick(this.options, 'xRay');\n\tprivate restOptions = omit(this.options, [\n\t\t'blendFunction',\n\t\t'patternTexture',\n\t\t'edgeStrength',\n\t\t'pulseSpeed',\n\t\t'visibleEdgeColor',\n\t\t'hiddenEdgeColor',\n\t\t'width',\n\t\t'height',\n\t\t'kernelSize',\n\t\t'blur',\n\t\t'xRay',\n\t]);\n\n\teffect = computed(() => {\n\t\tconst [\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tblendFunction,\n\t\t\tpatternTexture,\n\t\t\tedgeStrength,\n\t\t\tpulseSpeed,\n\t\t\tvisibleEdgeColor,\n\t\t\thiddenEdgeColor,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tkernelSize,\n\t\t\tblur,\n\t\t\txRay,\n\t\t\trestOptions,\n\t\t] = [\n\t\t\tthis.effectComposer.scene(),\n\t\t\tthis.effectComposer.camera(),\n\t\t\tthis.blendFunction(),\n\t\t\tthis.patternTexture(),\n\t\t\tthis.edgeStrength(),\n\t\t\tthis.pulseSpeed(),\n\t\t\tthis.visibleEdgeColor(),\n\t\t\tthis.hiddenEdgeColor(),\n\t\t\tthis.width(),\n\t\t\tthis.height(),\n\t\t\tthis.kernelSize(),\n\t\t\tthis.blur(),\n\t\t\tthis.xRay(),\n\t\t\tuntracked(this.restOptions),\n\t\t];\n\n\t\treturn new OutlineEffect(scene, camera, {\n\t\t\tblendFunction,\n\t\t\tpatternTexture,\n\t\t\tedgeStrength,\n\t\t\tpulseSpeed,\n\t\t\tvisibleEdgeColor,\n\t\t\thiddenEdgeColor,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tkernelSize,\n\t\t\tblur,\n\t\t\txRay,\n\t\t\t...restOptions,\n\t\t});\n\t});\n\n\tconstructor() {\n\t\tconst autoEffect = injectAutoEffect();\n\n\t\tafterNextRender(() => {\n\t\t\tautoEffect(() => {\n\t\t\t\tconst effect = this.effect();\n\t\t\t\treturn () => effect.dispose();\n\t\t\t});\n\n\t\t\tautoEffect(() => {\n\t\t\t\tconst [effect, invalidate, selectionLayer] = [this.effect(), this.invalidate(), this.selectionLayer()];\n\t\t\t\teffect.selectionLayer = selectionLayer;\n\t\t\t\tinvalidate();\n\t\t\t});\n\n\t\t\tautoEffect(() => {\n\t\t\t\t// NOTE: we run this effect if declarative NgtSelection is not enabled\n\t\t\t\tif (!this.ngtSelection) {\n\t\t\t\t\t// NOTE: if NgtSelection is not used and selection is not provided, we throw\n\t\t\t\t\tif (this.selection() === undefined) {\n\t\t\t\t\t\tthrow new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.handleSelectionChangeEffect(this.selection, this.effect, this.invalidate);\n\t\t\t\t}\n\n\t\t\t\t// NOTE: we run this effect if declarative NgtSelection is enabled\n\t\t\t\tconst selectionEnabled = this.ngtSelection.enabled();\n\t\t\t\tif (!selectionEnabled) return;\n\t\t\t\treturn this.handleSelectionChangeEffect(this.ngtSelection.selected, this.effect, this.invalidate);\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate handleSelectionChangeEffect(\n\t\tselected: () => Array<Object3D | ElementRef<Object3D>> | undefined,\n\t\t_effect: () => OutlineEffect,\n\t\t_invalidate: () => () => void,\n\t) {\n\t\tconst selection = selected();\n\t\tif (!selection || selection.length === 0) return;\n\n\t\tconst [effect, invalidate] = [_effect(), _invalidate()];\n\n\t\tconst objects: Object3D[] = [];\n\t\tfor (const el of selection) {\n\t\t\tconst obj = resolveRef(el);\n\t\t\tif (!obj) continue;\n\t\t\tobjects.push(obj);\n\t\t}\n\n\t\tif (objects.length === 0) return;\n\n\t\teffect.selection.set(objects);\n\t\tinvalidate();\n\n\t\treturn () => {\n\t\t\teffect.selection.clear();\n\t\t\tinvalidate();\n\t\t};\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgtArgs, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { PixelationEffect } from 'postprocessing';\n\nexport interface PixelationOptions {\n\tgranularity: number;\n}\n@Component({\n\tselector: 'ngtp-pixelation',\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\timports: [NgtArgs],\n})\nexport class NgtpPixelation {\n\toptions = input({ granularity: 5 } as PixelationOptions, { transform: mergeInputs({ granularity: 5 }) });\n\tprivate granularity = pick(this.options, 'granularity');\n\n\teffect = computed(() => new PixelationEffect(this.granularity()));\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nextend({ ScanlineEffect });\n\nexport type ScanlineEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ScanlineEffect>[0]>>;\n\nconst defaultOptions: Omit<ScanlineEffectOptions, 'blendFunction'> = {\n\tdensity: 1.25,\n};\n\n@Component({\n\tselector: 'ngtp-scanline',\n\ttemplate: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })],\n})\nexport class NgtpScanline {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ SepiaEffect });\n\nexport type SepiaEffectOptions = Partial<NonNullable<ConstructorParameters<typeof SepiaEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-sepia',\n\ttemplate: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpSepia {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<SepiaEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ ShockWaveEffect });\n\nexport type ShockWaveEffectOptions = Partial<NonNullable<ConstructorParameters<typeof ShockWaveEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-shock-wave',\n\ttemplate: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpShockWave {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<ShockWaveEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SMAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ SMAAEffect });\n\nexport type SMAAEffectOptions = Partial<NonNullable<ConstructorParameters<typeof SMAAEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-smaa',\n\ttemplate: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpSMAA {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<SMAAEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nextend({ TiltShiftEffect });\n\nexport type TiltShiftEffectOptions = Partial<NonNullable<ConstructorParameters<typeof TiltShiftEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-tilt-shift',\n\ttemplate: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n})\nexport class NgtpTiltShift {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<TiltShiftEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport { Uniform } from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nconst TiltShiftShader = {\n\tfragmentShader: /* language=glsl glsl */ `\n\n // original shader by Evan Wallace\n\n #define MAX_ITERATIONS 100\n\n uniform float blur;\n uniform float taper;\n uniform vec2 start;\n uniform vec2 end;\n uniform vec2 direction;\n uniform int samples;\n\n float random(vec3 scale, float seed) {\n /* use the fragment position for a different seed per-pixel */\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n }\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec4 color = vec4(0.0);\n float total = 0.0;\n vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);\n vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);\n float f_samples = float(samples);\n float half_samples = f_samples / 2.0;\n\n // use screen diagonal to normalize blur radii\n float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance\n float gradientRadius = taper * (maxScreenDistance);\n float blurRadius = blur * (maxScreenDistance / 16.0);\n\n /* randomize the lookup values to hide the fixed number of samples */\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;\n\n #pragma unroll_loop_start\n for (int i = 0; i <= MAX_ITERATIONS; i++) {\n if (i >= samples) { break; } // return early if over sample count\n float f_i = float(i);\n float s_i = -half_samples + f_i;\n float percent = (s_i + offset - 0.5) / half_samples;\n float weight = 1.0 - abs(percent);\n vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);\n /* switch to pre-multiplied alpha to correctly blur transparent images */\n sample_i.rgb *= sample_i.a;\n color += sample_i * weight;\n total += weight;\n }\n #pragma unroll_loop_end\n\n outputColor = color / total;\n\n /* switch back from pre-multiplied alpha */\n outputColor.rgb /= outputColor.a + 0.00001;\n }\n `,\n};\n\nexport class TiltShift2Effect extends Effect {\n\tconstructor({\n\t\tblendFunction = BlendFunction.NORMAL,\n\t\tblur = 0.15, // [0, 1], can go beyond 1 for extra\n\t\ttaper = 0.5, // [0, 1], can go beyond 1 for extra\n\t\tstart = [0.5, 0.0], // [0,1] percentage x,y of screenspace\n\t\tend = [0.5, 1.0], // [0,1] percentage x,y of screenspace\n\t\tsamples = 10.0, // number of blur samples\n\t\tdirection = [1, 1], // direction of blur\n\t} = {}) {\n\t\tsuper('TiltShiftEffect', TiltShiftShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tattributes: EffectAttribute.CONVOLUTION,\n\t\t\tuniforms: new Map<string, Uniform<number | number[]>>([\n\t\t\t\t['blur', new Uniform(blur)],\n\t\t\t\t['taper', new Uniform(taper)],\n\t\t\t\t['start', new Uniform(start)],\n\t\t\t\t['end', new Uniform(end)],\n\t\t\t\t['samples', new Uniform(samples)],\n\t\t\t\t['direction', new Uniform(direction)],\n\t\t\t]),\n\t\t});\n\t}\n}\n\nexport type TiltShift2EffectOptions = Partial<NonNullable<ConstructorParameters<typeof TiltShift2Effect>[0]>>;\n\nextend({ TiltShift2Effect });\n\n@Component({\n\tselector: 'ngtp-tilt-shift2',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n})\nexport class NgtpTiltShift2 {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<TiltShift2EffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';\n\nextend({ VignetteEffect });\n\nexport type VignetteEffectOptions = Partial<NonNullable<ConstructorParameters<typeof VignetteEffect>[0]>>;\n\n@Component({\n\tselector: 'ngtp-vignette',\n\ttemplate: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n\tstandalone: true,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n})\nexport class NgtpVignette {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<VignetteEffectOptions, 'blendFunction'>);\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport { Uniform } from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nconst WaterShader = {\n\tfragmentShader: /* language=glsl glsl */ `\n uniform float factor;\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 vUv = uv;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = vUv.y * frequency + time * .7;\n float y = vUv.x * frequency + time * .3;\n vUv.x += cos(x+y) * amplitude * cos(y);\n vUv.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(inputBuffer, vUv);\n outputColor = rgba;\n }`,\n};\n\nexport class WaterEffect extends Effect {\n\tconstructor({ blendFunction = BlendFunction.NORMAL, factor = 0 } = {}) {\n\t\tsuper('WaterEffect', WaterShader.fragmentShader, {\n\t\t\tblendFunction,\n\t\t\tattributes: EffectAttribute.CONVOLUTION,\n\t\t\tuniforms: new Map<string, Uniform<number | number[]>>([['factor', new Uniform(factor)]]),\n\t\t});\n\t}\n}\n\nexport type WaterEffectOptions = Partial<NonNullable<ConstructorParameters<typeof WaterEffect>[0]>>;\n\nextend({ WaterEffect });\n\n@Component({\n\tselector: 'ngtp-water',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n})\nexport class NgtpWater {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<WaterEffectOptions, 'blendFunction'>);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["defaultOptions","i1.NgtpEffect"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-three-postprocessing",
3
- "version": "2.0.0-beta.315",
3
+ "version": "2.0.0-beta.316",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -26,11 +26,11 @@
26
26
  "@angular/core": ">=18.0.0 <19.0.0",
27
27
  "maath": ">=0.10.0 <0.11.0",
28
28
  "postprocessing": "^6.0.0",
29
- "three": ">=0.148.0 <0.168.0",
29
+ "three": ">=0.148.0 <0.169.0",
30
30
  "three-stdlib": "^2.0.0"
31
31
  },
32
32
  "dependencies": {
33
- "tslib": "^2.3.0"
33
+ "tslib": "^2.7.0"
34
34
  },
35
35
  "sideEffects": false,
36
36
  "web-types": [