{"version":3,"file":"angular-three-soba-performances.mjs","sources":["../../../../libs/soba/performances/src/lib/preload/preload.ts","../../../../libs/soba/performances/src/lib/detailed/detailed.ts","../../../../libs/soba/performances/src/lib/adaptive-dpr/adaptve-dpr.ts","../../../../libs/soba/performances/src/lib/adaptive-events/adaptive-events.ts","../../../../libs/soba/performances/src/angular-three-soba-performances.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty, NgtComponentStore, NgtStore } from '@angular-three/core';\nimport { Directive, Input, NgModule, NgZone, OnInit } from '@angular/core';\nimport * as THREE from 'three';\n\ninterface NgtSobaPreloadState {\n  all: boolean;\n  scene?: THREE.Object3D;\n  camera?: THREE.Camera;\n}\n\n@Directive({\n  selector: 'ngt-soba-preload',\n  standalone: true,\n  exportAs: 'ngtSobaPreload',\n})\nexport class NgtSobaPreload extends NgtComponentStore<NgtSobaPreloadState> implements OnInit {\n  @Input() set all(v: BooleanInput) {\n    this.set({ all: coerceBooleanProperty(v) });\n  }\n\n  @Input() set scene(v: THREE.Object3D) {\n    this.set({ scene: v });\n  }\n\n  @Input() set camera(v: THREE.Camera) {\n    this.set({ camera: v });\n  }\n\n  private get precompileParams() {\n    const { all, scene, camera } = this.get();\n    const { camera: canvasCamera, scene: canvasScene, gl } = this.store.get();\n    return {\n      all,\n      scene: scene || canvasScene,\n      camera: camera || canvasCamera,\n      gl,\n    };\n  }\n\n  constructor(private zone: NgZone, private store: NgtStore) {\n    super();\n    this.set({\n      all: false,\n      scene: undefined,\n      camera: undefined,\n    });\n  }\n\n  ngOnInit() {\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        const { all, scene, camera, gl } = this.precompileParams;\n        const invisible: THREE.Object3D[] = [];\n\n        if (all) {\n          scene!.traverse((object) => {\n            if (!object.visible) {\n              invisible.push(object);\n              object.visible = true;\n            }\n          });\n        }\n\n        // Now compile\n        gl!.compile(scene!, camera!);\n        // And for good measure, hit it with a cube camera\n        const cubeRenderTarget = new THREE.WebGLCubeRenderTarget(128);\n        const cubeCamera = new THREE.CubeCamera(0.01, 100000, cubeRenderTarget);\n        cubeCamera.update(gl!, scene as THREE.Scene);\n        cubeRenderTarget.dispose();\n        // Flips these objects back\n        invisible.forEach((object) => (object.visible = false));\n      });\n    });\n  }\n}\n\n@NgModule({\n  imports: [NgtSobaPreload],\n  exports: [NgtSobaPreload],\n})\nexport class NgtSobaPreloadModule {}\n","import {\n  AnyFunction,\n  NGT_OBJECT_REF,\n  NgtObjectPassThrough,\n  NgtObjectProps,\n  NgtRenderState,\n  provideNgtObject,\n  provideObjectHostRef,\n  provideObjectRef,\n  Ref,\n} from '@angular-three/core';\nimport { NgtLod } from '@angular-three/core/lod';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  ContentChildren,\n  Directive,\n  Input,\n  NgModule,\n  QueryList,\n  TemplateRef,\n} from '@angular/core';\nimport { animationFrameScheduler, combineLatest, observeOn, pipe, switchMap, tap } from 'rxjs';\nimport * as THREE from 'three';\n\n@Directive({\n  selector: 'ng-template[ngt-soba-detailed-content]',\n  standalone: true,\n})\nexport class NgtSobaDetailedContent {\n  constructor(public templateRef: TemplateRef<{ lod: Ref<THREE.LOD> }>) {}\n\n  static ngTemplateContextGuard(dir: NgtSobaDetailedContent, ctx: any): ctx is { lod: Ref<THREE.LOD> } {\n    return true;\n  }\n}\n\n@Component({\n  selector: 'ngt-soba-detailed',\n  standalone: true,\n  template: `\n    <ngt-lod [ngtObjectPassThrough]=\"this\" (beforeRender)=\"onBeforeRender($event)\">\n      <ng-container\n        *ngIf=\"content\"\n        [ngTemplateOutlet]=\"content.templateRef\"\n        [ngTemplateOutletContext]=\"{ lod: instance }\"\n      ></ng-container>\n    </ngt-lod>\n    <ng-content></ng-content>\n  `,\n  imports: [NgtLod, NgtObjectPassThrough, NgIf, NgTemplateOutlet],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    provideNgtObject(NgtSobaDetailed),\n    provideObjectRef(NgtSobaDetailed),\n    provideObjectHostRef(NgtSobaDetailed),\n  ],\n})\nexport class NgtSobaDetailed extends NgtObjectProps<THREE.LOD> implements AfterContentInit {\n  @ContentChild(NgtSobaDetailedContent) content?: NgtSobaDetailedContent;\n  @ContentChildren(NGT_OBJECT_REF) children!: QueryList<AnyFunction<Ref>>;\n\n  @Input() set distances(distances: number[]) {\n    this.set({ distances });\n  }\n\n  protected override preInit() {\n    super.preInit();\n    this.set((state) => ({\n      distances: state['distances'] ?? [],\n    }));\n  }\n\n  ngAfterContentInit() {\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        this.addLevels(\n          this.select(\n            this.select((s) => s['distances']),\n            this.instance$,\n            this.children.changes.pipe(switchMap(() => combineLatest(this.children.map((child) => child()))))\n          )\n        );\n      });\n    });\n  }\n\n  private readonly addLevels = this.effect(\n    pipe(\n      observeOn(animationFrameScheduler),\n      tap(() => {\n        const distances = this.get((s) => s['distances']);\n        if (this.instance.value) {\n          this.instance.value.levels.length = 0;\n          this.instance.value.children.forEach((object, index) => {\n            this.instance.value.levels.push({\n              object,\n              distance: distances[index],\n            });\n          });\n        }\n      })\n    )\n  );\n\n  onBeforeRender({ state: { camera }, object }: { state: NgtRenderState; object: THREE.LOD }) {\n    object.update(camera);\n  }\n}\n\n@NgModule({\n  imports: [NgtSobaDetailed, NgtSobaDetailedContent],\n  exports: [NgtSobaDetailed, NgtSobaDetailedContent],\n})\nexport class NgtSobaDetailedModule {}\n","import {\n  BooleanInput,\n  coerceBooleanProperty,\n  makeDpr,\n  NgtComponentStore,\n  NgtStore,\n  tapEffect,\n} from '@angular-three/core';\nimport { Directive, Input, NgModule, NgZone, OnInit } from '@angular/core';\nimport { tap } from 'rxjs';\n\n@Directive({\n  selector: 'ngt-soba-adaptive-dpr',\n  standalone: true,\n})\nexport class NgtSobaAdaptiveDpr extends NgtComponentStore<{ pixelated: boolean }> implements OnInit {\n  @Input() set pixelated(pixelated: BooleanInput) {\n    this.set({ pixelated: coerceBooleanProperty(pixelated) });\n  }\n\n  constructor(private zone: NgZone, private store: NgtStore) {\n    super();\n  }\n\n  ngOnInit() {\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        this.reset();\n        this.updateDpr(this.store.select((s) => s.performance.current));\n      });\n    });\n  }\n\n  private readonly updateDpr = this.effect(\n    tap(() => {\n      const current = this.store.get((s) => s.performance.current);\n      const initialDpr = this.store.get((s) => s.viewport.initialDpr);\n      this.store.set((state) => ({\n        viewport: { ...state.viewport, dpr: makeDpr(current! * initialDpr) },\n      }));\n\n      const gl = this.store.get((s) => s.gl);\n      const pixelated = this.get((s) => s.pixelated);\n\n      if (pixelated && gl.domElement) {\n        gl.domElement.style.imageRendering = current === 1 ? 'auto' : 'pixelated';\n      }\n    })\n  );\n\n  private readonly reset = this.effect<void>(\n    tapEffect(() => {\n      const gl = this.store.get((s) => s.gl);\n      const active = this.store.get((s) => s.internal.active);\n      const pixelated = this.get((s) => s.pixelated);\n\n      return () => {\n        if (active) {\n          this.store.set((state) => ({\n            viewport: { ...state.viewport, dpr: makeDpr(state.viewport.initialDpr) },\n          }));\n        }\n        if (pixelated && gl.domElement) {\n          gl.domElement.style.imageRendering = 'auto';\n        }\n      };\n    })\n  );\n}\n\n@NgModule({\n  imports: [NgtSobaAdaptiveDpr],\n  exports: [NgtSobaAdaptiveDpr],\n})\nexport class NgtSobaAdapativeDprModule {}\n","import { NgtComponentStore, NgtStore, tapEffect } from '@angular-three/core';\nimport { Directive, NgModule, NgZone, OnInit } from '@angular/core';\nimport { tap } from 'rxjs';\n\n@Directive({\n  selector: 'ngt-soba-adaptive-events',\n  standalone: true,\n})\nexport class NgtSobaAdaptiveEvents extends NgtComponentStore implements OnInit {\n  constructor(private zone: NgZone, private store: NgtStore) {\n    super();\n  }\n\n  ngOnInit() {\n    this.zone.runOutsideAngular(() => {\n      this.store.onReady(() => {\n        this.reset();\n        this.updateEvents(this.store.select((s) => s.performance.current));\n      });\n    });\n  }\n\n  private readonly reset = this.effect<void>(\n    tapEffect(() => {\n      const enabled = this.store.get((s) => s.events.enabled);\n      return () => {\n        this.store.set((state) => ({ events: { ...state.events, enabled } }));\n      };\n    })\n  );\n\n  private updateEvents = this.effect(\n    tap(() => {\n      const current = this.store.get((s) => s.performance.current);\n      this.store.set((state) => ({ events: { ...state.events, enabled: current === 1 } }));\n    })\n  );\n}\n\n@NgModule({\n  imports: [NgtSobaAdaptiveEvents],\n  exports: [NgtSobaAdaptiveEvents],\n})\nexport class NgtSobaAdaptiveEventsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}