angular-three-postprocessing 2.0.0-beta.24 → 2.0.0-beta.241
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/effect-composer.mjs +135 -170
- package/esm2022/lib/effect.mjs +45 -70
- package/esm2022/lib/effects/ascii.mjs +121 -0
- package/esm2022/lib/effects/bloom.mjs +39 -0
- package/esm2022/lib/effects/brightness-contrast.mjs +48 -0
- package/esm2022/lib/effects/chromatic-abberation.mjs +48 -0
- package/esm2022/lib/effects/color-average.mjs +34 -0
- package/esm2022/lib/effects/color-depth.mjs +38 -0
- package/esm2022/lib/effects/depth-of-field.mjs +57 -0
- package/esm2022/lib/effects/depth.mjs +38 -0
- package/esm2022/lib/effects/dot-screen.mjs +38 -0
- package/esm2022/lib/effects/fxaa.mjs +38 -0
- package/esm2022/lib/effects/glitch.mjs +64 -0
- package/esm2022/lib/effects/god-rays.mjs +42 -0
- package/esm2022/lib/effects/grid.mjs +45 -0
- package/esm2022/lib/effects/hue-saturation.mjs +38 -0
- package/esm2022/lib/effects/index.mjs +27 -18
- package/esm2022/lib/effects/lens-flare.mjs +195 -0
- package/esm2022/lib/effects/lut.mjs +51 -0
- package/esm2022/lib/effects/noise.mjs +39 -0
- package/esm2022/lib/effects/pixelation.mjs +31 -0
- package/esm2022/lib/effects/scanline.mjs +43 -0
- package/esm2022/lib/effects/sepia.mjs +38 -0
- package/esm2022/lib/effects/shock-wave.mjs +38 -0
- package/esm2022/lib/effects/smaa.mjs +38 -0
- package/esm2022/lib/effects/tilt-shift-2.mjs +121 -0
- package/esm2022/lib/effects/tilt-shift.mjs +39 -0
- package/esm2022/lib/effects/vignette.mjs +38 -0
- package/esm2022/lib/effects/water.mjs +64 -0
- package/fesm2022/angular-three-postprocessing.mjs +1193 -655
- package/fesm2022/angular-three-postprocessing.mjs.map +1 -1
- package/lib/effect-composer.d.ts +70 -66
- package/lib/effect.d.ts +55 -24
- package/lib/effects/ascii.d.ts +24 -0
- package/lib/effects/bloom.d.ts +10 -0
- package/lib/effects/brightness-contrast.d.ts +15 -0
- package/lib/effects/chromatic-abberation.d.ts +16 -0
- package/lib/effects/color-average.d.ts +12 -0
- package/lib/effects/color-depth.d.ts +14 -0
- package/lib/effects/depth-of-field.d.ts +30 -0
- package/lib/effects/depth.d.ts +14 -0
- package/lib/effects/dot-screen.d.ts +15 -0
- package/lib/effects/fxaa.d.ts +13 -0
- package/lib/effects/glitch.d.ts +30 -0
- package/lib/effects/god-rays.d.ts +38 -0
- package/lib/effects/grid.d.ts +24 -0
- package/lib/effects/hue-saturation.d.ts +15 -0
- package/lib/effects/index.d.ts +26 -17
- package/lib/effects/lens-flare.d.ts +111 -0
- package/lib/effects/lut.d.ts +20 -0
- package/lib/effects/noise.d.ts +14 -0
- package/lib/effects/pixelation.d.ts +17 -0
- package/lib/effects/scanline.d.ts +17 -0
- package/lib/effects/sepia.d.ts +14 -0
- package/lib/effects/shock-wave.d.ts +11 -0
- package/lib/effects/smaa.d.ts +15 -0
- package/lib/effects/tilt-shift-2.d.ts +35 -0
- package/lib/effects/tilt-shift.d.ts +22 -0
- package/lib/effects/vignette.d.ts +17 -0
- package/lib/effects/water.d.ts +20 -0
- package/package.json +54 -46
- package/esm2022/lib/effects/bloom/bloom.mjs +0 -33
- package/esm2022/lib/effects/brightness-contrast/brightness-contrast.mjs +0 -29
- package/esm2022/lib/effects/color-depth/color-depth.mjs +0 -29
- package/esm2022/lib/effects/depth/depth.mjs +0 -29
- package/esm2022/lib/effects/dot-screen/dot-screen.mjs +0 -29
- package/esm2022/lib/effects/hue-saturation/hue-saturation.mjs +0 -29
- package/esm2022/lib/effects/lut/lut.mjs +0 -74
- package/esm2022/lib/effects/noise/noise.mjs +0 -33
- package/esm2022/lib/effects/pixelation/pixelation.mjs +0 -37
- package/esm2022/lib/effects/scanline/scanline.mjs +0 -33
- package/esm2022/lib/effects/sepia/sepia.mjs +0 -29
- package/esm2022/lib/effects/shock-wave/shock-wave.mjs +0 -29
- package/esm2022/lib/effects/smaa/smaa.mjs +0 -29
- package/esm2022/lib/effects/ssao/ssao.mjs +0 -217
- package/esm2022/lib/effects/tilt-shift/tilt-shift.mjs +0 -33
- package/esm2022/lib/effects/tone-mapping/tone-mapping.mjs +0 -29
- package/esm2022/lib/effects/vignette/vignette.mjs +0 -29
- package/lib/effects/bloom/bloom.d.ts +0 -13
- package/lib/effects/brightness-contrast/brightness-contrast.d.ts +0 -15
- package/lib/effects/color-depth/color-depth.d.ts +0 -14
- package/lib/effects/depth/depth.d.ts +0 -14
- package/lib/effects/dot-screen/dot-screen.d.ts +0 -15
- package/lib/effects/hue-saturation/hue-saturation.d.ts +0 -15
- package/lib/effects/lut/lut.d.ts +0 -29
- package/lib/effects/noise/noise.d.ts +0 -15
- package/lib/effects/pixelation/pixelation.d.ts +0 -20
- package/lib/effects/scanline/scanline.d.ts +0 -15
- package/lib/effects/sepia/sepia.d.ts +0 -14
- package/lib/effects/shock-wave/shock-wave.d.ts +0 -17
- package/lib/effects/smaa/smaa.d.ts +0 -16
- package/lib/effects/ssao/ssao.d.ts +0 -42
- package/lib/effects/tilt-shift/tilt-shift.d.ts +0 -23
- package/lib/effects/tone-mapping/tone-mapping.d.ts +0 -22
- package/lib/effects/vignette/vignette.d.ts +0 -17
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs, injectNgtRef } from 'angular-three';
|
|
3
|
+
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
4
|
+
import { Effect } from 'postprocessing';
|
|
5
|
+
import { CanvasTexture, Color, NearestFilter, RepeatWrapping, Texture, Uniform } from 'three';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
const fragment = `
|
|
8
|
+
uniform sampler2D uCharacters;
|
|
9
|
+
uniform float uCharactersCount;
|
|
10
|
+
uniform float uCellSize;
|
|
11
|
+
uniform bool uInvert;
|
|
12
|
+
uniform vec3 uColor;
|
|
13
|
+
|
|
14
|
+
const vec2 SIZE = vec2(16.);
|
|
15
|
+
|
|
16
|
+
vec3 greyscale(vec3 color, float strength) {
|
|
17
|
+
float g = dot(color, vec3(0.299, 0.587, 0.114));
|
|
18
|
+
return mix(color, vec3(g), strength);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
vec3 greyscale(vec3 color) {
|
|
22
|
+
return greyscale(color, 1.0);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {
|
|
26
|
+
vec2 cell = resolution / uCellSize;
|
|
27
|
+
vec2 grid = 1.0 / cell;
|
|
28
|
+
vec2 pixelizedUV = grid * (0.5 + floor(uv / grid));
|
|
29
|
+
vec4 pixelized = texture2D(inputBuffer, pixelizedUV);
|
|
30
|
+
float greyscaled = greyscale(pixelized.rgb).r;
|
|
31
|
+
|
|
32
|
+
if (uInvert) {
|
|
33
|
+
greyscaled = 1.0 - greyscaled;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
float characterIndex = floor((uCharactersCount - 1.0) * greyscaled);
|
|
37
|
+
vec2 characterPosition = vec2(mod(characterIndex, SIZE.x), floor(characterIndex / SIZE.y));
|
|
38
|
+
vec2 offset = vec2(characterPosition.x, -characterPosition.y) / SIZE;
|
|
39
|
+
vec2 charUV = mod(uv * (cell / SIZE), 1.0 / SIZE) - vec2(0., 1.0 / SIZE) + offset;
|
|
40
|
+
vec4 asciiCharacter = texture2D(uCharacters, charUV);
|
|
41
|
+
|
|
42
|
+
asciiCharacter.rgb = uColor * asciiCharacter.r;
|
|
43
|
+
asciiCharacter.a = pixelized.a;
|
|
44
|
+
outputColor = asciiCharacter;
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
export class ASCIIEffect extends Effect {
|
|
48
|
+
constructor({ font = 'arial', characters = ` .:,'-^=*+?!|0#X%WM@`, fontSize = 54, cellSize = 16, color = '#ffffff', invert = false, } = {}) {
|
|
49
|
+
const uniforms = new Map([
|
|
50
|
+
['uCharacters', new Uniform(new Texture())],
|
|
51
|
+
['uCellSize', new Uniform(cellSize)],
|
|
52
|
+
['uCharactersCount', new Uniform(characters.length)],
|
|
53
|
+
['uColor', new Uniform(new Color(color))],
|
|
54
|
+
['uInvert', new Uniform(invert)],
|
|
55
|
+
]);
|
|
56
|
+
super('ASCIIEffect', fragment, { uniforms });
|
|
57
|
+
const charactersTextureUniform = this.uniforms.get('uCharacters');
|
|
58
|
+
if (charactersTextureUniform) {
|
|
59
|
+
charactersTextureUniform.value = this.createCharactersTexture(characters, font, fontSize);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/** Draws the characters on a Canvas and returns a texture */
|
|
63
|
+
createCharactersTexture(characters, font, fontSize) {
|
|
64
|
+
const canvas = document.createElement('canvas');
|
|
65
|
+
const SIZE = 1024;
|
|
66
|
+
const MAX_PER_ROW = 16;
|
|
67
|
+
const CELL = SIZE / MAX_PER_ROW;
|
|
68
|
+
canvas.width = canvas.height = SIZE;
|
|
69
|
+
const texture = new CanvasTexture(canvas, undefined, RepeatWrapping, RepeatWrapping, NearestFilter, NearestFilter);
|
|
70
|
+
const context = canvas.getContext('2d');
|
|
71
|
+
if (!context) {
|
|
72
|
+
throw new Error('Context not available');
|
|
73
|
+
}
|
|
74
|
+
context.clearRect(0, 0, SIZE, SIZE);
|
|
75
|
+
context.font = `${fontSize}px ${font}`;
|
|
76
|
+
context.textAlign = 'center';
|
|
77
|
+
context.textBaseline = 'middle';
|
|
78
|
+
context.fillStyle = '#fff';
|
|
79
|
+
for (let i = 0; i < characters.length; i++) {
|
|
80
|
+
const char = characters[i];
|
|
81
|
+
const x = i % MAX_PER_ROW;
|
|
82
|
+
const y = Math.floor(i / MAX_PER_ROW);
|
|
83
|
+
context.fillText(char, x * CELL + CELL / 2, y * CELL + CELL / 2);
|
|
84
|
+
}
|
|
85
|
+
texture.needsUpdate = true;
|
|
86
|
+
return texture;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const defaultOptions = {
|
|
90
|
+
font: 'arial',
|
|
91
|
+
characters: ` .:,'-^=*+?!|0#X%WM@`,
|
|
92
|
+
fontSize: 54,
|
|
93
|
+
cellSize: 16,
|
|
94
|
+
color: '#ffffff',
|
|
95
|
+
invert: false,
|
|
96
|
+
};
|
|
97
|
+
export class NgtpASCII {
|
|
98
|
+
constructor() {
|
|
99
|
+
this.effectRef = input(injectNgtRef());
|
|
100
|
+
this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
|
|
101
|
+
this.effect = computed(() => new ASCIIEffect(this.options()));
|
|
102
|
+
}
|
|
103
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
104
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtpASCII, isStandalone: true, selector: "ngtp-ascii", inputs: { effectRef: { classPropertyName: "effectRef", publicName: "effectRef", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
105
|
+
<ngt-primitive *args="[effect()]" [ref]="effectRef()" ngtCompound />
|
|
106
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
107
|
+
}
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpASCII, decorators: [{
|
|
109
|
+
type: Component,
|
|
110
|
+
args: [{
|
|
111
|
+
selector: 'ngtp-ascii',
|
|
112
|
+
standalone: true,
|
|
113
|
+
template: `
|
|
114
|
+
<ngt-primitive *args="[effect()]" [ref]="effectRef()" ngtCompound />
|
|
115
|
+
`,
|
|
116
|
+
imports: [NgtArgs],
|
|
117
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
118
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
119
|
+
}]
|
|
120
|
+
}] });
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNjaWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9hc2NpaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBRTlGLE1BQU0sUUFBUSxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F1Q2hCLENBQUM7QUFXRixNQUFNLE9BQU8sV0FBWSxTQUFRLE1BQU07SUFDdEMsWUFBWSxFQUNYLElBQUksR0FBRyxPQUFPLEVBQ2QsVUFBVSxHQUFHLHNCQUFzQixFQUNuQyxRQUFRLEdBQUcsRUFBRSxFQUNiLFFBQVEsR0FBRyxFQUFFLEVBQ2IsS0FBSyxHQUFHLFNBQVMsRUFDakIsTUFBTSxHQUFHLEtBQUssTUFDUyxFQUFFO1FBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFrQjtZQUN6QyxDQUFDLGFBQWEsRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDM0MsQ0FBQyxXQUFXLEVBQUUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEQsQ0FBQyxRQUFRLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6QyxDQUFDLFNBQVMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNoQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFN0MsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVsRSxJQUFJLHdCQUF3QixFQUFFLENBQUM7WUFDOUIsd0JBQXdCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNGLENBQUM7SUFDRixDQUFDO0lBRUQsNkRBQTZEO0lBQ3RELHVCQUF1QixDQUFDLFVBQWtCLEVBQUUsSUFBWSxFQUFFLFFBQWdCO1FBQ2hGLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsV0FBVyxDQUFDO1FBRWhDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNuSCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQyxPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBRTNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7WUFDMUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDdEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMzQixPQUFPLE9BQU8sQ0FBQztJQUNoQixDQUFDO0NBQ0Q7QUFFRCxNQUFNLGNBQWMsR0FBdUI7SUFDMUMsSUFBSSxFQUFFLE9BQU87SUFDYixVQUFVLEVBQUUsc0JBQXNCO0lBQ2xDLFFBQVEsRUFBRSxFQUFFO0lBQ1osUUFBUSxFQUFFLEVBQUU7SUFDWixLQUFLLEVBQUUsU0FBUztJQUNoQixNQUFNLEVBQUUsS0FBSztDQUNiLENBQUM7QUFZRixNQUFNLE9BQU8sU0FBUztJQVZ0QjtRQVdDLGNBQVMsR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFlLENBQUMsQ0FBQztRQUMvQyxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTVFLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN6RDs4R0FMWSxTQUFTO2tHQUFULFNBQVMsb1ZBUFg7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsU0FBUztrQkFWckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGluamVjdE5ndFJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgQ2FudmFzVGV4dHVyZSwgQ29sb3IsIE5lYXJlc3RGaWx0ZXIsIFJlcGVhdFdyYXBwaW5nLCBUZXh0dXJlLCBVbmlmb3JtIH0gZnJvbSAndGhyZWUnO1xuXG5jb25zdCBmcmFnbWVudCA9IGBcbnVuaWZvcm0gc2FtcGxlcjJEIHVDaGFyYWN0ZXJzO1xudW5pZm9ybSBmbG9hdCB1Q2hhcmFjdGVyc0NvdW50O1xudW5pZm9ybSBmbG9hdCB1Q2VsbFNpemU7XG51bmlmb3JtIGJvb2wgdUludmVydDtcbnVuaWZvcm0gdmVjMyB1Q29sb3I7XG5cbmNvbnN0IHZlYzIgU0laRSA9IHZlYzIoMTYuKTtcblxudmVjMyBncmV5c2NhbGUodmVjMyBjb2xvciwgZmxvYXQgc3RyZW5ndGgpIHtcbiAgICBmbG9hdCBnID0gZG90KGNvbG9yLCB2ZWMzKDAuMjk5LCAwLjU4NywgMC4xMTQpKTtcbiAgICByZXR1cm4gbWl4KGNvbG9yLCB2ZWMzKGcpLCBzdHJlbmd0aCk7XG59XG5cbnZlYzMgZ3JleXNjYWxlKHZlYzMgY29sb3IpIHtcbiAgICByZXR1cm4gZ3JleXNjYWxlKGNvbG9yLCAxLjApO1xufVxuXG52b2lkIG1haW5JbWFnZShjb25zdCBpbiB2ZWM0IGlucHV0Q29sb3IsIGNvbnN0IGluIHZlYzIgdXYsIG91dCB2ZWM0IG91dHB1dENvbG9yKSB7XG4gICAgdmVjMiBjZWxsID0gcmVzb2x1dGlvbiAvIHVDZWxsU2l6ZTtcbiAgICB2ZWMyIGdyaWQgPSAxLjAgLyBjZWxsO1xuICAgIHZlYzIgcGl4ZWxpemVkVVYgPSBncmlkICogKDAuNSArIGZsb29yKHV2IC8gZ3JpZCkpO1xuICAgIHZlYzQgcGl4ZWxpemVkID0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCBwaXhlbGl6ZWRVVik7XG4gICAgZmxvYXQgZ3JleXNjYWxlZCA9IGdyZXlzY2FsZShwaXhlbGl6ZWQucmdiKS5yO1xuXG4gICAgaWYgKHVJbnZlcnQpIHtcbiAgICAgICAgZ3JleXNjYWxlZCA9IDEuMCAtIGdyZXlzY2FsZWQ7XG4gICAgfVxuXG4gICAgZmxvYXQgY2hhcmFjdGVySW5kZXggPSBmbG9vcigodUNoYXJhY3RlcnNDb3VudCAtIDEuMCkgKiBncmV5c2NhbGVkKTtcbiAgICB2ZWMyIGNoYXJhY3RlclBvc2l0aW9uID0gdmVjMihtb2QoY2hhcmFjdGVySW5kZXgsIFNJWkUueCksIGZsb29yKGNoYXJhY3RlckluZGV4IC8gU0laRS55KSk7XG4gICAgdmVjMiBvZmZzZXQgPSB2ZWMyKGNoYXJhY3RlclBvc2l0aW9uLngsIC1jaGFyYWN0ZXJQb3NpdGlvbi55KSAvIFNJWkU7XG4gICAgdmVjMiBjaGFyVVYgPSBtb2QodXYgKiAoY2VsbCAvIFNJWkUpLCAxLjAgLyBTSVpFKSAtIHZlYzIoMC4sIDEuMCAvIFNJWkUpICsgb2Zmc2V0O1xuICAgIHZlYzQgYXNjaWlDaGFyYWN0ZXIgPSB0ZXh0dXJlMkQodUNoYXJhY3RlcnMsIGNoYXJVVik7XG5cbiAgICBhc2NpaUNoYXJhY3Rlci5yZ2IgPSB1Q29sb3IgKiBhc2NpaUNoYXJhY3Rlci5yO1xuICAgIGFzY2lpQ2hhcmFjdGVyLmEgPSBwaXhlbGl6ZWQuYTtcbiAgICBvdXRwdXRDb2xvciA9IGFzY2lpQ2hhcmFjdGVyO1xufVxuYDtcblxuaW50ZXJmYWNlIEFTQ0lJRWZmZWN0T3B0aW9ucyB7XG5cdGZvbnQ/OiBzdHJpbmc7XG5cdGNoYXJhY3RlcnM/OiBzdHJpbmc7XG5cdGZvbnRTaXplPzogbnVtYmVyO1xuXHRjZWxsU2l6ZT86IG51bWJlcjtcblx0Y29sb3I/OiBzdHJpbmc7XG5cdGludmVydD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBU0NJSUVmZmVjdCBleHRlbmRzIEVmZmVjdCB7XG5cdGNvbnN0cnVjdG9yKHtcblx0XHRmb250ID0gJ2FyaWFsJyxcblx0XHRjaGFyYWN0ZXJzID0gYCAuOiwnLV49Kis/IXwwI1glV01AYCxcblx0XHRmb250U2l6ZSA9IDU0LFxuXHRcdGNlbGxTaXplID0gMTYsXG5cdFx0Y29sb3IgPSAnI2ZmZmZmZicsXG5cdFx0aW52ZXJ0ID0gZmFsc2UsXG5cdH06IEFTQ0lJRWZmZWN0T3B0aW9ucyA9IHt9KSB7XG5cdFx0Y29uc3QgdW5pZm9ybXMgPSBuZXcgTWFwPHN0cmluZywgVW5pZm9ybT4oW1xuXHRcdFx0Wyd1Q2hhcmFjdGVycycsIG5ldyBVbmlmb3JtKG5ldyBUZXh0dXJlKCkpXSxcblx0XHRcdFsndUNlbGxTaXplJywgbmV3IFVuaWZvcm0oY2VsbFNpemUpXSxcblx0XHRcdFsndUNoYXJhY3RlcnNDb3VudCcsIG5ldyBVbmlmb3JtKGNoYXJhY3RlcnMubGVuZ3RoKV0sXG5cdFx0XHRbJ3VDb2xvcicsIG5ldyBVbmlmb3JtKG5ldyBDb2xvcihjb2xvcikpXSxcblx0XHRcdFsndUludmVydCcsIG5ldyBVbmlmb3JtKGludmVydCldLFxuXHRcdF0pO1xuXG5cdFx0c3VwZXIoJ0FTQ0lJRWZmZWN0JywgZnJhZ21lbnQsIHsgdW5pZm9ybXMgfSk7XG5cblx0XHRjb25zdCBjaGFyYWN0ZXJzVGV4dHVyZVVuaWZvcm0gPSB0aGlzLnVuaWZvcm1zLmdldCgndUNoYXJhY3RlcnMnKTtcblxuXHRcdGlmIChjaGFyYWN0ZXJzVGV4dHVyZVVuaWZvcm0pIHtcblx0XHRcdGNoYXJhY3RlcnNUZXh0dXJlVW5pZm9ybS52YWx1ZSA9IHRoaXMuY3JlYXRlQ2hhcmFjdGVyc1RleHR1cmUoY2hhcmFjdGVycywgZm9udCwgZm9udFNpemUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBEcmF3cyB0aGUgY2hhcmFjdGVycyBvbiBhIENhbnZhcyBhbmQgcmV0dXJucyBhIHRleHR1cmUgKi9cblx0cHVibGljIGNyZWF0ZUNoYXJhY3RlcnNUZXh0dXJlKGNoYXJhY3RlcnM6IHN0cmluZywgZm9udDogc3RyaW5nLCBmb250U2l6ZTogbnVtYmVyKTogVGV4dHVyZSB7XG5cdFx0Y29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG5cdFx0Y29uc3QgU0laRSA9IDEwMjQ7XG5cdFx0Y29uc3QgTUFYX1BFUl9ST1cgPSAxNjtcblx0XHRjb25zdCBDRUxMID0gU0laRSAvIE1BWF9QRVJfUk9XO1xuXG5cdFx0Y2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IFNJWkU7XG5cdFx0Y29uc3QgdGV4dHVyZSA9IG5ldyBDYW52YXNUZXh0dXJlKGNhbnZhcywgdW5kZWZpbmVkLCBSZXBlYXRXcmFwcGluZywgUmVwZWF0V3JhcHBpbmcsIE5lYXJlc3RGaWx0ZXIsIE5lYXJlc3RGaWx0ZXIpO1xuXHRcdGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblxuXHRcdGlmICghY29udGV4dCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdDb250ZXh0IG5vdCBhdmFpbGFibGUnKTtcblx0XHR9XG5cblx0XHRjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBTSVpFLCBTSVpFKTtcblx0XHRjb250ZXh0LmZvbnQgPSBgJHtmb250U2l6ZX1weCAke2ZvbnR9YDtcblx0XHRjb250ZXh0LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdGNvbnRleHQudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG5cdFx0Y29udGV4dC5maWxsU3R5bGUgPSAnI2ZmZic7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGNoYXIgPSBjaGFyYWN0ZXJzW2ldO1xuXHRcdFx0Y29uc3QgeCA9IGkgJSBNQVhfUEVSX1JPVztcblx0XHRcdGNvbnN0IHkgPSBNYXRoLmZsb29yKGkgLyBNQVhfUEVSX1JPVyk7XG5cdFx0XHRjb250ZXh0LmZpbGxUZXh0KGNoYXIsIHggKiBDRUxMICsgQ0VMTCAvIDIsIHkgKiBDRUxMICsgQ0VMTCAvIDIpO1xuXHRcdH1cblxuXHRcdHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdHJldHVybiB0ZXh0dXJlO1xuXHR9XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBBU0NJSUVmZmVjdE9wdGlvbnMgPSB7XG5cdGZvbnQ6ICdhcmlhbCcsXG5cdGNoYXJhY3RlcnM6IGAgLjosJy1ePSorPyF8MCNYJVdNQGAsXG5cdGZvbnRTaXplOiA1NCxcblx0Y2VsbFNpemU6IDE2LFxuXHRjb2xvcjogJyNmZmZmZmYnLFxuXHRpbnZlcnQ6IGZhbHNlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1hc2NpaScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgW3JlZl09XCJlZmZlY3RSZWYoKVwiIG5ndENvbXBvdW5kIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEFTQ0lJIHtcblx0ZWZmZWN0UmVmID0gaW5wdXQoaW5qZWN0Tmd0UmVmPEFTQ0lJRWZmZWN0PigpKTtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IG5ldyBBU0NJSUVmZmVjdCh0aGlzLm9wdGlvbnMoKSkpO1xufVxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend } from 'angular-three';
|
|
3
|
+
import { BlendFunction, BloomEffect } from 'postprocessing';
|
|
4
|
+
import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../effect";
|
|
7
|
+
extend({ BloomEffect });
|
|
8
|
+
export class NgtpBloom {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.effect = inject(NgtpEffect, { host: true });
|
|
11
|
+
this.options = input({});
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtpBloom, isStandalone: true, selector: "ngtp-bloom", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity", "effectRef", "effectRef"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-bloom-effect *args="[options()]" [camera]="effect.camera()" [ref]="effect.effectRef()" ngtCompound>
|
|
16
|
+
<ngtp-effect-blend-mode />
|
|
17
|
+
<ng-content />
|
|
18
|
+
</ngt-bloom-effect>
|
|
19
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpBloom, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'ngtp-bloom',
|
|
25
|
+
standalone: true,
|
|
26
|
+
template: `
|
|
27
|
+
<ngt-bloom-effect *args="[options()]" [camera]="effect.camera()" [ref]="effect.effectRef()" ngtCompound>
|
|
28
|
+
<ngtp-effect-blend-mode />
|
|
29
|
+
<ng-content />
|
|
30
|
+
</ngt-bloom-effect>
|
|
31
|
+
`,
|
|
32
|
+
imports: [NgtArgs, NgtpEffectBlendMode],
|
|
33
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
34
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
35
|
+
hostDirectives: [NgtpEffectHostDirective],
|
|
36
|
+
providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],
|
|
37
|
+
}]
|
|
38
|
+
}] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvb20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ibG9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRWxILE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFpQnhCLE1BQU0sT0FBTyxTQUFTO0lBZnRCO1FBZ0JDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxDQUFDLENBQUM7S0FDakU7OEdBSFksU0FBUztrR0FBVCxTQUFTLG1NQUZWLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsc0tBVnBFOzs7OztFQUtULDREQUNTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFNMUIsU0FBUztrQkFmckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2lCQUM5RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgQmxvb21FZmZlY3QsIEJsb29tRWZmZWN0T3B0aW9ucyB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlLCBwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHRlbmQoeyBCbG9vbUVmZmVjdCB9KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1ibG9vbScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ibG9vbS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCIgW3JlZl09XCJlZmZlY3QuZWZmZWN0UmVmKClcIiBuZ3RDb21wb3VuZD5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWJsb29tLWVmZmVjdD5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRob3N0RGlyZWN0aXZlczogW05ndHBFZmZlY3RIb3N0RGlyZWN0aXZlXSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zKHsgYmxlbmRGdW5jdGlvbjogQmxlbmRGdW5jdGlvbi5BREQgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwQmxvb20ge1xuXHRlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxCbG9vbUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xufVxuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend } from 'angular-three';
|
|
3
|
+
import { BrightnessContrastEffect } from 'postprocessing';
|
|
4
|
+
import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../effect";
|
|
7
|
+
extend({ BrightnessContrastEffect });
|
|
8
|
+
export class NgtpBrightnessContrast {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.effect = inject(NgtpEffect, { host: true });
|
|
11
|
+
this.options = input({});
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpBrightnessContrast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtpBrightnessContrast, isStandalone: true, selector: "ngtp-brightness-contrast", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity", "effectRef", "effectRef"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-brightness-contrast-effect
|
|
16
|
+
*args="[options()]"
|
|
17
|
+
[camera]="effect.camera()"
|
|
18
|
+
[ref]="effect.effectRef()"
|
|
19
|
+
ngtCompound
|
|
20
|
+
>
|
|
21
|
+
<ngtp-effect-blend-mode />
|
|
22
|
+
<ng-content />
|
|
23
|
+
</ngt-brightness-contrast-effect>
|
|
24
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpBrightnessContrast, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: 'ngtp-brightness-contrast',
|
|
30
|
+
standalone: true,
|
|
31
|
+
template: `
|
|
32
|
+
<ngt-brightness-contrast-effect
|
|
33
|
+
*args="[options()]"
|
|
34
|
+
[camera]="effect.camera()"
|
|
35
|
+
[ref]="effect.effectRef()"
|
|
36
|
+
ngtCompound
|
|
37
|
+
>
|
|
38
|
+
<ngtp-effect-blend-mode />
|
|
39
|
+
<ng-content />
|
|
40
|
+
</ngt-brightness-contrast-effect>
|
|
41
|
+
`,
|
|
42
|
+
imports: [NgtArgs, NgtpEffectBlendMode],
|
|
43
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
44
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
45
|
+
hostDirectives: [NgtpEffectHostDirective],
|
|
46
|
+
}]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZ2h0bmVzcy1jb250cmFzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2JyaWdodG5lc3MtY29udHJhc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUVyRixNQUFNLENBQUMsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7QUF1QnJDLE1BQU0sT0FBTyxzQkFBc0I7SUFuQm5DO1FBb0JDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFvRCxDQUFDLENBQUM7S0FDdEU7OEdBSFksc0JBQXNCO2tHQUF0QixzQkFBc0IsMFdBaEJ4Qjs7Ozs7Ozs7OztFQVVULDREQUNTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFLMUIsc0JBQXNCO2tCQW5CbEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7O0VBVVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGNBQWMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgTmd0cEVmZmVjdEhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHRlbmQoeyBCcmlnaHRuZXNzQ29udHJhc3RFZmZlY3QgfSk7XG5cbmV4cG9ydCB0eXBlIEJyaWdodG5lc3NFZmZlY3RPcHRpb25zID0gTm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBCcmlnaHRuZXNzQ29udHJhc3RFZmZlY3Q+WzBdPjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1icmlnaHRuZXNzLWNvbnRyYXN0Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWJyaWdodG5lc3MtY29udHJhc3QtZWZmZWN0XG5cdFx0XHQqYXJncz1cIltvcHRpb25zKCldXCJcblx0XHRcdFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCJcblx0XHRcdFtyZWZdPVwiZWZmZWN0LmVmZmVjdFJlZigpXCJcblx0XHRcdG5ndENvbXBvdW5kXG5cdFx0PlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtYnJpZ2h0bmVzcy1jb250cmFzdC1lZmZlY3Q+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBCcmlnaHRuZXNzQ29udHJhc3Qge1xuXHRlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxCcmlnaHRuZXNzRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG59XG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend } from 'angular-three';
|
|
3
|
+
import { ChromaticAberrationEffect } from 'postprocessing';
|
|
4
|
+
import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../effect";
|
|
7
|
+
extend({ ChromaticAberrationEffect });
|
|
8
|
+
export class NgtpChromaticAberration {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.effect = inject(NgtpEffect, { host: true });
|
|
11
|
+
this.options = input({});
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpChromaticAberration, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtpChromaticAberration, isStandalone: true, selector: "ngtp-chromatic-aberration", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity", "effectRef", "effectRef"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-chromatic-aberration-effect
|
|
16
|
+
*args="[options()]"
|
|
17
|
+
[camera]="effect.camera()"
|
|
18
|
+
[ref]="effect.effectRef()"
|
|
19
|
+
ngtCompound
|
|
20
|
+
>
|
|
21
|
+
<ngtp-effect-blend-mode />
|
|
22
|
+
<ng-content />
|
|
23
|
+
</ngt-chromatic-aberration-effect>
|
|
24
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpChromaticAberration, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: 'ngtp-chromatic-aberration',
|
|
30
|
+
template: `
|
|
31
|
+
<ngt-chromatic-aberration-effect
|
|
32
|
+
*args="[options()]"
|
|
33
|
+
[camera]="effect.camera()"
|
|
34
|
+
[ref]="effect.effectRef()"
|
|
35
|
+
ngtCompound
|
|
36
|
+
>
|
|
37
|
+
<ngtp-effect-blend-mode />
|
|
38
|
+
<ng-content />
|
|
39
|
+
</ngt-chromatic-aberration-effect>
|
|
40
|
+
`,
|
|
41
|
+
standalone: true,
|
|
42
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
43
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
44
|
+
imports: [NgtArgs, NgtpEffectBlendMode],
|
|
45
|
+
hostDirectives: [NgtpEffectHostDirective],
|
|
46
|
+
}]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21hdGljLWFiYmVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jaHJvbWF0aWMtYWJiZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXJGLE1BQU0sQ0FBQyxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQztBQXlCdEMsTUFBTSxPQUFPLHVCQUF1QjtJQW5CcEM7UUFvQkMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQTZELENBQUMsQ0FBQztLQUMvRTs4R0FIWSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwyV0FqQnpCOzs7Ozs7Ozs7O0VBVVQsNERBSVMsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQix1QkFBdUI7a0JBbkJuQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7OztFQVVUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgTmd0cEVmZmVjdEhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHRlbmQoeyBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0IH0pO1xuXG5leHBvcnQgdHlwZSBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8XG5cdE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQ2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdD5bMF0+XG4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNocm9tYXRpYy1hYmVycmF0aW9uJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWNocm9tYXRpYy1hYmVycmF0aW9uLWVmZmVjdFxuXHRcdFx0KmFyZ3M9XCJbb3B0aW9ucygpXVwiXG5cdFx0XHRbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiXG5cdFx0XHRbcmVmXT1cImVmZmVjdC5lZmZlY3RSZWYoKVwiXG5cdFx0XHRuZ3RDb21wb3VuZFxuXHRcdD5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNocm9tYXRpYy1hYmVycmF0aW9uLWVmZmVjdD5cblx0YCxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW05ndHBFZmZlY3RIb3N0RGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cENocm9tYXRpY0FiZXJyYXRpb24ge1xuXHRlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG59XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend, injectNgtRef } from 'angular-three';
|
|
3
|
+
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
4
|
+
import { BlendFunction, ColorAverageEffect } from 'postprocessing';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
extend({ ColorAverageEffect });
|
|
7
|
+
export class NgtpColorAverage {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.effectRef = input(injectNgtRef());
|
|
10
|
+
this.options = input({ blendFunction: BlendFunction.NORMAL }, { transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) });
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtpColorAverage, isStandalone: true, selector: "ngtp-color-average", inputs: { effectRef: { classPropertyName: "effectRef", publicName: "effectRef", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
14
|
+
<ngt-color-average-effect *args="[options().blendFunction]" [ref]="effectRef()" ngtCompound>
|
|
15
|
+
<ng-content />
|
|
16
|
+
</ngt-color-average-effect>
|
|
17
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpColorAverage, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{
|
|
22
|
+
selector: 'ngtp-color-average',
|
|
23
|
+
standalone: true,
|
|
24
|
+
template: `
|
|
25
|
+
<ngt-color-average-effect *args="[options().blendFunction]" [ref]="effectRef()" ngtCompound>
|
|
26
|
+
<ng-content />
|
|
27
|
+
</ngt-color-average-effect>
|
|
28
|
+
`,
|
|
29
|
+
imports: [NgtArgs],
|
|
30
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
31
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
|
+
}]
|
|
33
|
+
}] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYXZlcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2NvbG9yLWF2ZXJhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRW5FLE1BQU0sQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztBQWMvQixNQUFNLE9BQU8sZ0JBQWdCO0lBWjdCO1FBYUMsY0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQXNCLENBQUMsQ0FBQztRQUN0RCxZQUFPLEdBQUcsS0FBSyxDQUNkLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsRUFDdkMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQ25FLENBQUM7S0FDRjs4R0FOWSxnQkFBZ0I7a0dBQWhCLGdCQUFnQiw0VkFUbEI7Ozs7RUFJVCw0REFDUyxPQUFPOzsyRkFJTCxnQkFBZ0I7a0JBWjVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQsIGluamVjdE5ndFJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgQ29sb3JBdmVyYWdlRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuXG5leHRlbmQoeyBDb2xvckF2ZXJhZ2VFZmZlY3QgfSk7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtY29sb3ItYXZlcmFnZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1jb2xvci1hdmVyYWdlLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCkuYmxlbmRGdW5jdGlvbl1cIiBbcmVmXT1cImVmZmVjdFJlZigpXCIgbmd0Q29tcG91bmQ+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNvbG9yLWF2ZXJhZ2UtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckF2ZXJhZ2Uge1xuXHRlZmZlY3RSZWYgPSBpbnB1dChpbmplY3ROZ3RSZWY8Q29sb3JBdmVyYWdlRWZmZWN0PigpKTtcblx0b3B0aW9ucyA9IGlucHV0KFxuXHRcdHsgYmxlbmRGdW5jdGlvbjogQmxlbmRGdW5jdGlvbi5OT1JNQUwgfSxcblx0XHR7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9KSB9LFxuXHQpO1xufVxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend } from 'angular-three';
|
|
3
|
+
import { ColorDepthEffect } from 'postprocessing';
|
|
4
|
+
import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../effect";
|
|
7
|
+
extend({ ColorDepthEffect });
|
|
8
|
+
export class NgtpColorDepth {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.effect = inject(NgtpEffect, { host: true });
|
|
11
|
+
this.options = input({});
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtpColorDepth, isStandalone: true, selector: "ngtp-color-depth", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity", "effectRef", "effectRef"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-color-depth-effect *args="[options()]" [camera]="effect.camera()" [ref]="effect.effectRef()" ngtCompound>
|
|
16
|
+
<ngtp-effect-blend-mode />
|
|
17
|
+
<ng-content />
|
|
18
|
+
</ngt-color-depth-effect>
|
|
19
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpColorDepth, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'ngtp-color-depth',
|
|
25
|
+
template: `
|
|
26
|
+
<ngt-color-depth-effect *args="[options()]" [camera]="effect.camera()" [ref]="effect.effectRef()" ngtCompound>
|
|
27
|
+
<ngtp-effect-blend-mode />
|
|
28
|
+
<ng-content />
|
|
29
|
+
</ngt-color-depth-effect>
|
|
30
|
+
`,
|
|
31
|
+
standalone: true,
|
|
32
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
33
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
34
|
+
imports: [NgtArgs, NgtpEffectBlendMode],
|
|
35
|
+
hostDirectives: [NgtpEffectHostDirective],
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jb2xvci1kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXJGLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQWtCN0IsTUFBTSxPQUFPLGNBQWM7SUFkM0I7UUFlQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsQ0FBQyxDQUFDO0tBQ3RFOzhHQUhZLGNBQWM7a0dBQWQsY0FBYyxrV0FaaEI7Ozs7O0VBS1QsNERBSVMsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQixjQUFjO2tCQWQxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ29sb3JEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgQ29sb3JEZXB0aEVmZmVjdCB9KTtcblxuZXhwb3J0IHR5cGUgQ29sb3JEZXB0aEVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQ29sb3JEZXB0aEVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1jb2xvci1kZXB0aCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1jb2xvci1kZXB0aC1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCIgW3JlZl09XCJlZmZlY3QuZWZmZWN0UmVmKClcIiBuZ3RDb21wb3VuZD5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNvbG9yLWRlcHRoLWVmZmVjdD5cblx0YCxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW05ndHBFZmZlY3RIb3N0RGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cENvbG9yRGVwdGgge1xuXHRlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxDb2xvckRlcHRoRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG59XG4iXX0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, input, } from '@angular/core';
|
|
2
|
+
import { NgtArgs, injectNgtRef } from 'angular-three';
|
|
3
|
+
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
4
|
+
import { DepthOfFieldEffect, MaskFunction } from 'postprocessing';
|
|
5
|
+
import { Vector3 } from 'three';
|
|
6
|
+
import { injectEffectComposerApi } from '../effect-composer';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class NgtpDepthOfField {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.autoEffect = injectAutoEffect();
|
|
11
|
+
this.composerApi = injectEffectComposerApi();
|
|
12
|
+
this.effectRef = input(injectNgtRef());
|
|
13
|
+
this.options = input({});
|
|
14
|
+
this.autoFocus = computed(() => this.options().target != null);
|
|
15
|
+
this.effect = computed(() => {
|
|
16
|
+
const [{ camera }, options, autoFocus] = [this.composerApi(), this.options(), this.autoFocus()];
|
|
17
|
+
const effect = new DepthOfFieldEffect(camera, options);
|
|
18
|
+
// Creating a target enables autofocus, R3F will set via props
|
|
19
|
+
if (autoFocus)
|
|
20
|
+
effect.target = new Vector3();
|
|
21
|
+
// Depth texture for depth picking with optional packing strategy
|
|
22
|
+
if (options.depthTexture) {
|
|
23
|
+
effect.setDepthTexture(options.depthTexture.texture, options.depthTexture.packing);
|
|
24
|
+
}
|
|
25
|
+
// Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur
|
|
26
|
+
const maskPass = effect.maskPass;
|
|
27
|
+
maskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;
|
|
28
|
+
return effect;
|
|
29
|
+
});
|
|
30
|
+
afterNextRender(() => {
|
|
31
|
+
this.autoEffect(() => {
|
|
32
|
+
const effect = this.effect();
|
|
33
|
+
return () => {
|
|
34
|
+
effect.dispose();
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtpDepthOfField, isStandalone: true, selector: "ngtp-depth-of-field", inputs: { effectRef: { classPropertyName: "effectRef", publicName: "effectRef", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
41
|
+
<ngt-primitive *args="[effect()]" [ref]="effectRef()" ngtCompound />
|
|
42
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpDepthOfField, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{
|
|
47
|
+
selector: 'ngtp-depth-of-field',
|
|
48
|
+
standalone: true,
|
|
49
|
+
template: `
|
|
50
|
+
<ngt-primitive *args="[effect()]" [ref]="effectRef()" ngtCompound />
|
|
51
|
+
`,
|
|
52
|
+
imports: [NgtArgs],
|
|
53
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
54
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
55
|
+
}]
|
|
56
|
+
}], ctorParameters: () => [] });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGgtb2YtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC1vZi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFFBQVEsRUFDUixLQUFLLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBbUMsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQXNCN0QsTUFBTSxPQUFPLGdCQUFnQjtJQTJCNUI7UUExQkEsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyx1QkFBdUIsRUFBRSxDQUFDO1FBRXhDLGNBQVMsR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFzQixDQUFDLENBQUM7UUFDdEQsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFnQixDQUFDLENBQUM7UUFFbEMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDO1FBRTFELFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3RCLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFFaEcsTUFBTSxNQUFNLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFdkQsOERBQThEO1lBQzlELElBQUksU0FBUztnQkFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0MsaUVBQWlFO1lBQ2pFLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMxQixNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBaUMsQ0FBQyxDQUFDO1lBQzlHLENBQUM7WUFDRCwyR0FBMkc7WUFDM0csTUFBTSxRQUFRLEdBQUksTUFBYyxDQUFDLFFBQVEsQ0FBQztZQUMxQyxRQUFRLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQztZQUU1RCxPQUFPLE1BQU0sQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBR0YsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixPQUFPLEdBQUcsRUFBRTtvQkFDWCxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xCLENBQUMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQXBDVyxnQkFBZ0I7a0dBQWhCLGdCQUFnQiw2VkFQbEI7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsZ0JBQWdCO2tCQVY1QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0VmVjdG9yMywgaW5qZWN0Tmd0UmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBEZXB0aE9mRmllbGRFZmZlY3QsIE1hc2tGdW5jdGlvbiB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IERlcHRoUGFja2luZ1N0cmF0ZWdpZXMsIFRleHR1cmUsIFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RFZmZlY3RDb21wb3NlckFwaSB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbnR5cGUgRE9GT3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRGVwdGhPZkZpZWxkRWZmZWN0PlsxXT4gJlxuXHRQYXJ0aWFsPHtcblx0XHR0YXJnZXQ6IE5ndFZlY3RvcjM7XG5cdFx0ZGVwdGhUZXh0dXJlOiB7XG5cdFx0XHR0ZXh0dXJlOiBUZXh0dXJlO1xuXHRcdFx0Ly8gVE9ETzogbmFycm93IHRvIERlcHRoUGFja2luZ1N0cmF0ZWdpZXNcblx0XHRcdHBhY2tpbmc6IG51bWJlcjtcblx0XHR9O1xuXHR9PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1kZXB0aC1vZi1maWVsZCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgW3JlZl09XCJlZmZlY3RSZWYoKVwiIG5ndENvbXBvdW5kIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoT2ZGaWVsZCB7XG5cdGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdGNvbXBvc2VyQXBpID0gaW5qZWN0RWZmZWN0Q29tcG9zZXJBcGkoKTtcblxuXHRlZmZlY3RSZWYgPSBpbnB1dChpbmplY3ROZ3RSZWY8RGVwdGhPZkZpZWxkRWZmZWN0PigpKTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIERPRk9wdGlvbnMpO1xuXG5cdGF1dG9Gb2N1cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLnRhcmdldCAhPSBudWxsKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW3sgY2FtZXJhIH0sIG9wdGlvbnMsIGF1dG9Gb2N1c10gPSBbdGhpcy5jb21wb3NlckFwaSgpLCB0aGlzLm9wdGlvbnMoKSwgdGhpcy5hdXRvRm9jdXMoKV07XG5cblx0XHRjb25zdCBlZmZlY3QgPSBuZXcgRGVwdGhPZkZpZWxkRWZmZWN0KGNhbWVyYSwgb3B0aW9ucyk7XG5cblx0XHQvLyBDcmVhdGluZyBhIHRhcmdldCBlbmFibGVzIGF1dG9mb2N1cywgUjNGIHdpbGwgc2V0IHZpYSBwcm9wc1xuXHRcdGlmIChhdXRvRm9jdXMpIGVmZmVjdC50YXJnZXQgPSBuZXcgVmVjdG9yMygpO1xuXHRcdC8vIERlcHRoIHRleHR1cmUgZm9yIGRlcHRoIHBpY2tpbmcgd2l0aCBvcHRpb25hbCBwYWNraW5nIHN0cmF0ZWd5XG5cdFx0aWYgKG9wdGlvbnMuZGVwdGhUZXh0dXJlKSB7XG5cdFx0XHRlZmZlY3Quc2V0RGVwdGhUZXh0dXJlKG9wdGlvbnMuZGVwdGhUZXh0dXJlLnRleHR1cmUsIG9wdGlvbnMuZGVwdGhUZXh0dXJlLnBhY2tpbmcgYXMgRGVwdGhQYWNraW5nU3RyYXRlZ2llcyk7XG5cdFx0fVxuXHRcdC8vIFRlbXBvcmFyeSBmaXggdGhhdCByZXN0b3JlcyBET0YgNi4yMS4zIGJlaGF2aW9yLCBldmVyeXRoaW5nIHNpbmNlIHRoZW4gbGV0cyBzaGFwZXMgbGVhayB0aHJvdWdoIHRoZSBibHVyXG5cdFx0Y29uc3QgbWFza1Bhc3MgPSAoZWZmZWN0IGFzIGFueSkubWFza1Bhc3M7XG5cdFx0bWFza1Bhc3MubWFza0Z1bmN0aW9uID0gTWFza0Z1bmN0aW9uLk1VTFRJUExZX1JHQl9TRVRfQUxQSEE7XG5cblx0XHRyZXR1cm4gZWZmZWN0O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0XHRlZmZlY3QuZGlzcG9zZSgpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend } from 'angular-three';
|
|
3
|
+
import { DepthEffect } from 'postprocessing';
|
|
4
|
+
import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../effect";
|
|
7
|
+
extend({ DepthEffect });
|
|
8
|
+
export class NgtpDepth {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.effect = inject(NgtpEffect, { host: true });
|
|
11
|
+
this.options = input({});
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtpDepth, isStandalone: true, selector: "ngtp-depth", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity", "effectRef", "effectRef"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-depth-effect *args="[options()]" [camera]="effect.camera()" [ref]="effect.effectRef()" ngtCompound>
|
|
16
|
+
<ngtp-effect-blend-mode />
|
|
17
|
+
<ng-content />
|
|
18
|
+
</ngt-depth-effect>
|
|
19
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpDepth, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'ngtp-depth',
|
|
25
|
+
template: `
|
|
26
|
+
<ngt-depth-effect *args="[options()]" [camera]="effect.camera()" [ref]="effect.effectRef()" ngtCompound>
|
|
27
|
+
<ngtp-effect-blend-mode />
|
|
28
|
+
<ng-content />
|
|
29
|
+
</ngt-depth-effect>
|
|
30
|
+
`,
|
|
31
|
+
standalone: true,
|
|
32
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
33
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
34
|
+
imports: [NgtArgs, NgtpEffectBlendMode],
|
|
35
|
+
hostDirectives: [NgtpEffectHostDirective],
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUVyRixNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBa0J4QixNQUFNLE9BQU8sU0FBUztJQWR0QjtRQWVDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxDQUFDLENBQUM7S0FDakU7OEdBSFksU0FBUztrR0FBVCxTQUFTLDRWQVpYOzs7OztFQUtULDREQUlTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsU0FBUztrQkFkckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgRGVwdGhFZmZlY3QgfSk7XG5cbmV4cG9ydCB0eXBlIERlcHRoRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEZXB0aEVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1kZXB0aCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1kZXB0aC1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCIgW3JlZl09XCJlZmZlY3QuZWZmZWN0UmVmKClcIiBuZ3RDb21wb3VuZD5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWRlcHRoLWVmZmVjdD5cblx0YCxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW05ndHBFZmZlY3RIb3N0RGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoIHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8RGVwdGhFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend } from 'angular-three';
|
|
3
|
+
import { DotScreenEffect } from 'postprocessing';
|
|
4
|
+
import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../effect";
|
|
7
|
+
extend({ DotScreenEffect });
|
|
8
|
+
export class NgtpDotScreen {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.effect = inject(NgtpEffect, { host: true });
|
|
11
|
+
this.options = input({});
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpDotScreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtpDotScreen, isStandalone: true, selector: "ngtp-dot-screen", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity", "effectRef", "effectRef"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-dot-screen-effect *args="[options()]" [camera]="effect.camera()" [ref]="effect.effectRef()" ngtCompound>
|
|
16
|
+
<ngtp-effect-blend-mode />
|
|
17
|
+
<ng-content />
|
|
18
|
+
</ngt-dot-screen-effect>
|
|
19
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpDotScreen, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'ngtp-dot-screen',
|
|
25
|
+
template: `
|
|
26
|
+
<ngt-dot-screen-effect *args="[options()]" [camera]="effect.camera()" [ref]="effect.effectRef()" ngtCompound>
|
|
27
|
+
<ngtp-effect-blend-mode />
|
|
28
|
+
<ng-content />
|
|
29
|
+
</ngt-dot-screen-effect>
|
|
30
|
+
`,
|
|
31
|
+
standalone: true,
|
|
32
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
33
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
34
|
+
imports: [NgtArgs, NgtpEffectBlendMode],
|
|
35
|
+
hostDirectives: [NgtpEffectHostDirective],
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2RvdC1zY3JlZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFckYsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQWtCNUIsTUFBTSxPQUFPLGFBQWE7SUFkMUI7UUFlQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBbUQsQ0FBQyxDQUFDO0tBQ3JFOzhHQUhZLGFBQWE7a0dBQWIsYUFBYSxpV0FaZjs7Ozs7RUFLVCw0REFJUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLGFBQWE7a0JBZHpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEb3RTY3JlZW5FZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlLCBOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4dGVuZCh7IERvdFNjcmVlbkVmZmVjdCB9KTtcblxuZXhwb3J0IHR5cGUgRG90U2NyZWVuRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEb3RTY3JlZW5FZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZG90LXNjcmVlbicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1kb3Qtc2NyZWVuLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIiBbcmVmXT1cImVmZmVjdC5lZmZlY3RSZWYoKVwiIG5ndENvbXBvdW5kPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZG90LXNjcmVlbi1lZmZlY3Q+XG5cdGAsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBEb3RTY3JlZW4ge1xuXHRlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxEb3RTY3JlZW5FZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend } from 'angular-three';
|
|
3
|
+
import { FXAAEffect } from 'postprocessing';
|
|
4
|
+
import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../effect";
|
|
7
|
+
extend({ FXAAEffect });
|
|
8
|
+
export class NgtpFXAA {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.effect = inject(NgtpEffect, { host: true });
|
|
11
|
+
this.options = input({});
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpFXAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtpFXAA, isStandalone: true, selector: "ngtp-fxaa", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity", "effectRef", "effectRef"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-fXAA-effect *args="[options()]" [camera]="effect.camera()" [ref]="effect.effectRef()" ngtCompound>
|
|
16
|
+
<ngtp-effect-blend-mode />
|
|
17
|
+
<ng-content />
|
|
18
|
+
</ngt-fXAA-effect>
|
|
19
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtpFXAA, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'ngtp-fxaa',
|
|
25
|
+
template: `
|
|
26
|
+
<ngt-fXAA-effect *args="[options()]" [camera]="effect.camera()" [ref]="effect.effectRef()" ngtCompound>
|
|
27
|
+
<ngtp-effect-blend-mode />
|
|
28
|
+
<ng-content />
|
|
29
|
+
</ngt-fXAA-effect>
|
|
30
|
+
`,
|
|
31
|
+
standalone: true,
|
|
32
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
33
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
34
|
+
imports: [NgtArgs, NgtpEffectBlendMode],
|
|
35
|
+
hostDirectives: [NgtpEffectHostDirective],
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnhhYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2Z4YWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFckYsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQWtCdkIsTUFBTSxPQUFPLFFBQVE7SUFkckI7UUFlQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBOEMsQ0FBQyxDQUFDO0tBQ2hFOzhHQUhZLFFBQVE7a0dBQVIsUUFBUSwyVkFaVjs7Ozs7RUFLVCw0REFJUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLFFBQVE7a0JBZHBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgRlhBQUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgRlhBQUVmZmVjdCB9KTtcblxuZXhwb3J0IHR5cGUgRlhBQUVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRlhBQUVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1meGFhJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWZYQUEtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiIFtyZWZdPVwiZWZmZWN0LmVmZmVjdFJlZigpXCIgbmd0Q29tcG91bmQ+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1mWEFBLWVmZmVjdD5cblx0YCxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW05ndHBFZmZlY3RIb3N0RGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEZYQUEge1xuXHRlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxGWEFBRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG59XG4iXX0=
|