angular-three-postprocessing 2.0.0-beta.9 → 2.0.0
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/README.md +56 -4
- package/esm2022/lib/effect-composer.mjs +111 -171
- package/esm2022/lib/effect.mjs +43 -71
- package/esm2022/lib/effects/ascii.mjs +120 -0
- package/esm2022/lib/effects/bloom.mjs +39 -0
- package/esm2022/lib/effects/brightness-contrast.mjs +38 -0
- package/esm2022/lib/effects/chromatic-abberation.mjs +38 -0
- package/esm2022/lib/effects/color-average.mjs +33 -0
- package/esm2022/lib/effects/color-depth.mjs +38 -0
- package/esm2022/lib/effects/depth-of-field.mjs +56 -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 +63 -0
- package/esm2022/lib/effects/god-rays.mjs +41 -0
- package/esm2022/lib/effects/grid.mjs +42 -0
- package/esm2022/lib/effects/hue-saturation.mjs +38 -0
- package/esm2022/lib/effects/index.mjs +28 -18
- package/esm2022/lib/effects/lens-flare.mjs +195 -0
- package/esm2022/lib/effects/lut.mjs +50 -0
- package/esm2022/lib/effects/noise.mjs +39 -0
- package/esm2022/lib/effects/outline.mjs +143 -0
- package/esm2022/lib/effects/pixelation.mjs +30 -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 +1280 -651
- package/fesm2022/angular-three-postprocessing.mjs.map +1 -1
- package/lib/effect-composer.d.ts +24 -76
- package/lib/effect.d.ts +52 -23
- package/lib/effects/ascii.d.ts +23 -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 +11 -0
- package/lib/effects/color-depth.d.ts +14 -0
- package/lib/effects/depth-of-field.d.ts +22 -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 +29 -0
- package/lib/effects/god-rays.d.ts +30 -0
- package/lib/effects/grid.d.ts +18 -0
- package/lib/effects/hue-saturation.d.ts +15 -0
- package/lib/effects/index.d.ts +27 -17
- package/lib/effects/lens-flare.d.ts +96 -0
- package/lib/effects/lut.d.ts +19 -0
- package/lib/effects/noise.d.ts +14 -0
- package/lib/effects/outline.d.ts +74 -0
- package/lib/effects/pixelation.d.ts +16 -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 +12 -7
- 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 -70
- package/esm2022/lib/effects/noise/noise.mjs +0 -33
- package/esm2022/lib/effects/pixelation/pixelation.mjs +0 -33
- 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 -213
- 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
package/esm2022/lib/effect.mjs
CHANGED
|
@@ -1,78 +1,50 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, inject, input } from '@angular/core';
|
|
2
|
+
import { injectStore } from 'angular-three';
|
|
3
|
+
import { createNoopInjectionToken } from 'ngxtension/create-injection-token';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
set _opacity(opacity) {
|
|
10
|
-
this.inputs.set({ opacity });
|
|
5
|
+
export const [injectDefaultEffectOptions, provideDefaultEffectOptions] = createNoopInjectionToken('Default Effect options');
|
|
6
|
+
export class NgtpEffectBlendMode {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.effect = inject(NgtpEffect, { optional: true });
|
|
11
9
|
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtpEffectBlendMode, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: NgtpEffectBlendMode, isStandalone: true, selector: "ngtp-effect-blend-mode", ngImport: i0, template: `
|
|
12
|
+
@if (effect) {
|
|
13
|
+
<ngt-value [rawValue]="effect.blendFunction()" attach="blendMode.blendFunction" />
|
|
14
|
+
<ngt-value [rawValue]="effect.opacity()" attach="blendMode.opacity.value" />
|
|
15
|
+
}
|
|
16
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtpEffectBlendMode, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{
|
|
21
|
+
selector: 'ngtp-effect-blend-mode',
|
|
22
|
+
standalone: true,
|
|
23
|
+
template: `
|
|
24
|
+
@if (effect) {
|
|
25
|
+
<ngt-value [rawValue]="effect.blendFunction()" attach="blendMode.blendFunction" />
|
|
26
|
+
<ngt-value [rawValue]="effect.opacity()" attach="blendMode.opacity.value" />
|
|
27
|
+
}
|
|
28
|
+
`,
|
|
29
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
30
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
31
|
+
}]
|
|
32
|
+
}] });
|
|
33
|
+
export class NgtpEffect {
|
|
12
34
|
constructor() {
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
17
|
-
this.blendFunction = this.inputs.select('blendFunction');
|
|
18
|
-
this.opacity = this.inputs.select('opacity');
|
|
19
|
-
this.store = injectNgtStore();
|
|
35
|
+
this.defaultEffectOptions = injectDefaultEffectOptions({ optional: true });
|
|
36
|
+
this.blendFunction = input(this.defaultEffectOptions?.blendFunction);
|
|
37
|
+
this.opacity = input(this.defaultEffectOptions?.opacity);
|
|
38
|
+
this.store = injectStore();
|
|
20
39
|
this.camera = this.store.select('camera');
|
|
21
40
|
this.invalidate = this.store.select('invalidate');
|
|
22
|
-
this.nativeInputs = computed(() => {
|
|
23
|
-
const effect = this.effectRef.nativeElement;
|
|
24
|
-
if (!effect)
|
|
25
|
-
return this.previousInputs || null;
|
|
26
|
-
const localState = getLocalState(effect);
|
|
27
|
-
if (!localState)
|
|
28
|
-
return this.previousInputs || null;
|
|
29
|
-
const nativeProps = localState.nativeProps.state();
|
|
30
|
-
delete nativeProps['__ngt_dummy_state__'];
|
|
31
|
-
if ('camera' in nativeProps) {
|
|
32
|
-
delete nativeProps['camera'];
|
|
33
|
-
}
|
|
34
|
-
if (!Object.keys(nativeProps).length)
|
|
35
|
-
return this.previousInputs || null;
|
|
36
|
-
return (this.previousInputs = nativeProps);
|
|
37
|
-
}, { equal: (a, b) => is.equ(a, b, { objects: 'shallow' }) });
|
|
38
|
-
this.args = computed(() => {
|
|
39
|
-
const [nativeInputs, nativeArgs] = [this.nativeInputs(), this.nativeArgs()];
|
|
40
|
-
if (nativeInputs) {
|
|
41
|
-
nativeArgs.push(nativeInputs);
|
|
42
|
-
}
|
|
43
|
-
return nativeArgs;
|
|
44
|
-
});
|
|
45
|
-
this.setBlendMode();
|
|
46
|
-
}
|
|
47
|
-
setBlendMode() {
|
|
48
|
-
effect(() => {
|
|
49
|
-
const [blendFunction, opacity, effect, invalidate] = [
|
|
50
|
-
this.blendFunction(),
|
|
51
|
-
this.opacity(),
|
|
52
|
-
this.effectRef.nativeElement,
|
|
53
|
-
this.invalidate(),
|
|
54
|
-
];
|
|
55
|
-
if (!effect)
|
|
56
|
-
return;
|
|
57
|
-
effect.blendMode.blendFunction =
|
|
58
|
-
!blendFunction && blendFunction !== 0 ? this.defaultBlendFunction : blendFunction;
|
|
59
|
-
if (opacity !== undefined)
|
|
60
|
-
effect.blendMode.opacity.value = opacity;
|
|
61
|
-
invalidate();
|
|
62
|
-
});
|
|
63
41
|
}
|
|
64
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
65
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtpEffect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
43
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.0", type: NgtpEffect, isStandalone: true, inputs: { blendFunction: { classPropertyName: "blendFunction", publicName: "blendFunction", isSignal: true, isRequired: false, transformFunction: null }, opacity: { classPropertyName: "opacity", publicName: "opacity", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
66
44
|
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
68
|
-
type: Directive
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
args: [{ alias: 'blendFunction' }]
|
|
74
|
-
}], _opacity: [{
|
|
75
|
-
type: Input,
|
|
76
|
-
args: [{ alias: 'opacity' }]
|
|
77
|
-
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7O0FBUXZELE1BQU0sT0FBZ0IsVUFBVTtJQUsvQixJQUF1QyxjQUFjLENBQUMsYUFBNEI7UUFDakYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFpQyxRQUFRLENBQUMsT0FBZTtRQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQXdDRDtRQWxEQSxXQUFNLEdBQUcsV0FBVyxFQUFtQixDQUFDO1FBRS9CLGNBQVMsR0FBRyxZQUFZLEVBQVcsQ0FBQztRQVVuQyx5QkFBb0IsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQzVDLGVBQVUsR0FBeUIsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRXRELGtCQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlCLFVBQUssR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENB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bXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBjb21wdXRlZCwgZWZmZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQsIGdldExvY2FsU3RhdGUsIGluamVjdE5ndFJlZiwgaW5qZWN0Tmd0U3RvcmUsIGlzLCBzaWduYWxTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuXG5leHBvcnQgdHlwZSBOZ3RwRWZmZWN0U3RhdGUgPSB7XG5cdGJsZW5kRnVuY3Rpb24/OiBCbGVuZEZ1bmN0aW9uO1xuXHRvcGFjaXR5PzogbnVtYmVyO1xufTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmd0cEVmZmVjdDxURWZmZWN0IGV4dGVuZHMgRWZmZWN0PiB7XG5cdGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHBFZmZlY3RTdGF0ZT4oKTtcblxuXHRASW5wdXQoKSBlZmZlY3RSZWYgPSBpbmplY3ROZ3RSZWY8VEVmZmVjdD4oKTtcblxuXHRASW5wdXQoeyBhbGlhczogJ2JsZW5kRnVuY3Rpb24nIH0pIHNldCBfYmxlbmRGdW5jdGlvbihibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgYmxlbmRGdW5jdGlvbiB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnb3BhY2l0eScgfSkgc2V0IF9vcGFjaXR5KG9wYWNpdHk6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IG9wYWNpdHkgfSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZGVmYXVsdEJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTDtcblx0cHJvdGVjdGVkIG5hdGl2ZUFyZ3M6ICgpID0+IE5ndEFueVJlY29yZFtdID0gKCkgPT4gW107XG5cblx0YmxlbmRGdW5jdGlvbiA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYmxlbmRGdW5jdGlvbicpO1xuXHRvcGFjaXR5ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdvcGFjaXR5Jyk7XG5cblx0cHJvdGVjdGVkIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJvdGVjdGVkIGNhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblx0cHJpdmF0ZSBpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKTtcblxuXHRwcml2YXRlIHByZXZpb3VzSW5wdXRzPzogTmd0QW55UmVjb3JkO1xuXG5cdHByaXZhdGUgbmF0aXZlSW5wdXRzID0gY29tcHV0ZWQoXG5cdFx0KCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3RSZWYubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmICghZWZmZWN0KSByZXR1cm4gdGhpcy5wcmV2aW91c0lucHV0cyB8fCBudWxsO1xuXHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoZWZmZWN0KTtcblx0XHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuIHRoaXMucHJldmlvdXNJbnB1dHMgfHwgbnVsbDtcblx0XHRcdGNvbnN0IG5hdGl2ZVByb3BzID0gbG9jYWxTdGF0ZS5uYXRpdmVQcm9wcy5zdGF0ZSgpO1xuXHRcdFx0ZGVsZXRlIG5hdGl2ZVByb3BzWydfX25ndF9kdW1teV9zdGF0ZV9fJ107XG5cdFx0XHRpZiAoJ2NhbWVyYScgaW4gbmF0aXZlUHJvcHMpIHtcblx0XHRcdFx0ZGVsZXRlIG5hdGl2ZVByb3BzWydjYW1lcmEnXTtcblx0XHRcdH1cblx0XHRcdGlmICghT2JqZWN0LmtleXMobmF0aXZlUHJvcHMpLmxlbmd0aCkgcmV0dXJuIHRoaXMucHJldmlvdXNJbnB1dHMgfHwgbnVsbDtcblx0XHRcdHJldHVybiAodGhpcy5wcmV2aW91c0lucHV0cyA9IG5hdGl2ZVByb3BzKTtcblx0XHR9LFxuXHRcdHsgZXF1YWw6IChhLCBiKSA9PiBpcy5lcXUoYSwgYiwgeyBvYmplY3RzOiAnc2hhbGxvdycgfSkgfSxcblx0KTtcblxuXHRhcmdzID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtuYXRpdmVJbnB1dHMsIG5hdGl2ZUFyZ3NdID0gW3RoaXMubmF0aXZlSW5wdXRzKCksIHRoaXMubmF0aXZlQXJncygpXTtcblx0XHRpZiAobmF0aXZlSW5wdXRzKSB7XG5cdFx0XHRuYXRpdmVBcmdzLnB1c2gobmF0aXZlSW5wdXRzKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbmF0aXZlQXJncztcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5zZXRCbGVuZE1vZGUoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0QmxlbmRNb2RlKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbYmxlbmRGdW5jdGlvbiwgb3BhY2l0eSwgZWZmZWN0LCBpbnZhbGlkYXRlXSA9IFtcblx0XHRcdFx0dGhpcy5ibGVuZEZ1bmN0aW9uKCksXG5cdFx0XHRcdHRoaXMub3BhY2l0eSgpLFxuXHRcdFx0XHR0aGlzLmVmZmVjdFJlZi5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKSxcblx0XHRcdF07XG5cblx0XHRcdGlmICghZWZmZWN0KSByZXR1cm47XG5cdFx0XHRlZmZlY3QuYmxlbmRNb2RlLmJsZW5kRnVuY3Rpb24gPVxuXHRcdFx0XHQhYmxlbmRGdW5jdGlvbiAmJiBibGVuZEZ1bmN0aW9uICE9PSAwID8gdGhpcy5kZWZhdWx0QmxlbmRGdW5jdGlvbiA6IGJsZW5kRnVuY3Rpb247XG5cdFx0XHRpZiAob3BhY2l0eSAhPT0gdW5kZWZpbmVkKSBlZmZlY3QuYmxlbmRNb2RlLm9wYWNpdHkudmFsdWUgPSBvcGFjaXR5O1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtpEffect, decorators: [{
|
|
46
|
+
type: Directive,
|
|
47
|
+
args: [{ standalone: true }]
|
|
48
|
+
}] });
|
|
49
|
+
export const NgtpEffectHostDirective = { directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] };
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRzdFLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsMkJBQTJCLENBQUMsR0FBRyx3QkFBd0IsQ0FHOUYsd0JBQXdCLENBQUMsQ0FBQztBQWM3QixNQUFNLE9BQU8sbUJBQW1CO0lBWmhDO1FBYUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNoRDs4R0FGWSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrRkFUckI7Ozs7O0VBS1Q7OzJGQUlXLG1CQUFtQjtrQkFaL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0M7O0FBTUQsTUFBTSxPQUFPLFVBQVU7SUFEdkI7UUFFQyx5QkFBb0IsR0FBRywwQkFBMEIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXRFLGtCQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNoRSxZQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU1QyxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDOUIsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUM3Qzs4R0FUWSxVQUFVO2tHQUFWLFVBQVU7OzJGQUFWLFVBQVU7a0JBRHRCLFNBQVM7bUJBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOztBQVkvQixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBjcmVhdGVOb29wSW5qZWN0aW9uVG9rZW4gfSBmcm9tICduZ3h0ZW5zaW9uL2NyZWF0ZS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcblxuZXhwb3J0IGNvbnN0IFtpbmplY3REZWZhdWx0RWZmZWN0T3B0aW9ucywgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zXSA9IGNyZWF0ZU5vb3BJbmplY3Rpb25Ub2tlbjx7XG5cdGJsZW5kRnVuY3Rpb24/OiBCbGVuZEZ1bmN0aW9uO1xuXHRvcGFjaXR5PzogbnVtYmVyO1xufT4oJ0RlZmF1bHQgRWZmZWN0IG9wdGlvbnMnKTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1lZmZlY3QtYmxlbmQtbW9kZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0QGlmIChlZmZlY3QpIHtcblx0XHRcdDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImVmZmVjdC5ibGVuZEZ1bmN0aW9uKClcIiBhdHRhY2g9XCJibGVuZE1vZGUuYmxlbmRGdW5jdGlvblwiIC8+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJlZmZlY3Qub3BhY2l0eSgpXCIgYXR0YWNoPVwiYmxlbmRNb2RlLm9wYWNpdHkudmFsdWVcIiAvPlxuXHRcdH1cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdEJsZW5kTW9kZSB7XG5cdGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xufVxuXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndHBFZmZlY3Qge1xuXHRkZWZhdWx0RWZmZWN0T3B0aW9ucyA9IGluamVjdERlZmF1bHRFZmZlY3RPcHRpb25zKHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cblx0YmxlbmRGdW5jdGlvbiA9IGlucHV0KHRoaXMuZGVmYXVsdEVmZmVjdE9wdGlvbnM/LmJsZW5kRnVuY3Rpb24pO1xuXHRvcGFjaXR5ID0gaW5wdXQodGhpcy5kZWZhdWx0RWZmZWN0T3B0aW9ucz8ub3BhY2l0eSk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdGNhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblx0aW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG59XG5cbmV4cG9ydCBjb25zdCBOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZSA9IHsgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfTtcbiJdfQ==
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs } 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 = /* language=glsl glsl */ `
|
|
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.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
|
|
100
|
+
this.effect = computed(() => new ASCIIEffect(this.options()));
|
|
101
|
+
}
|
|
102
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
103
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: NgtpASCII, isStandalone: true, selector: "ngtp-ascii", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
104
|
+
<ngt-primitive *args="[effect()]" />
|
|
105
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
106
|
+
}
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtpASCII, decorators: [{
|
|
108
|
+
type: Component,
|
|
109
|
+
args: [{
|
|
110
|
+
selector: 'ngtp-ascii',
|
|
111
|
+
standalone: true,
|
|
112
|
+
template: `
|
|
113
|
+
<ngt-primitive *args="[effect()]" />
|
|
114
|
+
`,
|
|
115
|
+
imports: [NgtArgs],
|
|
116
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
117
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
118
|
+
}]
|
|
119
|
+
}] });
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNjaWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9hc2NpaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFOUYsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVDekMsQ0FBQztBQVdGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQ1gsSUFBSSxHQUFHLE9BQU8sRUFDZCxVQUFVLEdBQUcsc0JBQXNCLEVBQ25DLFFBQVEsR0FBRyxFQUFFLEVBQ2IsUUFBUSxHQUFHLEVBQUUsRUFDYixLQUFLLEdBQUcsU0FBUyxFQUNqQixNQUFNLEdBQUcsS0FBSyxNQUNTLEVBQUU7UUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQWtCO1lBQ3pDLENBQUMsYUFBYSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMzQyxDQUFDLFdBQVcsRUFBRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxDQUFDLGtCQUFrQixFQUFFLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRCxDQUFDLFFBQVEsRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsU0FBUyxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUU3QyxNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxFLElBQUksd0JBQXdCLEVBQUUsQ0FBQztZQUM5Qix3QkFBd0IsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0YsQ0FBQztJQUNGLENBQUM7SUFFRCw2REFBNkQ7SUFDdEQsdUJBQXVCLENBQUMsVUFBa0IsRUFBRSxJQUFZLEVBQUUsUUFBZ0I7UUFDaEYsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxXQUFXLENBQUM7UUFFaEMsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ25ILE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxRQUFRLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDdkMsT0FBTyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDN0IsT0FBTyxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFFM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUMxQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztZQUN0QyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzNCLE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7Q0FDRDtBQUVELE1BQU0sY0FBYyxHQUF1QjtJQUMxQyxJQUFJLEVBQUUsT0FBTztJQUNiLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsUUFBUSxFQUFFLEVBQUU7SUFDWixRQUFRLEVBQUUsRUFBRTtJQUNaLEtBQUssRUFBRSxTQUFTO0lBQ2hCLE1BQU0sRUFBRSxLQUFLO0NBQ2IsQ0FBQztBQVlGLE1BQU0sT0FBTyxTQUFTO0lBVnRCO1FBV0MsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RSxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDekQ7OEdBSFksU0FBUztrR0FBVCxTQUFTLGdOQVBYOztFQUVULDREQUNTLE9BQU87OzJGQUlMLFNBQVM7a0JBVnJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBDYW52YXNUZXh0dXJlLCBDb2xvciwgTmVhcmVzdEZpbHRlciwgUmVwZWF0V3JhcHBpbmcsIFRleHR1cmUsIFVuaWZvcm0gfSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IGZyYWdtZW50ID0gLyogbGFuZ3VhZ2U9Z2xzbCBnbHNsICovIGBcbnVuaWZvcm0gc2FtcGxlcjJEIHVDaGFyYWN0ZXJzO1xudW5pZm9ybSBmbG9hdCB1Q2hhcmFjdGVyc0NvdW50O1xudW5pZm9ybSBmbG9hdCB1Q2VsbFNpemU7XG51bmlmb3JtIGJvb2wgdUludmVydDtcbnVuaWZvcm0gdmVjMyB1Q29sb3I7XG5cbmNvbnN0IHZlYzIgU0laRSA9IHZlYzIoMTYuKTtcblxudmVjMyBncmV5c2NhbGUodmVjMyBjb2xvciwgZmxvYXQgc3RyZW5ndGgpIHtcbiAgICBmbG9hdCBnID0gZG90KGNvbG9yLCB2ZWMzKDAuMjk5LCAwLjU4NywgMC4xMTQpKTtcbiAgICByZXR1cm4gbWl4KGNvbG9yLCB2ZWMzKGcpLCBzdHJlbmd0aCk7XG59XG5cbnZlYzMgZ3JleXNjYWxlKHZlYzMgY29sb3IpIHtcbiAgICByZXR1cm4gZ3JleXNjYWxlKGNvbG9yLCAxLjApO1xufVxuXG52b2lkIG1haW5JbWFnZShjb25zdCBpbiB2ZWM0IGlucHV0Q29sb3IsIGNvbnN0IGluIHZlYzIgdXYsIG91dCB2ZWM0IG91dHB1dENvbG9yKSB7XG4gICAgdmVjMiBjZWxsID0gcmVzb2x1dGlvbiAvIHVDZWxsU2l6ZTtcbiAgICB2ZWMyIGdyaWQgPSAxLjAgLyBjZWxsO1xuICAgIHZlYzIgcGl4ZWxpemVkVVYgPSBncmlkICogKDAuNSArIGZsb29yKHV2IC8gZ3JpZCkpO1xuICAgIHZlYzQgcGl4ZWxpemVkID0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCBwaXhlbGl6ZWRVVik7XG4gICAgZmxvYXQgZ3JleXNjYWxlZCA9IGdyZXlzY2FsZShwaXhlbGl6ZWQucmdiKS5yO1xuXG4gICAgaWYgKHVJbnZlcnQpIHtcbiAgICAgICAgZ3JleXNjYWxlZCA9IDEuMCAtIGdyZXlzY2FsZWQ7XG4gICAgfVxuXG4gICAgZmxvYXQgY2hhcmFjdGVySW5kZXggPSBmbG9vcigodUNoYXJhY3RlcnNDb3VudCAtIDEuMCkgKiBncmV5c2NhbGVkKTtcbiAgICB2ZWMyIGNoYXJhY3RlclBvc2l0aW9uID0gdmVjMihtb2QoY2hhcmFjdGVySW5kZXgsIFNJWkUueCksIGZsb29yKGNoYXJhY3RlckluZGV4IC8gU0laRS55KSk7XG4gICAgdmVjMiBvZmZzZXQgPSB2ZWMyKGNoYXJhY3RlclBvc2l0aW9uLngsIC1jaGFyYWN0ZXJQb3NpdGlvbi55KSAvIFNJWkU7XG4gICAgdmVjMiBjaGFyVVYgPSBtb2QodXYgKiAoY2VsbCAvIFNJWkUpLCAxLjAgLyBTSVpFKSAtIHZlYzIoMC4sIDEuMCAvIFNJWkUpICsgb2Zmc2V0O1xuICAgIHZlYzQgYXNjaWlDaGFyYWN0ZXIgPSB0ZXh0dXJlMkQodUNoYXJhY3RlcnMsIGNoYXJVVik7XG5cbiAgICBhc2NpaUNoYXJhY3Rlci5yZ2IgPSB1Q29sb3IgKiBhc2NpaUNoYXJhY3Rlci5yO1xuICAgIGFzY2lpQ2hhcmFjdGVyLmEgPSBwaXhlbGl6ZWQuYTtcbiAgICBvdXRwdXRDb2xvciA9IGFzY2lpQ2hhcmFjdGVyO1xufVxuYDtcblxuaW50ZXJmYWNlIEFTQ0lJRWZmZWN0T3B0aW9ucyB7XG5cdGZvbnQ/OiBzdHJpbmc7XG5cdGNoYXJhY3RlcnM/OiBzdHJpbmc7XG5cdGZvbnRTaXplPzogbnVtYmVyO1xuXHRjZWxsU2l6ZT86IG51bWJlcjtcblx0Y29sb3I/OiBzdHJpbmc7XG5cdGludmVydD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBU0NJSUVmZmVjdCBleHRlbmRzIEVmZmVjdCB7XG5cdGNvbnN0cnVjdG9yKHtcblx0XHRmb250ID0gJ2FyaWFsJyxcblx0XHRjaGFyYWN0ZXJzID0gYCAuOiwnLV49Kis/IXwwI1glV01AYCxcblx0XHRmb250U2l6ZSA9IDU0LFxuXHRcdGNlbGxTaXplID0gMTYsXG5cdFx0Y29sb3IgPSAnI2ZmZmZmZicsXG5cdFx0aW52ZXJ0ID0gZmFsc2UsXG5cdH06IEFTQ0lJRWZmZWN0T3B0aW9ucyA9IHt9KSB7XG5cdFx0Y29uc3QgdW5pZm9ybXMgPSBuZXcgTWFwPHN0cmluZywgVW5pZm9ybT4oW1xuXHRcdFx0Wyd1Q2hhcmFjdGVycycsIG5ldyBVbmlmb3JtKG5ldyBUZXh0dXJlKCkpXSxcblx0XHRcdFsndUNlbGxTaXplJywgbmV3IFVuaWZvcm0oY2VsbFNpemUpXSxcblx0XHRcdFsndUNoYXJhY3RlcnNDb3VudCcsIG5ldyBVbmlmb3JtKGNoYXJhY3RlcnMubGVuZ3RoKV0sXG5cdFx0XHRbJ3VDb2xvcicsIG5ldyBVbmlmb3JtKG5ldyBDb2xvcihjb2xvcikpXSxcblx0XHRcdFsndUludmVydCcsIG5ldyBVbmlmb3JtKGludmVydCldLFxuXHRcdF0pO1xuXG5cdFx0c3VwZXIoJ0FTQ0lJRWZmZWN0JywgZnJhZ21lbnQsIHsgdW5pZm9ybXMgfSk7XG5cblx0XHRjb25zdCBjaGFyYWN0ZXJzVGV4dHVyZVVuaWZvcm0gPSB0aGlzLnVuaWZvcm1zLmdldCgndUNoYXJhY3RlcnMnKTtcblxuXHRcdGlmIChjaGFyYWN0ZXJzVGV4dHVyZVVuaWZvcm0pIHtcblx0XHRcdGNoYXJhY3RlcnNUZXh0dXJlVW5pZm9ybS52YWx1ZSA9IHRoaXMuY3JlYXRlQ2hhcmFjdGVyc1RleHR1cmUoY2hhcmFjdGVycywgZm9udCwgZm9udFNpemUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBEcmF3cyB0aGUgY2hhcmFjdGVycyBvbiBhIENhbnZhcyBhbmQgcmV0dXJucyBhIHRleHR1cmUgKi9cblx0cHVibGljIGNyZWF0ZUNoYXJhY3RlcnNUZXh0dXJlKGNoYXJhY3RlcnM6IHN0cmluZywgZm9udDogc3RyaW5nLCBmb250U2l6ZTogbnVtYmVyKTogVGV4dHVyZSB7XG5cdFx0Y29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG5cdFx0Y29uc3QgU0laRSA9IDEwMjQ7XG5cdFx0Y29uc3QgTUFYX1BFUl9ST1cgPSAxNjtcblx0XHRjb25zdCBDRUxMID0gU0laRSAvIE1BWF9QRVJfUk9XO1xuXG5cdFx0Y2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IFNJWkU7XG5cdFx0Y29uc3QgdGV4dHVyZSA9IG5ldyBDYW52YXNUZXh0dXJlKGNhbnZhcywgdW5kZWZpbmVkLCBSZXBlYXRXcmFwcGluZywgUmVwZWF0V3JhcHBpbmcsIE5lYXJlc3RGaWx0ZXIsIE5lYXJlc3RGaWx0ZXIpO1xuXHRcdGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblxuXHRcdGlmICghY29udGV4dCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdDb250ZXh0IG5vdCBhdmFpbGFibGUnKTtcblx0XHR9XG5cblx0XHRjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBTSVpFLCBTSVpFKTtcblx0XHRjb250ZXh0LmZvbnQgPSBgJHtmb250U2l6ZX1weCAke2ZvbnR9YDtcblx0XHRjb250ZXh0LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdGNvbnRleHQudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG5cdFx0Y29udGV4dC5maWxsU3R5bGUgPSAnI2ZmZic7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGNoYXIgPSBjaGFyYWN0ZXJzW2ldO1xuXHRcdFx0Y29uc3QgeCA9IGkgJSBNQVhfUEVSX1JPVztcblx0XHRcdGNvbnN0IHkgPSBNYXRoLmZsb29yKGkgLyBNQVhfUEVSX1JPVyk7XG5cdFx0XHRjb250ZXh0LmZpbGxUZXh0KGNoYXIsIHggKiBDRUxMICsgQ0VMTCAvIDIsIHkgKiBDRUxMICsgQ0VMTCAvIDIpO1xuXHRcdH1cblxuXHRcdHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdHJldHVybiB0ZXh0dXJlO1xuXHR9XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBBU0NJSUVmZmVjdE9wdGlvbnMgPSB7XG5cdGZvbnQ6ICdhcmlhbCcsXG5cdGNoYXJhY3RlcnM6IGAgLjosJy1ePSorPyF8MCNYJVdNQGAsXG5cdGZvbnRTaXplOiA1NCxcblx0Y2VsbFNpemU6IDE2LFxuXHRjb2xvcjogJyNmZmZmZmYnLFxuXHRpbnZlcnQ6IGZhbHNlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1hc2NpaScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwQVNDSUkge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+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.2.0", ngImport: i0, type: NgtpBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", 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"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-bloom-effect *args="[options()]" [camera]="effect.camera()">
|
|
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.2.0", 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()">
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvb20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ibG9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRWxILE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFpQnhCLE1BQU0sT0FBTyxTQUFTO0lBZnRCO1FBZ0JDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxDQUFDLENBQUM7S0FDakU7OEdBSFksU0FBUztrR0FBVCxTQUFTLG1NQUZWLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsNElBVnBFOzs7OztFQUtULDREQUNTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFNMUIsU0FBUztrQkFmckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2lCQUM5RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgQmxvb21FZmZlY3QsIEJsb29tRWZmZWN0T3B0aW9ucyB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlLCBwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHRlbmQoeyBCbG9vbUVmZmVjdCB9KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1ibG9vbScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ibG9vbS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ibG9vbS1lZmZlY3Q+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uQUREIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEJsb29tIHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Qmxvb21FZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+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 { 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.2.0", ngImport: i0, type: NgtpBrightnessContrast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", 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"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-brightness-contrast-effect *args="[options()]" [camera]="effect.camera()">
|
|
16
|
+
<ngtp-effect-blend-mode />
|
|
17
|
+
<ng-content />
|
|
18
|
+
</ngt-brightness-contrast-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.2.0", ngImport: i0, type: NgtpBrightnessContrast, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'ngtp-brightness-contrast',
|
|
25
|
+
standalone: true,
|
|
26
|
+
template: `
|
|
27
|
+
<ngt-brightness-contrast-effect *args="[options()]" [camera]="effect.camera()">
|
|
28
|
+
<ngtp-effect-blend-mode />
|
|
29
|
+
<ng-content />
|
|
30
|
+
</ngt-brightness-contrast-effect>
|
|
31
|
+
`,
|
|
32
|
+
imports: [NgtArgs, NgtpEffectBlendMode],
|
|
33
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
34
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
35
|
+
hostDirectives: [NgtpEffectHostDirective],
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZ2h0bmVzcy1jb250cmFzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2JyaWdodG5lc3MtY29udHJhc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUVyRixNQUFNLENBQUMsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7QUFrQnJDLE1BQU0sT0FBTyxzQkFBc0I7SUFkbkM7UUFlQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsQ0FBQyxDQUFDO0tBQ3RFOzhHQUhZLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGdWQVh4Qjs7Ozs7RUFLVCw0REFDUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSzFCLHNCQUFzQjtrQkFkbEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJyaWdodG5lc3NDb250cmFzdEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0IH0pO1xuXG5leHBvcnQgdHlwZSBCcmlnaHRuZXNzRWZmZWN0T3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0PlswXT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtYnJpZ2h0bmVzcy1jb250cmFzdCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1icmlnaHRuZXNzLWNvbnRyYXN0LWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWJyaWdodG5lc3MtY29udHJhc3QtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3REaXJlY3RpdmVzOiBbTmd0cEVmZmVjdEhvc3REaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwQnJpZ2h0bmVzc0NvbnRyYXN0IHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8QnJpZ2h0bmVzc0VmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xufVxuIl19
|
|
@@ -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 { 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.2.0", ngImport: i0, type: NgtpChromaticAberration, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", 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"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-chromatic-aberration-effect *args="[options()]" [camera]="effect.camera()">
|
|
16
|
+
<ngtp-effect-blend-mode />
|
|
17
|
+
<ng-content />
|
|
18
|
+
</ngt-chromatic-aberration-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.2.0", ngImport: i0, type: NgtpChromaticAberration, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: 'ngtp-chromatic-aberration',
|
|
25
|
+
template: `
|
|
26
|
+
<ngt-chromatic-aberration-effect *args="[options()]" [camera]="effect.camera()">
|
|
27
|
+
<ngtp-effect-blend-mode />
|
|
28
|
+
<ng-content />
|
|
29
|
+
</ngt-chromatic-aberration-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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21hdGljLWFiYmVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jaHJvbWF0aWMtYWJiZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXJGLE1BQU0sQ0FBQyxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQztBQW9CdEMsTUFBTSxPQUFPLHVCQUF1QjtJQWRwQztRQWVDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE2RCxDQUFDLENBQUM7S0FDL0U7OEdBSFksdUJBQXVCO2tHQUF2Qix1QkFBdUIsaVZBWnpCOzs7OztFQUtULDREQUlTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsdUJBQXVCO2tCQWRuQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgQ2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdCB9KTtcblxuZXhwb3J0IHR5cGUgQ2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPFxuXHROb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIENocm9tYXRpY0FiZXJyYXRpb25FZmZlY3Q+WzBdPlxuPjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1jaHJvbWF0aWMtYWJlcnJhdGlvbicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1jaHJvbWF0aWMtYWJlcnJhdGlvbi1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1jaHJvbWF0aWMtYWJlcnJhdGlvbi1lZmZlY3Q+XG5cdGAsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDaHJvbWF0aWNBYmVycmF0aW9uIHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Q2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xufVxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend } 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.options = input({ blendFunction: BlendFunction.NORMAL }, { transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) });
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: NgtpColorAverage, isStandalone: true, selector: "ngtp-color-average", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
13
|
+
<ngt-color-average-effect *args="[options().blendFunction]">
|
|
14
|
+
<ng-content />
|
|
15
|
+
</ngt-color-average-effect>
|
|
16
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtpColorAverage, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{
|
|
21
|
+
selector: 'ngtp-color-average',
|
|
22
|
+
standalone: true,
|
|
23
|
+
template: `
|
|
24
|
+
<ngt-color-average-effect *args="[options().blendFunction]">
|
|
25
|
+
<ng-content />
|
|
26
|
+
</ngt-color-average-effect>
|
|
27
|
+
`,
|
|
28
|
+
imports: [NgtArgs],
|
|
29
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
30
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
31
|
+
}]
|
|
32
|
+
}] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYXZlcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2NvbG9yLWF2ZXJhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbkUsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0FBYy9CLE1BQU0sT0FBTyxnQkFBZ0I7SUFaN0I7UUFhQyxZQUFPLEdBQUcsS0FBSyxDQUNkLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsRUFDdkMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQ25FLENBQUM7S0FDRjs4R0FMWSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix3TkFUbEI7Ozs7RUFJVCw0REFDUyxPQUFPOzsyRkFJTCxnQkFBZ0I7a0JBWjVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIENvbG9yQXZlcmFnZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcblxuZXh0ZW5kKHsgQ29sb3JBdmVyYWdlRWZmZWN0IH0pO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNvbG9yLWF2ZXJhZ2UnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtY29sb3ItYXZlcmFnZS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpLmJsZW5kRnVuY3Rpb25dXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNvbG9yLWF2ZXJhZ2UtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckF2ZXJhZ2Uge1xuXHRvcHRpb25zID0gaW5wdXQoXG5cdFx0eyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9LFxuXHRcdHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uTk9STUFMIH0pIH0sXG5cdCk7XG59XG4iXX0=
|
|
@@ -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.2.0", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", 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"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-color-depth-effect *args="[options()]" [camera]="effect.camera()">
|
|
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.2.0", 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()">
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jb2xvci1kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXJGLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQWtCN0IsTUFBTSxPQUFPLGNBQWM7SUFkM0I7UUFlQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsQ0FBQyxDQUFDO0tBQ3RFOzhHQUhZLGNBQWM7a0dBQWQsY0FBYyx3VUFaaEI7Ozs7O0VBS1QsNERBSVMsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQixjQUFjO2tCQWQxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ29sb3JEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgQ29sb3JEZXB0aEVmZmVjdCB9KTtcblxuZXhwb3J0IHR5cGUgQ29sb3JEZXB0aEVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQ29sb3JEZXB0aEVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1jb2xvci1kZXB0aCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1jb2xvci1kZXB0aC1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1jb2xvci1kZXB0aC1lZmZlY3Q+XG5cdGAsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckRlcHRoIHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Q29sb3JEZXB0aEVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xufVxuIl19
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, inject, input, } from '@angular/core';
|
|
2
|
+
import { NgtArgs } from 'angular-three';
|
|
3
|
+
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
4
|
+
import { DepthOfFieldEffect, MaskFunction } from 'postprocessing';
|
|
5
|
+
import { Vector3 } from 'three';
|
|
6
|
+
import { NgtpEffectComposer } from '../effect-composer';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class NgtpDepthOfField {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.autoEffect = injectAutoEffect();
|
|
11
|
+
this.effectComposer = inject(NgtpEffectComposer);
|
|
12
|
+
this.options = input({});
|
|
13
|
+
this.autoFocus = computed(() => this.options().target != null);
|
|
14
|
+
this.effect = computed(() => {
|
|
15
|
+
const [camera, options, autoFocus] = [this.effectComposer.camera(), this.options(), this.autoFocus()];
|
|
16
|
+
const effect = new DepthOfFieldEffect(camera, options);
|
|
17
|
+
// Creating a target enables autofocus, R3F will set via props
|
|
18
|
+
if (autoFocus)
|
|
19
|
+
effect.target = new Vector3();
|
|
20
|
+
// Depth texture for depth picking with optional packing strategy
|
|
21
|
+
if (options.depthTexture) {
|
|
22
|
+
effect.setDepthTexture(options.depthTexture.texture, options.depthTexture.packing);
|
|
23
|
+
}
|
|
24
|
+
// Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur
|
|
25
|
+
const maskPass = effect['maskPass'];
|
|
26
|
+
maskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;
|
|
27
|
+
return effect;
|
|
28
|
+
});
|
|
29
|
+
afterNextRender(() => {
|
|
30
|
+
this.autoEffect(() => {
|
|
31
|
+
const effect = this.effect();
|
|
32
|
+
return () => {
|
|
33
|
+
effect.dispose();
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: NgtpDepthOfField, isStandalone: true, selector: "ngtp-depth-of-field", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
40
|
+
<ngt-primitive *args="[effect()]" />
|
|
41
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtpDepthOfField, decorators: [{
|
|
44
|
+
type: Component,
|
|
45
|
+
args: [{
|
|
46
|
+
selector: 'ngtp-depth-of-field',
|
|
47
|
+
standalone: true,
|
|
48
|
+
template: `
|
|
49
|
+
<ngt-primitive *args="[effect()]" />
|
|
50
|
+
`,
|
|
51
|
+
imports: [NgtArgs],
|
|
52
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
53
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
54
|
+
}]
|
|
55
|
+
}], ctorParameters: () => [] });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGgtb2YtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC1vZi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsT0FBTyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQW1DLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFleEQsTUFBTSxPQUFPLGdCQUFnQjtJQTBCNUI7UUF6QlEsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVwRCxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQWdCLENBQUMsQ0FBQztRQUUxQixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUM7UUFFbEUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUV0RyxNQUFNLE1BQU0sR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV2RCw4REFBOEQ7WUFDOUQsSUFBSSxTQUFTO2dCQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QyxpRUFBaUU7WUFDakUsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFpQyxDQUFDLENBQUM7WUFDOUcsQ0FBQztZQUNELDJHQUEyRztZQUMzRyxNQUFNLFFBQVEsR0FBSSxNQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RELFFBQVEsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLHNCQUFzQixDQUFDO1lBRTVELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7UUFHRixlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sR0FBRyxFQUFFO29CQUNYLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbkNXLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHlOQVBsQjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxnQkFBZ0I7a0JBVjVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbmplY3QsXG5cdGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCwgTmd0QXJncywgTmd0VmVjdG9yMyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgRGVwdGhPZkZpZWxkRWZmZWN0LCBNYXNrRnVuY3Rpb24gfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBEZXB0aFBhY2tpbmdTdHJhdGVnaWVzLCBUZXh0dXJlLCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxudHlwZSBET0ZPcHRpb25zID0gTm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEZXB0aE9mRmllbGRFZmZlY3Q+WzFdPiAmXG5cdFBhcnRpYWw8eyB0YXJnZXQ6IE5ndFZlY3RvcjM7IGRlcHRoVGV4dHVyZTogeyB0ZXh0dXJlOiBUZXh0dXJlOyBwYWNraW5nOiBEZXB0aFBhY2tpbmdTdHJhdGVnaWVzIH0gfT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZGVwdGgtb2YtZmllbGQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoT2ZGaWVsZCB7XG5cdHByaXZhdGUgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0cHJpdmF0ZSBlZmZlY3RDb21wb3NlciA9IGluamVjdChOZ3RwRWZmZWN0Q29tcG9zZXIpO1xuXG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBET0ZPcHRpb25zKTtcblxuXHRwcml2YXRlIGF1dG9Gb2N1cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLnRhcmdldCAhPSBudWxsKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW2NhbWVyYSwgb3B0aW9ucywgYXV0b0ZvY3VzXSA9IFt0aGlzLmVmZmVjdENvbXBvc2VyLmNhbWVyYSgpLCB0aGlzLm9wdGlvbnMoKSwgdGhpcy5hdXRvRm9jdXMoKV07XG5cblx0XHRjb25zdCBlZmZlY3QgPSBuZXcgRGVwdGhPZkZpZWxkRWZmZWN0KGNhbWVyYSwgb3B0aW9ucyk7XG5cblx0XHQvLyBDcmVhdGluZyBhIHRhcmdldCBlbmFibGVzIGF1dG9mb2N1cywgUjNGIHdpbGwgc2V0IHZpYSBwcm9wc1xuXHRcdGlmIChhdXRvRm9jdXMpIGVmZmVjdC50YXJnZXQgPSBuZXcgVmVjdG9yMygpO1xuXHRcdC8vIERlcHRoIHRleHR1cmUgZm9yIGRlcHRoIHBpY2tpbmcgd2l0aCBvcHRpb25hbCBwYWNraW5nIHN0cmF0ZWd5XG5cdFx0aWYgKG9wdGlvbnMuZGVwdGhUZXh0dXJlKSB7XG5cdFx0XHRlZmZlY3Quc2V0RGVwdGhUZXh0dXJlKG9wdGlvbnMuZGVwdGhUZXh0dXJlLnRleHR1cmUsIG9wdGlvbnMuZGVwdGhUZXh0dXJlLnBhY2tpbmcgYXMgRGVwdGhQYWNraW5nU3RyYXRlZ2llcyk7XG5cdFx0fVxuXHRcdC8vIFRlbXBvcmFyeSBmaXggdGhhdCByZXN0b3JlcyBET0YgNi4yMS4zIGJlaGF2aW9yLCBldmVyeXRoaW5nIHNpbmNlIHRoZW4gbGV0cyBzaGFwZXMgbGVhayB0aHJvdWdoIHRoZSBibHVyXG5cdFx0Y29uc3QgbWFza1Bhc3MgPSAoZWZmZWN0IGFzIE5ndEFueVJlY29yZClbJ21hc2tQYXNzJ107XG5cdFx0bWFza1Bhc3MubWFza0Z1bmN0aW9uID0gTWFza0Z1bmN0aW9uLk1VTFRJUExZX1JHQl9TRVRfQUxQSEE7XG5cblx0XHRyZXR1cm4gZWZmZWN0O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+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.2.0", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", 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"] }], ngImport: i0, template: `
|
|
15
|
+
<ngt-depth-effect *args="[options()]" [camera]="effect.camera()">
|
|
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.2.0", 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()">
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUVyRixNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBa0J4QixNQUFNLE9BQU8sU0FBUztJQWR0QjtRQWVDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxDQUFDLENBQUM7S0FDakU7OEdBSFksU0FBUztrR0FBVCxTQUFTLGtVQVpYOzs7OztFQUtULDREQUlTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsU0FBUztrQkFkckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgRGVwdGhFZmZlY3QgfSk7XG5cbmV4cG9ydCB0eXBlIERlcHRoRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEZXB0aEVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1kZXB0aCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1kZXB0aC1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1kZXB0aC1lZmZlY3Q+XG5cdGAsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBEZXB0aCB7XG5cdGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PERlcHRoRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG59XG4iXX0=
|