angular-three-postprocessing 2.0.0-beta.4 → 2.0.0-beta.41
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/index.mjs +4 -3
- package/esm2022/lib/effect-composer.mjs +249 -0
- package/esm2022/lib/effect.mjs +78 -0
- package/esm2022/lib/effects/bloom/bloom.mjs +33 -0
- package/esm2022/lib/effects/brightness-contrast/brightness-contrast.mjs +29 -0
- package/esm2022/lib/effects/color-depth/color-depth.mjs +29 -0
- package/esm2022/lib/effects/depth/depth.mjs +29 -0
- package/esm2022/lib/effects/dot-screen/dot-screen.mjs +29 -0
- package/esm2022/lib/effects/hue-saturation/hue-saturation.mjs +29 -0
- package/esm2022/lib/effects/index.mjs +18 -0
- package/esm2022/lib/effects/lut/lut.mjs +74 -0
- package/esm2022/lib/effects/noise/noise.mjs +33 -0
- package/esm2022/lib/effects/pixelation/pixelation.mjs +37 -0
- package/esm2022/lib/effects/scanline/scanline.mjs +33 -0
- package/esm2022/lib/effects/sepia/sepia.mjs +29 -0
- package/esm2022/lib/effects/shock-wave/shock-wave.mjs +29 -0
- package/esm2022/lib/effects/smaa/smaa.mjs +29 -0
- package/esm2022/lib/effects/ssao/ssao.mjs +217 -0
- package/esm2022/lib/effects/tilt-shift/tilt-shift.mjs +33 -0
- package/esm2022/lib/effects/tone-mapping/tone-mapping.mjs +29 -0
- package/esm2022/lib/effects/vignette/vignette.mjs +29 -0
- package/fesm2022/angular-three-postprocessing.mjs +881 -206
- package/fesm2022/angular-three-postprocessing.mjs.map +1 -1
- package/index.d.ts +3 -2
- package/lib/effect-composer.d.ts +105 -0
- package/lib/effect.d.ts +27 -0
- package/{effects → lib/effects}/bloom/bloom.d.ts +7 -2
- package/{effects → lib/effects}/brightness-contrast/brightness-contrast.d.ts +9 -1
- package/{effects → lib/effects}/color-depth/color-depth.d.ts +8 -1
- package/{effects → lib/effects}/depth/depth.d.ts +8 -1
- package/{effects → lib/effects}/dot-screen/dot-screen.d.ts +9 -1
- package/{effects → lib/effects}/hue-saturation/hue-saturation.d.ts +9 -1
- package/{effects → lib/effects}/index.d.ts +1 -0
- package/lib/effects/lut/lut.d.ts +29 -0
- package/{effects → lib/effects}/noise/noise.d.ts +8 -1
- package/lib/effects/pixelation/pixelation.d.ts +20 -0
- package/{effects → lib/effects}/scanline/scanline.d.ts +8 -1
- package/{effects → lib/effects}/sepia/sepia.d.ts +8 -1
- package/lib/effects/shock-wave/shock-wave.d.ts +17 -0
- package/lib/effects/smaa/smaa.d.ts +16 -0
- package/lib/effects/ssao/ssao.d.ts +42 -0
- package/lib/effects/tilt-shift/tilt-shift.d.ts +23 -0
- package/lib/effects/tone-mapping/tone-mapping.d.ts +22 -0
- package/lib/effects/vignette/vignette.d.ts +17 -0
- package/package.json +4 -14
- package/effect-composer.d.ts +0 -53
- package/effect.d.ts +0 -24
- package/effects/README.md +0 -3
- package/effects/lut/lut.d.ts +0 -19
- package/effects/shock-wave/shock-wave.d.ts +0 -7
- package/effects/smaa/smaa.d.ts +0 -7
- package/effects/ssao/ssao.d.ts +0 -38
- package/effects/tilt-shift/tilt-shift.d.ts +0 -8
- package/effects/tone-mapping/tone-mapping.d.ts +0 -7
- package/effects/vignette/vignette.d.ts +0 -7
- package/esm2022/effect-composer.mjs +0 -242
- package/esm2022/effect.mjs +0 -79
- package/esm2022/effects/angular-three-postprocessing-effects.mjs +0 -5
- package/esm2022/effects/bloom/bloom.mjs +0 -34
- package/esm2022/effects/brightness-contrast/brightness-contrast.mjs +0 -30
- package/esm2022/effects/color-depth/color-depth.mjs +0 -30
- package/esm2022/effects/depth/depth.mjs +0 -30
- package/esm2022/effects/dot-screen/dot-screen.mjs +0 -30
- package/esm2022/effects/hue-saturation/hue-saturation.mjs +0 -30
- package/esm2022/effects/index.mjs +0 -17
- package/esm2022/effects/lut/lut.mjs +0 -77
- package/esm2022/effects/noise/noise.mjs +0 -34
- package/esm2022/effects/scanline/scanline.mjs +0 -34
- package/esm2022/effects/sepia/sepia.mjs +0 -30
- package/esm2022/effects/shock-wave/shock-wave.mjs +0 -30
- package/esm2022/effects/smaa/smaa.mjs +0 -30
- package/esm2022/effects/ssao/ssao.mjs +0 -187
- package/esm2022/effects/tilt-shift/tilt-shift.mjs +0 -34
- package/esm2022/effects/tone-mapping/tone-mapping.mjs +0 -30
- package/esm2022/effects/vignette/vignette.mjs +0 -30
- package/fesm2022/angular-three-postprocessing-effects.mjs +0 -617
- package/fesm2022/angular-three-postprocessing-effects.mjs.map +0 -1
- package/plugin/README.md +0 -11
- package/plugin/generators.json +0 -19
- package/plugin/package.json +0 -9
- package/plugin/src/generators/init/compat.d.ts +0 -2
- package/plugin/src/generators/init/compat.js +0 -6
- package/plugin/src/generators/init/compat.js.map +0 -1
- package/plugin/src/generators/init/init.d.ts +0 -4
- package/plugin/src/generators/init/init.js +0 -22
- package/plugin/src/generators/init/init.js.map +0 -1
- package/plugin/src/generators/init/schema.json +0 -6
- package/plugin/src/index.d.ts +0 -1
- package/plugin/src/index.js +0 -6
- package/plugin/src/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three-postprocessing.mjs","sources":["../../../../libs/postprocessing/src/effect.ts","../../../../libs/postprocessing/src/effect-composer.ts","../../../../libs/postprocessing/src/angular-three-postprocessing.ts"],"sourcesContent":["import { Directive, Input, computed, effect, inject } from '@angular/core';\nimport {\n NgtAnyRecord,\n NgtSignalStore,\n NgtStore,\n getLocalState,\n injectNgtRef,\n requestAnimationInInjectionContext,\n} from 'angular-three';\nimport { BlendFunction, Effect } from 'postprocessing';\n\n@Directive()\nexport abstract class NgtpEffect<T extends Effect> extends NgtSignalStore<{\n blendFunction?: BlendFunction;\n opacity?: number;\n}> {\n @Input() effectRef = injectNgtRef<T>();\n\n @Input() set blendFunction(blendFunction: BlendFunction) {\n this.set({ blendFunction });\n }\n\n @Input() set opacity(opacity: number) {\n this.set({ opacity });\n }\n\n protected defaultBlendFunction = BlendFunction.NORMAL;\n protected nativeArgs = () => [];\n\n readonly effectBlendFunction = this.select('blendFunction');\n readonly effectOpacity = this.select('opacity');\n\n protected readonly store = inject(NgtStore);\n protected readonly camera = this.store.select('camera');\n\n #previousProps?: NgtAnyRecord;\n readonly #nativeProps = computed(\n () => {\n const effect = this.effectRef.nativeElement;\n if (!effect) return this.#previousProps || null;\n const localState = getLocalState(effect);\n if (!localState) return this.#previousProps || null;\n const nativeProps = localState.nativeProps.select()();\n delete nativeProps['__ngt_dummy_state__'];\n if ('camera' in nativeProps) {\n delete nativeProps['camera'];\n }\n return (this.#previousProps = nativeProps);\n },\n { equal: Object.is }\n );\n\n protected readonly args = computed(() => {\n const nativeProps = this.#nativeProps();\n const nativeArgs = this.nativeArgs();\n if (nativeProps) return [...nativeArgs, ...[{ ...nativeProps }]];\n return [...nativeArgs];\n });\n\n constructor() {\n super();\n requestAnimationInInjectionContext(() => {\n this.#setBlendMode();\n });\n }\n\n #setBlendMode() {\n const trigger = computed(() => ({\n blendFunction: this.effectBlendFunction(),\n opacity: this.effectOpacity(),\n effect: this.effectRef.nativeElement,\n }));\n effect(() => {\n const { effect, blendFunction, opacity } = trigger();\n if (!effect) return;\n const invalidate = this.store.get('invalidate');\n effect.blendMode.blendFunction =\n !blendFunction && blendFunction !== 0 ? this.defaultBlendFunction : blendFunction;\n if (opacity !== undefined) effect.blendMode.opacity.value = opacity;\n invalidate();\n });\n }\n}\n","import {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n InjectionToken,\n Input,\n Signal,\n computed,\n effect,\n inject,\n} from '@angular/core';\nimport {\n NgtSignalStore,\n NgtStore,\n extend,\n injectBeforeRender,\n injectNgtRef,\n requestAnimationInInjectionContext,\n} from 'angular-three';\nimport { DepthDownsamplingPass, EffectComposer, EffectPass, NormalPass, RenderPass } from 'postprocessing';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\n\nextend({ Group });\n\nexport interface NgtpEffectComposerState {\n enabled: boolean;\n depthBuffer?: boolean;\n disableNormalPass?: boolean;\n stencilBuffer?: boolean;\n autoClear: boolean;\n resolutionScale?: number;\n multisampling: number;\n frameBufferType: THREE.TextureDataType;\n renderPriority: number;\n camera?: THREE.Camera;\n scene?: THREE.Scene;\n}\n\nexport interface NgtpEffectComposerApi {\n composer: EffectComposer;\n normalPass: NormalPass | null;\n downSamplingPass: DepthDownsamplingPass | null;\n camera: THREE.Camera;\n scene: THREE.Scene;\n resolutionScale?: number;\n}\n\nexport const NGTP_EFFECT_COMPOSER_API = new InjectionToken<Signal<NgtpEffectComposerApi>>('NgtpEffectComposer API');\n\n@Component({\n selector: 'ngtp-effect-composer',\n standalone: true,\n template: `\n <ngt-group [ref]=\"composerRef\">\n <ng-content />\n </ngt-group>\n `,\n providers: [\n {\n provide: NGTP_EFFECT_COMPOSER_API,\n useFactory: (composer: NgtpEffectComposer) => composer.api,\n deps: [NgtpEffectComposer],\n },\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpEffectComposer extends NgtSignalStore<NgtpEffectComposerState> {\n readonly composerRef = injectNgtRef<THREE.Group>();\n\n @Input() set enabled(enabled: boolean) {\n this.set({ enabled });\n }\n\n @Input() set depthBuffer(depthBuffer: boolean) {\n this.set({ depthBuffer });\n }\n\n @Input() set disableNormalPass(disableNormalPass: boolean) {\n this.set({ disableNormalPass });\n }\n\n @Input() set stencilBuffer(stencilBuffer: boolean) {\n this.set({ stencilBuffer });\n }\n\n @Input() set autoClear(autoClear: boolean) {\n this.set({ autoClear });\n }\n\n @Input() set resolutionScale(resolutionScale: number) {\n this.set({ resolutionScale });\n }\n\n @Input() set multisampling(multisampling: number) {\n this.set({ multisampling });\n }\n\n @Input() set frameBufferType(frameBufferType: THREE.TextureDataType) {\n this.set({ frameBufferType });\n }\n\n @Input() set renderPriority(renderPriority: number) {\n this.set({ renderPriority });\n }\n\n @Input() set camera(camera: THREE.Camera) {\n this.set({ camera });\n }\n\n @Input() set scene(scene: THREE.Scene) {\n this.set({ scene });\n }\n\n readonly #store = inject(NgtStore);\n readonly #gl = this.#store.select('gl');\n readonly #size = this.#store.select('size');\n readonly #defaultScene = this.#store.select('scene');\n readonly #defaultCamera = this.#store.select('camera');\n\n readonly #scene = this.select('scene');\n readonly #camera = this.select('camera');\n\n readonly #depthBuffer = this.select('depthBuffer');\n readonly #stencilBuffer = this.select('stencilBuffer');\n readonly #multisampling = this.select('multisampling');\n readonly #frameBufferType = this.select('frameBufferType');\n readonly #disableNormalPass = this.select('disableNormalPass');\n readonly #resolutionScale = this.select('resolutionScale');\n\n readonly #activeScene = computed(() => this.#scene() || this.#defaultScene());\n readonly #activeCamera = computed(() => this.#camera() || this.#defaultCamera());\n\n readonly #composerEntities = computed(() => {\n const gl = this.#gl();\n const camera = this.#activeCamera();\n const scene = this.#activeScene();\n const depthBuffer = this.#depthBuffer();\n const stencilBuffer = this.#stencilBuffer();\n const multisampling = this.#multisampling();\n const frameBufferType = this.#frameBufferType();\n const disableNormalPass = this.#disableNormalPass();\n const resolutionScale = this.#resolutionScale();\n\n const webGL2Available = isWebGL2Available();\n // Initialize composer\n const effectComposer = new EffectComposer(gl, {\n depthBuffer,\n stencilBuffer,\n multisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n frameBufferType,\n });\n\n // Add render pass\n effectComposer.addPass(new RenderPass(scene, camera));\n\n // Create normal pass\n let downSamplingPass = null;\n let normalPass = null;\n if (!disableNormalPass) {\n normalPass = new NormalPass(scene, camera);\n normalPass.enabled = false;\n effectComposer.addPass(normalPass);\n if (resolutionScale !== undefined && webGL2Available) {\n downSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n downSamplingPass.enabled = false;\n effectComposer.addPass(downSamplingPass);\n }\n }\n\n return { effectComposer, normalPass, downSamplingPass };\n });\n\n readonly api = computed(() => {\n const { effectComposer, normalPass, downSamplingPass } = this.#composerEntities();\n return {\n composer: effectComposer,\n normalPass,\n downSamplingPass,\n resolutionScale: this.#resolutionScale(),\n camera: this.#activeCamera(),\n scene: this.#activeScene(),\n };\n });\n\n constructor() {\n super({\n enabled: true,\n renderPriority: 1,\n autoClear: true,\n multisampling: 8,\n frameBufferType: THREE.HalfFloatType,\n });\n requestAnimationInInjectionContext(() => {\n this.#setComposerSize();\n this.#updateEffectPasses();\n this.#setBeforeRender();\n });\n }\n\n #setComposerSize() {\n const trigger = computed(() => ({ composer: this.#composerEntities().effectComposer, size: this.#size() }));\n effect(() => {\n const { composer, size } = trigger();\n if (!composer) return;\n composer.setSize(size.width, size.height);\n });\n }\n\n #updateEffectPasses() {\n const trigger = computed(() => ({\n composerEntities: this.#composerEntities(),\n instance: this.composerRef.nativeElement,\n children: this.composerRef.children('nonObjects')(),\n camera: this.#activeCamera(),\n }));\n effect((onCleanup) => {\n const {\n composerEntities: { effectComposer, normalPass, downSamplingPass },\n instance,\n children,\n camera,\n } = trigger();\n\n let effectPass: EffectPass;\n if (instance && children.length && effectComposer) {\n effectPass = new EffectPass(camera, ...children);\n effectPass.renderToScreen = true;\n effectComposer.addPass(effectPass);\n if (normalPass) normalPass.enabled = true;\n if (downSamplingPass) downSamplingPass.enabled = true;\n }\n\n onCleanup(() => {\n if (effectPass) effectComposer?.removePass(effectPass);\n if (normalPass) normalPass.enabled = false;\n if (downSamplingPass) downSamplingPass.enabled = false;\n });\n });\n }\n\n #setBeforeRender() {\n injectBeforeRender(\n ({ delta }) => {\n const enabled = this.get('enabled');\n const autoClear = this.get('autoClear');\n const gl = this.#store.get('gl');\n const { effectComposer } = this.#composerEntities();\n if (enabled && effectComposer) {\n gl.autoClear = autoClear;\n effectComposer.render(delta);\n }\n },\n { priority: this.get('enabled') ? this.get('renderPriority') : 0 }\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-three-postprocessing.mjs","sources":["../../../../libs/postprocessing/src/lib/effect.ts","../../../../libs/postprocessing/src/lib/effect-composer.ts","../../../../libs/postprocessing/src/lib/effects/bloom/bloom.ts","../../../../libs/postprocessing/src/lib/effects/brightness-contrast/brightness-contrast.ts","../../../../libs/postprocessing/src/lib/effects/color-depth/color-depth.ts","../../../../libs/postprocessing/src/lib/effects/depth/depth.ts","../../../../libs/postprocessing/src/lib/effects/dot-screen/dot-screen.ts","../../../../libs/postprocessing/src/lib/effects/hue-saturation/hue-saturation.ts","../../../../libs/postprocessing/src/lib/effects/lut/lut.ts","../../../../libs/postprocessing/src/lib/effects/noise/noise.ts","../../../../libs/postprocessing/src/lib/effects/pixelation/pixelation.ts","../../../../libs/postprocessing/src/lib/effects/scanline/scanline.ts","../../../../libs/postprocessing/src/lib/effects/sepia/sepia.ts","../../../../libs/postprocessing/src/lib/effects/shock-wave/shock-wave.ts","../../../../libs/postprocessing/src/lib/effects/smaa/smaa.ts","../../../../libs/postprocessing/src/lib/effects/ssao/ssao.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift/tilt-shift.ts","../../../../libs/postprocessing/src/lib/effects/tone-mapping/tone-mapping.ts","../../../../libs/postprocessing/src/lib/effects/vignette/vignette.ts","../../../../libs/postprocessing/src/angular-three-postprocessing.ts"],"sourcesContent":["import { Directive, Input, computed, effect } from '@angular/core';\nimport { getLocalState, injectNgtRef, injectNgtStore, is, signalStore, type NgtAnyRecord } from 'angular-three';\nimport { BlendFunction, Effect } from 'postprocessing';\n\nexport type NgtpEffectState = {\n\tblendFunction?: BlendFunction;\n\topacity?: number;\n};\n\n@Directive()\nexport abstract class NgtpEffect<TEffect extends Effect> {\n\tinputs = signalStore<NgtpEffectState>();\n\n\t@Input() effectRef = injectNgtRef<TEffect>();\n\n\t@Input({ alias: 'blendFunction' }) set _blendFunction(blendFunction: BlendFunction) {\n\t\tthis.inputs.set({ blendFunction });\n\t}\n\n\t@Input({ alias: 'opacity' }) set _opacity(opacity: number) {\n\t\tthis.inputs.set({ opacity });\n\t}\n\n\tprotected defaultBlendFunction = BlendFunction.NORMAL;\n\tprotected nativeArgs: () => NgtAnyRecord[] = () => [];\n\n\tblendFunction = this.inputs.select('blendFunction');\n\topacity = this.inputs.select('opacity');\n\n\tprotected store = injectNgtStore();\n\tprotected camera = this.store.select('camera');\n\tprivate invalidate = this.store.select('invalidate');\n\n\tprivate previousInputs?: NgtAnyRecord;\n\n\tprivate nativeInputs = computed(\n\t\t() => {\n\t\t\tconst effect = this.effectRef.nativeElement;\n\t\t\tif (!effect) return this.previousInputs || null;\n\t\t\tconst localState = getLocalState(effect);\n\t\t\tif (!localState) return this.previousInputs || null;\n\t\t\tconst nativeProps = localState.nativeProps.state();\n\t\t\tdelete nativeProps['__ngt_dummy_state__'];\n\t\t\tif ('camera' in nativeProps) {\n\t\t\t\tdelete nativeProps['camera'];\n\t\t\t}\n\t\t\tif (!Object.keys(nativeProps).length) return this.previousInputs || null;\n\t\t\treturn (this.previousInputs = nativeProps);\n\t\t},\n\t\t{ equal: (a, b) => is.equ(a, b, { objects: 'shallow' }) },\n\t);\n\n\targs = computed(() => {\n\t\tconst [nativeInputs, nativeArgs] = [this.nativeInputs(), this.nativeArgs()];\n\t\tif (nativeInputs) {\n\t\t\tnativeArgs.push(nativeInputs);\n\t\t}\n\n\t\treturn nativeArgs;\n\t});\n\n\tconstructor() {\n\t\tthis.setBlendMode();\n\t}\n\n\tprivate setBlendMode() {\n\t\teffect(() => {\n\t\t\tconst [blendFunction, opacity, effect, invalidate] = [\n\t\t\t\tthis.blendFunction(),\n\t\t\t\tthis.opacity(),\n\t\t\t\tthis.effectRef.nativeElement,\n\t\t\t\tthis.invalidate(),\n\t\t\t];\n\n\t\t\tif (!effect) return;\n\t\t\teffect.blendMode.blendFunction =\n\t\t\t\t!blendFunction && blendFunction !== 0 ? this.defaultBlendFunction : blendFunction;\n\t\t\tif (opacity !== undefined) effect.blendMode.opacity.value = opacity;\n\t\t\tinvalidate();\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tComponent,\n\tInjector,\n\tInput,\n\tcomputed,\n\teffect,\n\tforwardRef,\n\tinject,\n} from '@angular/core';\nimport { extend, injectBeforeRender, injectNgtRef, injectNgtStore, signalStore } from 'angular-three';\nimport { createInjectionToken } from 'ngxtension/create-injection-token';\nimport {\n\tDepthDownsamplingPass,\n\tEffect,\n\tEffectComposer,\n\tEffectPass,\n\tNormalPass,\n\tPass,\n\tRenderPass,\n} from 'postprocessing';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\n\nextend({ Group });\n\nexport type NgtpEffectComposerState = {\n\tenabled: boolean;\n\tdepthBuffer?: boolean;\n\tdisableNormalPass?: boolean;\n\tstencilBuffer?: boolean;\n\tautoClear: boolean;\n\tresolutionScale?: number;\n\tmultisampling: number;\n\tframeBufferType: THREE.TextureDataType;\n\trenderPriority: number;\n\tcamera?: THREE.Camera;\n\tscene?: THREE.Scene;\n};\n\nexport const [injectNgtpEffectComposerApi, provideNgtpEffectComposerApi] = createInjectionToken(\n\t(composer: NgtpEffectComposer) => composer.api,\n\t{ isRoot: false, deps: [forwardRef(() => NgtpEffectComposer)] },\n);\n\n@Component({\n\tselector: 'ngtp-effect-composer',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group [ref]=\"composerRef\">\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n\tproviders: [provideNgtpEffectComposerApi()],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpEffectComposer {\n\tprivate inputs = signalStore<NgtpEffectComposerState>({\n\t\tenabled: true,\n\t\trenderPriority: 1,\n\t\tautoClear: true,\n\t\tmultisampling: 8,\n\t\tframeBufferType: THREE.HalfFloatType,\n\t});\n\n\t@Input() composerRef = injectNgtRef<Group>();\n\n\t@Input({ alias: 'enabled' }) set _enabled(enabled: boolean) {\n\t\tthis.inputs.set({ enabled });\n\t}\n\n\t@Input({ alias: 'depthBuffer' }) set _depthBuffer(depthBuffer: boolean) {\n\t\tthis.inputs.set({ depthBuffer });\n\t}\n\n\t@Input({ alias: 'disableNormalPass' }) set _disableNormalPass(disableNormalPass: boolean) {\n\t\tthis.inputs.set({ disableNormalPass });\n\t}\n\n\t@Input({ alias: 'stencilBuffer' }) set _stencilBuffer(stencilBuffer: boolean) {\n\t\tthis.inputs.set({ stencilBuffer });\n\t}\n\n\t@Input({ alias: 'autoClear' }) set _autoClear(autoClear: boolean) {\n\t\tthis.inputs.set({ autoClear });\n\t}\n\n\t@Input({ alias: 'resolutionScale' }) set _resolutionScale(resolutionScale: number) {\n\t\tthis.inputs.set({ resolutionScale });\n\t}\n\n\t@Input({ alias: 'multisampling' }) set _multisampling(multisampling: number) {\n\t\tthis.inputs.set({ multisampling });\n\t}\n\n\t@Input({ alias: 'frameBufferType' }) set _frameBufferType(frameBufferType: THREE.TextureDataType) {\n\t\tthis.inputs.set({ frameBufferType });\n\t}\n\n\t@Input({ alias: 'renderPriority' }) set _renderPriority(renderPriority: number) {\n\t\tthis.inputs.set({ renderPriority });\n\t}\n\n\t@Input({ alias: 'camera' }) set _camera(camera: THREE.Camera) {\n\t\tthis.inputs.set({ camera });\n\t}\n\n\t@Input({ alias: 'scene' }) set _scene(scene: THREE.Scene) {\n\t\tthis.inputs.set({ scene });\n\t}\n\n\tprivate injector = inject(Injector);\n\n\tprivate store = injectNgtStore();\n\tprivate gl = this.store.select('gl');\n\tprivate defaultScene = this.store.select('scene');\n\tprivate defaultCamera = this.store.select('camera');\n\tprivate size = this.store.select('size');\n\n\tprivate depthBuffer = this.inputs.select('depthBuffer');\n\tprivate stencilBuffer = this.inputs.select('stencilBuffer');\n\tprivate multisampling = this.inputs.select('multisampling');\n\tprivate frameBufferType = this.inputs.select('frameBufferType');\n\tprivate scene = this.inputs.select('scene');\n\tprivate camera = this.inputs.select('camera');\n\tprivate disableNormalPass = this.inputs.select('disableNormalPass');\n\tprivate resolutionScale = this.inputs.select('resolutionScale');\n\tprivate autoClear = this.inputs.select('autoClear');\n\n\tprivate activeScene = computed(() => this.scene() || this.defaultScene());\n\tprivate activeCamera = computed(() => this.camera() || this.defaultCamera());\n\n\tprivate composerEntities = computed(() => {\n\t\tconst webGL2Available = isWebGL2Available();\n\t\tconst [\n\t\t\tgl,\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling,\n\t\t\tframeBufferType,\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tdisableNormalPass,\n\t\t\tresolutionScale,\n\t\t] = [\n\t\t\tthis.gl(),\n\t\t\tthis.depthBuffer(),\n\t\t\tthis.stencilBuffer(),\n\t\t\tthis.multisampling(),\n\t\t\tthis.frameBufferType(),\n\t\t\tthis.activeScene(),\n\t\t\tthis.activeCamera(),\n\t\t\tthis.disableNormalPass(),\n\t\t\tthis.resolutionScale(),\n\t\t];\n\n\t\t// Initialize composer\n\t\tconst effectComposer = new EffectComposer(gl, {\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n\t\t\tframeBufferType,\n\t\t});\n\n\t\t// Add render pass\n\t\teffectComposer.addPass(new RenderPass(scene, camera));\n\n\t\t// Create normal pass\n\t\tlet downSamplingPass = null;\n\t\tlet normalPass = null;\n\t\tif (!disableNormalPass) {\n\t\t\tnormalPass = new NormalPass(scene, camera);\n\t\t\tnormalPass.enabled = false;\n\t\t\teffectComposer.addPass(normalPass);\n\t\t\tif (resolutionScale !== undefined && webGL2Available) {\n\t\t\t\tdownSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n\t\t\t\tdownSamplingPass.enabled = false;\n\t\t\t\teffectComposer.addPass(downSamplingPass);\n\t\t\t}\n\t\t}\n\n\t\treturn { effectComposer, normalPass, downSamplingPass };\n\t});\n\n\tprivate composer = computed(() => this.composerEntities().effectComposer);\n\n\tapi = computed(() => {\n\t\tconst [{ effectComposer: composer, normalPass, downSamplingPass }, resolutionScale, camera, scene] = [\n\t\t\tthis.composerEntities(),\n\t\t\tthis.resolutionScale(),\n\t\t\tthis.activeCamera(),\n\t\t\tthis.activeScene(),\n\t\t];\n\t\treturn { composer, normalPass, downSamplingPass, resolutionScale, camera, scene };\n\t});\n\n\tconstructor() {\n\t\tthis.setComposerSize();\n\t\tthis.updatePasses();\n\t}\n\n\tngOnInit() {\n\t\tthis.beforeRender();\n\t}\n\n\tprivate setComposerSize() {\n\t\teffect(() => {\n\t\t\tconst [composer, size] = [this.composer(), this.size()];\n\t\t\tcomposer.setSize(size.width, size.height);\n\t\t});\n\t}\n\n\tprivate updatePasses() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [{ effectComposer: composer, normalPass, downSamplingPass }, instance, children, camera] = [\n\t\t\t\tthis.composerEntities(),\n\t\t\t\tthis.composerRef.nativeElement,\n\t\t\t\tthis.composerRef.children('nonObjects')(),\n\t\t\t\tthis.activeCamera(),\n\t\t\t];\n\n\t\t\tconst passes: Pass[] = [];\n\n\t\t\tif (instance && composer && children.length) {\n\t\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\t\tconst child = children[i];\n\t\t\t\t\tif (child instanceof Effect) {\n\t\t\t\t\t\tconst effects: Effect[] = [];\n\n\t\t\t\t\t\twhile (children[i] instanceof Effect) effects.push(children[i++] as Effect);\n\t\t\t\t\t\ti--;\n\n\t\t\t\t\t\tconst pass = new EffectPass(camera, ...effects);\n\t\t\t\t\t\tpasses.push(pass);\n\t\t\t\t\t} else if (child instanceof Pass) {\n\t\t\t\t\t\tpasses.push(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const pass of passes) composer.addPass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = true;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = true;\n\t\t\t}\n\n\t\t\tonCleanup(() => {\n\t\t\t\tfor (const pass of passes) composer?.removePass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = false;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = false;\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate beforeRender() {\n\t\tinjectBeforeRender(\n\t\t\t({ delta }) => {\n\t\t\t\tconst [enabled, gl, autoClear, stencilBuffer, composer] = [\n\t\t\t\t\tthis.inputs.get('enabled'),\n\t\t\t\t\tthis.gl(),\n\t\t\t\t\tthis.autoClear(),\n\t\t\t\t\tthis.stencilBuffer(),\n\t\t\t\t\tthis.composer(),\n\t\t\t\t];\n\t\t\t\tif (enabled) {\n\t\t\t\t\tconst currentAutoClear = gl.autoClear;\n\t\t\t\t\tgl.autoClear = autoClear;\n\t\t\t\t\tif (stencilBuffer && !autoClear) gl.clearStencil();\n\t\t\t\t\tcomposer.render(delta);\n\t\t\t\t\tgl.autoClear = currentAutoClear;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tinjector: this.injector,\n\t\t\t\tpriority: this.inputs.get('enabled') ? this.inputs.get('renderPriority') : 0,\n\t\t\t},\n\t\t);\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect, type BloomEffectOptions } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ BloomEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-bloom': BloomEffectOptions & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-bloom',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-bloom-effect ngtCompound *args=\"args()\" [ref]=\"effectRef\" [camera]=\"camera()\">\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpBloom extends NgtpEffect<BloomEffect> {\n\toverride defaultBlendFunction = BlendFunction.ADD;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ BrightnessContrastEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-brightness-contrast': { brightness?: number; contrast?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-brightness-contrast',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-brightness-contrast-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpBrightnessContrast extends NgtpEffect<BrightnessContrastEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ColorDepthEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-color-depth': { bits?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-color-depth',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-color-depth-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpColorDepth extends NgtpEffect<ColorDepthEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ DepthEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-depth': { inverted?: boolean } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-depth',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-depth-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpDepth extends NgtpEffect<DepthEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ DotScreenEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-dot-screen': { angle?: number; scale?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-dot-screen',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-dot-screen-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpDotScreen extends NgtpEffect<DotScreenEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ HueSaturationEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-hue-saturation': { hue?: number; saturation?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-hue-saturation',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-hue-saturation-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpHueSaturation extends NgtpEffect<HueSaturationEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed, effect } from '@angular/core';\nimport { NgtArgs, injectNgtRef, injectNgtStore, signalStore } from 'angular-three';\nimport { BlendFunction, LUT3DEffect } from 'postprocessing';\n\nexport type NgtpLUTState = {\n\tlut: THREE.Texture;\n\tblendFunction?: BlendFunction;\n\ttetrahedralInterpolation?: boolean;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-lut': NgtpLUTState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-lut',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [ref]=\"effectRef\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpLUT {\n\tprivate inputs = signalStore<NgtpLUTState>({});\n\n\t@Input() effectRef = injectNgtRef<LUT3DEffect>();\n\n\t@Input({ required: true, alias: 'lut' }) set _lut(lut: THREE.Texture) {\n\t\tthis.inputs.set({ lut });\n\t}\n\n\t@Input({ alias: 'blendFunction' }) set _blendFunction(blendFunction: BlendFunction) {\n\t\tthis.inputs.set({ blendFunction });\n\t}\n\n\t@Input({ alias: 'tetrahedralInterpolation' }) set _tetrahedralInterpolation(tetrahedralInterpolation: boolean) {\n\t\tthis.inputs.set({ tetrahedralInterpolation });\n\t}\n\n\tprivate lut = this.inputs.select('lut');\n\tprivate tetrahedralInterpolation = this.inputs.select('tetrahedralInterpolation');\n\tprivate blendFunction = this.inputs.select('blendFunction');\n\n\tprivate store = injectNgtStore();\n\tprivate invalidate = this.store.select('invalidate');\n\n\teffect = computed(\n\t\t() =>\n\t\t\tnew LUT3DEffect(this.lut(), {\n\t\t\t\tblendFunction: this.blendFunction(),\n\t\t\t\ttetrahedralInterpolation: this.tetrahedralInterpolation(),\n\t\t\t}),\n\t);\n\n\tconstructor() {\n\t\tthis.setState();\n\t}\n\n\tprivate setState() {\n\t\teffect(() => {\n\t\t\tconst [effect, invalidate, lut, tetrahedralInterpolation] = [\n\t\t\t\tthis.effect(),\n\t\t\t\tthis.invalidate(),\n\t\t\t\tthis.lut(),\n\t\t\t\tthis.tetrahedralInterpolation(),\n\t\t\t];\n\t\t\tif (!effect) return;\n\t\t\tif (tetrahedralInterpolation) effect.tetrahedralInterpolation = tetrahedralInterpolation;\n\t\t\tif (lut) effect.lut = lut;\n\t\t\tinvalidate();\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ NoiseEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-noise': { premultiply?: boolean } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-noise',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-noise-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpNoise extends NgtpEffect<NoiseEffect> {\n\toverride defaultBlendFunction = BlendFunction.COLOR_DODGE;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';\nimport { NgtArgs, injectNgtRef, signalStore } from 'angular-three';\nimport { PixelationEffect } from 'postprocessing';\nimport type { NgtpEffectState } from '../../effect';\n\nexport type NgtpPixelationState = {\n\tgranularity: number;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-pixelation': NgtpPixelationState & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-pixelation',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [ref]=\"effectRef\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpPixelation {\n\tprivate inputs = signalStore<NgtpPixelationState>({ granularity: 30 });\n\n\t@Input() effectRef = injectNgtRef<PixelationEffect>();\n\n\t@Input({ alias: 'granularity' }) set _granularity(granularity: number) {\n\t\tthis.inputs.set({ granularity });\n\t}\n\n\tprivate granularity = this.inputs.select('granularity');\n\n\teffect = computed(() => new PixelationEffect(this.granularity()));\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ScanlineEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-scanline': { density?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-scanline',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-scanline-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpScanline extends NgtpEffect<ScanlineEffect> {\n\toverride defaultBlendFunction = BlendFunction.OVERLAY;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ SepiaEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-sepia': { intensity?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-sepia',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-sepia-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpSepia extends NgtpEffect<SepiaEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ShockWaveEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-shock-wave': {\n\t\t\tspeed?: number;\n\t\t\tmaxRadius?: number;\n\t\t\twaveSize?: number;\n\t\t\tamplitude?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-shock-wave',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-shock-wave-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpShockWave extends NgtpEffect<ShockWaveEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { EdgeDetectionMode, PredicationMode, SMAAEffect, SMAAPreset } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ SMAAEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-SMAA': {\n\t\t\tpreset?: SMAAPreset;\n\t\t\tedgeDetectionMode?: EdgeDetectionMode;\n\t\t\tpredicationMode?: PredicationMode;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-SMAA',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-SMAA-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-SMAA-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpSMAA extends NgtpEffect<SMAAEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';\nimport { NgtArgs, injectNgtRef, signalStore } from 'angular-three';\nimport { BlendFunction, SSAOEffect } from 'postprocessing';\nimport { injectNgtpEffectComposerApi } from '../../effect-composer';\n\n// first two args are camera and texture\nexport type NgtpSSAOState = NonNullable<ConstructorParameters<typeof SSAOEffect>[2]>;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-SSAO': NgtpSSAOState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-SSAO',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [ref]=\"effectRef\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpSSAO {\n\tprivate inputs = signalStore<NgtpSSAOState>({\n\t\tblendFunction: BlendFunction.MULTIPLY,\n\t\tsamples: 30,\n\t\trings: 4,\n\t\tdistanceThreshold: 1.0,\n\t\tdistanceFalloff: 0.0,\n\t\trangeThreshold: 0.5,\n\t\trangeFalloff: 0.1,\n\t\tluminanceInfluence: 0.9,\n\t\tradius: 20,\n\t\tbias: 0.5,\n\t\tintensity: 1.0,\n\t\tdepthAwareUpsampling: true,\n\t});\n\n\t@Input() effectRef = injectNgtRef<SSAOEffect>();\n\n\t@Input({ alias: 'blendFunction' }) set _blendFunction(blendFunction: BlendFunction) {\n\t\tthis.inputs.set({ blendFunction });\n\t}\n\n\t@Input({ alias: 'distanceScaling' }) set _distanceScaling(distanceScaling: boolean) {\n\t\tthis.inputs.set({ distanceScaling });\n\t}\n\n\t@Input({ alias: 'depthAwareUpsampling' }) set _depthAwareUpsampling(depthAwareUpsampling: boolean) {\n\t\tthis.inputs.set({ depthAwareUpsampling });\n\t}\n\n\t@Input({ alias: 'normalDepthBuffer' }) set _normalDepthBuffer(normalDepthBuffer: THREE.Texture) {\n\t\tthis.inputs.set({ normalDepthBuffer });\n\t}\n\n\t@Input({ alias: 'samples' }) set _samples(samples: number) {\n\t\tthis.inputs.set({ samples });\n\t}\n\n\t@Input({ alias: 'rings' }) set _rings(rings: number) {\n\t\tthis.inputs.set({ rings });\n\t}\n\n\t@Input({ alias: 'worldDistanceThreshold' }) set _worldDistanceThreshold(worldDistanceThreshold: number) {\n\t\tthis.inputs.set({ worldDistanceThreshold });\n\t}\n\n\t@Input({ alias: 'worldDistanceFalloff' }) set _worldDistanceFalloff(worldDistanceFalloff: number) {\n\t\tthis.inputs.set({ worldDistanceFalloff });\n\t}\n\n\t@Input({ alias: 'worldProximityThreshold' }) set _worldProximityThreshold(worldProximityThreshold: number) {\n\t\tthis.inputs.set({ worldProximityThreshold });\n\t}\n\n\t@Input({ alias: 'worldProximityFalloff' }) set _worldProximityFalloff(worldProximityFalloff: number) {\n\t\tthis.inputs.set({ worldProximityFalloff });\n\t}\n\n\t@Input({ alias: 'distanceThreshold' }) set _distanceThreshold(distanceThreshold: number) {\n\t\tthis.inputs.set({ distanceThreshold });\n\t}\n\n\t@Input({ alias: 'distanceFalloff' }) set _distanceFalloff(distanceFalloff: number) {\n\t\tthis.inputs.set({ distanceFalloff });\n\t}\n\n\t@Input({ alias: 'rangeThreshold' }) set _rangeThreshold(rangeThreshold: number) {\n\t\tthis.inputs.set({ rangeThreshold });\n\t}\n\n\t@Input({ alias: 'rangeFalloff' }) set _rangeFalloff(rangeFalloff: number) {\n\t\tthis.inputs.set({ rangeFalloff });\n\t}\n\n\t@Input({ alias: 'minRadiusScale' }) set _minRadiusScale(minRadiusScale: number) {\n\t\tthis.inputs.set({ minRadiusScale });\n\t}\n\n\t@Input({ alias: 'luminanceInfluence' }) set _luminanceInfluence(luminanceInfluence: number) {\n\t\tthis.inputs.set({ luminanceInfluence });\n\t}\n\n\t@Input({ alias: 'radius' }) set _radius(radius: number) {\n\t\tthis.inputs.set({ radius });\n\t}\n\n\t@Input({ alias: 'intensity' }) set _intensity(intensity: number) {\n\t\tthis.inputs.set({ intensity });\n\t}\n\n\t@Input({ alias: 'bias' }) set _bias(bias: number) {\n\t\tthis.inputs.set({ bias });\n\t}\n\n\t@Input({ alias: 'fade' }) set _fade(fade: number) {\n\t\tthis.inputs.set({ fade });\n\t}\n\n\t@Input({ alias: 'color' }) set _color(color: THREE.Color) {\n\t\tthis.inputs.set({ color });\n\t}\n\n\t@Input({ alias: 'resolutionScale' }) set _resolutionScale(resolutionScale: number) {\n\t\tthis.inputs.set({ resolutionScale });\n\t}\n\n\t@Input({ alias: 'resolutionX' }) set _resolutionX(resolutionX: number) {\n\t\tthis.inputs.set({ resolutionX });\n\t}\n\n\t@Input({ alias: 'resolutionY' }) set _resolutionY(resolutionY: number) {\n\t\tthis.inputs.set({ resolutionY });\n\t}\n\n\t@Input({ alias: 'width' }) set _width(width: number) {\n\t\tthis.inputs.set({ width });\n\t}\n\n\t@Input({ alias: 'height' }) set _height(height: number) {\n\t\tthis.inputs.set({ height });\n\t}\n\n\tprivate effectComposerApi = injectNgtpEffectComposerApi();\n\n\teffect = computed(() => {\n\t\tconst [state, { camera, normalPass, downSamplingPass, resolutionScale }] = [\n\t\t\tthis.inputs.state(),\n\t\t\tthis.effectComposerApi(),\n\t\t];\n\n\t\tif (normalPass === null && downSamplingPass === null) {\n\t\t\tconsole.error('Please enable the NormalPass in the NgtpEffectComposer in order to use NgtpSSAO.');\n\t\t\treturn null;\n\t\t}\n\n\t\treturn new SSAOEffect(camera, normalPass && !downSamplingPass ? (normalPass as any).texture : null, {\n\t\t\t...state,\n\t\t\t// @ts-expect-error\n\t\t\tnormalDepthBuffer: state.normalDepthBuffer || (downSamplingPass ? downSamplingPass.texture : null),\n\t\t\tresolutionScale: state.resolutionScale || (resolutionScale ?? 1),\n\t\t\tdepthAwareUpsampling: state.depthAwareUpsampling ?? true,\n\t\t});\n\t});\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, KernelSize, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ TiltShiftEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-tilt-shift': {\n\t\t\toffset?: number;\n\t\t\trotation?: number;\n\t\t\tfocusArea?: number;\n\t\t\tfeather?: number;\n\t\t\tbias?: number;\n\t\t\tkernelSize?: KernelSize;\n\t\t\tresolutionScale?: number;\n\t\t\tresolutionX?: number;\n\t\t\tresolutionY?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-tilt-shift',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-tilt-shift-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpTiltShift extends NgtpEffect<TiltShiftEffect> {\n\toverride defaultBlendFunction = BlendFunction.ADD;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ToneMappingEffect, ToneMappingMode } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ToneMappingEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-tone-mapping': {\n\t\t\tadaptive?: boolean;\n\t\t\tmode?: ToneMappingMode;\n\t\t\tresolution?: number;\n\t\t\tmaxLuminance?: number;\n\t\t\twhitePoint?: number;\n\t\t\tmiddleGrey?: number;\n\t\t\tminLuminance?: number;\n\t\t\taverageLuminance?: number;\n\t\t\tadaptationRate?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-tone-mapping',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-tone-mapping-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpToneMapping extends NgtpEffect<ToneMappingEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect, VignetteTechnique } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ VignetteEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-vignette': {\n\t\t\ttechnique?: VignetteTechnique;\n\t\t\teskil?: boolean;\n\t\t\toffset?: number;\n\t\t\tdarkness?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-vignette',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-vignette-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpVignette extends NgtpEffect<VignetteEffect> {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export * from './effect';
|
|
2
|
-
export * from './effect-composer';
|
|
1
|
+
export * from './lib/effect';
|
|
2
|
+
export * from './lib/effect-composer';
|
|
3
|
+
export * from './lib/effects';
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
2
|
+
import { DepthDownsamplingPass, EffectComposer, NormalPass } from 'postprocessing';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export type NgtpEffectComposerState = {
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
depthBuffer?: boolean;
|
|
8
|
+
disableNormalPass?: boolean;
|
|
9
|
+
stencilBuffer?: boolean;
|
|
10
|
+
autoClear: boolean;
|
|
11
|
+
resolutionScale?: number;
|
|
12
|
+
multisampling: number;
|
|
13
|
+
frameBufferType: THREE.TextureDataType;
|
|
14
|
+
renderPriority: number;
|
|
15
|
+
camera?: THREE.Camera;
|
|
16
|
+
scene?: THREE.Scene;
|
|
17
|
+
};
|
|
18
|
+
export declare const injectNgtpEffectComposerApi: {
|
|
19
|
+
(): import("@angular/core").Signal<{
|
|
20
|
+
composer: EffectComposer;
|
|
21
|
+
normalPass: NormalPass | null;
|
|
22
|
+
downSamplingPass: DepthDownsamplingPass | null;
|
|
23
|
+
resolutionScale: number | undefined;
|
|
24
|
+
camera: THREE.Camera;
|
|
25
|
+
scene: THREE.Scene;
|
|
26
|
+
}>;
|
|
27
|
+
(injectOptions: import("@angular/core").InjectOptions & {
|
|
28
|
+
optional?: false | undefined;
|
|
29
|
+
} & {
|
|
30
|
+
injector?: Injector | undefined;
|
|
31
|
+
}): import("@angular/core").Signal<{
|
|
32
|
+
composer: EffectComposer;
|
|
33
|
+
normalPass: NormalPass | null;
|
|
34
|
+
downSamplingPass: DepthDownsamplingPass | null;
|
|
35
|
+
resolutionScale: number | undefined;
|
|
36
|
+
camera: THREE.Camera;
|
|
37
|
+
scene: THREE.Scene;
|
|
38
|
+
}>;
|
|
39
|
+
(injectOptions: import("@angular/core").InjectOptions & {
|
|
40
|
+
injector?: Injector | undefined;
|
|
41
|
+
}): import("@angular/core").Signal<{
|
|
42
|
+
composer: EffectComposer;
|
|
43
|
+
normalPass: NormalPass | null;
|
|
44
|
+
downSamplingPass: DepthDownsamplingPass | null;
|
|
45
|
+
resolutionScale: number | undefined;
|
|
46
|
+
camera: THREE.Camera;
|
|
47
|
+
scene: THREE.Scene;
|
|
48
|
+
}> | null;
|
|
49
|
+
}, provideNgtpEffectComposerApi: (value?: import("@angular/core").Signal<{
|
|
50
|
+
composer: EffectComposer;
|
|
51
|
+
normalPass: NormalPass | null;
|
|
52
|
+
downSamplingPass: DepthDownsamplingPass | null;
|
|
53
|
+
resolutionScale: number | undefined;
|
|
54
|
+
camera: THREE.Camera;
|
|
55
|
+
scene: THREE.Scene;
|
|
56
|
+
}> | undefined) => import("@angular/core").Provider;
|
|
57
|
+
export declare class NgtpEffectComposer {
|
|
58
|
+
private inputs;
|
|
59
|
+
composerRef: import("angular-three").NgtInjectedRef<THREE.Group<THREE.Object3DEventMap>>;
|
|
60
|
+
set _enabled(enabled: boolean);
|
|
61
|
+
set _depthBuffer(depthBuffer: boolean);
|
|
62
|
+
set _disableNormalPass(disableNormalPass: boolean);
|
|
63
|
+
set _stencilBuffer(stencilBuffer: boolean);
|
|
64
|
+
set _autoClear(autoClear: boolean);
|
|
65
|
+
set _resolutionScale(resolutionScale: number);
|
|
66
|
+
set _multisampling(multisampling: number);
|
|
67
|
+
set _frameBufferType(frameBufferType: THREE.TextureDataType);
|
|
68
|
+
set _renderPriority(renderPriority: number);
|
|
69
|
+
set _camera(camera: THREE.Camera);
|
|
70
|
+
set _scene(scene: THREE.Scene);
|
|
71
|
+
private injector;
|
|
72
|
+
private store;
|
|
73
|
+
private gl;
|
|
74
|
+
private defaultScene;
|
|
75
|
+
private defaultCamera;
|
|
76
|
+
private size;
|
|
77
|
+
private depthBuffer;
|
|
78
|
+
private stencilBuffer;
|
|
79
|
+
private multisampling;
|
|
80
|
+
private frameBufferType;
|
|
81
|
+
private scene;
|
|
82
|
+
private camera;
|
|
83
|
+
private disableNormalPass;
|
|
84
|
+
private resolutionScale;
|
|
85
|
+
private autoClear;
|
|
86
|
+
private activeScene;
|
|
87
|
+
private activeCamera;
|
|
88
|
+
private composerEntities;
|
|
89
|
+
private composer;
|
|
90
|
+
api: import("@angular/core").Signal<{
|
|
91
|
+
composer: EffectComposer;
|
|
92
|
+
normalPass: NormalPass | null;
|
|
93
|
+
downSamplingPass: DepthDownsamplingPass | null;
|
|
94
|
+
resolutionScale: number | undefined;
|
|
95
|
+
camera: THREE.Camera;
|
|
96
|
+
scene: THREE.Scene;
|
|
97
|
+
}>;
|
|
98
|
+
constructor();
|
|
99
|
+
ngOnInit(): void;
|
|
100
|
+
private setComposerSize;
|
|
101
|
+
private updatePasses;
|
|
102
|
+
private beforeRender;
|
|
103
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpEffectComposer, never>;
|
|
104
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpEffectComposer, "ngtp-effect-composer", never, { "composerRef": { "alias": "composerRef"; "required": false; }; "_enabled": { "alias": "enabled"; "required": false; }; "_depthBuffer": { "alias": "depthBuffer"; "required": false; }; "_disableNormalPass": { "alias": "disableNormalPass"; "required": false; }; "_stencilBuffer": { "alias": "stencilBuffer"; "required": false; }; "_autoClear": { "alias": "autoClear"; "required": false; }; "_resolutionScale": { "alias": "resolutionScale"; "required": false; }; "_multisampling": { "alias": "multisampling"; "required": false; }; "_frameBufferType": { "alias": "frameBufferType"; "required": false; }; "_renderPriority": { "alias": "renderPriority"; "required": false; }; "_camera": { "alias": "camera"; "required": false; }; "_scene": { "alias": "scene"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
105
|
+
}
|
package/lib/effect.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type NgtAnyRecord } from 'angular-three';
|
|
2
|
+
import { BlendFunction, Effect } from 'postprocessing';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export type NgtpEffectState = {
|
|
5
|
+
blendFunction?: BlendFunction;
|
|
6
|
+
opacity?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare abstract class NgtpEffect<TEffect extends Effect> {
|
|
9
|
+
inputs: import("angular-three").NgtSignalStore<NgtpEffectState>;
|
|
10
|
+
effectRef: import("angular-three").NgtInjectedRef<TEffect>;
|
|
11
|
+
set _blendFunction(blendFunction: BlendFunction);
|
|
12
|
+
set _opacity(opacity: number);
|
|
13
|
+
protected defaultBlendFunction: BlendFunction;
|
|
14
|
+
protected nativeArgs: () => NgtAnyRecord[];
|
|
15
|
+
blendFunction: import("@angular/core").Signal<BlendFunction | undefined>;
|
|
16
|
+
opacity: import("@angular/core").Signal<number | undefined>;
|
|
17
|
+
protected store: import("angular-three").NgtSignalStore<import("angular-three").NgtState>;
|
|
18
|
+
protected camera: import("@angular/core").Signal<import("angular-three").NgtCameraManual>;
|
|
19
|
+
private invalidate;
|
|
20
|
+
private previousInputs?;
|
|
21
|
+
private nativeInputs;
|
|
22
|
+
args: import("@angular/core").Signal<NgtAnyRecord[]>;
|
|
23
|
+
constructor();
|
|
24
|
+
private setBlendMode;
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpEffect<any>, never>;
|
|
26
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgtpEffect<any>, never, never, { "effectRef": { "alias": "effectRef"; "required": false; }; "_blendFunction": { "alias": "blendFunction"; "required": false; }; "_opacity": { "alias": "opacity"; "required": false; }; }, {}, never, never, false, never>;
|
|
27
|
+
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { BlendFunction, BloomEffect, type BloomEffectOptions } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-bloom': BloomEffectOptions & NgtpEffectState;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
4
9
|
export declare class NgtpBloom extends NgtpEffect<BloomEffect> {
|
|
5
10
|
defaultBlendFunction: BlendFunction;
|
|
6
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpBloom, never>;
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import { NgtpEffect } from 'angular-three-postprocessing';
|
|
2
1
|
import { BrightnessContrastEffect } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-brightness-contrast': {
|
|
7
|
+
brightness?: number;
|
|
8
|
+
contrast?: number;
|
|
9
|
+
} & NgtpEffectState;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
4
12
|
export declare class NgtpBrightnessContrast extends NgtpEffect<BrightnessContrastEffect> {
|
|
5
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpBrightnessContrast, never>;
|
|
6
14
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpBrightnessContrast, "ngtp-brightness-contrast", never, {}, {}, never, ["*"], true, never>;
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import { NgtpEffect } from 'angular-three-postprocessing';
|
|
2
1
|
import { ColorDepthEffect } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-color-depth': {
|
|
7
|
+
bits?: number;
|
|
8
|
+
} & NgtpEffectState;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
4
11
|
export declare class NgtpColorDepth extends NgtpEffect<ColorDepthEffect> {
|
|
5
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpColorDepth, never>;
|
|
6
13
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpColorDepth, "ngtp-color-depth", never, {}, {}, never, ["*"], true, never>;
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import { NgtpEffect } from 'angular-three-postprocessing';
|
|
2
1
|
import { DepthEffect } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-depth': {
|
|
7
|
+
inverted?: boolean;
|
|
8
|
+
} & NgtpEffectState;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
4
11
|
export declare class NgtpDepth extends NgtpEffect<DepthEffect> {
|
|
5
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpDepth, never>;
|
|
6
13
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpDepth, "ngtp-depth", never, {}, {}, never, ["*"], true, never>;
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import { NgtpEffect } from 'angular-three-postprocessing';
|
|
2
1
|
import { DotScreenEffect } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-dot-screen': {
|
|
7
|
+
angle?: number;
|
|
8
|
+
scale?: number;
|
|
9
|
+
} & NgtpEffectState;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
4
12
|
export declare class NgtpDotScreen extends NgtpEffect<DotScreenEffect> {
|
|
5
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpDotScreen, never>;
|
|
6
14
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpDotScreen, "ngtp-dot-screen", never, {}, {}, never, ["*"], true, never>;
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import { NgtpEffect } from 'angular-three-postprocessing';
|
|
2
1
|
import { HueSaturationEffect } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-hue-saturation': {
|
|
7
|
+
hue?: number;
|
|
8
|
+
saturation?: number;
|
|
9
|
+
} & NgtpEffectState;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
4
12
|
export declare class NgtpHueSaturation extends NgtpEffect<HueSaturationEffect> {
|
|
5
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpHueSaturation, never>;
|
|
6
14
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpHueSaturation, "ngtp-hue-saturation", never, {}, {}, never, ["*"], true, never>;
|
|
@@ -6,6 +6,7 @@ export * from './dot-screen/dot-screen';
|
|
|
6
6
|
export * from './hue-saturation/hue-saturation';
|
|
7
7
|
export * from './lut/lut';
|
|
8
8
|
export * from './noise/noise';
|
|
9
|
+
export * from './pixelation/pixelation';
|
|
9
10
|
export * from './scanline/scanline';
|
|
10
11
|
export * from './sepia/sepia';
|
|
11
12
|
export * from './shock-wave/shock-wave';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BlendFunction, LUT3DEffect } from 'postprocessing';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export type NgtpLUTState = {
|
|
4
|
+
lut: THREE.Texture;
|
|
5
|
+
blendFunction?: BlendFunction;
|
|
6
|
+
tetrahedralInterpolation?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare global {
|
|
9
|
+
interface HTMLElementTagNameMap {
|
|
10
|
+
'ngtp-lut': NgtpLUTState;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare class NgtpLUT {
|
|
14
|
+
private inputs;
|
|
15
|
+
effectRef: import("angular-three").NgtInjectedRef<LUT3DEffect>;
|
|
16
|
+
set _lut(lut: THREE.Texture);
|
|
17
|
+
set _blendFunction(blendFunction: BlendFunction);
|
|
18
|
+
set _tetrahedralInterpolation(tetrahedralInterpolation: boolean);
|
|
19
|
+
private lut;
|
|
20
|
+
private tetrahedralInterpolation;
|
|
21
|
+
private blendFunction;
|
|
22
|
+
private store;
|
|
23
|
+
private invalidate;
|
|
24
|
+
effect: import("@angular/core").Signal<LUT3DEffect>;
|
|
25
|
+
constructor();
|
|
26
|
+
private setState;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpLUT, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpLUT, "ngtp-lut", never, { "effectRef": { "alias": "effectRef"; "required": false; }; "_lut": { "alias": "lut"; "required": true; }; "_blendFunction": { "alias": "blendFunction"; "required": false; }; "_tetrahedralInterpolation": { "alias": "tetrahedralInterpolation"; "required": false; }; }, {}, never, never, true, never>;
|
|
29
|
+
}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import { NgtpEffect } from 'angular-three-postprocessing';
|
|
2
1
|
import { BlendFunction, NoiseEffect } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-noise': {
|
|
7
|
+
premultiply?: boolean;
|
|
8
|
+
} & NgtpEffectState;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
4
11
|
export declare class NgtpNoise extends NgtpEffect<NoiseEffect> {
|
|
5
12
|
defaultBlendFunction: BlendFunction;
|
|
6
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpNoise, never>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { PixelationEffect } from 'postprocessing';
|
|
2
|
+
import type { NgtpEffectState } from '../../effect';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export type NgtpPixelationState = {
|
|
5
|
+
granularity: number;
|
|
6
|
+
};
|
|
7
|
+
declare global {
|
|
8
|
+
interface HTMLElementTagNameMap {
|
|
9
|
+
'ngtp-pixelation': NgtpPixelationState & NgtpEffectState;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export declare class NgtpPixelation {
|
|
13
|
+
private inputs;
|
|
14
|
+
effectRef: import("angular-three").NgtInjectedRef<PixelationEffect>;
|
|
15
|
+
set _granularity(granularity: number);
|
|
16
|
+
private granularity;
|
|
17
|
+
effect: import("@angular/core").Signal<PixelationEffect>;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpPixelation, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpPixelation, "ngtp-pixelation", never, { "effectRef": { "alias": "effectRef"; "required": false; }; "_granularity": { "alias": "granularity"; "required": false; }; }, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import { NgtpEffect } from 'angular-three-postprocessing';
|
|
2
1
|
import { BlendFunction, ScanlineEffect } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-scanline': {
|
|
7
|
+
density?: number;
|
|
8
|
+
} & NgtpEffectState;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
4
11
|
export declare class NgtpScanline extends NgtpEffect<ScanlineEffect> {
|
|
5
12
|
defaultBlendFunction: BlendFunction;
|
|
6
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpScanline, never>;
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import { NgtpEffect } from 'angular-three-postprocessing';
|
|
2
1
|
import { SepiaEffect } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-sepia': {
|
|
7
|
+
intensity?: number;
|
|
8
|
+
} & NgtpEffectState;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
4
11
|
export declare class NgtpSepia extends NgtpEffect<SepiaEffect> {
|
|
5
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpSepia, never>;
|
|
6
13
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpSepia, "ngtp-sepia", never, {}, {}, never, ["*"], true, never>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ShockWaveEffect } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-shock-wave': {
|
|
7
|
+
speed?: number;
|
|
8
|
+
maxRadius?: number;
|
|
9
|
+
waveSize?: number;
|
|
10
|
+
amplitude?: number;
|
|
11
|
+
} & NgtpEffectState;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export declare class NgtpShockWave extends NgtpEffect<ShockWaveEffect> {
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpShockWave, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpShockWave, "ngtp-shock-wave", never, {}, {}, never, ["*"], true, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EdgeDetectionMode, PredicationMode, SMAAEffect, SMAAPreset } from 'postprocessing';
|
|
2
|
+
import { NgtpEffect, type NgtpEffectState } from '../../effect';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'ngtp-SMAA': {
|
|
7
|
+
preset?: SMAAPreset;
|
|
8
|
+
edgeDetectionMode?: EdgeDetectionMode;
|
|
9
|
+
predicationMode?: PredicationMode;
|
|
10
|
+
} & NgtpEffectState;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare class NgtpSMAA extends NgtpEffect<SMAAEffect> {
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtpSMAA, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtpSMAA, "ngtp-SMAA", never, {}, {}, never, ["*"], true, never>;
|
|
16
|
+
}
|