angular-three-postprocessing 2.0.0-beta.22 → 2.0.0-beta.235

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/esm2022/lib/effect-composer.mjs +127 -173
  2. package/esm2022/lib/effect.mjs +45 -70
  3. package/esm2022/lib/effects/bloom.mjs +39 -0
  4. package/esm2022/lib/effects/index.mjs +2 -18
  5. package/fesm2022/angular-three-postprocessing.mjs +183 -888
  6. package/fesm2022/angular-three-postprocessing.mjs.map +1 -1
  7. package/lib/effect-composer.d.ts +37 -81
  8. package/lib/effect.d.ts +55 -24
  9. package/lib/effects/bloom.d.ts +10 -0
  10. package/lib/effects/index.d.ts +1 -17
  11. package/package.json +48 -46
  12. package/esm2022/lib/effects/bloom/bloom.mjs +0 -33
  13. package/esm2022/lib/effects/brightness-contrast/brightness-contrast.mjs +0 -29
  14. package/esm2022/lib/effects/color-depth/color-depth.mjs +0 -29
  15. package/esm2022/lib/effects/depth/depth.mjs +0 -29
  16. package/esm2022/lib/effects/dot-screen/dot-screen.mjs +0 -29
  17. package/esm2022/lib/effects/hue-saturation/hue-saturation.mjs +0 -29
  18. package/esm2022/lib/effects/lut/lut.mjs +0 -74
  19. package/esm2022/lib/effects/noise/noise.mjs +0 -33
  20. package/esm2022/lib/effects/pixelation/pixelation.mjs +0 -37
  21. package/esm2022/lib/effects/scanline/scanline.mjs +0 -33
  22. package/esm2022/lib/effects/sepia/sepia.mjs +0 -29
  23. package/esm2022/lib/effects/shock-wave/shock-wave.mjs +0 -29
  24. package/esm2022/lib/effects/smaa/smaa.mjs +0 -29
  25. package/esm2022/lib/effects/ssao/ssao.mjs +0 -217
  26. package/esm2022/lib/effects/tilt-shift/tilt-shift.mjs +0 -33
  27. package/esm2022/lib/effects/tone-mapping/tone-mapping.mjs +0 -29
  28. package/esm2022/lib/effects/vignette/vignette.mjs +0 -29
  29. package/lib/effects/bloom/bloom.d.ts +0 -13
  30. package/lib/effects/brightness-contrast/brightness-contrast.d.ts +0 -15
  31. package/lib/effects/color-depth/color-depth.d.ts +0 -14
  32. package/lib/effects/depth/depth.d.ts +0 -14
  33. package/lib/effects/dot-screen/dot-screen.d.ts +0 -15
  34. package/lib/effects/hue-saturation/hue-saturation.d.ts +0 -15
  35. package/lib/effects/lut/lut.d.ts +0 -29
  36. package/lib/effects/noise/noise.d.ts +0 -15
  37. package/lib/effects/pixelation/pixelation.d.ts +0 -20
  38. package/lib/effects/scanline/scanline.d.ts +0 -15
  39. package/lib/effects/sepia/sepia.d.ts +0 -14
  40. package/lib/effects/shock-wave/shock-wave.d.ts +0 -17
  41. package/lib/effects/smaa/smaa.d.ts +0 -16
  42. package/lib/effects/ssao/ssao.d.ts +0 -42
  43. package/lib/effects/tilt-shift/tilt-shift.d.ts +0 -23
  44. package/lib/effects/tone-mapping/tone-mapping.d.ts +0 -22
  45. package/lib/effects/vignette/vignette.d.ts +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-postprocessing.mjs","sources":["../../../../libs/postprocessing/src/lib/effect.ts","../../../../libs/postprocessing/src/lib/effect-composer.ts","../../../../libs/postprocessing/src/lib/effects/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 {\n\tcreateInjectionToken,\n\textend,\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tinjectNgtStore,\n\tsignalStore,\n} from 'angular-three';\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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"}
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.ts","../../../../libs/postprocessing/src/angular-three-postprocessing.ts"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, inject, input } from '@angular/core';\nimport { injectNgtRef, injectNgtStore } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { createNoopInjectionToken } from 'ngxtension/create-injection-token';\nimport { BlendFunction, Effect } from 'postprocessing';\n\nexport const [injectDefaultEffectOptions, provideDefaultEffectOptions] = createNoopInjectionToken<{\n\tblendFunction?: BlendFunction;\n\topacity?: number;\n}>('Default Effect options');\n\n@Component({\n\tselector: 'ngtp-effect-blend-mode',\n\tstandalone: true,\n\ttemplate: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpEffectBlendMode {\n\teffect = inject(NgtpEffect, { optional: true });\n}\n\n@Directive({ standalone: true })\nexport class NgtpEffect {\n\tdefaultEffectOptions = injectDefaultEffectOptions({ optional: true });\n\n\teffectRef = input(injectNgtRef<Effect>());\n\tblendFunction = input(this.defaultEffectOptions?.blendFunction);\n\topacity = input(this.defaultEffectOptions?.opacity);\n\n\tautoEffect = injectAutoEffect();\n\tstore = injectNgtStore();\n\tcamera = this.store.select('camera');\n\tinvalidate = this.store.select('invalidate');\n\n\t// constructor() {\n\t// \tafterNextRender(() => {\n\t// \t\tthis.setBlendMode();\n\t// \t});\n\t// }\n\t//\n\t// private setBlendMode() {\n\t// \tthis.autoEffect(() => {\n\t// \t\tconst [effect, blendFunction, opacity, invalidate] = [\n\t// \t\t\tthis.effectRef().nativeElement,\n\t// \t\t\tthis.blendFunction(),\n\t// \t\t\tthis.opacity(),\n\t// \t\t\tthis.invalidate(),\n\t// \t\t];\n\t// \t\tif (!effect) return;\n\t//\n\t// \t\tif (blendFunction !== undefined) {\n\t// \t\t\teffect.blendMode.blendFunction = blendFunction;\n\t// \t\t}\n\t//\n\t// \t\tif (opacity !== undefined) {\n\t// \t\t\teffect.blendMode.opacity.value = opacity;\n\t// \t\t}\n\t//\n\t// \t\tinvalidate();\n\t// \t});\n\t// }\n}\n\nexport const NgtpEffectHostDirective = { directive: NgtpEffect, inputs: ['blendFunction', 'opacity', 'effectRef'] };\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tDirective,\n\tElementRef,\n\tInjector,\n\tTemplateRef,\n\tViewContainerRef,\n\tafterNextRender,\n\tcomputed,\n\tcontentChild,\n\tinject,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport { extend, getLocalState, injectBeforeRender, injectNgtStore } from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport {\n\tDepthDownsamplingPass,\n\tEffect,\n\tEffectAttribute,\n\tEffectComposer,\n\tEffectPass,\n\tNormalPass,\n\tPass,\n\tRenderPass,\n} from 'postprocessing';\nimport { Camera, Group, HalfFloatType, NoToneMapping, Scene, TextureDataType } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\n\nextend({ Group });\n\ninterface NgtpEffectComposerOptions {\n\tenabled: boolean;\n\tdepthBuffer?: boolean;\n\t/** Only used for SSGI currently, leave it disabled for everything else unless it's needed */\n\tenableNormalPass?: boolean;\n\tstencilBuffer?: boolean;\n\tautoClear: boolean;\n\tresolutionScale?: number;\n\tmultisampling: number;\n\tframeBufferType: TextureDataType;\n\trenderPriority: number;\n\tcamera?: Camera;\n\tscene?: Scene;\n}\n\nconst defaultOptions: NgtpEffectComposerOptions = {\n\tenabled: true,\n\trenderPriority: 1,\n\tautoClear: true,\n\tmultisampling: 8,\n\tframeBufferType: HalfFloatType,\n};\n\nfunction isConvolution(effect: Effect) {\n\treturn (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION;\n}\n\n@Directive({ selector: 'ng-template[effects]', standalone: true })\nexport class NgtpEffects {}\n\n@Component({\n\tselector: 'ngtp-effect-composer',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group #group ngtCompound></ngt-group>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtpEffectComposer {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tinjector = inject(Injector);\n\tautoEffect = injectAutoEffect();\n\tstore = injectNgtStore();\n\tsize = this.store.select('size');\n\tgl = this.store.select('gl');\n\tdefaultScene = this.store.select('scene');\n\tdefaultCamera = this.store.select('camera');\n\n\tdepthBuffer = computed(() => this.options().depthBuffer);\n\tstencilBuffer = computed(() => this.options().stencilBuffer);\n\tmultisampling = computed(() => this.options().multisampling);\n\tframeBufferType = computed(() => this.options().frameBufferType);\n\tscene = computed(() => this.options().scene ?? this.defaultScene());\n\tcamera = computed(() => this.options().camera ?? this.defaultCamera());\n\tenableNormalPass = computed(() => this.options().enableNormalPass);\n\tresolutionScale = computed(() => this.options().resolutionScale);\n\n\tgroup = viewChild.required<ElementRef<Group>>('group');\n\tgroupAnchor = viewChild.required('group', { read: ViewContainerRef });\n\tcontent = contentChild.required(NgtpEffects, { read: TemplateRef });\n\n\tcomposerData = computed(() => {\n\t\tconst webGL2Available = isWebGL2Available();\n\t\tconst [\n\t\t\tgl,\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling,\n\t\t\tframeBufferType,\n\t\t\tenableNormalPass,\n\t\t\tresolutionScale,\n\t\t] = [\n\t\t\tthis.gl(),\n\t\t\tthis.scene(),\n\t\t\tthis.camera(),\n\t\t\tthis.depthBuffer(),\n\t\t\tthis.stencilBuffer(),\n\t\t\tthis.multisampling(),\n\t\t\tthis.frameBufferType(),\n\t\t\tthis.enableNormalPass(),\n\t\t\tthis.resolutionScale(),\n\t\t];\n\n\t\t// initialize composer\n\t\tconst composer = new EffectComposer(gl, {\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n\t\t\tframeBufferType,\n\t\t});\n\n\t\t// add render pass\n\t\tcomposer.addPass(new RenderPass(scene, camera));\n\n\t\t// create normal pass\n\t\tlet downSamplingPass = null;\n\t\tlet normalPass = null;\n\t\tif (enableNormalPass) {\n\t\t\tnormalPass = new NormalPass(scene, camera);\n\t\t\tnormalPass.enabled = false;\n\t\t\tcomposer.addPass(normalPass);\n\t\t\tif (resolutionScale !== undefined && webGL2Available) {\n\t\t\t\tdownSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n\t\t\t\tdownSamplingPass.enabled = false;\n\t\t\t\tcomposer.addPass(downSamplingPass);\n\t\t\t}\n\t\t}\n\n\t\treturn { composer, normalPass, downSamplingPass };\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis.disableToneMapping();\n\t\t\tthis.setComposerSize();\n\t\t\tthis.render();\n\t\t\tthis.updatePasses();\n\n\t\t\tinjectBeforeRender(\n\t\t\t\t({ delta }) => {\n\t\t\t\t\tconst [{ composer }, { enabled, autoClear, stencilBuffer }, gl] = [\n\t\t\t\t\t\tthis.composerData(),\n\t\t\t\t\t\tthis.options(),\n\t\t\t\t\t\tthis.gl(),\n\t\t\t\t\t];\n\n\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\tconst currentAutoClear = gl.autoClear;\n\t\t\t\t\t\tgl.autoClear = autoClear;\n\t\t\t\t\t\tif (stencilBuffer && !autoClear) gl.clearStencil();\n\t\t\t\t\t\tcomposer.render(delta);\n\t\t\t\t\t\tgl.autoClear = currentAutoClear;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ injector: this.injector, priority: this.options().enabled ? this.options().renderPriority : 0 },\n\t\t\t);\n\t\t});\n\t}\n\n\t// NOTE: Disable tone mapping because threejs disallows tonemapping on render targets\n\tprivate disableToneMapping() {\n\t\tthis.autoEffect(() => {\n\t\t\tconst gl = this.gl();\n\t\t\tconst currentTonemapping = gl.toneMapping;\n\t\t\tgl.toneMapping = NoToneMapping;\n\t\t\treturn () => {\n\t\t\t\tgl.toneMapping = currentTonemapping;\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate setComposerSize() {\n\t\tthis.autoEffect(() => {\n\t\t\tconst [{ composer }, { width, height }] = [this.composerData(), this.size()];\n\t\t\tif (composer) {\n\t\t\t\tcomposer.setSize(width, height);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate render() {\n\t\tthis.autoEffect(\n\t\t\t(injector) => {\n\t\t\t\tconst ref = this.groupAnchor().createEmbeddedView(this.content(), {}, { injector });\n\t\t\t\tref.detectChanges();\n\n\t\t\t\treturn () => ref.destroy();\n\t\t\t},\n\t\t\t{ allowSignalWrites: true },\n\t\t);\n\t}\n\n\tprivate updatePasses() {\n\t\tthis.autoEffect(() => {\n\t\t\tconst [group, { composer, normalPass, downSamplingPass }, camera] = [\n\t\t\t\tthis.group(),\n\t\t\t\tthis.composerData(),\n\t\t\t\tthis.camera(),\n\t\t\t];\n\n\t\t\tconst passes: Pass[] = [];\n\n\t\t\tif (group.nativeElement && composer) {\n\t\t\t\tconst localState = getLocalState(group.nativeElement);\n\t\t\t\tif (!localState) return;\n\n\t\t\t\tconst children = localState.nonObjects();\n\t\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\t\tconst child = children[i];\n\t\t\t\t\tif (child instanceof Effect) {\n\t\t\t\t\t\tconst effects: Effect[] = [child];\n\n\t\t\t\t\t\tif (!isConvolution(child)) {\n\t\t\t\t\t\t\tlet next: unknown = null;\n\t\t\t\t\t\t\twhile ((next = children[i + 1]) instanceof Effect) {\n\t\t\t\t\t\t\t\tif (isConvolution(next)) break;\n\t\t\t\t\t\t\t\teffects.push(next as Effect);\n\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst pass = new EffectPass(camera, ...effects);\n\t\t\t\t\t\tpasses.push(pass);\n\t\t\t\t\t} else if (child instanceof Pass) {\n\t\t\t\t\t\tpasses.push(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const pass of passes) {\n\t\t\t\t\tcomposer.addPass(pass);\n\t\t\t\t}\n\n\t\t\t\tif (normalPass) normalPass.enabled = true;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = true;\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\tfor (const pass of passes) composer?.removePass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = false;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = false;\n\t\t\t};\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect, BloomEffectOptions } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective, provideDefaultEffectOptions } from '../effect';\n\nextend({ BloomEffect });\n\n@Component({\n\tselector: 'ngtp-bloom',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\" [ref]=\"effect.effectRef()\" ngtCompound>\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n\timports: [NgtArgs, NgtpEffectBlendMode],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [NgtpEffectHostDirective],\n\tproviders: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n})\nexport class NgtpBloom {\n\teffect = inject(NgtpEffect, { host: true });\n\toptions = input({} as Omit<BloomEffectOptions, 'blendFunction'>);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NgtpEffect"],"mappings":"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"}
@@ -1,100 +1,56 @@
1
+ import { ElementRef, Injector, TemplateRef, ViewContainerRef } from '@angular/core';
1
2
  import { DepthDownsamplingPass, EffectComposer, NormalPass } from 'postprocessing';
