{"version":3,"file":"angular-three-postprocessing.mjs","sources":["../../../../libs/postprocessing/src/lib/effect-composer.ts","../../../../libs/postprocessing/src/lib/effect.ts","../../../../libs/postprocessing/src/angular-three-postprocessing.ts"],"sourcesContent":["import {\n  BooleanInput,\n  coerceBooleanProperty,\n  coerceNumberProperty,\n  injectIsWebGLAvailable,\n  NgtInstance,\n  NgtInstanceState,\n  NgtUnknownInstance,\n  NumberInput,\n  provideNgtObject,\n  provideObjectHostRef,\n  provideObjectRef,\n  Ref,\n  startWithUndefined,\n  tapEffect,\n} from '@angular-three/core';\nimport { NgtGroup } from '@angular-three/core/group';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  Directive,\n  Input,\n  NgModule,\n  TemplateRef,\n} from '@angular/core';\nimport { DepthDownsamplingPass, EffectComposer, EffectPass, NormalPass, RenderPass } from 'postprocessing';\nimport { filter, startWith, switchMap, tap } from 'rxjs';\nimport * as THREE from 'three';\n\nexport interface NgtEffectComposerState extends NgtInstanceState<EffectComposer> {\n  groupRef: Ref<NgtUnknownInstance<THREE.Group>>;\n\n  normalPass: NormalPass | null;\n  depthDownSamplingPass: DepthDownsamplingPass | null;\n\n  renderPriority: number;\n  autoClear: boolean;\n  multisampling: number;\n  frameBufferType: THREE.TextureDataType;\n  enabled: boolean;\n  depthBuffer?: boolean;\n  disableNormalPass?: boolean;\n  stencilBuffer?: boolean;\n  resolutionScale?: number;\n  camera?: THREE.Camera;\n  scene?: THREE.Scene;\n}\n\n@Directive({\n  selector: 'ng-template[ngt-effect-composer-content]',\n  standalone: true,\n})\nexport class NgtEffectComposerContent {\n  constructor(public templateRef: TemplateRef<{ group: Ref<THREE.Group>; effectComposer: Ref<EffectComposer> }>) {}\n\n  static ngTemplateContextGuard(\n    dir: NgtEffectComposerContent,\n    ctx: any\n  ): ctx is { group: Ref<THREE.Group>; effectComposer: Ref<EffectComposer> } {\n    return true;\n  }\n}\n\n@Component({\n  selector: 'ngt-effect-composer',\n  standalone: true,\n  template: `\n    <ngt-group [ref]=\"groupRef\">\n      <ng-container\n        *ngIf=\"content\"\n        [ngTemplateOutlet]=\"content.templateRef\"\n        [ngTemplateOutletContext]=\"{ group: groupRef, effectComposer: instance }\"\n      ></ng-container>\n    </ngt-group>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgtGroup, NgIf, NgTemplateOutlet],\n  providers: [\n    provideNgtObject(NgtEffectComposer),\n    provideObjectRef(NgtEffectComposer, (composer) => composer.groupRef),\n    provideObjectHostRef(NgtEffectComposer),\n  ],\n})\nexport class NgtEffectComposer extends NgtInstance<EffectComposer, NgtEffectComposerState> implements AfterViewInit {\n  @Input() set enabled(enabled: BooleanInput) {\n    this.set({ enabled: coerceBooleanProperty(enabled) });\n  }\n\n  @Input() set depthBuffer(depthBuffer: BooleanInput) {\n    this.set({ depthBuffer: coerceBooleanProperty(depthBuffer) });\n  }\n\n  @Input() set disableNormalPass(disableNormalPass: BooleanInput) {\n    this.set({\n      disableNormalPass: coerceBooleanProperty(disableNormalPass),\n    });\n  }\n\n  @Input() set stencilBuffer(stencilBuffer: BooleanInput) {\n    this.set({ stencilBuffer: coerceBooleanProperty(stencilBuffer) });\n  }\n\n  @Input() set autoClear(autoClear: BooleanInput) {\n    this.set({ autoClear: coerceBooleanProperty(autoClear) });\n  }\n\n  @Input() set resolutionScale(resolutionScale: NumberInput) {\n    this.set({ resolutionScale: coerceNumberProperty(resolutionScale) });\n  }\n\n  @Input() set multisampling(multisampling: NumberInput) {\n    this.set({ multisampling: coerceNumberProperty(multisampling) });\n  }\n\n  @Input() set frameBufferType(frameBufferType: THREE.TextureDataType) {\n    this.set({ frameBufferType });\n  }\n\n  @Input() set renderPriority(renderPriority: NumberInput) {\n    this.set({ renderPriority: coerceNumberProperty(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  @ContentChild(NgtEffectComposerContent) content?: NgtEffectComposerContent;\n\n  private readonly composerInitParams$ = this.select(\n    this.store.select((s) => s.gl),\n    this.select((s) => s.camera),\n    this.select((s) => s.scene),\n    this.select((s) => s.depthBuffer).pipe(startWithUndefined()),\n    this.select((s) => s.stencilBuffer).pipe(startWithUndefined()),\n    this.select((s) => s.multisampling),\n    this.select((s) => s.frameBufferType),\n    this.select((s) => s.disableNormalPass).pipe(startWithUndefined()),\n    this.select((s) => s.resolutionScale).pipe(startWithUndefined())\n  );\n\n  private readonly sizeParams$ = this.select(\n    this.instance$,\n    this.store.select((s) => s.size)\n  );\n\n  private readonly beforeRenderParams$ = this.select(\n    this.instance$,\n    this.select((s) => s.autoClear),\n    this.select((s) => s.enabled),\n    this.select((s) => s.renderPriority)\n  );\n\n  get groupRef() {\n    return this.get((s) => s.groupRef);\n  }\n\n  private isWebGLAvailable = injectIsWebGLAvailable();\n\n  protected override preInit() {\n    super.preInit();\n    this.set((state) => ({\n      groupRef: new Ref(),\n      enabled: state.enabled ?? true,\n      renderPriority: state.renderPriority ?? 1,\n      autoClear: state.autoClear ?? true,\n      multisampling: state.multisampling ?? 8,\n      camera: state.camera ?? this.store.get((s) => s.camera),\n      scene: state.scene ?? this.store.get((s) => s.scene),\n      frameBufferType: state.frameBufferType ?? THREE.HalfFloatType,\n    }));\n  }\n\n  ngAfterViewInit() {\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        const effectPassesParams$ = this.select(\n          this.select((s) => s.camera),\n          this.select((s) => s.normalPass),\n          this.select((s) => s.depthDownSamplingPass),\n          this.instance$,\n          this.groupRef.pipe(filter((group) => !!group)),\n          this.groupRef.pipe(\n            filter((group) => !!group),\n            switchMap((group) => group.__ngt__.objects),\n            startWith([])\n          )\n        );\n\n        this.init(this.composerInitParams$);\n        this.setSize(this.sizeParams$);\n        this.setBeforeRender(this.beforeRenderParams$);\n        this.effectPasses(effectPassesParams$);\n      });\n    });\n  }\n\n  private readonly init = this.effect(\n    tap(() => {\n      const { gl, scene: defaultScene, camera: defaultCamera } = this.store.get();\n      const {\n        scene,\n        camera,\n        depthBuffer,\n        stencilBuffer,\n        multisampling,\n        frameBufferType,\n        disableNormalPass,\n        resolutionScale,\n      } = this.get();\n\n      const initScene = scene || defaultScene;\n      const initCamera = camera || defaultCamera;\n\n      if (gl && initScene && initCamera) {\n        const effectComposer = this.prepareInstance(\n          new EffectComposer(gl, {\n            depthBuffer,\n            stencilBuffer,\n            multisampling: multisampling > 0 && this.isWebGLAvailable ? multisampling : 0,\n            frameBufferType,\n          })\n        );\n\n        effectComposer.addPass(new RenderPass(initScene, initCamera));\n\n        // Create normal pass\n        let downSamplingPass = null;\n        let normalPass = null;\n\n        if (!disableNormalPass) {\n          normalPass = new NormalPass(initScene, initCamera);\n          normalPass.enabled = false;\n          effectComposer.addPass(normalPass);\n          if (resolutionScale !== undefined && this.isWebGLAvailable) {\n            downSamplingPass = new DepthDownsamplingPass({\n              normalBuffer: normalPass.texture,\n              resolutionScale,\n            });\n            downSamplingPass.enabled = false;\n            effectComposer.addPass(downSamplingPass);\n          }\n        }\n\n        this.set({\n          depthDownSamplingPass: downSamplingPass,\n          normalPass,\n        } as Partial<NgtEffectComposerState>);\n      }\n    })\n  );\n\n  private readonly setSize = this.effect(\n    tap(() => {\n      const composer = this.get((s) => s.instance);\n      if (composer.value) {\n        const size = this.store.get((s) => s.size);\n        composer.value.setSize(size.width, size.height);\n      }\n    })\n  );\n\n  private readonly setBeforeRender = this.effect(\n    tapEffect(() => {\n      const { renderPriority, enabled, instance: composer, autoClear } = this.get();\n      const gl = this.store.get((s) => s.gl);\n\n      return this.store.registerBeforeRender({\n        callback: ({ delta }) => {\n          if (enabled) {\n            gl.autoClear = autoClear;\n            composer.value.render(delta);\n          }\n        },\n        priority: enabled ? renderPriority : 0,\n      });\n    })\n  );\n\n  private readonly effectPasses = this.effect(\n    tapEffect(() => {\n      let effectPass: EffectPass;\n      const defaultCamera = this.store.get((s) => s.camera);\n      const { instance: composer, camera, normalPass, depthDownSamplingPass, groupRef } = this.get();\n\n      if (composer.value && groupRef.value && groupRef.value.__ngt__.objects.value.length) {\n        effectPass = new EffectPass(\n          camera || defaultCamera,\n          ...groupRef.value.__ngt__.objects.value.map((ref) => ref.value)\n        );\n\n        effectPass.renderToScreen = true;\n        composer.value.addPass(effectPass);\n        if (normalPass) {\n          normalPass.enabled = true;\n        }\n\n        if (depthDownSamplingPass) {\n          depthDownSamplingPass.enabled = true;\n        }\n      }\n\n      return () => {\n        if (effectPass) {\n          composer.value?.removePass(effectPass);\n        }\n        if (normalPass) {\n          normalPass.enabled = false;\n        }\n        if (depthDownSamplingPass) {\n          depthDownSamplingPass.enabled = false;\n        }\n      };\n    })\n  );\n}\n\n@NgModule({\n  imports: [NgtEffectComposer, NgtEffectComposerContent],\n  exports: [NgtEffectComposer, NgtEffectComposerContent],\n})\nexport class NgtEffectComposerModule {}\n","import {\n  AnyConstructor,\n  coerceNumberProperty,\n  createNgtProvider,\n  createRefInjection,\n  NgtInstance,\n  NgtUnknownInstance,\n  NumberInput,\n  optionsFieldsToOptions,\n  provideInstanceRef,\n  provideNgtInstance,\n  startWithUndefined,\n  tapEffect,\n  UnknownRecord,\n} from '@angular-three/core';\nimport { Directive, inject, Input } from '@angular/core';\nimport { BlendFunction, Effect } from 'postprocessing';\nimport { tap } from 'rxjs';\nimport * as THREE from 'three';\nimport { NgtEffectComposer } from './effect-composer';\n\nexport const [injectCommonEffectRef, provideCommonEffectRef, NGT_COMMON_EFFECT_REF] = createRefInjection(\n  'NgtCommonEffect ref',\n  provideInstanceRef\n);\n\n@Directive()\nexport abstract class NgtCommonEffect<TEffect extends Effect = Effect> extends NgtInstance<TEffect> {\n  @Input() set opacity(opacity: NumberInput) {\n    this.set({ opacity: coerceNumberProperty(opacity) });\n  }\n\n  @Input() set blendFunction(blendFunction: BlendFunction) {\n    this.set({ blendFunction });\n  }\n\n  abstract get effectType(): AnyConstructor<TEffect>;\n\n  protected get defaultBlendMode(): BlendFunction {\n    return BlendFunction.NORMAL;\n  }\n\n  protected readonly effectOptions$ = this.select(\n    this.select((s) => s['opacity']).pipe(startWithUndefined()),\n    this.select((s) => s['blendFunction']),\n    this.instance$\n  );\n\n  protected effectComposer = inject(NgtEffectComposer, { optional: true }) as NgtEffectComposer;\n\n  constructor() {\n    super();\n    if (!this.effectComposer) {\n      throw new Error(`Effects can only be used within <ngt-effect-composer>`);\n    }\n  }\n\n  protected override preInit() {\n    this.set((state) => ({\n      blendFunction: state['blendFunction'] || this.defaultBlendMode,\n    }));\n  }\n\n  protected get effectOptionsFields(): Record<string, boolean> {\n    return { blendFunction: false };\n  }\n\n  override ngOnInit() {\n    super.ngOnInit();\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        this.init(\n          this.select(\n            optionsFieldsToOptions(this, this.effectOptionsFields, true),\n            this.ctorParams$,\n            (effectOptions) => effectOptions\n          )\n        );\n        if (!this.skipConfigureBlendMode) {\n          this.configureBlendMode(\n            this.select(\n              this.select((s) => s['opacity']).pipe(startWithUndefined()),\n              this.select((s) => s['blendMode']),\n              this.instance$\n            )\n          );\n        }\n        this.postInit();\n      });\n    });\n  }\n\n  /**\n   * Sub-classes can choose to skip default effect options effect\n   */\n  protected get skipConfigureBlendMode() {\n    return false;\n  }\n\n  private readonly configureBlendMode = this.effect(\n    tap(() => {\n      const { instance: effect, blendFunction, opacity } = this.get();\n      const invalidate = this.store.get((s) => s.invalidate);\n      if (effect.value) {\n        effect.value.blendMode.blendFunction =\n          !blendFunction && blendFunction !== 0 ? this.defaultBlendMode : blendFunction;\n\n        if (opacity !== undefined) {\n          effect.value.blendMode.opacity.value = opacity;\n        }\n      }\n      invalidate();\n    })\n  );\n\n  private readonly init = this.effect<UnknownRecord>(\n    tapEffect((effectOptions) => {\n      const effectCtorParams = this.adjustCtorParams([effectOptions]);\n      const effect = this.prepareInstance(new this.effectType(...effectCtorParams));\n\n      return () => {\n        const parent = effect.__ngt__.parent?.value;\n        // remove effect ref from parent effect composer\n        if (parent && (parent as unknown as THREE.Group).isGroup) {\n          (parent as NgtUnknownInstance).__ngt__.objects.set((refs) => refs.filter((ref) => ref.value !== effect));\n        }\n        effect.dispose();\n      };\n    })\n  );\n}\n\nexport const provideNgtCommonEffect = createNgtProvider(NgtCommonEffect, provideNgtInstance);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}