2
- import * as THREE from 'three';
3
+ import { Camera, Group, Scene, TextureDataType } from 'three';
3
4
  import * as i0 from "@angular/core";
4
- export type NgtpEffectComposerState = {
5
+ interface NgtpEffectComposerOptions {
5
6
  enabled: boolean;
6
7
  depthBuffer?: boolean;
7
- disableNormalPass?: boolean;
8
+ /** Only used for SSGI currently, leave it disabled for everything else unless it's needed */
9
+ enableNormalPass?: boolean;
8
10
  stencilBuffer?: boolean;
9
11
  autoClear: boolean;
10
12
  resolutionScale?: number;
11
13
  multisampling: number;
12
- frameBufferType: THREE.TextureDataType;
14
+ frameBufferType: TextureDataType;
13
15
  renderPriority: number;
14
- camera?: THREE.Camera;
15
- scene?: THREE.Scene;
16
- };
17
- export declare const injectNgtpEffectComposerApi: {
18
- (): import("@angular/core").Signal<{
19
- composer: EffectComposer;
20
- normalPass: NormalPass | null;
21
- downSamplingPass: DepthDownsamplingPass | null;
22
- resolutionScale: number | undefined;
23
- camera: THREE.Camera;
24
- scene: THREE.Scene;
25
- }>;
26
- (injectOptions: import("@angular/core").InjectOptions & {
27
- optional?: false | undefined;
28
- }): import("@angular/core").Signal<{
29
- composer: EffectComposer;
30
- normalPass: NormalPass | null;
31
- downSamplingPass: DepthDownsamplingPass | null;
32
- resolutionScale: number | undefined;
33
- camera: THREE.Camera;
34
- scene: THREE.Scene;
35
- }>;
36
- (injectOptions: import("@angular/core").InjectOptions): import("@angular/core").Signal<{
37
- composer: EffectComposer;
38
- normalPass: NormalPass | null;
39
- downSamplingPass: DepthDownsamplingPass | null;
40
- resolutionScale: number | undefined;
41
- camera: THREE.Camera;
42
- scene: THREE.Scene;
43
- }> | null;
44
- }, provideNgtpEffectComposerApi: (value?: import("@angular/core").Signal<{
45
- composer: EffectComposer;
46
- normalPass: NormalPass | null;
47
- downSamplingPass: DepthDownsamplingPass | null;
48
- resolutionScale: number | undefined;
49
- camera: THREE.Camera;
50
- scene: THREE.Scene;
51
- }> | undefined) => import("@angular/core").Provider;
16
+ camera?: Camera;
17
+ scene?: Scene;
18
+ }
19
+ export declare class NgtpEffects {
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtpEffects, never>;
21
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtpEffects, "ng-template[effects]", never, {}, {}, never, never, true, never>;
22
+ }
52
23
  export declare class NgtpEffectComposer {
53
- private inputs;
54
- composerRef: import("angular-three").NgtInjectedRef<THREE.Group>;
55
- set _enabled(enabled: boolean);
56
- set _depthBuffer(depthBuffer: boolean);
57
- set _disableNormalPass(disableNormalPass: boolean);
58
- set _stencilBuffer(stencilBuffer: boolean);
59
- set _autoClear(autoClear: boolean);
60
- set _resolutionScale(resolutionScale: number);
61
- set _multisampling(multisampling: number);
62
- set _frameBufferType(frameBufferType: THREE.TextureDataType);
63
- set _renderPriority(renderPriority: number);
64
- set _camera(camera: THREE.Camera);
65
- set _scene(scene: THREE.Scene);
66
- private injector;
67
- private store;
68
- private gl;
69
- private defaultScene;
70
- private defaultCamera;
71
- private size;
72
- private depthBuffer;
73
- private stencilBuffer;
74
- private multisampling;
75
- private frameBufferType;
76
- private scene;
77
- private camera;
78
- private disableNormalPass;
79
- private resolutionScale;
80
- private autoClear;
81
- private activeScene;
82
- private activeCamera;
83
- private composerEntities;
84
- private composer;
85
- api: import("@angular/core").Signal<{
24
+ options: import("@angular/core").InputSignalWithTransform<NgtpEffectComposerOptions, "" | Partial<NgtpEffectComposerOptions>>;
25
+ injector: Injector;
26
+ autoEffect: (autoEffectCallback: (autoEffectInjector: Injector) => void | (() => void), options?: Omit<import("@angular/core").CreateEffectOptions, "injector"> | undefined) => import("@angular/core").EffectRef;
27
+ store: import("angular-three").NgtSignalStore<import("angular-three").NgtState>;
28
+ size: import("@angular/core").Signal<import("angular-three").NgtSize>;
29
+ gl: import("@angular/core").Signal<import("three").WebGLRenderer>;
30
+ defaultScene: import("@angular/core").Signal<Scene>;
31
+ defaultCamera: import("@angular/core").Signal<import("angular-three").NgtCameraManual>;
32
+ depthBuffer: import("@angular/core").Signal<boolean | undefined>;
33
+ stencilBuffer: import("@angular/core").Signal<boolean | undefined>;
34
+ multisampling: import("@angular/core").Signal<number>;
35
+ frameBufferType: import("@angular/core").Signal<TextureDataType>;
36
+ scene: import("@angular/core").Signal<Scene>;
37
+ camera: import("@angular/core").Signal<Camera>;
38
+ enableNormalPass: import("@angular/core").Signal<boolean | undefined>;
39
+ resolutionScale: import("@angular/core").Signal<number | undefined>;
40
+ group: import("@angular/core").Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
41
+ groupAnchor: import("@angular/core").Signal<ViewContainerRef>;
42
+ content: import("@angular/core").Signal<TemplateRef<any>>;
43
+ composerData: import("@angular/core").Signal<{
86
44
  composer: EffectComposer;
87
45
  normalPass: NormalPass | null;
88
46
  downSamplingPass: DepthDownsamplingPass | null;
89
- resolutionScale: number | undefined;
90
- camera: THREE.Camera;
91
- scene: THREE.Scene;
92
47
  }>;
93
48
  constructor();
94
- ngOnInit(): void;
49
+ private disableToneMapping;
95
50
  private setComposerSize;
51
+ private render;
96
52
  private updatePasses;
97
- private beforeRender;
98
53
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtpEffectComposer, never>;
99
- 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>;
54
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtpEffectComposer, "ngtp-effect-composer", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, ["content"], never, true, never>;
100
55
  }
56
+ export {};
package/lib/effect.d.ts CHANGED
@@ -1,27 +1,58 @@
1
- import { type NgtAnyRecord } from 'angular-three';
2
1
  import { BlendFunction, Effect } from 'postprocessing';
3
2
  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>;
3
+ export declare const injectDefaultEffectOptions: {
4
+ (): {
5
+ blendFunction?: BlendFunction | undefined;
6
+ opacity?: number | undefined;
7
+ };
8
+ (injectOptions: import("@angular/core").InjectOptions & {
9
+ optional?: false | undefined;
10
+ } & {
11
+ injector?: import("@angular/core").Injector | undefined;
12
+ }): {
13
+ blendFunction?: BlendFunction | undefined;
14
+ opacity?: number | undefined;
15
+ };
16
+ (injectOptions: import("@angular/core").InjectOptions & {
17
+ injector?: import("@angular/core").Injector | undefined;
18
+ }): {
19
+ blendFunction?: BlendFunction | undefined;
20
+ opacity?: number | undefined;
21
+ } | null;
22
+ }, provideDefaultEffectOptions: ((value: {
23
+ blendFunction?: BlendFunction | undefined;
24
+ opacity?: number | undefined;
25
+ } | (() => {
26
+ blendFunction?: BlendFunction | undefined;
27
+ opacity?: number | undefined;
28
+ })) => import("@angular/core").Provider) & ((value: {
29
+ blendFunction?: BlendFunction | undefined;
30
+ opacity?: number | undefined;
31
+ } | (() => {
32
+ blendFunction?: BlendFunction | undefined;
33
+ opacity?: number | undefined;
34
+ })) => import("@angular/core").Provider);
35
+ export declare class NgtpEffectBlendMode {
36
+ effect: NgtpEffect | null;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtpEffectBlendMode, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtpEffectBlendMode, "ngtp-effect-blend-mode", never, {}, {}, never, never, true, never>;
39
+ }
40
+ export declare class NgtpEffect {
41
+ defaultEffectOptions: {
42
+ blendFunction?: BlendFunction | undefined;
43
+ opacity?: number | undefined;
44
+ } | null;
45
+ effectRef: import("@angular/core").InputSignal<import("angular-three").NgtInjectedRef<Effect>>;
46
+ blendFunction: import("@angular/core").InputSignal<BlendFunction | undefined>;
47
+ opacity: import("@angular/core").InputSignal<number | undefined>;
48
+ autoEffect: (autoEffectCallback: (autoEffectInjector: import("@angular/core").Injector) => void | (() => void), options?: Omit<import("@angular/core").CreateEffectOptions, "injector"> | undefined) => import("@angular/core").EffectRef;
49
+ store: import("angular-three").NgtSignalStore<import("angular-three").NgtState>;
50
+ camera: import("@angular/core").Signal<import("angular-three").NgtCameraManual>;
51
+ invalidate: import("@angular/core").Signal<(frames?: number | undefined) => void>;
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtpEffect, never>;
53
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtpEffect, never, never, { "effectRef": { "alias": "effectRef"; "required": false; "isSignal": true; }; "blendFunction": { "alias": "blendFunction"; "required": false; "isSignal": true; }; "opacity": { "alias": "opacity"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
27
54
  }
55
+ export declare const NgtpEffectHostDirective: {
56
+ directive: typeof NgtpEffect;
57
+ inputs: string[];
58
+ };
@@ -0,0 +1,10 @@
1
+ import { BloomEffectOptions } from 'postprocessing';
2
+ import { NgtpEffect } from '../effect';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../effect";
5
+ export declare class NgtpBloom {
6
+ effect: NgtpEffect;
7
+ options: import("@angular/core").InputSignal<Omit<BloomEffectOptions, "blendFunction">>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtpBloom, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtpBloom, "ngtp-bloom", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.NgtpEffect; inputs: { "blendFunction": "blendFunction"; "opacity": "opacity"; "effectRef": "effectRef"; }; outputs: {}; }]>;
10
+ }
@@ -1,17 +1 @@
1
- export * from './bloom/bloom';
2
- export * from './brightness-contrast/brightness-contrast';
3
- export * from './color-depth/color-depth';
4
- export * from './depth/depth';
5
- export * from './dot-screen/dot-screen';
6
- export * from './hue-saturation/hue-saturation';
7
- export * from './lut/lut';
8
- export * from './noise/noise';
9
- export * from './pixelation/pixelation';
10
- export * from './scanline/scanline';
11
- export * from './sepia/sepia';
12
- export * from './shock-wave/shock-wave';
13
- export * from './smaa/smaa';
14
- export * from './ssao/ssao';
15
- export * from './tilt-shift/tilt-shift';
16
- export * from './tone-mapping/tone-mapping';
17
- export * from './vignette/vignette';
1
+ export * from './bloom';
package/package.json CHANGED
@@ -1,48 +1,50 @@
1
1
  {
2
- "name": "angular-three-postprocessing",
3
- "version": "2.0.0-beta.22",
4
- "publishConfig": {
5
- "access": "public"
6
- },
7
- "repository": {
8
- "type": "git",
9
- "url": "https://github.com/angular-threejs/angular-three/tree/main/libs/postprocessing"
10
- },
11
- "author": {
12
- "name": "Chau Tran",
13
- "email": "nartc7789@gmail.com",
14
- "url": "https://nartc.me"
15
- },
16
- "description": "Postprocessing integration with Angular Three",
17
- "keywords": [
18
- "angular",
19
- "threejs",
20
- "renderer",
21
- "postprocessing"
22
- ],
23
- "license": "MIT",
24
- "peerDependencies": {
25
- "@angular/common": "^16.0.0",
26
- "@angular/core": " ^16.0.0",
27
- "angular-three": "^2.0.0",
28
- "postprocessing": "^6.0.0",
29
- "three": ">=0.148.0"
30
- },
31
- "dependencies": {
32
- "tslib": "^2.3.0"
33
- },
34
- "sideEffects": false,
35
- "module": "fesm2022/angular-three-postprocessing.mjs",
36
- "typings": "index.d.ts",
37
- "exports": {
38
- "./package.json": {
39
- "default": "./package.json"
40
- },
41
- ".": {
42
- "types": "./index.d.ts",
43
- "esm2022": "./esm2022/angular-three-postprocessing.mjs",
44
- "esm": "./esm2022/angular-three-postprocessing.mjs",
45
- "default": "./fesm2022/angular-three-postprocessing.mjs"
46
- }
47
- }
2
+ "name": "angular-three-postprocessing",
3
+ "version": "2.0.0-beta.235",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/angular-threejs/angular-three/tree/main/libs/postprocessing"
10
+ },
11
+ "author": {
12
+ "name": "Chau Tran",
13
+ "email": "nartc7789@gmail.com",
14
+ "url": "https://nartc.me"
15
+ },
16
+ "description": "Postprocessing for Angular Three",
17
+ "keywords": [
18
+ "angular",
19
+ "threejs",
20
+ "renderer",
21
+ "postprocessing"
22
+ ],
23
+ "license": "MIT",
24
+ "peerDependencies": {
25
+ "@angular/common": "^18.0.0",
26
+ "@angular/core": "^18.0.0",
27
+ "ngxtension": "^3.0.0",
28
+ "postprocessing": "^6.0.0",
29
+ "three": ">=0.148.0",
30
+ "three-stdlib": "^2.0.0"
31
+ },
32
+ "dependencies": {
33
+ "tslib": "^2.3.0"
34
+ },
35
+ "sideEffects": false,
36
+ "module": "fesm2022/angular-three-postprocessing.mjs",
37
+ "typings": "index.d.ts",
38
+ "exports": {
39
+ "./package.json": {
40
+ "default": "./package.json"
41
+ },
42
+ ".": {
43
+ "types": "./index.d.ts",
44
+ "esm2022": "./esm2022/angular-three-postprocessing.mjs",
45
+ "esm": "./esm2022/angular-three-postprocessing.mjs",
46
+ "default": "./fesm2022/angular-three-postprocessing.mjs"
47
+ }
48
+ }
48
49
  }
50
+