{"version":3,"file":"ngx-three.mjs","sources":["../../../projects/ngx-three/src/lib/util.ts","../../../projects/ngx-three/src/lib/loaders/LazyObject3dProxy.ts","../../../projects/ngx-three/src/lib/ThWrapperBase.ts","../../../projects/ngx-three/src/lib/ThObjectBase.ts","../../../projects/ngx-three/src/lib/generated/ThObject3D.ts","../../../projects/ngx-three/src/lib/events/raycaster.service.ts","../../../projects/ngx-three/src/lib/events/raycaster.events.directive.ts","../../../projects/ngx-three/src/lib/generated/ThCSS2DObjectGen.ts","../../../projects/ngx-three/src/lib/generated/overrides/ThCSS2DObject.ts","../../../projects/ngx-three/src/lib/generated/ThCSS3DObjectGen.ts","../../../projects/ngx-three/src/lib/generated/overrides/ThCSS3DObject.ts","../../../projects/ngx-three/src/lib/generated/ThCamera.ts","../../../projects/ngx-three/src/lib/generated/ThScene.ts","../../../projects/ngx-three/src/lib/ThView.ts","../../../projects/ngx-three/src/lib/renderer/renderer-providers.ts","../../../projects/ngx-three/src/lib/ThEngine.service.ts","../../../projects/ngx-three/src/lib/generated/ThEffectComposerGen.ts","../../../projects/ngx-three/src/lib/generated/overrides/ThEffectComposer.ts","../../../projects/ngx-three/src/lib/ThPassBase.ts","../../../projects/ngx-three/src/lib/generated/ThPass.ts","../../../projects/ngx-three/src/lib/generated/ThRenderPassGen.ts","../../../projects/ngx-three/src/lib/generated/overrides/ThRenderPass.ts","../../../projects/ngx-three/src/lib/renderer/th-animation-loop.service.ts","../../../projects/ngx-three/src/lib/ThCanvas.ts","../../../projects/ngx-three/src/lib/ThControlBase.ts","../../../projects/ngx-three/src/lib/generated/ThTransformControlsGen.ts","../../../projects/ngx-three/src/lib/generated/overrides/ThTransformControls.ts","../../../projects/ngx-three/src/lib/generated/ThAfterimagePass.ts","../../../projects/ngx-three/src/lib/generated/ThLight.ts","../../../projects/ngx-three/src/lib/generated/ThAmbientLight.ts","../../../projects/ngx-three/src/lib/generated/ThArcballControls.ts","../../../projects/ngx-three/src/lib/generated/ThPerspectiveCamera.ts","../../../projects/ngx-three/src/lib/generated/ThArrayCamera.ts","../../../projects/ngx-three/src/lib/generated/ThArrowHelper.ts","../../../projects/ngx-three/src/lib/generated/ThAudio.ts","../../../projects/ngx-three/src/lib/generated/ThAudioListener.ts","../../../projects/ngx-three/src/lib/generated/ThLine.ts","../../../projects/ngx-three/src/lib/generated/ThLineSegments.ts","../../../projects/ngx-three/src/lib/generated/ThAxesHelper.ts","../../../projects/ngx-three/src/lib/generated/ThMesh.ts","../../../projects/ngx-three/src/lib/generated/ThBatchedMesh.ts","../../../projects/ngx-three/src/lib/generated/ThBloomPass.ts","../../../projects/ngx-three/src/lib/generated/ThBokehPass.ts","../../../projects/ngx-three/src/lib/generated/ThBone.ts","../../../projects/ngx-three/src/lib/generated/ThBox3Helper.ts","../../../projects/ngx-three/src/lib/ThGeometryBase.ts","../../../projects/ngx-three/src/lib/generated/ThBufferGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThBoxGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThBoxHelper.ts","../../../projects/ngx-three/src/lib/generated/ThBoxLineGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThCameraHelper.ts","../../../projects/ngx-three/src/lib/ThTextureBase.ts","../../../projects/ngx-three/src/lib/generated/ThTexture.ts","../../../projects/ngx-three/src/lib/generated/ThCanvasTexture.ts","../../../projects/ngx-three/src/lib/generated/ThCapsuleGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThCircleGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThClearMaskPass.ts","../../../projects/ngx-three/src/lib/generated/ThClearPass.ts","../../../projects/ngx-three/src/lib/generated/ThCompressedTexture.ts","../../../projects/ngx-three/src/lib/generated/ThCompressedArrayTexture.ts","../../../projects/ngx-three/src/lib/generated/ThCompressedCubeTexture.ts","../../../projects/ngx-three/src/lib/generated/ThCylinderGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThConeGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThConvexGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThCubeCamera.ts","../../../projects/ngx-three/src/lib/generated/ThCubeTexture.ts","../../../projects/ngx-three/src/lib/generated/ThCubeTexturePass.ts","../../../projects/ngx-three/src/lib/generated/ThData3DTexture.ts","../../../projects/ngx-three/src/lib/generated/ThDataArrayTexture.ts","../../../projects/ngx-three/src/lib/generated/ThDataTexture.ts","../../../projects/ngx-three/src/lib/generated/ThDecalGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThDepthTexture.ts","../../../projects/ngx-three/src/lib/generated/ThDirectionalLight.ts","../../../projects/ngx-three/src/lib/generated/ThDirectionalLightHelper.ts","../../../projects/ngx-three/src/lib/generated/ThPolyhedronGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThDodecahedronGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThDotScreenPass.ts","../../../projects/ngx-three/src/lib/generated/ThDragControls.ts","../../../projects/ngx-three/src/lib/generated/ThEdgesGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThExternalTexture.ts","../../../projects/ngx-three/src/lib/generated/ThExtrudeGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThFilmPass.ts","../../../projects/ngx-three/src/lib/generated/ThFirstPersonControls.ts","../../../projects/ngx-three/src/lib/generated/ThFlyControls.ts","../../../projects/ngx-three/src/lib/generated/ThFramebufferTexture.ts","../../../projects/ngx-three/src/lib/generated/ThGlitchPass.ts","../../../projects/ngx-three/src/lib/generated/ThGridHelper.ts","../../../projects/ngx-three/src/lib/generated/ThGroup.ts","../../../projects/ngx-three/src/lib/generated/ThHalftonePass.ts","../../../projects/ngx-three/src/lib/generated/ThHemisphereLight.ts","../../../projects/ngx-three/src/lib/generated/ThHemisphereLightHelper.ts","../../../projects/ngx-three/src/lib/generated/ThIcosahedronGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThInstancedBufferGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThInstancedMesh.ts","../../../projects/ngx-three/src/lib/generated/ThLatheGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThLightProbe.ts","../../../projects/ngx-three/src/lib/ThMaterialBase.ts","../../../projects/ngx-three/src/lib/generated/ThMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThLineBasicMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThLineDashedMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThLineLoop.ts","../../../projects/ngx-three/src/lib/generated/ThLOD.ts","../../../projects/ngx-three/src/lib/generated/ThShaderPass.ts","../../../projects/ngx-three/src/lib/generated/ThLUTPass.ts","../../../projects/ngx-three/src/lib/generated/ThOrbitControls.ts","../../../projects/ngx-three/src/lib/generated/ThMapControls.ts","../../../projects/ngx-three/src/lib/generated/ThMaskPass.ts","../../../projects/ngx-three/src/lib/generated/ThMeshBasicMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThMeshDepthMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThMeshDistanceMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThMeshLambertMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThMeshMatcapMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThMeshNormalMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThMeshPhongMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThMeshStandardMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThMeshPhysicalMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThMeshToonMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThOctahedronGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThOrthographicCamera.ts","../../../projects/ngx-three/src/lib/generated/ThOutlinePass.ts","../../../projects/ngx-three/src/lib/generated/ThOutputPass.ts","../../../projects/ngx-three/src/lib/generated/ThParametricGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThPlaneGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThPlaneHelper.ts","../../../projects/ngx-three/src/lib/generated/ThPointerLockControls.ts","../../../projects/ngx-three/src/lib/generated/ThPointLight.ts","../../../projects/ngx-three/src/lib/generated/ThPointLightHelper.ts","../../../projects/ngx-three/src/lib/generated/ThPoints.ts","../../../projects/ngx-three/src/lib/generated/ThPointsMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThPolarGridHelper.ts","../../../projects/ngx-three/src/lib/generated/ThPositionalAudio.ts","../../../projects/ngx-three/src/lib/generated/ThShaderMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThRawShaderMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThRectAreaLight.ts","../../../projects/ngx-three/src/lib/generated/ThRingGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThRoundedBoxGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThSAOPass.ts","../../../projects/ngx-three/src/lib/generated/ThSavePass.ts","../../../projects/ngx-three/src/lib/generated/ThShadowMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThShapeGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThSkeletonHelper.ts","../../../projects/ngx-three/src/lib/generated/ThSkinnedMesh.ts","../../../projects/ngx-three/src/lib/generated/ThSMAAPass.ts","../../../projects/ngx-three/src/lib/generated/ThSphereGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThSpotLight.ts","../../../projects/ngx-three/src/lib/generated/ThSpotLightHelper.ts","../../../projects/ngx-three/src/lib/generated/ThSprite.ts","../../../projects/ngx-three/src/lib/generated/ThSpriteMaterial.ts","../../../projects/ngx-three/src/lib/generated/ThSSAARenderPass.ts","../../../projects/ngx-three/src/lib/generated/ThSSAOPass.ts","../../../projects/ngx-three/src/lib/generated/ThSSRPass.ts","../../../projects/ngx-three/src/lib/generated/ThStereoCamera.ts","../../../projects/ngx-three/src/lib/generated/ThTAARenderPass.ts","../../../projects/ngx-three/src/lib/generated/ThTeapotGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThTetrahedronGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThTextGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThTexturePass.ts","../../../projects/ngx-three/src/lib/generated/ThTorusGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThTorusKnotGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThTrackballControls.ts","../../../projects/ngx-three/src/lib/generated/ThTubeGeometry.ts","../../../projects/ngx-three/src/lib/generated/ThUnrealBloomPass.ts","../../../projects/ngx-three/src/lib/generated/ThVideoTexture.ts","../../../projects/ngx-three/src/lib/generated/ThVideoFrameTexture.ts","../../../projects/ngx-three/src/lib/generated/ThWireframeGeometry.ts","../../../projects/ngx-three/src/lib/generated/ngx-three-generated.module.ts","../../../projects/ngx-three/src/lib/loaders/ThLoaderBase.ts","../../../projects/ngx-three/src/lib/loaders/ThCallbackLoaderBase.ts","../../../projects/ngx-three/src/lib/loaders/compressed-texture/ThDDSLoader.ts","../../../projects/ngx-three/src/lib/loaders/compressed-texture/ThKTX2Loader.ts","../../../projects/ngx-three/src/lib/loaders/compressed-texture/ThKTXLoader.ts","../../../projects/ngx-three/src/lib/loaders/compressed-texture/ThPVRLoader.ts","../../../projects/ngx-three/src/lib/loaders/data-texture/ThEXRLoader.ts","../../../projects/ngx-three/src/lib/loaders/data-texture/ThRGBELoader.ts","../../../projects/ngx-three/src/lib/loaders/data-texture/ThTGALoader.ts","../../../projects/ngx-three/src/lib/loaders/ThCubeTextureLoader.ts","../../../projects/ngx-three/src/lib/loaders/compressed-texture/ThDRACOLoader.ts","../../../projects/ngx-three/src/lib/generated/index.ts","../../../projects/ngx-three/src/lib/loaders/ThAsyncLoaderBase.ts","../../../projects/ngx-three/src/lib/loaders/ThGLTFLoader.ts","../../../projects/ngx-three/src/lib/loaders/ThTextureLoader.ts","../../../projects/ngx-three/src/lib/pipes/clone.pipe.ts","../../../projects/ngx-three/src/lib/pipes/color.pipe.ts","../../../projects/ngx-three/src/lib/pipes/fog.pipe.ts","../../../projects/ngx-three/src/lib/pipes/vector.pipe.ts","../../../projects/ngx-three/src/lib/renderer/th-render.directive.ts","../../../projects/ngx-three/src/lib/stats/stats.directive.ts","../../../projects/ngx-three/src/lib/loaders/ThOBJLoader.ts","../../../projects/ngx-three/src/lib/loaders/ThFBXLoader.ts","../../../projects/ngx-three/src/lib/loaders/data-texture/ThUltraHDRLoader.ts","../../../projects/ngx-three/src/lib/loaders/ThPLYLoader.ts","../../../projects/ngx-three/src/lib/pipes/bind.pipe.ts","../../../projects/ngx-three/src/lib/extra/web/html.component.ts","../../../projects/ngx-three/src/lib/extra/web/html.component.html","../../../projects/ngx-three/src/lib/directives/ref-by-id.directive.ts","../../../projects/ngx-three/src/lib/pipes/plane.pipe.ts","../../../projects/ngx-three/src/lib/directives/lod-level.directive.ts","../../../projects/ngx-three/src/lib/ngx-three.module.ts","../../../projects/ngx-three/src/lib/component.helpers.ts","../../../projects/ngx-three/src/lib/utils/instanced-scene-utils.ts","../../../projects/ngx-three/src/public-api.ts","../../../projects/ngx-three/src/ngx-three.ts"],"sourcesContent":["import { Subject } from 'rxjs';\n\nexport interface ThSettable {\n  set(...args: any): this;\n  copy?(value: any): this;\n}\n\nexport function isSettable(obj: any): obj is ThSettable {\n  return !!(obj && obj.set); // && obj.copy;\n}\n\n/**\n * tries to apply the new value to the target.\n * if the new value is 'setter arguments' then it uses set on the target.\n * else it tries to use the 'copy' method of the target if available\n * else it return the newValue as new target\n * if newValue is undefined the old target is returned\n *\n * @param target the target for the new value\n * @param newValue the value to be set\n * @returns the new target(value)\n */\nexport function applyValue<T>(target: T, newValue?: any[] | T): T {\n  if (isSettable(target)) {\n    if (newValue === undefined) {\n      return target as T;\n    }\n\n    if (Array.isArray(newValue)) {\n      target.set(...newValue);\n      return target as T;\n    }\n\n    if (target.copy && newValue) {\n      target.copy(newValue);\n      return target as T;\n    }\n\n    // just set the value\n    if (newValue !== undefined) {\n      target.set(newValue);\n      return target;\n    }\n  } else {\n    // apply the value\n    return newValue as T;\n  }\n\n  // nothing to do\n  return target;\n}\n\nexport function isDisposable(obj: any): obj is { dispose: () => void } {\n  if (obj && typeof obj.dispose === 'function') {\n    return true;\n  }\n  return false;\n}\n\n/**\n * compatibility function for checking if a subject is observed\n * works with RxJs 6.x.x and RxJs 7+\n *\n * @param s the subject\n * @returns true if the subject is observed\n */\nexport function isObserved<T = any>(s?: Subject<T>): s is Subject<T> {\n  return (\n    s !== undefined &&\n    (s.observed /* <-- needs at least RxJs 7.x.x */ || s.observers?.length > 0) /* <-- for RxJs < 7.x.x */\n  );\n}\n\n// This can live anywhere in your codebase:\nexport function applyMixins(derivedCtor: any, constructors: any[]) {\n  constructors.forEach((baseCtor) => {\n    Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {\n      Object.defineProperty(\n        derivedCtor.prototype,\n        name,\n        Object.getOwnPropertyDescriptor(baseCtor.prototype, name) || Object.create(null)\n      );\n    });\n  });\n}\n\n// typed changes for ngOnChanges\n\ntype MarkFunctionProperties<Component> = {\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  [Key in keyof Component]: Component[Key] extends Function ? never : Key;\n};\n\ntype ExcludeFunctionPropertyNames<T> = MarkFunctionProperties<T>[keyof T];\n\ntype ExcludeFunctions<T> = Pick<T, ExcludeFunctionPropertyNames<T>>;\n\nexport type NgChanges<Component, Props = ExcludeFunctions<Component>> = {\n  [Key in keyof Props]?: {\n    previousValue: Props[Key];\n    currentValue: Props[Key];\n    firstChange: boolean;\n    isFirstChange(): boolean;\n  };\n};\n","import { Object3D, Event, Object3DEventMap } from 'three';\nimport { applyValue, isSettable } from '../util';\n\nclass Object3DProxyHandler implements ProxyHandler<Object3D> {\n  constructor(target: Object3D) {\n    this.objRef = target;\n  }\n\n  protected objRef: Object3D;\n  protected memberMap = new Map<keyof Object3D, any>();\n  protected children: Object3D[] = [];\n  protected eventListener: { [key: string]: ((event: Event) => void)[] } = {};\n  protected loaded = false;\n\n  get(_target: unknown, p: keyof LazyObject3DProxy, _receiver: any): any {\n    switch (p) {\n      case '__isProxy':\n        return true;\n      case 'applyToObject3D':\n        return this.applyToObject3D;\n      case 'objRef':\n        if (this.loaded) {\n          return this.objRef;\n        } else {\n          return undefined;\n        }\n      case 'add':\n        return this.add;\n      case 'remove':\n        return this.remove;\n      case 'children':\n        return this.objRef ? this.objRef.children : this.children;\n      default: {\n        const objKey = p as keyof Object3D;\n        const value = this.objRef[objKey];\n        if (value !== undefined) {\n          // this is necessary for complex members\n          // (returned by reference, they might be altered, we have to reapply them to the real object )\n          this.memberMap.set(objKey, value);\n        }\n        return value;\n      }\n    }\n  }\n\n  set(_target: unknown, p: keyof LazyObject3DProxy, value: any, _receiver: any): boolean {\n    if (p === 'objRef') {\n      if (value) {\n        this.applyToObject3D(value);\n      }\n      this.loaded = true;\n      this.objRef = value;\n    } else {\n      // store to the member map\n      this.memberMap.set(p as keyof Object3D, value);\n      if (this.objRef) {\n        // and apply to the real object if present\n        (this.objRef as any)[p] = value;\n      }\n    }\n    return true;\n  }\n\n  add = (...object: Object3D[]): this => {\n    if (this.objRef) {\n      this.objRef.add(...object);\n    }\n\n    this.children.push(...object);\n\n    return this;\n  };\n\n  remove = (...object: Object3D[]): this => {\n    if (this.objRef) {\n      this.objRef.remove(...object);\n    }\n\n    for (const obj of object) {\n      const index = this.children.indexOf(obj);\n      if (index >= 0) {\n        this.children = this.children.splice(index, 1);\n      }\n    }\n\n    return this;\n  };\n\n  applyToObject3D = (objRef: Object3D) => {\n    this.memberMap.forEach((value, key) => {\n      const member = (objRef as any)[key];\n      if (isSettable(member)) {\n        applyValue(member, value);\n      } else {\n        (objRef as any)[key] = value;\n      }\n    });\n\n    this.children.forEach((child) => objRef.add(child));\n\n    if (this.objRef?.parent) {\n      const parent = this.objRef?.parent;\n      parent.remove(this.objRef);\n      parent.add(objRef);\n    }\n  };\n\n  /**\n   * Adds a listener to an event type.\n   *\n   * @param type The type of event to listen to.\n   * @param listener The function that gets called when the event is fired.\n   */\n  addEventListener = <T extends Extract<keyof Object3DEventMap, string>>(\n    type: T,\n    listener: (event: Event) => void,\n  ): void => {\n    let arr = this.eventListener[type];\n    if (!arr) {\n      arr = [];\n      this.eventListener[type] = arr;\n    }\n\n    arr.push(listener);\n\n    if (this.objRef) {\n      this.objRef.addEventListener(type, listener);\n    }\n  };\n\n  /**\n   * Removes a listener from an event type.\n   *\n   * @param type The type of the listener that gets removed.\n   * @param listener The listener function that gets removed.\n   */\n  removeEventListener = (type: string, listener: (event: Event) => void): void => {\n    const arr = this.eventListener[type];\n    if (!arr) {\n      return;\n    }\n\n    const index = arr.indexOf(listener);\n    if (index >= 0) {\n      arr.splice(index, 1);\n    }\n  };\n}\n\nexport interface LazyObject3DProxy<TEventMap extends Object3DEventMap = Object3DEventMap> extends Object3D<TEventMap> {\n  // eslint-disable-next-line @typescript-eslint/naming-convention\n  readonly __isProxy?: boolean;\n  objRef?: Object3D;\n  applyToObject3D(real: Object3D): void;\n}\n\nexport function createLazyObject3DProxy<TEventMap extends Object3DEventMap = Object3DEventMap>(\n  target = new Object3D<TEventMap>(),\n): LazyObject3DProxy<TEventMap> {\n  const handler = new Object3DProxyHandler(target);\n  return new Proxy<LazyObject3DProxy<TEventMap>>(handler as unknown as LazyObject3DProxy<TEventMap>, handler);\n}\n\nexport function isLazyObject3dProxy(object: Object3D | LazyObject3DProxy): object is LazyObject3DProxy {\n  return (\n    // eslint-disable-next-line no-underscore-dangle\n    (object as LazyObject3DProxy).__isProxy === true && (object as LazyObject3DProxy).objRef === undefined\n  );\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  Type,\n} from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { EventDispatcher, EventListener, Object3D, Object3DEventMap, Event } from 'three';\nimport { isLazyObject3dProxy } from './loaders/LazyObject3dProxy';\nimport { ThWrapperLifeCycle } from './ThWrapperLifeCycle';\nimport { isDisposable } from './util';\n\nexport interface ThWrapperEventMap<T = Object3D> extends Object3DEventMap {\n  changes: { changes: SimpleChanges };\n  loaded: { object: T };\n  removed: { object: T };\n}\n\n@Component({\n  selector: 'th-abs-wrapper',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ThWrapperBase<T, ARGS = unknown> implements ThWrapperLifeCycle, OnChanges, OnInit, OnDestroy {\n  protected _objRef?: T;\n  protected _objRef$?: ReplaySubject<T>;\n\n  @Input()\n  public autoAddToParent = true;\n\n  @Input()\n  public autoDispose = true;\n\n  @Input()\n  set objRef(ref: T | undefined) {\n    this.applyObjRef(ref);\n  }\n\n  get objRef() {\n    return this._objRef;\n  }\n\n  // emit the changes\n  protected updateEmitter?: EventEmitter<SimpleChanges>;\n\n  constructor() {\n    // nothing to do\n  }\n\n  addToParent(): void {\n    // nothing to do, implement it in a derived class\n  }\n  removeFromParent(): void {\n    // nothing to do, implement it in a derived class\n  }\n\n  @Input()\n  public args?: ARGS;\n\n  protected eventListeners?: { [key: Event['type']]: EventListener<Event, Event['type'], T> };\n  @Input()\n  public set threeEvents(eventMap: { [key: Event['type']]: EventListener<Event, Event['type'], T> } | undefined) {\n    this.removeEvents();\n    this.eventListeners = eventMap;\n    this.applyEvents();\n  }\n\n  public get threeEvents() {\n    return this.eventListeners;\n  }\n\n  @Output()\n  public get onUpdate(): Observable<SimpleChanges> {\n    if (!this.updateEmitter) {\n      this.updateEmitter = new EventEmitter();\n    }\n    return this.updateEmitter;\n  }\n\n  /**\n   * emits the last assigned object ref\n   */\n  @Output()\n  public get objRef$(): Observable<T> {\n    if (!this._objRef$) {\n      this._objRef$ = new ReplaySubject(1);\n    }\n    return this._objRef$;\n  }\n\n  ngOnInit(): void {\n    if (!this.objRef) {\n      this.objRef = this.createThreeInstance(this.args);\n    }\n  }\n\n  // Override this\n  public getType(): Type<any> {\n    throw new Error('derive me');\n  }\n\n  public createThreeInstance(args?: unknown) {\n    if (Array.isArray(args)) {\n      return new (this.getType())(...(args as any[]));\n    } else {\n      return new (this.getType())(args);\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    // console.log('on changes');\n    if (this.objRef && !isLazyObject3dProxy(this.objRef as any)) {\n      // the object is already set and it is no proxy\n\n      // emit the changes\n      this.emitPropertyChanges(changes);\n\n      // TODO: request animation frame\n\n      return;\n    }\n\n    if (!this.objRef) {\n      // no object and no proxy is set --> create an instance\n      this.objRef = this.createThreeInstance(changes.args?.currentValue);\n    }\n\n    // eslint-disable-next-line guard-for-in\n    for (const key in changes) {\n      (this as any)[key] = changes[key].currentValue;\n    }\n    this.emitPropertyChanges(changes);\n  }\n\n  public disposeObjRef() {\n    if (isDisposable(this.objRef)) {\n      this.objRef.dispose();\n    }\n  }\n\n  ngOnDestroy() {\n    this.removeEvents();\n    this.removeFromParent();\n\n    if (this.autoDispose) {\n      this.disposeObjRef();\n    }\n    this.emitRemoveEvent();\n  }\n\n  protected applyObjRef(objRef: T | undefined) {\n    if (this._objRef !== objRef) {\n      this.removeFromParent();\n      this._objRef = objRef;\n      if (this.autoAddToParent) {\n        this.addToParent();\n      }\n    }\n    this.emitObjRefChange();\n  }\n\n  protected emitObjRefChange() {\n    // only emit change if _objRef is no proxy,\n    // and trigger emit over objRef event emitter\n    if (this._objRef && !isLazyObject3dProxy(this._objRef as any)) {\n      (this._objRef as unknown as Object3D<ThWrapperEventMap<T>>).dispatchEvent?.({\n        type: 'loaded',\n        object: this._objRef,\n      });\n      if (this._objRef$) {\n        this._objRef$.next(this._objRef);\n      }\n    }\n  }\n\n  protected emitRemoveEvent() {\n    // only emit change if _objRef is no proxy,\n    // and trigger emit over objRef event emitter\n    if (this._objRef && !isLazyObject3dProxy(this._objRef as any)) {\n      (this._objRef as unknown as Object3D<ThWrapperEventMap<T>>).dispatchEvent?.({\n        type: 'removed',\n        object: this._objRef,\n      });\n      if (this._objRef$) {\n        this._objRef$.next(this._objRef);\n      }\n    }\n  }\n\n  protected emitPropertyChanges(changes: SimpleChanges) {\n    if (this._objRef) {\n      (this._objRef as unknown as EventDispatcher<ThWrapperEventMap<T>>).dispatchEvent?.({ type: 'changes', changes });\n    }\n    if (this.updateEmitter) {\n      this.updateEmitter.next(changes);\n    }\n  }\n\n  private removeEvents() {\n    if (this.eventListeners && this._objRef) {\n      for (const entry of Object.entries(this.eventListeners)) {\n        (this._objRef as any).removeEventListener(entry[0], entry[1]);\n      }\n      this.eventListeners = undefined;\n    }\n  }\n\n  private applyEvents() {\n    if (this.eventListeners && this._objRef) {\n      for (const entry of Object.entries(this.eventListeners)) {\n        (this._objRef as any).addEventListener(entry[0], entry[1]);\n      }\n    }\n  }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { Object3D, Vector3 } from 'three';\nimport { ThWrapperBase } from './ThWrapperBase';\n@Component({\n  selector: 'th-abs-object',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ThObjectBase<T extends Object3D, ARGS = unknown> extends ThWrapperBase<T, ARGS> implements OnInit {\n  public parent!: ThObjectBase<any>;\n\n  public override addToParent() {\n    if (\n      this._objRef &&\n      this.parent.objRef &&\n      (!this._objRef.parent || this._objRef.parent.uuid !== this.parent.objRef.uuid)\n    ) {\n      this.parent.objRef.add(this._objRef);\n    }\n  }\n\n  public override removeFromParent() {\n    this._objRef?.parent?.remove(this._objRef);\n  }\n\n  protected override applyObjRef(objRef: T | undefined) {\n    if (this._objRef !== objRef || this._objRef?.parent?.uuid !== this.parent.objRef.uuid) {\n      this.removeFromParent();\n      this._objRef = objRef;\n      if (this.autoAddToParent) {\n        this.addToParent();\n      }\n    }\n    this.emitObjRefChange();\n  }\n\n  protected attachToParent(newRef?: T, oldRef?: T) {\n    if (!this.parent.objRef || (newRef === oldRef && oldRef?.parent?.uuid === this.parent.objRef.uuid)) {\n      return;\n    }\n\n    // remove old obj from parent\n    if (oldRef && oldRef.parent) {\n      oldRef.parent.remove(oldRef);\n    }\n\n    // add new obj to parent\n    if (newRef && (!newRef.parent || (newRef.parent && newRef.parent.uuid !== this.parent.objRef.uuid))) {\n      this.parent.objRef.add(newRef);\n    }\n  }\n\n  // object 3d methods\n  @Input()\n  public set lookAt(vector: Vector3 | [x: number, y: number, z: number]) {\n    Promise.resolve().then(() => {\n      // execute next microtick, to assume all\n      // position changes already happend,\n      // because lookAt triggers a world matrix calculation\n      if (!this.objRef) {\n        return;\n      }\n      if (Array.isArray(vector)) {\n        this.objRef.lookAt(...vector);\n      } else {\n        this.objRef.lookAt(vector);\n      }\n    });\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  inject,\n} from '@angular/core';\nimport { EulerOrder, Layers, Object3D, Object3DEventMap, Vector3 } from 'three';\nimport { AnimationClip } from 'three/src/animation/AnimationClip.js';\nimport { Material } from 'three/src/materials/Material.js';\nimport { Euler } from 'three/src/math/Euler.js';\nimport { Matrix3 } from 'three/src/math/Matrix3.js';\nimport { Matrix4 } from 'three/src/math/Matrix4.js';\nimport { Quaternion } from 'three/src/math/Quaternion.js';\nimport { ThObjectBase } from '../ThObjectBase';\nimport { applyValue } from '../util';\n\n@Component({\n  selector: 'th-object3D',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [],\n})\nexport class ThObject3D<\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends Object3D<TEventMap> = Object3D<TEventMap>,\n  TARGS = [],\n> extends ThObjectBase<T, TARGS> {\n  parent = inject<ThObject3D>(ThObject3D, { skipSelf: true });\n\n  public getType(): Type<Object3D<TEventMap>> {\n    return Object3D;\n  }\n\n  public get isObject3D(): true | undefined {\n    return this._objRef?.isObject3D;\n  }\n  public get id(): number | undefined {\n    return this._objRef?.id;\n  }\n  @Input()\n  public set uuid(value: string) {\n    if (this._objRef) {\n      this._objRef.uuid = value;\n    }\n  }\n\n  public get uuid(): string | undefined {\n    return this._objRef?.uuid;\n  }\n  @Input()\n  public set name(value: string) {\n    if (this._objRef) {\n      this._objRef.name = value;\n    }\n  }\n\n  public get name(): string | undefined {\n    return this._objRef?.name;\n  }\n  public get type(): string | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set children(value: Object3D[]) {\n    if (this._objRef) {\n      this._objRef.children = value;\n    }\n  }\n\n  public get children(): Object3D[] | undefined {\n    return this._objRef?.children;\n  }\n  @Input()\n  public set up(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      this._objRef.up = applyValue<Vector3>(this._objRef.up, value);\n    }\n  }\n  public get up(): Vector3 | undefined {\n    return this._objRef?.up;\n  }\n  @Input()\n  public set position(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      applyValue<Vector3>(this._objRef.position, value);\n    }\n  }\n  public get position(): Vector3 | undefined {\n    return this._objRef?.position;\n  }\n  @Input()\n  public set rotation(\n    value: Euler | [x: number, y: number, z: number, order?: EulerOrder],\n  ) {\n    if (this._objRef) {\n      applyValue<Euler>(this._objRef.rotation, value);\n    }\n  }\n  public get rotation(): Euler | undefined {\n    return this._objRef?.rotation;\n  }\n  @Input()\n  public set quaternion(\n    value: Quaternion | [x: number, y: number, z: number, w: number],\n  ) {\n    if (this._objRef) {\n      applyValue<Quaternion>(this._objRef.quaternion, value);\n    }\n  }\n  public get quaternion(): Quaternion | undefined {\n    return this._objRef?.quaternion;\n  }\n  @Input()\n  public set scale(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      applyValue<Vector3>(this._objRef.scale, value);\n    }\n  }\n  public get scale(): Vector3 | undefined {\n    return this._objRef?.scale;\n  }\n  @Input()\n  public set modelViewMatrix(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      applyValue<Matrix4>(this._objRef.modelViewMatrix, value);\n    }\n  }\n  public get modelViewMatrix(): Matrix4 | undefined {\n    return this._objRef?.modelViewMatrix;\n  }\n  @Input()\n  public set normalMatrix(\n    value:\n      | Matrix3\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n31: number,\n          n32: number,\n          n33: number,\n        ],\n  ) {\n    if (this._objRef) {\n      applyValue<Matrix3>(this._objRef.normalMatrix, value);\n    }\n  }\n  public get normalMatrix(): Matrix3 | undefined {\n    return this._objRef?.normalMatrix;\n  }\n  @Input()\n  public set matrix(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.matrix = applyValue<Matrix4>(this._objRef.matrix, value);\n    }\n  }\n  public get matrix(): Matrix4 | undefined {\n    return this._objRef?.matrix;\n  }\n  @Input()\n  public set matrixWorld(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.matrixWorld = applyValue<Matrix4>(\n        this._objRef.matrixWorld,\n        value,\n      );\n    }\n  }\n  public get matrixWorld(): Matrix4 | undefined {\n    return this._objRef?.matrixWorld;\n  }\n  @Input()\n  public set matrixAutoUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.matrixAutoUpdate = value;\n    }\n  }\n\n  public get matrixAutoUpdate(): boolean | undefined {\n    return this._objRef?.matrixAutoUpdate;\n  }\n  @Input()\n  public set matrixWorldAutoUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.matrixWorldAutoUpdate = value;\n    }\n  }\n\n  public get matrixWorldAutoUpdate(): boolean | undefined {\n    return this._objRef?.matrixWorldAutoUpdate;\n  }\n  @Input()\n  public set matrixWorldNeedsUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.matrixWorldNeedsUpdate = value;\n    }\n  }\n\n  public get matrixWorldNeedsUpdate(): boolean | undefined {\n    return this._objRef?.matrixWorldNeedsUpdate;\n  }\n  @Input()\n  public set layers(value: Layers | [layer: number]) {\n    if (this._objRef) {\n      this._objRef.layers = applyValue<Layers>(this._objRef.layers, value);\n    }\n  }\n  public get layers(): Layers | undefined {\n    return this._objRef?.layers;\n  }\n  @Input()\n  public set visible(value: boolean) {\n    if (this._objRef) {\n      this._objRef.visible = value;\n    }\n  }\n\n  public get visible(): boolean | undefined {\n    return this._objRef?.visible;\n  }\n  @Input()\n  public set castShadow(value: boolean) {\n    if (this._objRef) {\n      this._objRef.castShadow = value;\n    }\n  }\n\n  public get castShadow(): boolean | undefined {\n    return this._objRef?.castShadow;\n  }\n  @Input()\n  public set receiveShadow(value: boolean) {\n    if (this._objRef) {\n      this._objRef.receiveShadow = value;\n    }\n  }\n\n  public get receiveShadow(): boolean | undefined {\n    return this._objRef?.receiveShadow;\n  }\n  @Input()\n  public set frustumCulled(value: boolean) {\n    if (this._objRef) {\n      this._objRef.frustumCulled = value;\n    }\n  }\n\n  public get frustumCulled(): boolean | undefined {\n    return this._objRef?.frustumCulled;\n  }\n  @Input()\n  public set renderOrder(value: number) {\n    if (this._objRef) {\n      this._objRef.renderOrder = value;\n    }\n  }\n\n  public get renderOrder(): number | undefined {\n    return this._objRef?.renderOrder;\n  }\n  @Input()\n  public set animations(value: AnimationClip[]) {\n    if (this._objRef) {\n      this._objRef.animations = value;\n    }\n  }\n\n  public get animations(): AnimationClip[] | undefined {\n    return this._objRef?.animations;\n  }\n  @Input()\n  public set userData(value: Record<string, any>) {\n    if (this._objRef) {\n      this._objRef.userData = value;\n    }\n  }\n\n  public get userData(): Record<string, any> | undefined {\n    return this._objRef?.userData;\n  }\n  @Input()\n  public set customDepthMaterial(value: Material | undefined) {\n    if (this._objRef) {\n      this._objRef.customDepthMaterial = value;\n    }\n  }\n\n  public get customDepthMaterial(): (Material | undefined) | undefined {\n    return this._objRef?.customDepthMaterial;\n  }\n  @Input()\n  public set customDistanceMaterial(value: Material | undefined) {\n    if (this._objRef) {\n      this._objRef.customDistanceMaterial = value;\n    }\n  }\n\n  public get customDistanceMaterial(): (Material | undefined) | undefined {\n    return this._objRef?.customDistanceMaterial;\n  }\n\n  public static readonly DEFAULT_UP = Object3D.DEFAULT_UP;\n\n  public static readonly DEFAULT_MATRIX_AUTO_UPDATE =\n    Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\n  public static readonly DEFAULT_MATRIX_WORLD_AUTO_UPDATE =\n    Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE;\n}\n","import { inject, Injectable, InjectionToken, OnDestroy } from '@angular/core';\nimport * as THREE from 'three';\nimport { Intersection, Raycaster } from 'three';\nimport { ThCamera } from '../generated/ThCamera';\nimport { RaycasterEventDirective } from './raycaster.events.directive';\nimport { ThObject3D } from '../generated';\n\nexport const enum RaycasterEvent {\n  mouseEnter = 'mouseEnter',\n  mouseExit = 'mouseExit',\n  click = 'click',\n  pointerDown = 'pointerDown',\n  pointerUp = 'pointerUp',\n}\n\n// eslint-disable-next-line no-shadow\nexport interface RaycasterEventMap {\n  mouseEnter: { component: ThObject3D<THREE.Object3DEventMap & RaycasterEventMap> };\n  mouseExit: { component: ThObject3D<THREE.Object3DEventMap & RaycasterEventMap> };\n  click: { component: ThObject3D<THREE.Object3DEventMap & RaycasterEventMap> };\n  pointerDown: { component: ThObject3D<THREE.Object3DEventMap & RaycasterEventMap> };\n  pointerUp: { component: ThObject3D<THREE.Object3DEventMap & RaycasterEventMap> };\n}\n\nexport const RAYCASTER = new InjectionToken<Raycaster>('A reference to the raycaster object', {\n  factory: () => new Raycaster(),\n});\n\ninterface NearestIntersection extends Intersection {\n  target?: RaycasterEventDirective | null;\n}\n\n@Injectable()\nexport class RaycasterService implements OnDestroy {\n  private canvas?: HTMLElement;\n  private raycaster = inject(RAYCASTER);\n  private selected: RaycasterEventDirective | null = null;\n  private enabled = true;\n  private camera?: ThCamera;\n  private groups: Array<RaycasterEventDirective> = [];\n  private paused = false;\n\n  private maxClickDistance = 23;\n\n  private static instanceCnt = 0;\n\n  /**\n   * targets of the pointer down event\n   */\n  private pointerDownEvent?: PointerEvent;\n\n  public readonly nid = RaycasterService.instanceCnt++;\n\n  constructor() {\n    this.onPointerMove = this.onPointerMove.bind(this);\n    this.onPointerDown = this.onPointerDown.bind(this);\n    this.onPointerUp = this.onPointerUp.bind(this);\n  }\n\n  public ngOnDestroy(): void {\n    this.disable();\n    this.unsubscribe();\n  }\n\n  private subscribe() {\n    if (!this.canvas) {\n      throw new Error('missing canvas');\n    }\n    this.canvas.addEventListener('pointermove', this.onPointerMove);\n    this.canvas.addEventListener('pointerdown', this.onPointerDown);\n    this.canvas.addEventListener('pointerup', this.onPointerUp);\n  }\n\n  private unsubscribe() {\n    if (!this.canvas) {\n      throw new Error('missing canvas');\n    }\n    this.canvas.removeEventListener('pointermove', this.onPointerMove);\n    this.canvas.removeEventListener('pointerdown', this.onPointerDown);\n    this.canvas.removeEventListener('pointerup', this.onPointerUp);\n  }\n\n  public enable() {\n    this.enabled = true;\n  }\n\n  public disable() {\n    this.enabled = false;\n  }\n\n  public pause() {\n    this.paused = true;\n  }\n\n  public resume() {\n    this.paused = false;\n  }\n\n  get isEnabled() {\n    return this.enabled;\n  }\n\n  public init(camera: ThCamera, canvas: HTMLElement) {\n    // console.log('Add camera to raycaster', camera);\n    this.camera = camera;\n    this.canvas = canvas;\n    this.subscribe();\n  }\n\n  public addEventTarget(target: RaycasterEventDirective) {\n    // console.log('RaycasterService.addGroup', group.name, group);\n    this.groups.push(target);\n  }\n\n  public removeEventTarget(target: RaycasterEventDirective) {\n    const index = this.groups.indexOf(target);\n    if (index >= 0) {\n      this.groups.splice(index, 1);\n    }\n  }\n\n  private onPointerMove(event: any /*MouseEvent  & { layerX: number, layerY: number}*/) {\n    if (!this.isReady()) {\n      return;\n    }\n    const i = this.getFirstIntersectedGroup(event.layerX, event.layerY, RaycasterEvent.mouseEnter);\n    if (!this.selected || this.selected !== i?.target) {\n      if (this.selected) {\n        this.selected.host.objRef?.dispatchEvent({\n          type: RaycasterEvent.mouseExit,\n          component: this.selected.host,\n        });\n        this.selected.emitOnMouseExit();\n        this.selected = null;\n      }\n      if (i && i.target) {\n        this.selected = i.target;\n        const evt = {\n          type: RaycasterEvent.mouseEnter,\n          component: i.target.host,\n          ...i,\n        };\n        this.selected.host.objRef?.dispatchEvent(evt);\n        this.selected.emitOnMouseEnter(evt);\n      }\n    }\n  }\n\n  private onPointerDown(event: PointerEvent) {\n    this.maxClickDistance = event.width;\n    this.pointerDownEvent = event;\n\n    if (!this.isReady()) {\n      return;\n    }\n\n    const i = this.getFirstIntersectedGroup((event as any).layerX, (event as any).layerY, RaycasterEvent.pointerDown);\n    if (i && i.target && i.target.host.objRef) {\n      const evt = { type: RaycasterEvent.pointerDown, component: i.target.host, ...i };\n      i.target.host.objRef.dispatchEvent(evt);\n      i.target.emitOnPointerDown(evt);\n    }\n  }\n\n  private onPointerUp(event: PointerEvent) {\n    const downEvent = this.pointerDownEvent;\n    this.pointerDownEvent = undefined;\n\n    if (!this.isReady()) {\n      return;\n    }\n\n    // pointer up\n    let i = this.getFirstIntersectedGroup((event as any).layerX, (event as any).layerY, RaycasterEvent.pointerUp);\n    if (i && i.target && i.target.host.objRef) {\n      const evt = { type: RaycasterEvent.pointerUp, component: i.target.host, ...i };\n      i.target.host.objRef.dispatchEvent(evt);\n      i.target.emitOnPointerUp(evt);\n    }\n\n    // click\n    if (this.calcPointerDownUpDinstance(event, downEvent) > this.maxClickDistance) {\n      return;\n    }\n    i = this.getFirstIntersectedGroup((event as any).layerX, (event as any).layerY, RaycasterEvent.click);\n    if (i && i.target && i.target.host.objRef) {\n      const evt = { type: RaycasterEvent.click, component: i.target.host, ...i };\n      i.target.host.objRef.dispatchEvent(evt);\n      i.target.emitOnClick(evt);\n    }\n  }\n\n  private isReady(ignorePaused?: boolean): boolean {\n    return !!(\n      this.enabled &&\n      (ignorePaused || !this.paused) &&\n      this.camera &&\n      this.camera.objRef &&\n      this.groups &&\n      this.groups.length > 0\n    );\n  }\n\n  private calcPointerDownUpDinstance(upEvent: PointerEvent, downEvent?: PointerEvent) {\n    if (!downEvent) {\n      return Number.MAX_VALUE;\n    }\n    const xDist = (upEvent as any).layerX - (downEvent as any).layerX;\n    const yDist = (upEvent as any).layerY - (downEvent as any).layerY;\n    return Math.sqrt(xDist * xDist + yDist * yDist);\n  }\n\n  private getFirstIntersectedGroup(\n    x: number,\n    y: number,\n    event: keyof RaycasterEventMap,\n  ): NearestIntersection | undefined {\n    if (!this.camera || !this.canvas || !this.camera.objRef) {\n      return;\n    }\n    x = (x / this.canvas.clientWidth) * 2 - 1;\n    y = -(y / this.canvas.clientHeight) * 2 + 1;\n    const mouseVector = new THREE.Vector2(x, y);\n    this.raycaster.setFromCamera(mouseVector, this.camera.objRef);\n\n    // loop across all groups. Try to find the group with nearest distance.\n    let nearestIntersection: THREE.Intersection | undefined;\n    let nearestGroup: RaycasterEventDirective | undefined;\n    for (const group of this.groups) {\n      const i = group.host.objRef;\n      if (!group[event] || !i) {\n        continue;\n      }\n      const intersection = this.raycaster.intersectObject(i, true);\n      if (\n        intersection.length > 0 &&\n        (!nearestIntersection || nearestIntersection.distance > intersection[0].distance)\n      ) {\n        nearestIntersection = intersection[0];\n        nearestGroup = group;\n      }\n    }\n\n    // return the group with nearest distance\n    if (nearestGroup && nearestIntersection) {\n      return {\n        target: nearestGroup,\n        ...nearestIntersection,\n      };\n    } else {\n      return undefined;\n    }\n  }\n}\n","import { AfterViewInit, Directive, EventEmitter, OnDestroy, Output, inject } from '@angular/core';\nimport { Intersection, Object3DEventMap } from 'three';\nimport { ThObject3D } from '../generated/ThObject3D';\n\nimport { RaycasterEvent, RaycasterEventMap, RaycasterService } from './raycaster.service';\n\nexport interface RaycasterEmitEvent extends Intersection {\n  type: RaycasterEvent;\n  component: ThObject3D<RaycasterEventMap & Object3DEventMap>;\n}\n\n@Directive({\n  selector: '[onClick], [onMouseEnter], [onMouseExit], [onPointerDown], [onPointerUp]',\n})\nexport class RaycasterEventDirective implements AfterViewInit, OnDestroy {\n  readonly host = inject<ThObject3D<RaycasterEventMap & Object3DEventMap>>(ThObject3D, { host: true });\n  private raycasterService = inject(RaycasterService);\n\n  @Output() get onMouseEnter(): EventEmitter<RaycasterEmitEvent> {\n    if (!this.mouseEnter) {\n      this.mouseEnter = new EventEmitter<RaycasterEmitEvent>();\n    }\n    return this.mouseEnter;\n  }\n  protected mouseEnter?: EventEmitter<RaycasterEmitEvent>;\n\n  @Output() get onMouseExit(): EventEmitter<{\n    component: ThObject3D<Object3DEventMap & RaycasterEventMap>;\n    type: RaycasterEvent;\n  }> {\n    if (!this.mouseExit) {\n      this.mouseExit = new EventEmitter<{\n        component: ThObject3D<Object3DEventMap & RaycasterEventMap>;\n        type: RaycasterEvent;\n      }>();\n    }\n    return this.mouseExit;\n  }\n  protected mouseExit?: EventEmitter<{\n    component: ThObject3D<Object3DEventMap & RaycasterEventMap>;\n    type: RaycasterEvent;\n  }>;\n\n  @Output() get onClick(): EventEmitter<RaycasterEmitEvent> {\n    if (!this.click) {\n      this.click = new EventEmitter<RaycasterEmitEvent>();\n    }\n    return this.click;\n  }\n  protected click?: EventEmitter<RaycasterEmitEvent>;\n\n  @Output() get onPointerDown(): EventEmitter<RaycasterEmitEvent> {\n    if (!this.pointerDown) {\n      this.pointerDown = new EventEmitter<RaycasterEmitEvent>();\n    }\n    return this.pointerDown;\n  }\n  protected pointerDown?: EventEmitter<RaycasterEmitEvent>;\n\n  @Output() get onPointerUp(): EventEmitter<RaycasterEmitEvent> {\n    if (!this.pointerUp) {\n      this.pointerUp = new EventEmitter<RaycasterEmitEvent>();\n    }\n    return this.pointerUp;\n  }\n  protected pointerUp?: EventEmitter<RaycasterEmitEvent>;\n\n  constructor() {\n    this.emitOnMouseEnter = this.emitOnMouseEnter.bind(this);\n    this.emitOnMouseExit = this.emitOnMouseExit.bind(this);\n    this.emitOnClick = this.emitOnClick.bind(this);\n  }\n\n  ngAfterViewInit(): void {\n    this.subscribeEvents();\n  }\n\n  private subscribeEvents() {\n    this.raycasterService.addEventTarget(this);\n  }\n\n  private unSubscribeEvents() {\n    this.raycasterService.removeEventTarget(this);\n  }\n\n  public emitOnMouseExit() {\n    this.mouseExit?.emit({\n      component: this.host,\n      type: RaycasterEvent.mouseExit,\n    });\n  }\n\n  public emitOnMouseEnter(event: RaycasterEmitEvent) {\n    // console.log('RaycasterGroupDirective.onMouseEnter', event);\n    this.mouseEnter?.emit(event);\n  }\n\n  public emitOnClick(event: RaycasterEmitEvent) {\n    // console.log('onClick', event);\n    this.click?.emit(event);\n  }\n\n  public emitOnPointerDown(event: RaycasterEmitEvent) {\n    // console.log('onClick', event);\n    this.pointerDown?.emit(event);\n  }\n\n  public emitOnPointerUp(event: RaycasterEmitEvent) {\n    // console.log('onClick', event);\n    this.pointerUp?.emit(event);\n  }\n\n  ngOnDestroy(): void {\n    this.unSubscribeEvents();\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera, Object3DEventMap, Scene, Vector2 } from 'three';\nimport { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer.js';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-cSS2DObjectGen',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThCSS2DObjectGen) },\n  ],\n})\nexport class ThCSS2DObjectGen<\n  T extends CSS2DObject = CSS2DObject,\n  TARGS = /* element */ HTMLElement,\n> extends ThObject3D<Object3DEventMap, T, TARGS> {\n  public getType(): Type<CSS2DObject> {\n    return CSS2DObject;\n  }\n\n  @Input()\n  public set element(value: HTMLElement) {\n    if (this._objRef) {\n      this._objRef.element = value;\n    }\n  }\n\n  public get element(): HTMLElement | undefined {\n    return this._objRef?.element;\n  }\n  @Input()\n  public set center(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.center = applyValue<Vector2>(this._objRef.center, value);\n    }\n  }\n  public get center(): Vector2 | undefined {\n    return this._objRef?.center;\n  }\n  @Input()\n  public set onBeforeRender(\n    value: (renderer: unknown, scene: Scene, camera: Camera) => void,\n  ) {\n    if (this._objRef) {\n      this._objRef.onBeforeRender = value;\n    }\n  }\n\n  public get onBeforeRender():\n    | ((renderer: unknown, scene: Scene, camera: Camera) => void)\n    | undefined {\n    return this._objRef?.onBeforeRender;\n  }\n  @Input()\n  public set onAfterRender(\n    value: (renderer: unknown, scene: Scene, camera: Camera) => void,\n  ) {\n    if (this._objRef) {\n      this._objRef.onAfterRender = value;\n    }\n  }\n\n  public get onAfterRender():\n    | ((renderer: unknown, scene: Scene, camera: Camera) => void)\n    | undefined {\n    return this._objRef?.onAfterRender;\n  }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport { ChangeDetectionStrategy, Component, ElementRef, forwardRef, inject, Type } from '@angular/core';\nimport { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer.js';\nimport { ThCSS2DObjectGen } from '../ThCSS2DObjectGen';\nimport { ThObject3D } from '../ThObject3D';\n\n@Component({\n  selector: 'th-cSS2DObject',\n  template: '<ng-content/>',\n  styles: [\n    `\n      :host {\n        display: inline-block;\n      }\n    `,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThCSS2DObject) }],\n})\nexport class ThCSS2DObject<\n  T extends CSS2DObject = CSS2DObject,\n  TARGS = /* element */ HTMLElement,\n> extends ThCSS2DObjectGen<T, TARGS> {\n  elementRef = inject(ElementRef);\n\n  public getType(): Type<CSS2DObject> {\n    return CSS2DObject;\n  }\n\n  public override createThreeInstance(args?: unknown) {\n    return super.createThreeInstance(args ?? this.elementRef?.nativeElement);\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera, Object3DEventMap, Scene } from 'three';\nimport { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-cSS3DObjectGen',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThCSS3DObjectGen) },\n  ],\n})\nexport class ThCSS3DObjectGen<\n  T extends CSS3DObject = CSS3DObject,\n  TARGS = /* element */ HTMLElement,\n> extends ThObject3D<Object3DEventMap, T, TARGS> {\n  public getType(): Type<CSS3DObject> {\n    return CSS3DObject;\n  }\n\n  @Input()\n  public set element(value: HTMLElement) {\n    if (this._objRef) {\n      this._objRef.element = value;\n    }\n  }\n\n  public get element(): HTMLElement | undefined {\n    return this._objRef?.element;\n  }\n  @Input()\n  public set onBeforeRender(\n    value: (renderer: unknown, scene: Scene, camera: Camera) => void,\n  ) {\n    if (this._objRef) {\n      this._objRef.onBeforeRender = value;\n    }\n  }\n\n  public get onBeforeRender():\n    | ((renderer: unknown, scene: Scene, camera: Camera) => void)\n    | undefined {\n    return this._objRef?.onBeforeRender;\n  }\n  @Input()\n  public set onAfterRender(\n    value: (renderer: unknown, scene: Scene, camera: Camera) => void,\n  ) {\n    if (this._objRef) {\n      this._objRef.onAfterRender = value;\n    }\n  }\n\n  public get onAfterRender():\n    | ((renderer: unknown, scene: Scene, camera: Camera) => void)\n    | undefined {\n    return this._objRef?.onAfterRender;\n  }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport { ChangeDetectionStrategy, Component, ElementRef, forwardRef, inject, Type } from '@angular/core';\nimport { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer.js';\nimport { ThObject3D } from '../ThObject3D';\nimport { ThCSS3DObjectGen } from '../ThCSS3DObjectGen';\n\n@Component({\n  selector: 'th-cSS3DObject',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styles: [\n    `\n      :host {\n        display: inline-block;\n      }\n    `,\n  ],\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThCSS3DObject) }],\n})\nexport class ThCSS3DObject<\n  T extends CSS3DObject = CSS3DObject,\n  TARGS = /* element */ HTMLElement,\n> extends ThCSS3DObjectGen<T, TARGS> {\n  elementRef = inject(ElementRef);\n\n  public getType(): Type<CSS3DObject> {\n    return CSS3DObject;\n  }\n\n  public override createThreeInstance(args?: unknown) {\n    return super.createThreeInstance(args ?? this.elementRef?.nativeElement);\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera, Layers, Matrix4, Object3DEventMap, Vector4 } from 'three';\nimport { CoordinateSystem } from 'three/src/constants.js';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-camera',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThCamera) }],\n})\nexport class ThCamera<T extends Camera = Camera, TARGS = []> extends ThObject3D<\n  Object3DEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<Camera> {\n    return Camera;\n  }\n\n  public get isCamera(): true | undefined {\n    return this._objRef?.isCamera;\n  }\n  public get type(): (string | 'Camera') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set layers(value: Layers | [layer: number]) {\n    if (this._objRef) {\n      this._objRef.layers = applyValue<Layers>(this._objRef.layers, value);\n    }\n  }\n  public get layers(): Layers | undefined {\n    return this._objRef?.layers;\n  }\n  @Input()\n  public set matrixWorldInverse(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.matrixWorldInverse = applyValue<Matrix4>(\n        this._objRef.matrixWorldInverse,\n        value,\n      );\n    }\n  }\n  public get matrixWorldInverse(): Matrix4 | undefined {\n    return this._objRef?.matrixWorldInverse;\n  }\n  @Input()\n  public set projectionMatrix(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.projectionMatrix = applyValue<Matrix4>(\n        this._objRef.projectionMatrix,\n        value,\n      );\n    }\n  }\n  public get projectionMatrix(): Matrix4 | undefined {\n    return this._objRef?.projectionMatrix;\n  }\n  @Input()\n  public set projectionMatrixInverse(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.projectionMatrixInverse = applyValue<Matrix4>(\n        this._objRef.projectionMatrixInverse,\n        value,\n      );\n    }\n  }\n  public get projectionMatrixInverse(): Matrix4 | undefined {\n    return this._objRef?.projectionMatrixInverse;\n  }\n  @Input()\n  public set coordinateSystem(value: CoordinateSystem) {\n    if (this._objRef) {\n      this._objRef.coordinateSystem = value;\n    }\n  }\n\n  public get coordinateSystem(): CoordinateSystem | undefined {\n    return this._objRef?.coordinateSystem;\n  }\n  @Input()\n  public set viewport(\n    value: Vector4 | [x: number, y: number, z: number, w: number],\n  ) {\n    if (this._objRef) {\n      this._objRef.viewport = applyValue<Vector4 | undefined>(\n        this._objRef.viewport,\n        value,\n      );\n    }\n  }\n  public get viewport(): Vector4 | undefined {\n    return this._objRef?.viewport;\n  }\n  public get reversedDepth(): boolean | undefined {\n    return this._objRef?.reversedDepth;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Color, ColorRepresentation, Euler, EulerOrder, Scene } from 'three';\nimport { Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { Material } from 'three/src/materials/Material.js';\nimport { Fog } from 'three/src/scenes/Fog.js';\nimport { FogExp2 } from 'three/src/scenes/FogExp2.js';\nimport { CubeTexture } from 'three/src/textures/CubeTexture.js';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-scene',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThScene) }],\n})\nexport class ThScene<\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends Scene<TEventMap> = Scene<TEventMap>,\n  TARGS = [],\n> extends ThObject3D<TEventMap, T, TARGS> {\n  public getType(): Type<Scene<TEventMap>> {\n    return Scene;\n  }\n\n  public get isScene(): true | undefined {\n    return this._objRef?.isScene;\n  }\n  @Input()\n  public set type(value: 'Scene') {\n    if (this._objRef) {\n      this._objRef.type = value;\n    }\n  }\n\n  public get type(): 'Scene' | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set fog(value: Fog | FogExp2 | null) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): (Fog | FogExp2 | null) | undefined {\n    return this._objRef?.fog;\n  }\n  @Input()\n  public set backgroundBlurriness(value: number) {\n    if (this._objRef) {\n      this._objRef.backgroundBlurriness = value;\n    }\n  }\n\n  public get backgroundBlurriness(): number | undefined {\n    return this._objRef?.backgroundBlurriness;\n  }\n  @Input()\n  public set backgroundIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.backgroundIntensity = value;\n    }\n  }\n\n  public get backgroundIntensity(): number | undefined {\n    return this._objRef?.backgroundIntensity;\n  }\n  @Input()\n  public set overrideMaterial(value: Material | null) {\n    if (this._objRef) {\n      this._objRef.overrideMaterial = value;\n    }\n  }\n\n  public get overrideMaterial(): (Material | null) | undefined {\n    return this._objRef?.overrideMaterial;\n  }\n  @Input()\n  public set background(\n    value:\n      | Color\n      | Texture\n      | CubeTexture\n      | null\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.background = applyValue<\n        Color | Texture | CubeTexture | null\n      >(this._objRef.background, value);\n    }\n  }\n  public get background(): (Color | Texture | CubeTexture | null) | undefined {\n    return this._objRef?.background;\n  }\n  @Input()\n  public set backgroundRotation(\n    value: Euler | [x: number, y: number, z: number, order?: EulerOrder],\n  ) {\n    if (this._objRef) {\n      this._objRef.backgroundRotation = applyValue<Euler>(\n        this._objRef.backgroundRotation,\n        value,\n      );\n    }\n  }\n  public get backgroundRotation(): Euler | undefined {\n    return this._objRef?.backgroundRotation;\n  }\n  @Input()\n  public set environment(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.environment = value;\n    }\n  }\n\n  public get environment(): (Texture | null) | undefined {\n    return this._objRef?.environment;\n  }\n  @Input()\n  public set environmentIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.environmentIntensity = value;\n    }\n  }\n\n  public get environmentIntensity(): number | undefined {\n    return this._objRef?.environmentIntensity;\n  }\n  @Input()\n  public set environmentRotation(\n    value: Euler | [x: number, y: number, z: number, order?: EulerOrder],\n  ) {\n    if (this._objRef) {\n      this._objRef.environmentRotation = applyValue<Euler>(\n        this._objRef.environmentRotation,\n        value,\n      );\n    }\n  }\n  public get environmentRotation(): Euler | undefined {\n    return this._objRef?.environmentRotation;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  inject,\n  InjectionToken,\n  Input,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport { Color, Object3D, Raycaster, Vector4 } from 'three';\nimport { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';\nimport { RAYCASTER, RaycasterService } from './events/raycaster.service';\nimport { ThCamera } from './generated/ThCamera';\nimport { ThObject3D } from './generated/ThObject3D';\nimport { ThScene } from './generated/ThScene';\nimport { ThEngineService } from './ThEngine.service';\nimport { Renderer } from './renderer/renderer-providers';\n\nexport const HOST_ELEMENT = new InjectionToken<ElementRef<HTMLElement>>('HOST_ELEMENT');\n\n@Component({\n  selector: 'th-view',\n  template: '<ng-content/>',\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThView) },\n    { provide: RAYCASTER, useValue: new Raycaster() },\n    RaycasterService,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ThView implements OnInit {\n  protected engServ = inject(ThEngineService);\n  protected raycaster = inject(RaycasterService);\n\n  public readonly hostElement = inject(HOST_ELEMENT);\n  // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\n  protected _camera?: ThCamera;\n  protected _viewPort?: Vector4 | { x: number; y: number; width: number; height: number };\n\n  protected _effectComposer?: EffectComposer;\n\n  @Input()\n  public scene?: ThScene;\n\n  /**\n   * Emits before the render loop starts for this view (before effectComposer or main render pass, but after setting up the viewPort on the renderer).\n   * It emits for every renderer.\n   * It can be used to modify the scene, camera or renderer before rendering\n   * and to do additional render passes\n   *\n   * @Note onRender is called before this event (and only once for all renderers)\n   */\n  @Output()\n  onCurrentRendererPass = new EventEmitter<{\n    renderer: Renderer;\n    scene: ThScene;\n    camera: ThCamera;\n    engine: ThEngineService;\n  }>();\n\n  @ContentChild(ThScene)\n  public set contentScene(scene: ThScene | undefined) {\n    if (scene) {\n      this.scene = scene;\n    }\n  }\n\n  @Input()\n  public set effectComposer(effectComposer: EffectComposer | undefined) {\n    this._effectComposer = effectComposer;\n    this.configureEffectComposerRenderTarget();\n  }\n\n  public get effectComposer() {\n    return this._effectComposer;\n  }\n\n  @Input()\n  public set camera(camera: ThCamera | undefined) {\n    this._camera = camera;\n    this.initRaycaster();\n  }\n\n  public get camera() {\n    return this._camera;\n  }\n\n  @ContentChild(ThCamera)\n  public set contentCamera(camera: ThCamera<any> | undefined) {\n    if (camera) {\n      this.camera = camera;\n    }\n  }\n\n  // renderer parameters\n  // -----------------------------------------------------------------------------------------------\n  /**\n   * enable / disable shadows\n   */\n  @Input()\n  public shadow?: boolean;\n\n  @Input()\n  public set viewPort(viewPort: Vector4 | { x: number; y: number; width: number; height: number } | undefined) {\n    this._viewPort = viewPort;\n    this.configureEffectComposerRenderTarget();\n  }\n\n  public get viewPort() {\n    return this._viewPort;\n  }\n\n  @Input()\n  public scissor?: Vector4 | { x: number; y: number; width: number; height: number };\n\n  /**\n   * Enable the scissor test. When this is enabled,\n   * only the pixels within the defined scissor area will be affected by further renderer actions.\n   */\n  @Input()\n  public scissorTest?: boolean;\n\n  /**\n   * Sets the clear color\n   */\n  @Input()\n  clearColor?: Color | string | number;\n\n  /**\n   * a float with the current clear alpha. Ranges from 0 to 1.\n   */\n  @Input()\n  clearAlpha?: number;\n  // -----------------------------------------------------------------------------------------------\n\n  // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n  @Output()\n  public readonly onRender = new EventEmitter<{\n    renderer: Renderer[];\n    scene: ThScene;\n    camera: ThCamera;\n  }>();\n\n  ngOnInit(): void {\n    this.initRaycaster();\n  }\n\n  private initRaycaster() {\n    if (this.camera) {\n      this.raycaster.init(this.camera, this.hostElement.nativeElement);\n    }\n  }\n\n  add(_scene: Object3D) {\n    // nothing to do here\n  }\n\n  remove(_scene: Object3D) {\n    // norhing to do\n  }\n\n  private configureEffectComposerRenderTarget() {\n    if (!this.viewPort || !this.effectComposer) {\n      return;\n    } else {\n      let width: number;\n      let height: number;\n      if (this.viewPort instanceof Vector4) {\n        width = this.viewPort.z;\n        height = this.viewPort?.width;\n      } else {\n        width = this.viewPort.width;\n        height = this.viewPort.height;\n      }\n      //TODO: check if pixel ration ha\n      this.effectComposer.setSize(width, height);\n    }\n  }\n}\n","import {\r\n  Directive,\r\n  EmbeddedViewRef,\r\n  InjectionToken,\r\n  Injector,\r\n  Input,\r\n  OnChanges,\r\n  Provider,\r\n  SimpleChanges,\r\n  StaticProvider,\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  inject,\r\n} from '@angular/core';\r\nimport { CSS3DParameters, CSS3DRenderer } from 'three/examples/jsm/renderers/CSS3DRenderer.js';\r\nimport { CSS2DParameters, CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer.js';\r\n\r\nimport { WebGLRenderer, WebGLRendererParameters } from 'three';\r\n\r\nexport type Renderer = WebGLRenderer | CSS3DRenderer | CSS2DRenderer;\r\n\r\nconst RENDERER_DEFAULTS: WebGLRendererParameters = {\r\n  alpha: true, // transparent background\r\n  antialias: true, // smooth edges\r\n  preserveDrawingBuffer: true,\r\n};\r\n\r\nexport type ThRendererParameters = Partial<WebGLRendererParameters>;\r\n\r\nexport const RENDERER_PROVIDERS = new InjectionToken<Renderer[]>('Renderer Providers');\r\nexport const CSS3D_RENDERER = new InjectionToken<CSS3DRenderer>('CSS3DRenderer');\r\nexport const CSS2D_RENDERER = new InjectionToken<CSS2DRenderer>('CSS2DRenderer');\r\nexport const WEBGL_RENDERER = new InjectionToken<WebGLRenderer>('WebGLRenderer');\r\n\r\n@Directive({\r\n  selector:\r\n    // eslint-disable-next-line max-len\r\n    'ng-template[rendererParameters], ng-template[css2dRendererParameters], ng-template[css3dRendererParameters], ng-template[webgpuRendererParameters]',\r\n})\r\nexport class RendererProviderDirective implements OnChanges {\r\n  private viewContainer = inject(ViewContainerRef);\r\n  private templateRef = inject<TemplateRef<unknown>>(TemplateRef);\r\n  private parentInjector = inject(Injector);\r\n\r\n  @Input()\r\n  rendererParameters?: ThRendererParameters;\r\n\r\n  @Input()\r\n  css3DParameters?: CSS3DParameters;\r\n\r\n  @Input()\r\n  css2DParameters?: CSS2DParameters;\r\n\r\n  private view?: EmbeddedViewRef<unknown>;\r\n  private injector?: Injector;\r\n\r\n  public getInjectedRenderers() {\r\n    return this.injector?.get(RENDERER_PROVIDERS);\r\n  }\r\n\r\n  public ngOnChanges(_changes: SimpleChanges) {\r\n    this.createInjector();\r\n    this.createView();\r\n  }\r\n\r\n  private createView() {\r\n    if (this.view) {\r\n      this.viewContainer.clear();\r\n    }\r\n\r\n    this.view = this.viewContainer.createEmbeddedView(this.templateRef, undefined, { injector: this.injector });\r\n  }\r\n\r\n  private createInjector() {\r\n    const providers: StaticProvider[] = [];\r\n    if (this.rendererParameters) {\r\n      providers.push(provideWebGLRenderer(this.rendererParameters));\r\n    }\r\n\r\n    if (this.css3DParameters) {\r\n      providers.push(provideCSS3dRenderer(this.css3DParameters));\r\n    }\r\n\r\n    if (this.css2DParameters) {\r\n      providers.push(provideCSS2dRenderer(this.css2DParameters));\r\n    }\r\n\r\n    this.injector = Injector.create({\r\n      parent: this.parentInjector,\r\n      providers,\r\n    });\r\n  }\r\n}\r\n\r\nexport function provideWebGLRenderer(parameters?: ThRendererParameters) {\r\n  const factory = () => {\r\n    const renderer = new WebGLRenderer({ ...RENDERER_DEFAULTS, ...parameters });\r\n    Object.assign(renderer, { ...RENDERER_DEFAULTS, ...parameters });\r\n    return renderer;\r\n  };\r\n\r\n  const provider: Provider[] = [\r\n    { provide: WEBGL_RENDERER, useFactory: factory },\r\n    {\r\n      provide: RENDERER_PROVIDERS,\r\n      multi: true,\r\n      useExisting: WEBGL_RENDERER,\r\n    },\r\n  ];\r\n  return provider;\r\n}\r\n\r\nexport function provideCSS3dRenderer(parameters?: CSS3DParameters) {\r\n  const provider: Provider[] = [\r\n    {\r\n      provide: CSS3D_RENDERER,\r\n      useFactory: () => {\r\n        const renderer = new CSS3DRenderer(parameters);\r\n        const style = renderer.domElement.style;\r\n        style.position = 'absolute';\r\n        style.top = '0px';\r\n        style.bottom = '0px';\r\n        style.left = '0px';\r\n        style.right = '0px';\r\n        style.overflow = 'hidden';\r\n        return renderer;\r\n      },\r\n    },\r\n    { provide: RENDERER_PROVIDERS, multi: true, useExisting: CSS3D_RENDERER },\r\n  ];\r\n  return provider;\r\n}\r\n\r\nexport function provideCSS2dRenderer(parameters?: CSS2DParameters) {\r\n  const provider: Provider[] = [\r\n    {\r\n      provide: CSS2D_RENDERER,\r\n      useFactory: () => {\r\n        const renderer = new CSS2DRenderer(parameters);\r\n        const style = renderer.domElement.style;\r\n        style.position = 'absolute';\r\n        style.top = '0px';\r\n        style.bottom = '0px';\r\n        style.left = '0px';\r\n        style.right = '0px';\r\n        style.overflow = 'hidden';\r\n        return renderer;\r\n      },\r\n    },\r\n    { provide: RENDERER_PROVIDERS, multi: true, useExisting: CSS2D_RENDERER },\r\n  ];\r\n  return provider;\r\n}\r\n\r\nexport function provideWebGPURenderer(parameters?: WebGLRendererParameters) {\r\n  const provider: Provider[] = [\r\n    { provide: WEBGL_RENDERER, useFactory: () => new WebGLRenderer(parameters) },\r\n    { provide: RENDERER_PROVIDERS, multi: true, useExisting: WEBGL_RENDERER },\r\n  ];\r\n  return provider;\r\n}\r\n","import { EventEmitter, inject, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport * as THREE from 'three';\nimport { Clock, Vector4, WebGLRenderer } from 'three';\nimport { HOST_ELEMENT, ThView } from './ThView';\nimport { isObserved } from './util';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { Renderer, RENDERER_PROVIDERS } from './renderer/renderer-providers';\n\nexport interface RenderState {\n  engine: ThEngineService;\n  delta: number;\n}\n\n@Injectable()\nexport class ThEngineService implements OnDestroy {\n  private ngZone = inject(NgZone);\n\n  public readonly beforeRender$: Observable<RenderState>;\n  public readonly resize$: Observable<{ width: number; height: number }>;\n\n  private readonly hostElement = inject(HOST_ELEMENT);\n  public readonly canvas?: HTMLCanvasElement;\n  public readonly wegblRenderer?: THREE.WebGLRenderer;\n\n  /**\n   * all injected renderers\n   */\n  public readonly renderers: Renderer[];\n\n  private clock = new Clock();\n  private destroyed$ = new Subject<void>();\n  private readonly resizeEmitter = new EventEmitter();\n  private readonly beforeRenderEmitter = new EventEmitter<RenderState>();\n  private views: ThView[] = [];\n\n  private resizeObserver?: ResizeObserver;\n\n  public constructor() {\n    this.beforeRender$ = this.beforeRenderEmitter.pipe(takeUntil(this.destroyed$));\n    this.resize$ = this.resizeEmitter.pipe(takeUntil(this.destroyed$));\n\n    const args = this.initRenderer();\n    this.renderers = args.renderers;\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    this.canvas = args.canvas;\n    this.wegblRenderer = args.mainRenderer as WebGLRenderer;\n\n    this.initResizeObserver();\n  }\n\n  public ngOnDestroy(): void {\n    if (this.resizeObserver && this.hostElement) {\n      this.resizeObserver.unobserve(this.hostElement.nativeElement);\n    }\n\n    this.renderers.forEach((renderer) => {\n      (renderer as unknown as Partial<WebGLRenderer>).dispose?.();\n    });\n  }\n\n  private initResizeObserver() {\n    // We have to run this outside angular zones,\n    // because it could trigger heavy changeDetection cycles.\n    this.ngZone.runOutsideAngular(() => {\n      this.initCanvasSize();\n      if (!this.resizeObserver) {\n        this.resizeObserver = new ResizeObserver(() => {\n          this.resize();\n        });\n      }\n      this.resizeObserver.observe(this.hostElement.nativeElement);\n    });\n  }\n\n  private initCanvasSize() {\n    this.canvas?.style.setProperty('width', '100%');\n    this.canvas?.style.setProperty('height', '100%');\n  }\n\n  private initRenderer() {\n    const renderers = inject<Renderer[]>(RENDERER_PROVIDERS);\n    let canvas: HTMLCanvasElement | undefined;\n    let mainRenderer: Renderer | undefined;\n    for (const renderer of renderers) {\n      if (renderer.domElement instanceof HTMLCanvasElement) {\n        mainRenderer = renderer;\n        canvas = renderer.domElement;\n      }\n    }\n\n    if (!renderers || renderers.length < 1) {\n      throw new Error('missing Canvas Renderer');\n    }\n\n    return {\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      canvas,\n      mainRenderer,\n      renderers,\n    };\n  }\n\n  public setViews(views: ThView[]) {\n    this.views = views;\n  }\n\n  public addView(view: ThView) {\n    this.views.push(view);\n    const canvasDimensions = this.calcRendererSize();\n    if (canvasDimensions) {\n      this.adjustViewDimensions(view, canvasDimensions.width, canvasDimensions.height);\n    }\n  }\n\n  public render(): void {\n    this.beforeRenderEmitter.emit({ engine: this, delta: this.clock.getDelta() });\n    for (const view of this.views) {\n      this.renderView(view);\n    }\n  }\n\n  protected renderView(view: ThView) {\n    const camera = view.camera;\n    const scene = view.scene;\n\n    if (!camera || !scene || !camera.objRef || !scene.objRef) {\n      return;\n    }\n\n    if (isObserved(view.onRender)) {\n      this.ngZone.run(() =>\n        view.onRender.emit({\n          renderer: this.renderers,\n          scene,\n          camera,\n        }),\n      );\n    }\n\n    for (const renderer of this.renderers) {\n      this.applyRendererParametersFromView(view, renderer as Partial<WebGLRenderer>);\n      if (isObserved(view.onCurrentRendererPass)) {\n        this.ngZone.run(() => view.onCurrentRendererPass.emit({ renderer, scene, camera, engine: this }));\n      }\n      if (view.effectComposer && renderer instanceof WebGLRenderer) {\n        // effect composer needs a webgl renderer\n        view.effectComposer.render();\n      } else {\n        renderer.render(scene.objRef, camera.objRef);\n      }\n    }\n  }\n\n  protected applyRendererParametersFromView(view: ThView, renderer: Partial<WebGLRenderer>) {\n    if (view.viewPort && renderer.setViewport) {\n      if (view.viewPort instanceof Vector4) {\n        renderer.setViewport(view.viewPort);\n      } else {\n        renderer.setViewport(view.viewPort.x, view.viewPort.y, view.viewPort.width, view.viewPort.height);\n      }\n    }\n\n    if (view.scissor && renderer.setScissor) {\n      if (view.scissor instanceof Vector4) {\n        renderer.setScissor(view.scissor);\n      } else {\n        renderer.setScissor(view.scissor.x, view.scissor.y, view.scissor.width, view.scissor.height);\n      }\n    }\n\n    if (view.scissorTest !== undefined && renderer.setScissorTest) {\n      renderer.setScissorTest(view.scissorTest);\n    }\n\n    if (view.clearColor && renderer.setClearColor) {\n      renderer.setClearColor(view.clearColor);\n    }\n\n    if (view.clearAlpha !== undefined && renderer.setClearAlpha) {\n      renderer.setClearAlpha(view.clearAlpha);\n    }\n\n    if (view.shadow !== undefined && renderer.shadowMap) {\n      renderer.shadowMap.enabled = true;\n    }\n  }\n\n  public resize() {\n    const { width, height } = this.calcRendererSize();\n\n    // this.wegblRenderer?.setSize(width, height, false);\n    this.renderers?.forEach((renderer) => renderer.setSize(width, height, false));\n\n    for (const view of this.views) {\n      this.adjustViewDimensions(view, width, height);\n    }\n\n    this.resizeEmitter.emit({ width, height });\n\n    return true;\n  }\n\n  protected calcRendererSize() {\n    // const pixelRatio = window.devicePixelRatio;\n    return {\n      width: this.hostElement.nativeElement.clientWidth ?? 0 /* * pixelRatio */,\n      height: this.hostElement.nativeElement.clientHeight ?? 0 /* * pixelRatio */,\n    };\n  }\n\n  protected adjustViewDimensions(view: ThView, width: number, height: number) {\n    if (!view.viewPort) {\n      if (view.camera && (view.camera.objRef as any).aspect) {\n        (view.camera.objRef as any).aspect = width / height;\n        (view.camera.objRef as any).updateProjectionMatrix();\n      }\n\n      view.effectComposer?.setSize(width, height);\n    }\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport { ChangeDetectionStrategy, Component, Input, Type } from '@angular/core';\nimport { Clock, WebGLRenderer, WebGLRenderTarget } from 'three';\nimport { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';\nimport { Pass } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js';\nimport { ThWrapperBase } from '../ThWrapperBase';\n\n@Component({\n  selector: 'th-effectComposerGen',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [],\n})\nexport class ThEffectComposerGen<\n  T extends EffectComposer = EffectComposer,\n  TARGS = [renderer: WebGLRenderer, renderTarget?: WebGLRenderTarget],\n> extends ThWrapperBase<T, TARGS> {\n  public getType(): Type<EffectComposer> {\n    return EffectComposer;\n  }\n\n  @Input()\n  public set renderer(value: WebGLRenderer) {\n    if (this._objRef) {\n      this._objRef.renderer = value;\n    }\n  }\n\n  public get renderer(): WebGLRenderer | undefined {\n    return this._objRef?.renderer;\n  }\n  @Input()\n  public set renderTarget1(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTarget1 = value;\n    }\n  }\n\n  public get renderTarget1(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTarget1;\n  }\n  @Input()\n  public set renderTarget2(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTarget2 = value;\n    }\n  }\n\n  public get renderTarget2(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTarget2;\n  }\n  @Input()\n  public set writeBuffer(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.writeBuffer = value;\n    }\n  }\n\n  public get writeBuffer(): WebGLRenderTarget | undefined {\n    return this._objRef?.writeBuffer;\n  }\n  @Input()\n  public set readBuffer(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.readBuffer = value;\n    }\n  }\n\n  public get readBuffer(): WebGLRenderTarget | undefined {\n    return this._objRef?.readBuffer;\n  }\n  @Input()\n  public set passes(value: Pass[]) {\n    if (this._objRef) {\n      this._objRef.passes = value;\n    }\n  }\n\n  public get passes(): Pass[] | undefined {\n    return this._objRef?.passes;\n  }\n  @Input()\n  public set copyPass(value: ShaderPass) {\n    if (this._objRef) {\n      this._objRef.copyPass = value;\n    }\n  }\n\n  public get copyPass(): ShaderPass | undefined {\n    return this._objRef?.copyPass;\n  }\n  @Input()\n  public set clock(value: Clock) {\n    if (this._objRef) {\n      this._objRef.clock = value;\n    }\n  }\n\n  public get clock(): Clock | undefined {\n    return this._objRef?.clock;\n  }\n  @Input()\n  public set renderToScreen(value: boolean) {\n    if (this._objRef) {\n      this._objRef.renderToScreen = value;\n    }\n  }\n\n  public get renderToScreen(): boolean | undefined {\n    return this._objRef?.renderToScreen;\n  }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { Vector4, WebGLRenderer, WebGLRenderTarget } from 'three';\nimport { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';\nimport { ThEngineService } from '../../ThEngine.service';\nimport { ThView } from '../../ThView';\nimport { ThEffectComposerGen } from '../ThEffectComposerGen';\n\n@Component({\n  selector: 'th-effectComposer',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [],\n})\nexport class ThEffectComposer<\n  T extends EffectComposer = EffectComposer,\n  TARGS extends any[] = [renderer: WebGLRenderer, renderTarget?: WebGLRenderTarget],\n> extends ThEffectComposerGen<T, TARGS> {\n  protected view = inject(ThView);\n  protected engineService = inject(ThEngineService);\n\n  public createThreeInstance(args?: TARGS): EffectComposer {\n    if (!args) {\n      args = new Array(5) as TARGS;\n    }\n\n    args[0] = args[0] ?? this.engineService.wegblRenderer;\n    args[1] = args[1] ?? this.initRenderTarget();\n\n    return super.createThreeInstance(args);\n  }\n\n  private initRenderTarget() {\n    if (!this.view.viewPort) {\n      return;\n    } else {\n      let width: number;\n      let height: number;\n      if (this.view.viewPort instanceof Vector4) {\n        width = this.view.viewPort.z;\n        height = this.view.viewPort?.width;\n      } else {\n        width = this.view.viewPort.width;\n        height = this.view.viewPort.height;\n      }\n      return new WebGLRenderTarget(width, height);\n    }\n  }\n\n  public addToParent() {\n    if (this._objRef) {\n      this.view.effectComposer = this._objRef;\n    }\n  }\n\n  public removeFromParent() {\n    this.view.effectComposer = undefined;\n  }\n}\n","import { ChangeDetectionStrategy, Component, OnInit, inject } from '@angular/core';\nimport { ThEffectComposer } from './generated/overrides/ThEffectComposer';\nimport { Pass } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ThWrapperBase } from './ThWrapperBase';\n@Component({\n  selector: 'th-abs-control',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ThPassBase<T extends Pass = Pass, ARGS = unknown> extends ThWrapperBase<T, ARGS> implements OnInit {\n  protected effectComposer? = inject(ThEffectComposer, { optional: true });\n\n  public addToParent() {\n    if (this._objRef && this.effectComposer && this.effectComposer.objRef) {\n      this.effectComposer.objRef.addPass(this._objRef);\n    }\n  }\n\n  public removeFromParent() {\n    if (this._objRef && this.effectComposer && this.effectComposer.objRef) {\n      this.effectComposer.objRef.removePass(this._objRef);\n    }\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  forwardRef,\n  Input,\n  Type,\n} from '@angular/core';\nimport { Pass } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ThPassBase } from '../ThPassBase';\n\n@Component({\n  selector: 'th-pass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThPassBase, useExisting: forwardRef(() => ThPass) }],\n})\nexport class ThPass<T extends Pass = Pass, TARGS = []> extends ThPassBase<\n  T,\n  TARGS\n> {\n  public getType(): Type<Pass> {\n    return Pass;\n  }\n\n  @Input()\n  public set isPass(value: boolean) {\n    if (this._objRef) {\n      this._objRef.isPass = value;\n    }\n  }\n\n  public get isPass(): boolean | undefined {\n    return this._objRef?.isPass;\n  }\n  @Input()\n  public set enabled(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enabled = value;\n    }\n  }\n\n  public get enabled(): boolean | undefined {\n    return this._objRef?.enabled;\n  }\n  @Input()\n  public set needsSwap(value: boolean) {\n    if (this._objRef) {\n      this._objRef.needsSwap = value;\n    }\n  }\n\n  public get needsSwap(): boolean | undefined {\n    return this._objRef?.needsSwap;\n  }\n  @Input()\n  public set clear(value: boolean) {\n    if (this._objRef) {\n      this._objRef.clear = value;\n    }\n  }\n\n  public get clear(): boolean | undefined {\n    return this._objRef?.clear;\n  }\n  @Input()\n  public set renderToScreen(value: boolean) {\n    if (this._objRef) {\n      this._objRef.renderToScreen = value;\n    }\n  }\n\n  public get renderToScreen(): boolean | undefined {\n    return this._objRef?.renderToScreen;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera, Color, ColorRepresentation, Material, Scene } from 'three';\nimport { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { applyValue } from '../util';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-renderPassGen',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThRenderPassGen) },\n  ],\n})\nexport class ThRenderPassGen<\n  T extends RenderPass = RenderPass,\n  TARGS = [\n    scene: Scene,\n    camera: Camera,\n    overrideMaterial?: Material | null,\n    clearColor?: Color | null,\n    clearAlpha?: number | null,\n  ],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<RenderPass> {\n    return RenderPass;\n  }\n\n  @Input()\n  public set scene(value: Scene) {\n    if (this._objRef) {\n      this._objRef.scene = value;\n    }\n  }\n\n  public get scene(): Scene | undefined {\n    return this._objRef?.scene;\n  }\n  @Input()\n  public set camera(value: Camera) {\n    if (this._objRef) {\n      this._objRef.camera = value;\n    }\n  }\n\n  public get camera(): Camera | undefined {\n    return this._objRef?.camera;\n  }\n  @Input()\n  public set overrideMaterial(value: Material | null) {\n    if (this._objRef) {\n      this._objRef.overrideMaterial = value;\n    }\n  }\n\n  public get overrideMaterial(): (Material | null) | undefined {\n    return this._objRef?.overrideMaterial;\n  }\n  @Input()\n  public set clearColor(\n    value:\n      | Color\n      | null\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.clearColor = applyValue<Color | null>(\n        this._objRef.clearColor,\n        value,\n      );\n    }\n  }\n  public get clearColor(): (Color | null) | undefined {\n    return this._objRef?.clearColor;\n  }\n  @Input()\n  public set clearAlpha(value: number | null) {\n    if (this._objRef) {\n      this._objRef.clearAlpha = value;\n    }\n  }\n\n  public get clearAlpha(): (number | null) | undefined {\n    return this._objRef?.clearAlpha;\n  }\n  @Input()\n  public set clear(value: boolean) {\n    if (this._objRef) {\n      this._objRef.clear = value;\n    }\n  }\n\n  public get clear(): boolean | undefined {\n    return this._objRef?.clear;\n  }\n  @Input()\n  public set clearDepth(value: boolean) {\n    if (this._objRef) {\n      this._objRef.clearDepth = value;\n    }\n  }\n\n  public get clearDepth(): boolean | undefined {\n    return this._objRef?.clearDepth;\n  }\n  @Input()\n  public set needsSwap(value: boolean) {\n    if (this._objRef) {\n      this._objRef.needsSwap = value;\n    }\n  }\n\n  public get needsSwap(): boolean | undefined {\n    return this._objRef?.needsSwap;\n  }\n  public get isRenderPass(): true | undefined {\n    return this._objRef?.isRenderPass;\n  }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport { AfterContentChecked, ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { Camera, Color, Material, Scene } from 'three';\nimport { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js';\nimport { ThPassBase } from '../../ThPassBase';\nimport { ThView } from '../../ThView';\nimport { ThRenderPassGen } from '../ThRenderPassGen';\n\n@Component({\n  selector: 'th-renderPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThPassBase, useExisting: forwardRef(() => ThRenderPass) }],\n})\nexport class ThRenderPass<\n    T extends RenderPass = RenderPass,\n    TARGS extends any[] = [\n      scene: Scene,\n      camera: Camera,\n      overrideMaterial?: Material,\n      clearColor?: Color,\n      clearAlpha?: number,\n    ],\n  >\n  extends ThRenderPassGen<T, TARGS>\n  implements AfterContentChecked\n{\n  private view = inject(ThView);\n\n  public createThreeInstance(args?: TARGS): RenderPass {\n    if (!args) {\n      args = new Array(5) as TARGS;\n    }\n\n    args[0] = args[0] ?? this.view.scene;\n    args[1] = args[1] ?? this.view.camera;\n    args[2] = args[2] ?? this.overrideMaterial;\n    args[3] = args[3] ?? this.clearColor;\n    args[4] = args[4] ?? this.clearAlpha;\n\n    return super.createThreeInstance(args);\n  }\n\n  public ngAfterContentChecked() {\n    if (!this._objRef) {\n      return;\n    }\n\n    if (this.view.scene && this.view.scene.objRef) {\n      this._objRef.scene = this.view.scene.objRef;\n    }\n\n    if (this.view.camera && this.view.camera.objRef) {\n      this._objRef.camera = this.view.camera.objRef;\n    }\n  }\n}\n","import { Injectable, NgZone, OnDestroy, inject } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { RenderState, ThEngineService } from '../ThEngine.service';\n\n@Injectable()\nexport class ThAnimationLoopService implements OnDestroy {\n  private engineService = inject(ThEngineService);\n  private ngZone = inject(NgZone);\n\n  private active = true;\n  private frameId?: number;\n\n  public readonly beforeRender$: Observable<RenderState>;\n  private destroyed$ = new Subject<void>();\n\n  constructor() {\n    this.beforeRender$ = this.engineService.beforeRender$;\n    this.engineService.resize$.pipe(takeUntil(this.destroyed$)).subscribe(() => this.requestAnimationFrame());\n  }\n  ngOnDestroy(): void {\n    this.stop();\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  /**\n   * start the loop\n   */\n  public start() {\n    if (!this.active) {\n      this.active = true;\n      this.requestAnimationFrame();\n    }\n  }\n\n  /**\n   * stop the loop\n   */\n  public stop() {\n    this.active = false;\n    if (this.frameId !== undefined) {\n      cancelAnimationFrame(this.frameId);\n      this.frameId = undefined;\n    }\n  }\n\n  /**\n   *\n   * @returns true if the render loop is active\n   */\n  public isActive() {\n    return this.active;\n  }\n\n  /**\n   * trigger an animation frame request\n   */\n  public requestAnimationFrame() {\n    if (this.frameId === undefined) {\n      this.ngZone.runOutsideAngular(\n        () =>\n          (this.frameId = requestAnimationFrame(() => {\n            this.frameId = undefined;\n            this.engineService.render();\n            if (this.active) {\n              this.requestAnimationFrame();\n            }\n          }))\n      );\n    }\n  }\n}\n","import {\n  AfterContentChecked,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  ElementRef,\n  FactoryProvider,\n  forwardRef,\n  inject,\n  Input,\n  isDevMode,\n  OnInit,\n  QueryList,\n  StaticProvider,\n} from '@angular/core';\nimport { Raycaster, WebGLRenderer } from 'three';\nimport { RAYCASTER, RaycasterService } from './events/raycaster.service';\nimport { ThObject3D } from './generated/ThObject3D';\nimport { ThAnimationLoopService } from './renderer/th-animation-loop.service';\nimport { ThEngineService } from './ThEngine.service';\nimport { HOST_ELEMENT, ThView } from './ThView';\nimport { provideWebGLRenderer, RENDERER_PROVIDERS, WEBGL_RENDERER } from './renderer/renderer-providers';\n\nfunction provideDefaultRenderer(): StaticProvider[] {\n  return [\n    {\n      provide: RENDERER_PROVIDERS,\n      useFactory: () => {\n        const renderers = inject(RENDERER_PROVIDERS, { skipSelf: true, optional: true });\n        if (renderers) {\n          return renderers;\n        }\n        return [(provideWebGLRenderer()[0] as FactoryProvider).useFactory()];\n      },\n    },\n    {\n      provide: WEBGL_RENDERER,\n      useFactory: () => {\n        const webGlRenderer = inject(WEBGL_RENDERER, { skipSelf: true, optional: true });\n        if (webGlRenderer) {\n          return webGlRenderer;\n        }\n        const renderers = inject(RENDERER_PROVIDERS);\n        const renderer = renderers[0];\n        if (renderers.length === 1 && renderer instanceof WebGLRenderer) {\n          return renderer;\n        }\n\n        return undefined;\n      },\n    },\n  ];\n}\n\n@Component({\n  selector: 'th-canvas',\n  styleUrls: ['./ThCanvas.scss'],\n  template: '@if (isDevMode()) {<ng-content ></ng-content>}',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: HOST_ELEMENT, useFactory: () => inject(ElementRef) },\n    { provide: ThObject3D, useExisting: forwardRef(() => ThCanvas) },\n    ThEngineService,\n    ThAnimationLoopService,\n    { provide: RAYCASTER, useValue: new Raycaster() },\n    forwardRef(() => RaycasterService),\n    { provide: ThView, useExisting: forwardRef(() => ThCanvas) },\n    // default provider for webgl renderer\n    provideDefaultRenderer(),\n  ],\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ThCanvas extends ThView implements OnInit, AfterViewInit, AfterContentChecked {\n  protected engServ = inject(ThEngineService);\n  protected raycaster = inject(RaycasterService);\n  protected animationLoop = inject(ThAnimationLoopService);\n  readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  public readonly isDevMode = isDevMode;\n  private static instanceCnt = 0;\n  public readonly nid = ThCanvas.instanceCnt++;\n\n  /**\n   * if true does not use the ThCanvas as view\n   * this is esepcially usefull if you have multiple views\n   * and want to iterate over all of them with *ngFor\n   * use statically (before ngOnInit is triggered)\n   */\n  @Input()\n  public disableDefaultView = false;\n\n  public get obj() {\n    return this;\n  }\n\n  @ContentChildren(ThView)\n  public set views(viewList: QueryList<ThView>) {\n    this.setViews(viewList);\n  }\n\n  public get rendererCanvas() {\n    return this.engServ.canvas;\n  }\n\n  constructor() {\n    super();\n    this.engServ.renderers.forEach((renderer) => this.elementRef.nativeElement.appendChild(renderer.domElement));\n  }\n  ngAfterContentChecked(): void {\n    this.animationLoop.requestAnimationFrame();\n  }\n\n  ngAfterViewInit(): void {\n    this.animationLoop.requestAnimationFrame();\n  }\n\n  public ngOnInit(): void {\n    this.engServ.resize();\n\n    super.ngOnInit();\n    this.setViews();\n  }\n\n  protected setViews(viewList?: QueryList<ThView>) {\n    this.engServ.setViews([]);\n    if (!this.disableDefaultView) {\n      this.engServ.addView(this);\n    }\n    viewList?.forEach((v) => this.engServ.addView(v));\n  }\n}\n","import { ChangeDetectionStrategy, Component, inject, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Controls, EventDispatcher, Object3D } from 'three';\nimport { ThObject3D } from './generated/ThObject3D';\nimport { ThAnimationLoopService } from './renderer/th-animation-loop.service';\nimport { ThCanvas } from './ThCanvas';\nimport { ThWrapperBase } from './ThWrapperBase';\n@Component({\n  selector: 'th-abs-control',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ThControlBase<\n    TEventMap extends object = object,\n    T extends Controls<TEventMap> = Controls<TEventMap>,\n    TARGS = [],\n  >\n  extends ThWrapperBase<T, TARGS>\n  implements OnDestroy\n{\n  protected _camera = inject<ThObject3D<any>>(ThObject3D);\n  protected canvas? = inject(ThCanvas);\n  protected renderLoop = inject(ThAnimationLoopService);\n\n  protected origDispatchEventMethod?: EventDispatcher['dispatchEvent'];\n  protected beforeRenderSubscription?: Subscription;\n\n  @Input()\n  public set domElement(value: HTMLElement) {\n    if (this._objRef) {\n      this._objRef.domElement = value;\n    }\n  }\n\n  public get domElement(): HTMLElement | SVGElement | null | undefined {\n    return this._objRef?.domElement;\n  }\n\n  @Input()\n  public set object(value: Object3D) {\n    if (this._objRef) {\n      this._objRef.object = value;\n    }\n  }\n\n  public get object(): Object3D | undefined {\n    return this._objRef?.object;\n  }\n  @Input()\n  public set enabled(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enabled = value;\n    }\n  }\n\n  public get enabled(): boolean | undefined {\n    return this._objRef?.enabled;\n  }\n\n  public createThreeInstance(args?: Iterable<any>) {\n    if (!args) {\n      args = [this._camera.objRef, this.canvas?.elementRef.nativeElement];\n    }\n    const instance: Partial<EventDispatcher> = super.createThreeInstance(args);\n    this.patchDispatchEvent(instance);\n    this.subscribeControlUpdater(instance as any);\n    return instance;\n  }\n\n  protected patchDispatchEvent(dispatcher: Partial<EventDispatcher>) {\n    if (dispatcher.dispatchEvent) {\n      this.origDispatchEventMethod = dispatcher.dispatchEvent;\n      const origMethod = this.origDispatchEventMethod;\n      dispatcher.dispatchEvent = (event) => {\n        origMethod.call(dispatcher, event);\n        // request an animation frame after an event was emitted;\n        this.renderLoop.requestAnimationFrame();\n      };\n    }\n  }\n\n  public ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this.unpatchDispatchEvent();\n    this.unsubscribeControlUpdater();\n  }\n\n  protected unpatchDispatchEvent() {\n    if (this.origDispatchEventMethod && this._objRef) {\n      (this._objRef as unknown as EventDispatcher).dispatchEvent = this.origDispatchEventMethod;\n    }\n  }\n\n  protected subscribeControlUpdater(control: { update: (delta: number) => void }) {\n    if (control.update !== undefined) {\n      this.beforeRenderSubscription = this.renderLoop.beforeRender$.subscribe((state) => {\n        control.update(state.delta);\n      });\n    }\n  }\n\n  protected unsubscribeControlUpdater() {\n    if (this.beforeRenderSubscription) {\n      this.beforeRenderSubscription.unsubscribe();\n    }\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera } from 'three';\nimport {\n  TransformControls,\n  TransformControlsEventMap,\n  TransformControlsMode,\n} from 'three/examples/jsm/controls/TransformControls.js';\nimport { ThControlBase } from '../ThControlBase';\n\n@Component({\n  selector: 'th-transformControlsGen',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThControlBase,\n      useExisting: forwardRef(() => ThTransformControlsGen),\n    },\n  ],\n})\nexport class ThTransformControlsGen<\n  T extends TransformControls = TransformControls,\n  TARGS = [camera: Camera, domElement?: HTMLElement | SVGElement | null],\n> extends ThControlBase<TransformControlsEventMap, T, TARGS> {\n  public getType(): Type<TransformControls> {\n    return TransformControls;\n  }\n\n  @Input()\n  public set camera(value: Camera) {\n    if (this._objRef) {\n      this._objRef.camera = value;\n    }\n  }\n\n  public get camera(): Camera | undefined {\n    return this._objRef?.camera;\n  }\n  @Input()\n  public set axis(\n    value: 'X' | 'Y' | 'Z' | 'E' | 'XY' | 'YZ' | 'XZ' | 'XYZ' | 'XYZE' | null,\n  ) {\n    if (this._objRef) {\n      this._objRef.axis = value;\n    }\n  }\n\n  public get axis():\n    | ('X' | 'Y' | 'Z' | 'E' | 'XY' | 'YZ' | 'XZ' | 'XYZ' | 'XYZE' | null)\n    | undefined {\n    return this._objRef?.axis;\n  }\n  @Input()\n  public set mode(value: TransformControlsMode) {\n    if (this._objRef) {\n      this._objRef.mode = value;\n    }\n  }\n\n  public get mode(): TransformControlsMode | undefined {\n    return this._objRef?.mode;\n  }\n  @Input()\n  public set translationSnap(value: number | null) {\n    if (this._objRef) {\n      this._objRef.translationSnap = value;\n    }\n  }\n\n  public get translationSnap(): (number | null) | undefined {\n    return this._objRef?.translationSnap;\n  }\n  @Input()\n  public set rotationSnap(value: number | null) {\n    if (this._objRef) {\n      this._objRef.rotationSnap = value;\n    }\n  }\n\n  public get rotationSnap(): (number | null) | undefined {\n    return this._objRef?.rotationSnap;\n  }\n  @Input()\n  public set scaleSnap(value: number | null) {\n    if (this._objRef) {\n      this._objRef.scaleSnap = value;\n    }\n  }\n\n  public get scaleSnap(): (number | null) | undefined {\n    return this._objRef?.scaleSnap;\n  }\n  @Input()\n  public set space(value: 'world' | 'local') {\n    if (this._objRef) {\n      this._objRef.space = value;\n    }\n  }\n\n  public get space(): ('world' | 'local') | undefined {\n    return this._objRef?.space;\n  }\n  @Input()\n  public set size(value: number) {\n    if (this._objRef) {\n      this._objRef.size = value;\n    }\n  }\n\n  public get size(): number | undefined {\n    return this._objRef?.size;\n  }\n  @Input()\n  public set dragging(value: boolean) {\n    if (this._objRef) {\n      this._objRef.dragging = value;\n    }\n  }\n\n  public get dragging(): boolean | undefined {\n    return this._objRef?.dragging;\n  }\n  @Input()\n  public set showX(value: boolean) {\n    if (this._objRef) {\n      this._objRef.showX = value;\n    }\n  }\n\n  public get showX(): boolean | undefined {\n    return this._objRef?.showX;\n  }\n  @Input()\n  public set showY(value: boolean) {\n    if (this._objRef) {\n      this._objRef.showY = value;\n    }\n  }\n\n  public get showY(): boolean | undefined {\n    return this._objRef?.showY;\n  }\n  @Input()\n  public set showZ(value: boolean) {\n    if (this._objRef) {\n      this._objRef.showZ = value;\n    }\n  }\n\n  public get showZ(): boolean | undefined {\n    return this._objRef?.showZ;\n  }\n  @Input()\n  public set minx(value: number) {\n    if (this._objRef) {\n      this._objRef.minx = value;\n    }\n  }\n\n  public get minx(): number | undefined {\n    return this._objRef?.minx;\n  }\n  @Input()\n  public set maxX(value: number) {\n    if (this._objRef) {\n      this._objRef.maxX = value;\n    }\n  }\n\n  public get maxX(): number | undefined {\n    return this._objRef?.maxX;\n  }\n  @Input()\n  public set minY(value: number) {\n    if (this._objRef) {\n      this._objRef.minY = value;\n    }\n  }\n\n  public get minY(): number | undefined {\n    return this._objRef?.minY;\n  }\n  @Input()\n  public set maxY(value: number) {\n    if (this._objRef) {\n      this._objRef.maxY = value;\n    }\n  }\n\n  public get maxY(): number | undefined {\n    return this._objRef?.maxY;\n  }\n  @Input()\n  public set minZ(value: number) {\n    if (this._objRef) {\n      this._objRef.minZ = value;\n    }\n  }\n\n  public get minZ(): number | undefined {\n    return this._objRef?.minZ;\n  }\n  @Input()\n  public set maxZ(value: number) {\n    if (this._objRef) {\n      this._objRef.maxZ = value;\n    }\n  }\n\n  public get maxZ(): number | undefined {\n    return this._objRef?.maxZ;\n  }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix,  */\nimport { ChangeDetectionStrategy, Component, forwardRef, Input, OnDestroy, Type, inject } from '@angular/core';\nimport { Camera, Object3D } from 'three';\nimport { TransformControls } from 'three/examples/jsm/controls/TransformControls.js';\nimport { ThControlBase } from '../../ThControlBase';\nimport { ThTransformControlsGen } from '../ThTransformControlsGen';\nimport { ThScene } from '../ThScene';\n\n@Component({\n  selector: 'th-transformControls',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThControlBase,\n      useExisting: forwardRef(() => ThTransformControls),\n    },\n  ],\n})\nexport class ThTransformControls<\n    T extends TransformControls = TransformControls,\n    TARGS = [object: Camera, domElement?: HTMLElement],\n  >\n  extends ThTransformControlsGen<T, TARGS>\n  implements OnDestroy\n{\n  protected scene = inject(ThScene);\n\n  private targetObject: Object3D | undefined;\n\n  public getType(): Type<TransformControls> {\n    return TransformControls;\n  }\n\n  @Input()\n  public set object(value: Object3D | undefined) {\n    if (this._objRef) {\n      this.removeObjectListeners();\n      this.targetObject = value;\n      this.addObjectListeners();\n      if (value) {\n        this.objectAdded();\n      } else {\n        this.objectRemoved();\n      }\n    }\n  }\n\n  protected objectAdded = () => {\n    if (this.objRef && this.targetObject != null && this.targetObject.parent) {\n      this.objRef.attach(this.targetObject);\n    }\n  };\n\n  protected objectRemoved = () => {\n    this._objRef?.detach();\n  };\n\n  public addToParent(): void {\n    const helper = this.objRef?.getHelper();\n    if (helper) {\n      this.scene?.objRef?.add(helper);\n    }\n  }\n\n  public removeFromParent(): void {\n    if (this._objRef) {\n      this.scene?.objRef?.remove(this._objRef.object);\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.removeObjectListeners();\n    this.objectRemoved();\n    this.targetObject = undefined;\n  }\n\n  protected removeObjectListeners(): void {\n    if (this.targetObject) {\n      this.targetObject.removeEventListener('added', this.objectAdded);\n      this.targetObject.removeEventListener('removed', this.objectRemoved);\n    }\n  }\n\n  protected addObjectListeners(): void {\n    this.targetObject?.addEventListener('added', this.objectAdded);\n    this.targetObject?.addEventListener('removed', this.objectRemoved);\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ShaderMaterial } from 'three';\nimport { AfterimagePass } from 'three/examples/jsm/postprocessing/AfterimagePass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-afterimagePass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThAfterimagePass) },\n  ],\n})\nexport class ThAfterimagePass<\n  T extends AfterimagePass = AfterimagePass,\n  TARGS = /* damp? */ number,\n> extends ThPass<T, TARGS> {\n  public getType(): Type<AfterimagePass> {\n    return AfterimagePass;\n  }\n\n  @Input()\n  public set uniforms(map: { [name: string]: { value: any } }) {\n    if (this._objRef) {\n      Object.assign(this._objRef.uniforms, map);\n    }\n  }\n\n  public get uniforms(): { [name: string]: { value: any } } | undefined {\n    return this._objRef?.uniforms as\n      | { [name: string]: { value: any } }\n      | undefined;\n  }\n  @Input()\n  public set compFsMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.compFsMaterial = value;\n    }\n  }\n\n  public get compFsMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.compFsMaterial;\n  }\n  @Input()\n  public set copyFsMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.copyFsMaterial = value;\n    }\n  }\n\n  public get copyFsMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.copyFsMaterial;\n  }\n  public get damp(): number | undefined {\n    return this._objRef?.damp;\n  }\n  @Input()\n  public set damp(value: number) {\n    if (this._objRef) {\n      this._objRef.damp = value;\n    }\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  forwardRef,\n} from '@angular/core';\nimport { Color, ColorRepresentation, Light, LightEventMap } from 'three';\nimport { LightShadow } from 'three/src/lights/LightShadow.js';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-light',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThLight) }],\n})\nexport abstract class ThLight<\n  TShadowSupport extends LightShadow | undefined = LightShadow | undefined,\n  T extends Light<TShadowSupport> = Light<TShadowSupport>,\n  TARGS = [color?: ColorRepresentation, intensity?: number],\n> extends ThObject3D<LightEventMap, T, TARGS> {\n  public get isLight(): true | undefined {\n    return this._objRef?.isLight;\n  }\n  public get type(): (string | 'Light') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set intensity(value: number) {\n    if (this._objRef) {\n      this._objRef.intensity = value;\n    }\n  }\n\n  public get intensity(): number | undefined {\n    return this._objRef?.intensity;\n  }\n  @Input()\n  public set shadow(value: TShadowSupport) {\n    if (this._objRef) {\n      this._objRef.shadow = value;\n    }\n  }\n\n  public get shadow(): TShadowSupport | undefined {\n    return this._objRef?.shadow;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { AmbientLight } from 'three';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { ThLight } from './ThLight';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-ambientLight',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThAmbientLight) },\n  ],\n})\nexport class ThAmbientLight<\n  T extends AmbientLight = AmbientLight,\n  TARGS = [color?: ColorRepresentation, intensity?: number],\n> extends ThLight<undefined, T, TARGS> {\n  public getType(): Type<AmbientLight> {\n    return AmbientLight;\n  }\n\n  public get isAmbientLight(): true | undefined {\n    return this._objRef?.isAmbientLight;\n  }\n  public get type(): (string | 'AmbientLight') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera, Scene } from 'three';\nimport {\n  ArcballControls,\n  ArcballControlsEventMap,\n} from 'three/examples/jsm/controls/ArcballControls.js';\nimport { ThControlBase } from '../ThControlBase';\n\n@Component({\n  selector: 'th-arcballControls',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThControlBase,\n      useExisting: forwardRef(() => ThArcballControls),\n    },\n  ],\n})\nexport class ThArcballControls<\n  T extends ArcballControls = ArcballControls,\n  TARGS = [\n    camera: Camera,\n    domElement?: HTMLElement | SVGElement | null,\n    scene?: Scene | null,\n  ],\n> extends ThControlBase<ArcballControlsEventMap, T, TARGS> {\n  public getType(): Type<ArcballControls> {\n    return ArcballControls;\n  }\n\n  @Input()\n  public set scene(value: Scene | null) {\n    if (this._objRef) {\n      this._objRef.scene = value;\n    }\n  }\n\n  public get scene(): (Scene | null) | undefined {\n    return this._objRef?.scene;\n  }\n  @Input()\n  public set radiusFactor(value: number) {\n    if (this._objRef) {\n      this._objRef.radiusFactor = value;\n    }\n  }\n\n  public get radiusFactor(): number | undefined {\n    return this._objRef?.radiusFactor;\n  }\n  @Input()\n  public set focusAnimationTime(value: number) {\n    if (this._objRef) {\n      this._objRef.focusAnimationTime = value;\n    }\n  }\n\n  public get focusAnimationTime(): number | undefined {\n    return this._objRef?.focusAnimationTime;\n  }\n  @Input()\n  public set adjustNearFar(value: boolean) {\n    if (this._objRef) {\n      this._objRef.adjustNearFar = value;\n    }\n  }\n\n  public get adjustNearFar(): boolean | undefined {\n    return this._objRef?.adjustNearFar;\n  }\n  @Input()\n  public set scaleFactor(value: number) {\n    if (this._objRef) {\n      this._objRef.scaleFactor = value;\n    }\n  }\n\n  public get scaleFactor(): number | undefined {\n    return this._objRef?.scaleFactor;\n  }\n  @Input()\n  public set dampingFactor(value: number) {\n    if (this._objRef) {\n      this._objRef.dampingFactor = value;\n    }\n  }\n\n  public get dampingFactor(): number | undefined {\n    return this._objRef?.dampingFactor;\n  }\n  @Input()\n  public set wMax(value: number) {\n    if (this._objRef) {\n      this._objRef.wMax = value;\n    }\n  }\n\n  public get wMax(): number | undefined {\n    return this._objRef?.wMax;\n  }\n  @Input()\n  public set enableAnimations(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enableAnimations = value;\n    }\n  }\n\n  public get enableAnimations(): boolean | undefined {\n    return this._objRef?.enableAnimations;\n  }\n  @Input()\n  public set enableFocus(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enableFocus = value;\n    }\n  }\n\n  public get enableFocus(): boolean | undefined {\n    return this._objRef?.enableFocus;\n  }\n  @Input()\n  public set enableGrid(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enableGrid = value;\n    }\n  }\n\n  public get enableGrid(): boolean | undefined {\n    return this._objRef?.enableGrid;\n  }\n  @Input()\n  public set cursorZoom(value: boolean) {\n    if (this._objRef) {\n      this._objRef.cursorZoom = value;\n    }\n  }\n\n  public get cursorZoom(): boolean | undefined {\n    return this._objRef?.cursorZoom;\n  }\n  @Input()\n  public set rotateSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.rotateSpeed = value;\n    }\n  }\n\n  public get rotateSpeed(): number | undefined {\n    return this._objRef?.rotateSpeed;\n  }\n  @Input()\n  public set enablePan(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enablePan = value;\n    }\n  }\n\n  public get enablePan(): boolean | undefined {\n    return this._objRef?.enablePan;\n  }\n  @Input()\n  public set enableRotate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enableRotate = value;\n    }\n  }\n\n  public get enableRotate(): boolean | undefined {\n    return this._objRef?.enableRotate;\n  }\n  @Input()\n  public set enableZoom(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enableZoom = value;\n    }\n  }\n\n  public get enableZoom(): boolean | undefined {\n    return this._objRef?.enableZoom;\n  }\n  @Input()\n  public set minDistance(value: number) {\n    if (this._objRef) {\n      this._objRef.minDistance = value;\n    }\n  }\n\n  public get minDistance(): number | undefined {\n    return this._objRef?.minDistance;\n  }\n  @Input()\n  public set maxDistance(value: number) {\n    if (this._objRef) {\n      this._objRef.maxDistance = value;\n    }\n  }\n\n  public get maxDistance(): number | undefined {\n    return this._objRef?.maxDistance;\n  }\n  @Input()\n  public set minZoom(value: number) {\n    if (this._objRef) {\n      this._objRef.minZoom = value;\n    }\n  }\n\n  public get minZoom(): number | undefined {\n    return this._objRef?.minZoom;\n  }\n  @Input()\n  public set maxZoom(value: number) {\n    if (this._objRef) {\n      this._objRef.maxZoom = value;\n    }\n  }\n\n  public get maxZoom(): number | undefined {\n    return this._objRef?.maxZoom;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { PerspectiveCamera } from 'three';\nimport { ThCamera } from './ThCamera';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-perspectiveCamera',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThPerspectiveCamera) },\n    { provide: ThCamera, useExisting: forwardRef(() => ThPerspectiveCamera) },\n  ],\n})\nexport class ThPerspectiveCamera<\n  T extends PerspectiveCamera = PerspectiveCamera,\n  TARGS = [fov?: number, aspect?: number, near?: number, far?: number],\n> extends ThCamera<T, TARGS> {\n  public getType(): Type<PerspectiveCamera> {\n    return PerspectiveCamera;\n  }\n\n  public get isPerspectiveCamera(): true | undefined {\n    return this._objRef?.isPerspectiveCamera;\n  }\n  public get type(): (string | 'PerspectiveCamera') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set zoom(value: number) {\n    if (this._objRef) {\n      this._objRef.zoom = value;\n    }\n  }\n\n  public get zoom(): number | undefined {\n    return this._objRef?.zoom;\n  }\n  @Input()\n  public set fov(value: number) {\n    if (this._objRef) {\n      this._objRef.fov = value;\n    }\n  }\n\n  public get fov(): number | undefined {\n    return this._objRef?.fov;\n  }\n  @Input()\n  public set aspect(value: number) {\n    if (this._objRef) {\n      this._objRef.aspect = value;\n    }\n  }\n\n  public get aspect(): number | undefined {\n    return this._objRef?.aspect;\n  }\n  @Input()\n  public set near(value: number) {\n    if (this._objRef) {\n      this._objRef.near = value;\n    }\n  }\n\n  public get near(): number | undefined {\n    return this._objRef?.near;\n  }\n  @Input()\n  public set far(value: number) {\n    if (this._objRef) {\n      this._objRef.far = value;\n    }\n  }\n\n  public get far(): number | undefined {\n    return this._objRef?.far;\n  }\n  @Input()\n  public set focus(value: number) {\n    if (this._objRef) {\n      this._objRef.focus = value;\n    }\n  }\n\n  public get focus(): number | undefined {\n    return this._objRef?.focus;\n  }\n  @Input()\n  public set view(\n    value: null | {\n      enabled: boolean;\n      fullWidth: number;\n      fullHeight: number;\n      offsetX: number;\n      offsetY: number;\n      width: number;\n      height: number;\n    },\n  ) {\n    if (this._objRef) {\n      this._objRef.view = value;\n    }\n  }\n\n  public get view():\n    | (null | {\n        enabled: boolean;\n        fullWidth: number;\n        fullHeight: number;\n        offsetX: number;\n        offsetY: number;\n        width: number;\n        height: number;\n      })\n    | undefined {\n    return this._objRef?.view;\n  }\n  @Input()\n  public set filmGauge(value: number) {\n    if (this._objRef) {\n      this._objRef.filmGauge = value;\n    }\n  }\n\n  public get filmGauge(): number | undefined {\n    return this._objRef?.filmGauge;\n  }\n  @Input()\n  public set filmOffset(value: number) {\n    if (this._objRef) {\n      this._objRef.filmOffset = value;\n    }\n  }\n\n  public get filmOffset(): number | undefined {\n    return this._objRef?.filmOffset;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ArrayCamera } from 'three';\nimport { PerspectiveCamera } from 'three/src/cameras/PerspectiveCamera.js';\nimport { ThCamera } from './ThCamera';\nimport { ThObject3D } from './ThObject3D';\nimport { ThPerspectiveCamera } from './ThPerspectiveCamera';\n\n@Component({\n  selector: 'th-arrayCamera',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThArrayCamera) },\n    { provide: ThCamera, useExisting: forwardRef(() => ThArrayCamera) },\n  ],\n})\nexport class ThArrayCamera<\n  T extends ArrayCamera = ArrayCamera,\n  TARGS = /* cameras? */ PerspectiveCamera[],\n> extends ThPerspectiveCamera<T, TARGS> {\n  public getType(): Type<ArrayCamera> {\n    return ArrayCamera;\n  }\n\n  public get isArrayCamera(): true | undefined {\n    return this._objRef?.isArrayCamera;\n  }\n  @Input()\n  public set isMultiViewCamera(value: boolean) {\n    if (this._objRef) {\n      this._objRef.isMultiViewCamera = value;\n    }\n  }\n\n  public get isMultiViewCamera(): boolean | undefined {\n    return this._objRef?.isMultiViewCamera;\n  }\n  @Input()\n  public set cameras(value: PerspectiveCamera[]) {\n    if (this._objRef) {\n      this._objRef.cameras = value;\n    }\n  }\n\n  public get cameras(): PerspectiveCamera[] | undefined {\n    return this._objRef?.cameras;\n  }\n  @Input()\n  public set index(value: number) {\n    if (this._objRef) {\n      this._objRef.index = value;\n    }\n  }\n\n  public get index(): number | undefined {\n    return this._objRef?.index;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ArrowHelper, Object3DEventMap } from 'three';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { Line } from 'three/src/objects/Line.js';\nimport { Mesh } from 'three/src/objects/Mesh.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-arrowHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThArrowHelper) },\n  ],\n})\nexport class ThArrowHelper<\n  T extends ArrowHelper = ArrowHelper,\n  TARGS = [\n    dir?: Vector3,\n    origin?: Vector3,\n    length?: number,\n    color?: ColorRepresentation,\n    headLength?: number,\n    headWidth?: number,\n  ],\n> extends ThObject3D<Object3DEventMap, T, TARGS> {\n  public getType(): Type<ArrowHelper> {\n    return ArrowHelper;\n  }\n\n  public get type(): (string | 'ArrowHelper') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set line(value: Line) {\n    if (this._objRef) {\n      this._objRef.line = value;\n    }\n  }\n\n  public get line(): Line | undefined {\n    return this._objRef?.line;\n  }\n  @Input()\n  public set cone(value: Mesh) {\n    if (this._objRef) {\n      this._objRef.cone = value;\n    }\n  }\n\n  public get cone(): Mesh | undefined {\n    return this._objRef?.cone;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Audio, Object3DEventMap } from 'three';\nimport { AudioContext } from 'three/src/audio/AudioContext.js';\nimport { AudioListener } from 'three/src/audio/AudioListener.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-audio',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThAudio) }],\n})\nexport class ThAudio<\n  NodeType extends AudioNode = GainNode,\n  T extends Audio<NodeType> = Audio<NodeType>,\n  TARGS = /* listener */ AudioListener,\n> extends ThObject3D<Object3DEventMap, T, TARGS> {\n  public getType(): Type<Audio<NodeType>> {\n    return Audio;\n  }\n\n  public get type(): (string | 'Audio') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set listener(value: AudioListener) {\n    if (this._objRef) {\n      this._objRef.listener = value;\n    }\n  }\n\n  public get listener(): AudioListener | undefined {\n    return this._objRef?.listener;\n  }\n  @Input()\n  public set context(value: AudioContext) {\n    if (this._objRef) {\n      this._objRef.context = value;\n    }\n  }\n\n  public get context(): AudioContext | undefined {\n    return this._objRef?.context;\n  }\n  @Input()\n  public set gain(value: GainNode) {\n    if (this._objRef) {\n      this._objRef.gain = value;\n    }\n  }\n\n  public get gain(): GainNode | undefined {\n    return this._objRef?.gain;\n  }\n  @Input()\n  public set autoplay(value: boolean) {\n    if (this._objRef) {\n      this._objRef.autoplay = value;\n    }\n  }\n\n  public get autoplay(): boolean | undefined {\n    return this._objRef?.autoplay;\n  }\n  @Input()\n  public set buffer(value: AudioBuffer | null) {\n    if (this._objRef) {\n      this._objRef.buffer = value;\n    }\n  }\n\n  public get buffer(): (AudioBuffer | null) | undefined {\n    return this._objRef?.buffer;\n  }\n  @Input()\n  public set detune(value: number) {\n    if (this._objRef) {\n      this._objRef.detune = value;\n    }\n  }\n\n  public get detune(): number | undefined {\n    return this._objRef?.detune;\n  }\n  @Input()\n  public set loop(value: boolean) {\n    if (this._objRef) {\n      this._objRef.loop = value;\n    }\n  }\n\n  public get loop(): boolean | undefined {\n    return this._objRef?.loop;\n  }\n  @Input()\n  public set loopStart(value: number) {\n    if (this._objRef) {\n      this._objRef.loopStart = value;\n    }\n  }\n\n  public get loopStart(): number | undefined {\n    return this._objRef?.loopStart;\n  }\n  @Input()\n  public set loopEnd(value: number) {\n    if (this._objRef) {\n      this._objRef.loopEnd = value;\n    }\n  }\n\n  public get loopEnd(): number | undefined {\n    return this._objRef?.loopEnd;\n  }\n  @Input()\n  public set offset(value: number) {\n    if (this._objRef) {\n      this._objRef.offset = value;\n    }\n  }\n\n  public get offset(): number | undefined {\n    return this._objRef?.offset;\n  }\n  @Input()\n  public set duration(value: number | undefined) {\n    if (this._objRef) {\n      this._objRef.duration = value;\n    }\n  }\n\n  public get duration(): (number | undefined) | undefined {\n    return this._objRef?.duration;\n  }\n  @Input()\n  public set playbackRate(value: number) {\n    if (this._objRef) {\n      this._objRef.playbackRate = value;\n    }\n  }\n\n  public get playbackRate(): number | undefined {\n    return this._objRef?.playbackRate;\n  }\n  @Input()\n  public set isPlaying(value: boolean) {\n    if (this._objRef) {\n      this._objRef.isPlaying = value;\n    }\n  }\n\n  public get isPlaying(): boolean | undefined {\n    return this._objRef?.isPlaying;\n  }\n  @Input()\n  public set hasPlaybackControl(value: boolean) {\n    if (this._objRef) {\n      this._objRef.hasPlaybackControl = value;\n    }\n  }\n\n  public get hasPlaybackControl(): boolean | undefined {\n    return this._objRef?.hasPlaybackControl;\n  }\n  @Input()\n  public set sourceType(value: string) {\n    if (this._objRef) {\n      this._objRef.sourceType = value;\n    }\n  }\n\n  public get sourceType(): string | undefined {\n    return this._objRef?.sourceType;\n  }\n  @Input()\n  public set source(value: AudioScheduledSourceNode | null) {\n    if (this._objRef) {\n      this._objRef.source = value;\n    }\n  }\n\n  public get source(): (AudioScheduledSourceNode | null) | undefined {\n    return this._objRef?.source;\n  }\n  @Input()\n  public set filters(value: AudioNode[]) {\n    if (this._objRef) {\n      this._objRef.filters = value;\n    }\n  }\n\n  public get filters(): AudioNode[] | undefined {\n    return this._objRef?.filters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { AudioListener, Object3DEventMap } from 'three';\nimport { AudioContext } from 'three/src/audio/AudioContext.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-audioListener',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThAudioListener) },\n  ],\n})\nexport class ThAudioListener<\n  T extends AudioListener = AudioListener,\n  TARGS = [],\n> extends ThObject3D<Object3DEventMap, T, TARGS> {\n  public getType(): Type<AudioListener> {\n    return AudioListener;\n  }\n\n  public get type(): (string | 'AudioListener') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set context(value: AudioContext) {\n    if (this._objRef) {\n      this._objRef.context = value;\n    }\n  }\n\n  public get context(): AudioContext | undefined {\n    return this._objRef?.context;\n  }\n  @Input()\n  public set gain(value: GainNode) {\n    if (this._objRef) {\n      this._objRef.gain = value;\n    }\n  }\n\n  public get gain(): GainNode | undefined {\n    return this._objRef?.gain;\n  }\n  @Input()\n  public set filter(value: AudioNode) {\n    if (this._objRef) {\n      this._objRef.filter = value;\n    }\n  }\n\n  public get filter(): AudioNode | undefined {\n    return this._objRef?.filter;\n  }\n  @Input()\n  public set timeDelta(value: number) {\n    if (this._objRef) {\n      this._objRef.timeDelta = value;\n    }\n  }\n\n  public get timeDelta(): number | undefined {\n    return this._objRef?.timeDelta;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Line } from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { Material } from 'three/src/materials/Material.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-line',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThLine) }],\n})\nexport class ThLine<\n  TGeometry extends BufferGeometry = BufferGeometry,\n  TMaterial extends Material | Material[] = Material | Material[],\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends Line<TGeometry, TMaterial, TEventMap> = Line<\n    TGeometry,\n    TMaterial,\n    TEventMap\n  >,\n  TARGS = [geometry?: TGeometry, material?: TMaterial],\n> extends ThObject3D<TEventMap, T, TARGS> {\n  public getType(): Type<Line<TGeometry, TMaterial, TEventMap>> {\n    return Line;\n  }\n\n  public get isLine(): true | undefined {\n    return this._objRef?.isLine;\n  }\n  public get type(): (string | 'Line') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set geometry(value: TGeometry) {\n    if (this._objRef) {\n      this._objRef.geometry = value;\n    }\n  }\n\n  public get geometry(): TGeometry | undefined {\n    return this._objRef?.geometry;\n  }\n  @Input()\n  public set material(value: TMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): TMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set morphTargetInfluences(value: number[] | undefined) {\n    if (this._objRef) {\n      this._objRef.morphTargetInfluences = value;\n    }\n  }\n\n  public get morphTargetInfluences(): (number[] | undefined) | undefined {\n    return this._objRef?.morphTargetInfluences;\n  }\n  @Input()\n  public set morphTargetDictionary(\n    value: { [key: string]: number } | undefined,\n  ) {\n    if (this._objRef) {\n      this._objRef.morphTargetDictionary = value;\n    }\n  }\n\n  public get morphTargetDictionary():\n    | ({ [key: string]: number } | undefined)\n    | undefined {\n    return this._objRef?.morphTargetDictionary;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { LineSegments } from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { Material } from 'three/src/materials/Material.js';\nimport { ThLine } from './ThLine';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-lineSegments',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThLineSegments) },\n  ],\n})\nexport class ThLineSegments<\n  TGeometry extends BufferGeometry = BufferGeometry,\n  TMaterial extends Material | Material[] = Material | Material[],\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends LineSegments<TGeometry, TMaterial, TEventMap> = LineSegments<\n    TGeometry,\n    TMaterial,\n    TEventMap\n  >,\n  TARGS = [geometry?: TGeometry, material?: TMaterial],\n> extends ThLine<TGeometry, TMaterial, TEventMap, T, TARGS> {\n  public getType(): Type<LineSegments<TGeometry, TMaterial, TEventMap>> {\n    return LineSegments;\n  }\n\n  public get isLineSegments(): true | undefined {\n    return this._objRef?.isLineSegments;\n  }\n  public get type(): (string | 'LineSegments') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { AxesHelper, Object3DEventMap } from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { LineBasicMaterial } from 'three/src/materials/LineBasicMaterial.js';\nimport { ThLineSegments } from './ThLineSegments';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-axesHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThAxesHelper) },\n  ],\n})\nexport class ThAxesHelper<\n  T extends AxesHelper = AxesHelper,\n  TARGS = /* size? */ number,\n> extends ThLineSegments<\n  BufferGeometry,\n  LineBasicMaterial,\n  Object3DEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<AxesHelper> {\n    return AxesHelper;\n  }\n\n  public get type(): (string | 'AxesHelper') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Mesh } from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { Material } from 'three/src/materials/Material.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-mesh',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThMesh) }],\n})\nexport class ThMesh<\n  TGeometry extends BufferGeometry = BufferGeometry,\n  TMaterial extends Material | Material[] = Material | Material[],\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends Mesh<TGeometry, TMaterial, TEventMap> = Mesh<\n    TGeometry,\n    TMaterial,\n    TEventMap\n  >,\n  TARGS = [geometry?: TGeometry, material?: TMaterial],\n> extends ThObject3D<TEventMap, T, TARGS> {\n  public getType(): Type<Mesh<TGeometry, TMaterial, TEventMap>> {\n    return Mesh;\n  }\n\n  public get isMesh(): true | undefined {\n    return this._objRef?.isMesh;\n  }\n  public get type(): (string | 'Mesh') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set geometry(value: TGeometry) {\n    if (this._objRef) {\n      this._objRef.geometry = value;\n    }\n  }\n\n  public get geometry(): TGeometry | undefined {\n    return this._objRef?.geometry;\n  }\n  @Input()\n  public set material(value: TMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): TMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set morphTargetInfluences(value: number[] | undefined) {\n    if (this._objRef) {\n      this._objRef.morphTargetInfluences = value;\n    }\n  }\n\n  public get morphTargetInfluences(): (number[] | undefined) | undefined {\n    return this._objRef?.morphTargetInfluences;\n  }\n  @Input()\n  public set morphTargetDictionary(\n    value: { [key: string]: number } | undefined,\n  ) {\n    if (this._objRef) {\n      this._objRef.morphTargetDictionary = value;\n    }\n  }\n\n  public get morphTargetDictionary():\n    | ({ [key: string]: number } | undefined)\n    | undefined {\n    return this._objRef?.morphTargetDictionary;\n  }\n  @Input()\n  public set count(value: number) {\n    if (this._objRef) {\n      this._objRef.count = value;\n    }\n  }\n\n  public get count(): number | undefined {\n    return this._objRef?.count;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { BatchedMesh, Box3, Object3DEventMap } from 'three';\nimport { Camera } from 'three/src/cameras/Camera.js';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { Material } from 'three/src/materials/Material.js';\nimport { Sphere } from 'three/src/math/Sphere.js';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { applyValue } from '../util';\nimport { ThMesh } from './ThMesh';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-batchedMesh',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThBatchedMesh) },\n  ],\n})\nexport class ThBatchedMesh<\n  T extends BatchedMesh = BatchedMesh,\n  TARGS = [\n    maxInstanceCount: number,\n    maxVertexCount: number,\n    maxIndexCount?: number,\n    material?: Material,\n  ],\n> extends ThMesh<BufferGeometry, Material, Object3DEventMap, T, TARGS> {\n  public getType(): Type<BatchedMesh> {\n    return BatchedMesh;\n  }\n\n  @Input()\n  public set boundingBox(value: Box3 | null | [min: Vector3, max: Vector3]) {\n    if (this._objRef) {\n      this._objRef.boundingBox = applyValue<Box3 | null>(\n        this._objRef.boundingBox,\n        value,\n      );\n    }\n  }\n  public get boundingBox(): (Box3 | null) | undefined {\n    return this._objRef?.boundingBox;\n  }\n  @Input()\n  public set boundingSphere(\n    value: Sphere | null | [center: Vector3, radius: number],\n  ) {\n    if (this._objRef) {\n      this._objRef.boundingSphere = applyValue<Sphere | null>(\n        this._objRef.boundingSphere,\n        value,\n      );\n    }\n  }\n  public get boundingSphere(): (Sphere | null) | undefined {\n    return this._objRef?.boundingSphere;\n  }\n  @Input()\n  public set customSort(\n    value:\n      | ((\n          this: T,\n          list: Array<{ start: number; count: number; z: number }>,\n          camera: Camera,\n        ) => void)\n      | null,\n  ) {\n    if (this._objRef) {\n      this._objRef.customSort = value;\n    }\n  }\n\n  public get customSort():\n    | (\n        | ((\n            this: T,\n            list: Array<{ start: number; count: number; z: number }>,\n            camera: Camera,\n          ) => void)\n        | null\n      )\n    | undefined {\n    return this._objRef?.customSort;\n  }\n  @Input()\n  public set perObjectFrustumCulled(value: boolean) {\n    if (this._objRef) {\n      this._objRef.perObjectFrustumCulled = value;\n    }\n  }\n\n  public get perObjectFrustumCulled(): boolean | undefined {\n    return this._objRef?.perObjectFrustumCulled;\n  }\n  @Input()\n  public set sortObjects(value: boolean) {\n    if (this._objRef) {\n      this._objRef.sortObjects = value;\n    }\n  }\n\n  public get sortObjects(): boolean | undefined {\n    return this._objRef?.sortObjects;\n  }\n  public get maxInstanceCount(): number | undefined {\n    return this._objRef?.maxInstanceCount;\n  }\n  public get instanceCount(): number | undefined {\n    return this._objRef?.instanceCount;\n  }\n  public get unusedVertexCount(): number | undefined {\n    return this._objRef?.unusedVertexCount;\n  }\n  public get unusedIndexCount(): number | undefined {\n    return this._objRef?.unusedIndexCount;\n  }\n  public get isBatchedMesh(): true | undefined {\n    return this._objRef?.isBatchedMesh;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ShaderMaterial, WebGLRenderTarget } from 'three';\nimport { BloomPass } from 'three/examples/jsm/postprocessing/BloomPass.js';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-bloomPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThBloomPass) },\n  ],\n})\nexport class ThBloomPass<\n  T extends BloomPass = BloomPass,\n  TARGS = [strength?: number, kernelSize?: number, sigma?: number],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<BloomPass> {\n    return BloomPass;\n  }\n\n  @Input()\n  public set renderTargetX(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetX = value;\n    }\n  }\n\n  public get renderTargetX(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetX;\n  }\n  @Input()\n  public set renderTargetY(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetY = value;\n    }\n  }\n\n  public get renderTargetY(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetY;\n  }\n  @Input()\n  public set copyUniforms(value: object) {\n    if (this._objRef) {\n      this._objRef.copyUniforms = value;\n    }\n  }\n\n  public get copyUniforms(): object | undefined {\n    return this._objRef?.copyUniforms;\n  }\n  @Input()\n  public set materialCopy(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.materialCopy = value;\n    }\n  }\n\n  public get materialCopy(): ShaderMaterial | undefined {\n    return this._objRef?.materialCopy;\n  }\n  @Input()\n  public set convolutionUniforms(value: object) {\n    if (this._objRef) {\n      this._objRef.convolutionUniforms = value;\n    }\n  }\n\n  public get convolutionUniforms(): object | undefined {\n    return this._objRef?.convolutionUniforms;\n  }\n  @Input()\n  public set materialConvolution(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.materialConvolution = value;\n    }\n  }\n\n  public get materialConvolution(): ShaderMaterial | undefined {\n    return this._objRef?.materialConvolution;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Camera,\n  Color,\n  ColorRepresentation,\n  MeshDepthMaterial,\n  Scene,\n  ShaderMaterial,\n  WebGLRenderTarget,\n} from 'three';\nimport {\n  BokehPass,\n  BokehPassParameters,\n} from 'three/examples/jsm/postprocessing/BokehPass.js';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { applyValue } from '../util';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-bokehPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThBokehPass) },\n  ],\n})\nexport class ThBokehPass<\n  T extends BokehPass = BokehPass,\n  TARGS = [scene: Scene, camera: Camera, params: BokehPassParameters],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<BokehPass> {\n    return BokehPass;\n  }\n\n  @Input()\n  public set scene(value: Scene) {\n    if (this._objRef) {\n      this._objRef.scene = value;\n    }\n  }\n\n  public get scene(): Scene | undefined {\n    return this._objRef?.scene;\n  }\n  @Input()\n  public set camera(value: Camera) {\n    if (this._objRef) {\n      this._objRef.camera = value;\n    }\n  }\n\n  public get camera(): Camera | undefined {\n    return this._objRef?.camera;\n  }\n  @Input()\n  public set renderTargetColor(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetColor = value;\n    }\n  }\n\n  public get renderTargetColor(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetColor;\n  }\n  @Input()\n  public set renderTargetDepth(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetDepth = value;\n    }\n  }\n\n  public get renderTargetDepth(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetDepth;\n  }\n  @Input()\n  public set materialDepth(value: MeshDepthMaterial) {\n    if (this._objRef) {\n      this._objRef.materialDepth = value;\n    }\n  }\n\n  public get materialDepth(): MeshDepthMaterial | undefined {\n    return this._objRef?.materialDepth;\n  }\n  @Input()\n  public set materialBokeh(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.materialBokeh = value;\n    }\n  }\n\n  public get materialBokeh(): ShaderMaterial | undefined {\n    return this._objRef?.materialBokeh;\n  }\n  @Input()\n  public set uniforms(map: { [name: string]: { value: any } }) {\n    if (this._objRef) {\n      Object.assign(this._objRef.uniforms, map);\n    }\n  }\n\n  public get uniforms(): { [name: string]: { value: any } } | undefined {\n    return this._objRef?.uniforms as\n      | { [name: string]: { value: any } }\n      | undefined;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n  @Input()\n  public set oldClearColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.oldClearColor = applyValue<Color>(\n        this._objRef.oldClearColor,\n        value,\n      );\n    }\n  }\n  public get oldClearColor(): Color | undefined {\n    return this._objRef?.oldClearColor;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Bone } from 'three';\nimport { Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-bone',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThBone) }],\n})\nexport class ThBone<\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends Bone<TEventMap> = Bone<TEventMap>,\n  TARGS = [],\n> extends ThObject3D<TEventMap, T, TARGS> {\n  public getType(): Type<Bone<TEventMap>> {\n    return Bone;\n  }\n\n  public get isBone(): true | undefined {\n    return this._objRef?.isBone;\n  }\n  public get type(): (string | 'Bone') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Box3,\n  Box3Helper,\n  BufferGeometry,\n  Material,\n  Object3DEventMap,\n} from 'three';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { applyValue } from '../util';\nimport { ThLineSegments } from './ThLineSegments';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-box3Helper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThBox3Helper) },\n  ],\n})\nexport class ThBox3Helper<\n  T extends Box3Helper = Box3Helper,\n  TARGS = [box: Box3, color?: ColorRepresentation],\n> extends ThLineSegments<\n  BufferGeometry,\n  Material | Material[],\n  Object3DEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<Box3Helper> {\n    return Box3Helper;\n  }\n\n  public get type(): (string | 'Box3Helper') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set box(value: Box3 | [min: Vector3, max: Vector3]) {\n    if (this._objRef) {\n      this._objRef.box = applyValue<Box3>(this._objRef.box, value);\n    }\n  }\n  public get box(): Box3 | undefined {\n    return this._objRef?.box;\n  }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { BufferGeometry, NormalOrGLBufferAttributes } from 'three';\nimport { ThObject3D } from './generated/ThObject3D';\nimport { ThWrapperBase } from './ThWrapperBase';\n@Component({\n  selector: 'th-abs-geometry',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ThGeometryBase<T extends BufferGeometry<NormalOrGLBufferAttributes>, ARGS> extends ThWrapperBase<T, ARGS> {\n  protected parent = inject(ThObject3D);\n\n  public addToParent() {\n    if (!this.parent.objRef) {\n      return;\n      //throw new Error(\"parent object doesn't hold a three js object instance\");\n    }\n\n    (this.parent.objRef as any).geometry = this.objRef;\n    if ((this.parent.objRef as any).updateMorphTargets) {\n      (this.parent.objRef as any).updateMorphTargets();\n    }\n  }\n\n  public removeFromParent() {\n    if (this._objRef && this.parent && this.parent.objRef) {\n      (this.parent.objRef as any).geometry = undefined;\n    }\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  inject,\n} from '@angular/core';\nimport {\n  Box3,\n  BufferAttribute,\n  BufferGeometry,\n  BufferGeometryEventMap,\n  GeometryGroup,\n  NormalBufferAttributes,\n  NormalOrGLBufferAttributes,\n} from 'three';\nimport { InterleavedBufferAttribute } from 'three/src/core/InterleavedBufferAttribute.js';\nimport { Sphere } from 'three/src/math/Sphere.js';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport IndirectStorageBufferAttribute from 'three/src/renderers/common/IndirectStorageBufferAttribute.js';\nimport { ThGeometryBase } from '../ThGeometryBase';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-bufferGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [],\n})\nexport class ThBufferGeometry<\n  Attributes extends NormalOrGLBufferAttributes = NormalBufferAttributes,\n  TEventMap extends BufferGeometryEventMap = BufferGeometryEventMap,\n  T extends BufferGeometry<Attributes, TEventMap> = BufferGeometry<\n    Attributes,\n    TEventMap\n  >,\n  TARGS = [],\n> extends ThGeometryBase<T, TARGS> {\n  parent = inject<ThObject3D>(ThObject3D, { skipSelf: true });\n\n  public getType(): Type<BufferGeometry<Attributes, TEventMap>> {\n    return BufferGeometry;\n  }\n\n  @Input()\n  public set id(value: number) {\n    if (this._objRef) {\n      this._objRef.id = value;\n    }\n  }\n\n  public get id(): number | undefined {\n    return this._objRef?.id;\n  }\n  @Input()\n  public set uuid(value: string) {\n    if (this._objRef) {\n      this._objRef.uuid = value;\n    }\n  }\n\n  public get uuid(): string | undefined {\n    return this._objRef?.uuid;\n  }\n  @Input()\n  public set name(value: string) {\n    if (this._objRef) {\n      this._objRef.name = value;\n    }\n  }\n\n  public get name(): string | undefined {\n    return this._objRef?.name;\n  }\n  public get type(): (string | 'BufferGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set index(\n    value:\n      | BufferAttribute\n      | null\n      | [value: ArrayLike<number> | ArrayBufferView, offset?: number],\n  ) {\n    if (this._objRef) {\n      this._objRef.index = applyValue<BufferAttribute | null>(\n        this._objRef.index,\n        value,\n      );\n    }\n  }\n  public get index(): (BufferAttribute | null) | undefined {\n    return this._objRef?.index;\n  }\n  @Input()\n  public set indirect(\n    value:\n      | IndirectStorageBufferAttribute\n      | null\n      | [value: ArrayLike<number> | ArrayBufferView, offset?: number],\n  ) {\n    if (this._objRef) {\n      this._objRef.indirect = applyValue<IndirectStorageBufferAttribute | null>(\n        this._objRef.indirect,\n        value,\n      );\n    }\n  }\n  public get indirect(): (IndirectStorageBufferAttribute | null) | undefined {\n    return this._objRef?.indirect;\n  }\n  @Input()\n  public set indirectOffset(value: number | number[]) {\n    if (this._objRef) {\n      this._objRef.indirectOffset = value;\n    }\n  }\n\n  public get indirectOffset(): (number | number[]) | undefined {\n    return this._objRef?.indirectOffset;\n  }\n  @Input()\n  public set attributes(value: Attributes) {\n    if (this._objRef) {\n      this._objRef.attributes = value;\n    }\n  }\n\n  public get attributes(): Attributes | undefined {\n    return this._objRef?.attributes;\n  }\n  @Input()\n  public set morphAttributes(value: {\n    position?: Array<BufferAttribute | InterleavedBufferAttribute> | undefined;\n    normal?: Array<BufferAttribute | InterleavedBufferAttribute> | undefined;\n    color?: Array<BufferAttribute | InterleavedBufferAttribute> | undefined;\n  }) {\n    if (this._objRef) {\n      this._objRef.morphAttributes = value;\n    }\n  }\n\n  public get morphAttributes():\n    | {\n        position?:\n          | Array<BufferAttribute | InterleavedBufferAttribute>\n          | undefined;\n        normal?:\n          | Array<BufferAttribute | InterleavedBufferAttribute>\n          | undefined;\n        color?: Array<BufferAttribute | InterleavedBufferAttribute> | undefined;\n      }\n    | undefined {\n    return this._objRef?.morphAttributes;\n  }\n  @Input()\n  public set morphTargetsRelative(value: boolean) {\n    if (this._objRef) {\n      this._objRef.morphTargetsRelative = value;\n    }\n  }\n\n  public get morphTargetsRelative(): boolean | undefined {\n    return this._objRef?.morphTargetsRelative;\n  }\n  @Input()\n  public set groups(value: GeometryGroup[]) {\n    if (this._objRef) {\n      this._objRef.groups = value;\n    }\n  }\n\n  public get groups(): GeometryGroup[] | undefined {\n    return this._objRef?.groups;\n  }\n  @Input()\n  public set boundingBox(value: Box3 | null | [min: Vector3, max: Vector3]) {\n    if (this._objRef) {\n      this._objRef.boundingBox = applyValue<Box3 | null>(\n        this._objRef.boundingBox,\n        value,\n      );\n    }\n  }\n  public get boundingBox(): (Box3 | null) | undefined {\n    return this._objRef?.boundingBox;\n  }\n  @Input()\n  public set boundingSphere(\n    value: Sphere | null | [center: Vector3, radius: number],\n  ) {\n    if (this._objRef) {\n      this._objRef.boundingSphere = applyValue<Sphere | null>(\n        this._objRef.boundingSphere,\n        value,\n      );\n    }\n  }\n  public get boundingSphere(): (Sphere | null) | undefined {\n    return this._objRef?.boundingSphere;\n  }\n  @Input()\n  public set drawRange(value: { start: number; count: number }) {\n    if (this._objRef) {\n      this._objRef.drawRange = value;\n    }\n  }\n\n  public get drawRange(): { start: number; count: number } | undefined {\n    return this._objRef?.drawRange;\n  }\n  @Input()\n  public set userData(value: Record<string, any>) {\n    if (this._objRef) {\n      this._objRef.userData = value;\n    }\n  }\n\n  public get userData(): Record<string, any> | undefined {\n    return this._objRef?.userData;\n  }\n  public get isBufferGeometry(): true | undefined {\n    return this._objRef?.isBufferGeometry;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BoxGeometry,\n  BufferGeometryEventMap,\n  NormalBufferAttributes,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-boxGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThBufferGeometry, useExisting: forwardRef(() => ThBoxGeometry) },\n  ],\n})\nexport class ThBoxGeometry<\n  T extends BoxGeometry = BoxGeometry,\n  TARGS = [\n    width?: number,\n    height?: number,\n    depth?: number,\n    widthSegments?: number,\n    heightSegments?: number,\n    depthSegments?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<BoxGeometry> {\n    return BoxGeometry;\n  }\n\n  public get type(): (string | 'BoxGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly width: number;\n        readonly height: number;\n        readonly depth: number;\n        readonly widthSegments: number;\n        readonly heightSegments: number;\n        readonly depthSegments: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { BoxHelper, Object3DEventMap } from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { Object3D } from 'three/src/core/Object3D.js';\nimport { LineBasicMaterial } from 'three/src/materials/LineBasicMaterial.js';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { ThLineSegments } from './ThLineSegments';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-boxHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThBoxHelper) },\n  ],\n})\nexport class ThBoxHelper<\n  T extends BoxHelper = BoxHelper,\n  TARGS = [object: Object3D, color?: ColorRepresentation],\n> extends ThLineSegments<\n  BufferGeometry,\n  LineBasicMaterial,\n  Object3DEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<BoxHelper> {\n    return BoxHelper;\n  }\n\n  public get type(): (string | 'BoxHelper') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { BufferGeometryEventMap, NormalBufferAttributes } from 'three';\nimport { BoxLineGeometry } from 'three/examples/jsm/geometries/BoxLineGeometry.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-boxLineGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThBoxLineGeometry),\n    },\n  ],\n})\nexport class ThBoxLineGeometry<\n  T extends BoxLineGeometry = BoxLineGeometry,\n  TARGS = [\n    width?: number,\n    height?: number,\n    depth?: number,\n    widthSegments?: number,\n    heightSegments?: number,\n    depthSegments?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<BoxLineGeometry> {\n    return BoxLineGeometry;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometry,\n  CameraHelper,\n  Material,\n  Matrix4,\n  Object3DEventMap,\n} from 'three';\nimport { Camera } from 'three/src/cameras/Camera.js';\nimport { applyValue } from '../util';\nimport { ThLineSegments } from './ThLineSegments';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-cameraHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThCameraHelper) },\n  ],\n})\nexport class ThCameraHelper<\n  T extends CameraHelper = CameraHelper,\n  TARGS = /* camera */ Camera,\n> extends ThLineSegments<\n  BufferGeometry,\n  Material | Material[],\n  Object3DEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<CameraHelper> {\n    return CameraHelper;\n  }\n\n  public get type(): (string | 'CameraHelper') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set camera(value: Camera) {\n    if (this._objRef) {\n      this._objRef.camera = value;\n    }\n  }\n\n  public get camera(): Camera | undefined {\n    return this._objRef?.camera;\n  }\n  @Input()\n  public set pointMap(value: { [id: string]: number[] }) {\n    if (this._objRef) {\n      this._objRef.pointMap = value;\n    }\n  }\n\n  public get pointMap(): { [id: string]: number[] } | undefined {\n    return this._objRef?.pointMap;\n  }\n  @Input()\n  public set matrix(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.matrix = applyValue<Matrix4>(this._objRef.matrix, value);\n    }\n  }\n  public get matrix(): Matrix4 | undefined {\n    return this._objRef?.matrix;\n  }\n  @Input()\n  public set matrixAutoUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.matrixAutoUpdate = value;\n    }\n  }\n\n  public get matrixAutoUpdate(): boolean | undefined {\n    return this._objRef?.matrixAutoUpdate;\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { Texture } from 'three';\nimport { ThWrapperBase } from './ThWrapperBase';\n@Component({\n  selector: 'th-abs-texture',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ThTextureBase<T extends Texture, ARGS> extends ThWrapperBase<T, ARGS> {}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Matrix3, Texture } from 'three';\nimport {\n  AnyMapping,\n  AnyPixelFormat,\n  ColorSpace,\n  MagnificationTextureFilter,\n  Mapping,\n  MinificationTextureFilter,\n  PixelFormat,\n  PixelFormatGPU,\n  TextureDataType,\n  Wrapping,\n} from 'three/src/constants.js';\nimport { RenderTarget } from 'three/src/core/RenderTarget.js';\nimport { Vector2 } from 'three/src/math/Vector2.js';\nimport { CompressedTextureMipmap } from 'three/src/textures/CompressedTexture.js';\nimport { CubeTexture } from 'three/src/textures/CubeTexture.js';\nimport { Source } from 'three/src/textures/Source.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { applyValue } from '../util';\n\n@Component({\n  selector: 'th-texture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThTextureBase, useExisting: forwardRef(() => ThTexture) },\n  ],\n})\nexport class ThTexture<\n  TImage = unknown,\n  T extends Texture<TImage> = Texture<TImage>,\n  TARGS =\n    | [\n        image?: TImage,\n        mapping?: Mapping,\n        wrapS?: Wrapping,\n        wrapT?: Wrapping,\n        magFilter?: MagnificationTextureFilter,\n        minFilter?: MinificationTextureFilter,\n        format?: PixelFormat,\n        type?: TextureDataType,\n        anisotropy?: number,\n        colorSpace?: ColorSpace,\n      ]\n    | [\n        image: TImage,\n        mapping: Mapping,\n        wrapS: Wrapping,\n        wrapT: Wrapping,\n        magFilter: MagnificationTextureFilter,\n        minFilter: MinificationTextureFilter,\n        format: PixelFormat,\n        type: TextureDataType,\n        anisotropy: number,\n      ],\n> extends ThTextureBase<T, TARGS> {\n  public getType(): Type<Texture<TImage>> {\n    return Texture;\n  }\n\n  public get isTexture(): true | undefined {\n    return this._objRef?.isTexture;\n  }\n  public get id(): number | undefined {\n    return this._objRef?.id;\n  }\n  @Input()\n  public set uuid(value: string) {\n    if (this._objRef) {\n      this._objRef.uuid = value;\n    }\n  }\n\n  public get uuid(): string | undefined {\n    return this._objRef?.uuid;\n  }\n  @Input()\n  public set name(value: string) {\n    if (this._objRef) {\n      this._objRef.name = value;\n    }\n  }\n\n  public get name(): string | undefined {\n    return this._objRef?.name;\n  }\n  @Input()\n  public set source(value: Source<TImage>) {\n    if (this._objRef) {\n      this._objRef.source = value;\n    }\n  }\n\n  public get source(): Source<TImage> | undefined {\n    return this._objRef?.source;\n  }\n  public get width(): number | undefined {\n    return this._objRef?.width;\n  }\n  public get height(): number | undefined {\n    return this._objRef?.height;\n  }\n  public get depth(): number | undefined {\n    return this._objRef?.depth;\n  }\n  public get image(): TImage | undefined {\n    return this._objRef?.image;\n  }\n  @Input()\n  public set image(value: TImage) {\n    if (this._objRef) {\n      this._objRef.image = value;\n    }\n  }\n\n  @Input()\n  public set mipmaps(\n    value: CompressedTextureMipmap[] | CubeTexture[] | HTMLCanvasElement[],\n  ) {\n    if (this._objRef) {\n      this._objRef.mipmaps = value;\n    }\n  }\n\n  public get mipmaps():\n    | (CompressedTextureMipmap[] | CubeTexture[] | HTMLCanvasElement[])\n    | undefined {\n    return this._objRef?.mipmaps;\n  }\n  @Input()\n  public set mapping(value: AnyMapping) {\n    if (this._objRef) {\n      this._objRef.mapping = value;\n    }\n  }\n\n  public get mapping(): AnyMapping | undefined {\n    return this._objRef?.mapping;\n  }\n  @Input()\n  public set channel(value: number) {\n    if (this._objRef) {\n      this._objRef.channel = value;\n    }\n  }\n\n  public get channel(): number | undefined {\n    return this._objRef?.channel;\n  }\n  @Input()\n  public set wrapS(value: Wrapping) {\n    if (this._objRef) {\n      this._objRef.wrapS = value;\n    }\n  }\n\n  public get wrapS(): Wrapping | undefined {\n    return this._objRef?.wrapS;\n  }\n  @Input()\n  public set wrapT(value: Wrapping) {\n    if (this._objRef) {\n      this._objRef.wrapT = value;\n    }\n  }\n\n  public get wrapT(): Wrapping | undefined {\n    return this._objRef?.wrapT;\n  }\n  @Input()\n  public set magFilter(value: MagnificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.magFilter = value;\n    }\n  }\n\n  public get magFilter(): MagnificationTextureFilter | undefined {\n    return this._objRef?.magFilter;\n  }\n  @Input()\n  public set minFilter(value: MinificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.minFilter = value;\n    }\n  }\n\n  public get minFilter(): MinificationTextureFilter | undefined {\n    return this._objRef?.minFilter;\n  }\n  @Input()\n  public set anisotropy(value: number) {\n    if (this._objRef) {\n      this._objRef.anisotropy = value;\n    }\n  }\n\n  public get anisotropy(): number | undefined {\n    return this._objRef?.anisotropy;\n  }\n  @Input()\n  public set format(value: AnyPixelFormat) {\n    if (this._objRef) {\n      this._objRef.format = value;\n    }\n  }\n\n  public get format(): AnyPixelFormat | undefined {\n    return this._objRef?.format;\n  }\n  @Input()\n  public set type(value: TextureDataType) {\n    if (this._objRef) {\n      this._objRef.type = value;\n    }\n  }\n\n  public get type(): TextureDataType | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set internalFormat(value: PixelFormatGPU | null) {\n    if (this._objRef) {\n      this._objRef.internalFormat = value;\n    }\n  }\n\n  public get internalFormat(): (PixelFormatGPU | null) | undefined {\n    return this._objRef?.internalFormat;\n  }\n  @Input()\n  public set matrix(\n    value:\n      | Matrix3\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n31: number,\n          n32: number,\n          n33: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.matrix = applyValue<Matrix3>(this._objRef.matrix, value);\n    }\n  }\n  public get matrix(): Matrix3 | undefined {\n    return this._objRef?.matrix;\n  }\n  @Input()\n  public set matrixAutoUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.matrixAutoUpdate = value;\n    }\n  }\n\n  public get matrixAutoUpdate(): boolean | undefined {\n    return this._objRef?.matrixAutoUpdate;\n  }\n  @Input()\n  public set offset(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.offset = applyValue<Vector2>(this._objRef.offset, value);\n    }\n  }\n  public get offset(): Vector2 | undefined {\n    return this._objRef?.offset;\n  }\n  @Input()\n  public set repeat(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.repeat = applyValue<Vector2>(this._objRef.repeat, value);\n    }\n  }\n  public get repeat(): Vector2 | undefined {\n    return this._objRef?.repeat;\n  }\n  @Input()\n  public set center(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.center = applyValue<Vector2>(this._objRef.center, value);\n    }\n  }\n  public get center(): Vector2 | undefined {\n    return this._objRef?.center;\n  }\n  @Input()\n  public set rotation(value: number) {\n    if (this._objRef) {\n      this._objRef.rotation = value;\n    }\n  }\n\n  public get rotation(): number | undefined {\n    return this._objRef?.rotation;\n  }\n  @Input()\n  public set generateMipmaps(value: boolean) {\n    if (this._objRef) {\n      this._objRef.generateMipmaps = value;\n    }\n  }\n\n  public get generateMipmaps(): boolean | undefined {\n    return this._objRef?.generateMipmaps;\n  }\n  @Input()\n  public set premultiplyAlpha(value: boolean) {\n    if (this._objRef) {\n      this._objRef.premultiplyAlpha = value;\n    }\n  }\n\n  public get premultiplyAlpha(): boolean | undefined {\n    return this._objRef?.premultiplyAlpha;\n  }\n  @Input()\n  public set flipY(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flipY = value;\n    }\n  }\n\n  public get flipY(): boolean | undefined {\n    return this._objRef?.flipY;\n  }\n  @Input()\n  public set unpackAlignment(value: number) {\n    if (this._objRef) {\n      this._objRef.unpackAlignment = value;\n    }\n  }\n\n  public get unpackAlignment(): number | undefined {\n    return this._objRef?.unpackAlignment;\n  }\n  @Input()\n  public set colorSpace(value: string) {\n    if (this._objRef) {\n      this._objRef.colorSpace = value;\n    }\n  }\n\n  public get colorSpace(): string | undefined {\n    return this._objRef?.colorSpace;\n  }\n  @Input()\n  public set isRenderTargetTexture(value: boolean) {\n    if (this._objRef) {\n      this._objRef.isRenderTargetTexture = value;\n    }\n  }\n\n  public get isRenderTargetTexture(): boolean | undefined {\n    return this._objRef?.isRenderTargetTexture;\n  }\n  @Input()\n  public set isArrayTexture(value: boolean) {\n    if (this._objRef) {\n      this._objRef.isArrayTexture = value;\n    }\n  }\n\n  public get isArrayTexture(): boolean | undefined {\n    return this._objRef?.isArrayTexture;\n  }\n  @Input()\n  public set userData(value: Record<string, any>) {\n    if (this._objRef) {\n      this._objRef.userData = value;\n    }\n  }\n\n  public get userData(): Record<string, any> | undefined {\n    return this._objRef?.userData;\n  }\n  @Input()\n  public set updateRanges(value: Array<{ start: number; count: number }>) {\n    if (this._objRef) {\n      this._objRef.updateRanges = value;\n    }\n  }\n\n  public get updateRanges():\n    | Array<{ start: number; count: number }>\n    | undefined {\n    return this._objRef?.updateRanges;\n  }\n  @Input()\n  public set version(value: number) {\n    if (this._objRef) {\n      this._objRef.version = value;\n    }\n  }\n\n  public get version(): number | undefined {\n    return this._objRef?.version;\n  }\n  @Input()\n  public set pmremVersion(value: number) {\n    if (this._objRef) {\n      this._objRef.pmremVersion = value;\n    }\n  }\n\n  public get pmremVersion(): number | undefined {\n    return this._objRef?.pmremVersion;\n  }\n  @Input()\n  public set needsUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.needsUpdate = value;\n    }\n  }\n\n  @Input()\n  public set needsPMREMUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.needsPMREMUpdate = value;\n    }\n  }\n\n  public static readonly DEFAULT_ANISOTROPY = Texture.DEFAULT_ANISOTROPY;\n\n  public static readonly DEFAULT_IMAGE = Texture.DEFAULT_IMAGE;\n\n  public static readonly DEFAULT_MAPPING = Texture.DEFAULT_MAPPING;\n\n  @Input()\n  public set renderTarget(value: RenderTarget | null) {\n    if (this._objRef) {\n      this._objRef.renderTarget = value;\n    }\n  }\n\n  public get renderTarget(): (RenderTarget | null) | undefined {\n    return this._objRef?.renderTarget;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { CanvasTexture } from 'three';\nimport {\n  MagnificationTextureFilter,\n  Mapping,\n  MinificationTextureFilter,\n  PixelFormat,\n  TextureDataType,\n  Wrapping,\n} from 'three/src/constants.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThTexture } from './ThTexture';\n\n@Component({\n  selector: 'th-canvasTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThTextureBase, useExisting: forwardRef(() => ThCanvasTexture) },\n  ],\n})\nexport class ThCanvasTexture<\n  TCanvas = HTMLCanvasElement,\n  T extends CanvasTexture<TCanvas> = CanvasTexture<TCanvas>,\n  TARGS = [\n    canvas?: TCanvas,\n    mapping?: Mapping,\n    wrapS?: Wrapping,\n    wrapT?: Wrapping,\n    magFilter?: MagnificationTextureFilter,\n    minFilter?: MinificationTextureFilter,\n    format?: PixelFormat,\n    type?: TextureDataType,\n    anisotropy?: number,\n  ],\n> extends ThTexture<TCanvas, T, TARGS> {\n  public getType(): Type<CanvasTexture<TCanvas>> {\n    return CanvasTexture;\n  }\n\n  public get isCanvasTexture(): true | undefined {\n    return this._objRef?.isCanvasTexture;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  CapsuleGeometry,\n  NormalBufferAttributes,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-capsuleGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThCapsuleGeometry),\n    },\n  ],\n})\nexport class ThCapsuleGeometry<\n  T extends CapsuleGeometry = CapsuleGeometry,\n  TARGS = [\n    radius?: number,\n    height?: number,\n    capSegments?: number,\n    radialSegments?: number,\n    heightSegments?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<CapsuleGeometry> {\n    return CapsuleGeometry;\n  }\n\n  public get type(): (string | 'CapsuleGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly radius: number;\n        readonly height: number;\n        readonly capSegments: number;\n        readonly radialSegments: number;\n        readonly heightSegments: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  CircleGeometry,\n  NormalBufferAttributes,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-circleGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThCircleGeometry),\n    },\n  ],\n})\nexport class ThCircleGeometry<\n  T extends CircleGeometry = CircleGeometry,\n  TARGS = [\n    radius?: number,\n    segments?: number,\n    thetaStart?: number,\n    thetaLength?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<CircleGeometry> {\n    return CircleGeometry;\n  }\n\n  public get type(): (string | 'CircleGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly radius: number;\n        readonly segments: number;\n        readonly thetaStart: number;\n        readonly thetaLength: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ClearMaskPass } from 'three/examples/jsm/postprocessing/MaskPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-clearMaskPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThClearMaskPass) },\n  ],\n})\nexport class ThClearMaskPass<\n  T extends ClearMaskPass = ClearMaskPass,\n  TARGS = [],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<ClearMaskPass> {\n    return ClearMaskPass;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ColorRepresentation } from 'three';\nimport { ClearPass } from 'three/examples/jsm/postprocessing/ClearPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-clearPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThClearPass) },\n  ],\n})\nexport class ThClearPass<\n  T extends ClearPass = ClearPass,\n  TARGS = [clearColor?: ColorRepresentation, clearAlpha?: number],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<ClearPass> {\n    return ClearPass;\n  }\n\n  @Input()\n  public set clearColor(value: ColorRepresentation) {\n    if (this._objRef) {\n      this._objRef.clearColor = value;\n    }\n  }\n\n  public get clearColor(): ColorRepresentation | undefined {\n    return this._objRef?.clearColor;\n  }\n  @Input()\n  public set clearAlpha(value: number) {\n    if (this._objRef) {\n      this._objRef.clearAlpha = value;\n    }\n  }\n\n  public get clearAlpha(): number | undefined {\n    return this._objRef?.clearAlpha;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  CompressedTexture,\n  CompressedTextureImageData,\n  CompressedTextureMipmap,\n} from 'three';\nimport {\n  CompressedPixelFormat,\n  MagnificationTextureFilter,\n  Mapping,\n  MinificationTextureFilter,\n  TextureDataType,\n  Wrapping,\n} from 'three/src/constants.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThTexture } from './ThTexture';\n\n@Component({\n  selector: 'th-compressedTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThTextureBase,\n      useExisting: forwardRef(() => ThCompressedTexture),\n    },\n  ],\n})\nexport class ThCompressedTexture<\n  TImageData = CompressedTextureImageData,\n  T extends CompressedTexture<TImageData> = CompressedTexture<TImageData>,\n  TARGS = [\n    mipmaps: CompressedTextureMipmap[],\n    width: number,\n    height: number,\n    format?: CompressedPixelFormat,\n    type?: TextureDataType,\n    mapping?: Mapping,\n    wrapS?: Wrapping,\n    wrapT?: Wrapping,\n    magFilter?: MagnificationTextureFilter,\n    minFilter?: MinificationTextureFilter,\n    anisotropy?: number,\n    colorSpace?: string,\n  ],\n> extends ThTexture<TImageData, T, TARGS> {\n  public getType(): Type<CompressedTexture<TImageData>> {\n    return CompressedTexture;\n  }\n\n  public get isCompressedTexture(): true | undefined {\n    return this._objRef?.isCompressedTexture;\n  }\n  @Input()\n  public set mipmaps(value: CompressedTextureMipmap[]) {\n    if (this._objRef) {\n      this._objRef.mipmaps = value;\n    }\n  }\n\n  public get mipmaps(): CompressedTextureMipmap[] | undefined {\n    return this._objRef?.mipmaps;\n  }\n  @Input()\n  public set format(value: CompressedPixelFormat) {\n    if (this._objRef) {\n      this._objRef.format = value;\n    }\n  }\n\n  public get format(): CompressedPixelFormat | undefined {\n    return this._objRef?.format;\n  }\n  @Input()\n  public set flipY(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flipY = value;\n    }\n  }\n\n  public get flipY(): boolean | undefined {\n    return this._objRef?.flipY;\n  }\n  @Input()\n  public set generateMipmaps(value: boolean) {\n    if (this._objRef) {\n      this._objRef.generateMipmaps = value;\n    }\n  }\n\n  public get generateMipmaps(): boolean | undefined {\n    return this._objRef?.generateMipmaps;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { CompressedArrayTexture, CompressedArrayTextureImageData } from 'three';\nimport {\n  CompressedPixelFormat,\n  TextureDataType,\n  Wrapping,\n} from 'three/src/constants.js';\nimport { CompressedTextureMipmap } from 'three/src/textures/CompressedTexture.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThCompressedTexture } from './ThCompressedTexture';\n\n@Component({\n  selector: 'th-compressedArrayTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThTextureBase,\n      useExisting: forwardRef(() => ThCompressedArrayTexture),\n    },\n  ],\n})\nexport class ThCompressedArrayTexture<\n  T extends CompressedArrayTexture = CompressedArrayTexture,\n  TARGS = [\n    mipmaps: CompressedTextureMipmap[],\n    width: number,\n    height: number,\n    depth: number,\n    format: CompressedPixelFormat,\n    type?: TextureDataType,\n  ],\n> extends ThCompressedTexture<CompressedArrayTextureImageData, T, TARGS> {\n  public getType(): Type<CompressedArrayTexture> {\n    return CompressedArrayTexture;\n  }\n\n  public get isCompressedArrayTexture(): true | undefined {\n    return this._objRef?.isCompressedArrayTexture;\n  }\n  @Input()\n  public set wrapR(value: Wrapping) {\n    if (this._objRef) {\n      this._objRef.wrapR = value;\n    }\n  }\n\n  public get wrapR(): Wrapping | undefined {\n    return this._objRef?.wrapR;\n  }\n  @Input()\n  public set layerUpdates(value: Set<number>) {\n    if (this._objRef) {\n      this._objRef.layerUpdates = value;\n    }\n  }\n\n  public get layerUpdates(): Set<number> | undefined {\n    return this._objRef?.layerUpdates;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { CompressedCubeTexture } from 'three';\nimport { CompressedPixelFormat, TextureDataType } from 'three/src/constants.js';\nimport { CompressedTextureImageData } from 'three/src/textures/CompressedTexture.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThCompressedTexture } from './ThCompressedTexture';\n\n@Component({\n  selector: 'th-compressedCubeTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThTextureBase,\n      useExisting: forwardRef(() => ThCompressedCubeTexture),\n    },\n  ],\n})\nexport class ThCompressedCubeTexture<\n  T extends CompressedCubeTexture = CompressedCubeTexture,\n  TARGS = [\n    images: CompressedTextureImageData[],\n    format?: CompressedPixelFormat,\n    type?: TextureDataType,\n  ],\n> extends ThCompressedTexture<CompressedTextureImageData[], T, TARGS> {\n  public getType(): Type<CompressedCubeTexture> {\n    return CompressedCubeTexture;\n  }\n\n  public get isCompressedCubeTexture(): true | undefined {\n    return this._objRef?.isCompressedCubeTexture;\n  }\n  public get isCubeTexture(): true | undefined {\n    return this._objRef?.isCubeTexture;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  CylinderGeometry,\n  NormalBufferAttributes,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-cylinderGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThCylinderGeometry),\n    },\n  ],\n})\nexport class ThCylinderGeometry<\n  T extends CylinderGeometry = CylinderGeometry,\n  TARGS = [\n    radiusTop?: number,\n    radiusBottom?: number,\n    height?: number,\n    radialSegments?: number,\n    heightSegments?: number,\n    openEnded?: boolean,\n    thetaStart?: number,\n    thetaLength?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<CylinderGeometry> {\n    return CylinderGeometry;\n  }\n\n  public get type(): (string | 'CylinderGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly radiusTop: number;\n        readonly radiusBottom: number;\n        readonly height: number;\n        readonly radialSegments: number;\n        readonly heightSegments: number;\n        readonly openEnded: boolean;\n        readonly thetaStart: number;\n        readonly thetaLength: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ConeGeometry } from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\nimport { ThCylinderGeometry } from './ThCylinderGeometry';\n\n@Component({\n  selector: 'th-coneGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThConeGeometry),\n    },\n  ],\n})\nexport class ThConeGeometry<\n  T extends ConeGeometry = ConeGeometry,\n  TARGS = [\n    radius?: number,\n    height?: number,\n    radialSegments?: number,\n    heightSegments?: number,\n    openEnded?: boolean,\n    thetaStart?: number,\n    thetaLength?: number,\n  ],\n> extends ThCylinderGeometry<T, TARGS> {\n  public getType(): Type<ConeGeometry> {\n    return ConeGeometry;\n  }\n\n  public get type(): (string | 'ConeGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly radius: number;\n        readonly radiusTop: number;\n        readonly radiusBottom: number;\n        readonly height: number;\n        readonly radialSegments: number;\n        readonly heightSegments: number;\n        readonly openEnded: boolean;\n        readonly thetaStart: number;\n        readonly thetaLength: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { BufferGeometryEventMap, NormalBufferAttributes, Vector3 } from 'three';\nimport { ConvexGeometry } from 'three/examples/jsm/geometries/ConvexGeometry.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-convexGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThConvexGeometry),\n    },\n  ],\n})\nexport class ThConvexGeometry<\n  T extends ConvexGeometry = ConvexGeometry,\n  TARGS = /* points? */ Vector3[],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<ConvexGeometry> {\n    return ConvexGeometry;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { CubeCamera, Object3DEventMap } from 'three';\nimport { CoordinateSystem } from 'three/src/constants.js';\nimport { WebGLCubeRenderTarget } from 'three/src/renderers/WebGLCubeRenderTarget.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-cubeCamera',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThCubeCamera) },\n  ],\n})\nexport class ThCubeCamera<\n  T extends CubeCamera = CubeCamera,\n  TARGS = [near: number, far: number, renderTarget: WebGLCubeRenderTarget],\n> extends ThObject3D<Object3DEventMap, T, TARGS> {\n  public getType(): Type<CubeCamera> {\n    return CubeCamera;\n  }\n\n  public get type(): (string | 'CubeCamera') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set renderTarget(value: WebGLCubeRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTarget = value;\n    }\n  }\n\n  public get renderTarget(): WebGLCubeRenderTarget | undefined {\n    return this._objRef?.renderTarget;\n  }\n  @Input()\n  public set coordinateSystem(value: CoordinateSystem) {\n    if (this._objRef) {\n      this._objRef.coordinateSystem = value;\n    }\n  }\n\n  public get coordinateSystem(): CoordinateSystem | undefined {\n    return this._objRef?.coordinateSystem;\n  }\n  @Input()\n  public set activeMipmapLevel(value: number) {\n    if (this._objRef) {\n      this._objRef.activeMipmapLevel = value;\n    }\n  }\n\n  public get activeMipmapLevel(): number | undefined {\n    return this._objRef?.activeMipmapLevel;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { CubeTexture } from 'three';\nimport {\n  CubeTextureMapping,\n  MagnificationTextureFilter,\n  MinificationTextureFilter,\n  PixelFormat,\n  TextureDataType,\n  Wrapping,\n} from 'three/src/constants.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThTexture } from './ThTexture';\n\n@Component({\n  selector: 'th-cubeTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThTextureBase, useExisting: forwardRef(() => ThCubeTexture) },\n  ],\n})\nexport class ThCubeTexture<\n  TImage = unknown,\n  T extends CubeTexture<TImage> = CubeTexture<TImage>,\n  TARGS = [\n    images?: TImage[],\n    mapping?: CubeTextureMapping,\n    wrapS?: Wrapping,\n    wrapT?: Wrapping,\n    magFilter?: MagnificationTextureFilter,\n    minFilter?: MinificationTextureFilter,\n    format?: PixelFormat,\n    type?: TextureDataType,\n    anisotropy?: number,\n    colorSpace?: string,\n  ],\n> extends ThTexture<TImage[], T, TARGS> {\n  public getType(): Type<CubeTexture<TImage>> {\n    return CubeTexture;\n  }\n\n  public get isCubeTexture(): true | undefined {\n    return this._objRef?.isCubeTexture;\n  }\n  public get images(): TImage[] | undefined {\n    return this._objRef?.images;\n  }\n  @Input()\n  public set images(value: TImage[]) {\n    if (this._objRef) {\n      this._objRef.images = value;\n    }\n  }\n\n  @Input()\n  public set mapping(value: CubeTextureMapping) {\n    if (this._objRef) {\n      this._objRef.mapping = value;\n    }\n  }\n\n  public get mapping(): CubeTextureMapping | undefined {\n    return this._objRef?.mapping;\n  }\n  @Input()\n  public set flipY(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flipY = value;\n    }\n  }\n\n  public get flipY(): boolean | undefined {\n    return this._objRef?.flipY;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { CubeTexture, Mesh, PerspectiveCamera, Scene } from 'three';\nimport { CubeTexturePass } from 'three/examples/jsm/postprocessing/CubeTexturePass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-cubeTexturePass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThCubeTexturePass) },\n  ],\n})\nexport class ThCubeTexturePass<\n  T extends CubeTexturePass = CubeTexturePass,\n  TARGS = [camera: PerspectiveCamera, envMap?: CubeTexture, opacity?: number],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<CubeTexturePass> {\n    return CubeTexturePass;\n  }\n\n  @Input()\n  public set camera(value: PerspectiveCamera) {\n    if (this._objRef) {\n      this._objRef.camera = value;\n    }\n  }\n\n  public get camera(): PerspectiveCamera | undefined {\n    return this._objRef?.camera;\n  }\n  @Input()\n  public set cubeShader(value: object) {\n    if (this._objRef) {\n      this._objRef.cubeShader = value;\n    }\n  }\n\n  public get cubeShader(): object | undefined {\n    return this._objRef?.cubeShader;\n  }\n  @Input()\n  public set cubeMesh(value: Mesh) {\n    if (this._objRef) {\n      this._objRef.cubeMesh = value;\n    }\n  }\n\n  public get cubeMesh(): Mesh | undefined {\n    return this._objRef?.cubeMesh;\n  }\n  @Input()\n  public set envMap(value: CubeTexture) {\n    if (this._objRef) {\n      this._objRef.envMap = value;\n    }\n  }\n\n  public get envMap(): CubeTexture | undefined {\n    return this._objRef?.envMap;\n  }\n  @Input()\n  public set opacity(value: number) {\n    if (this._objRef) {\n      this._objRef.opacity = value;\n    }\n  }\n\n  public get opacity(): number | undefined {\n    return this._objRef?.opacity;\n  }\n  @Input()\n  public set cubeScene(value: Scene) {\n    if (this._objRef) {\n      this._objRef.cubeScene = value;\n    }\n  }\n\n  public get cubeScene(): Scene | undefined {\n    return this._objRef?.cubeScene;\n  }\n  @Input()\n  public set cubeCamera(value: PerspectiveCamera) {\n    if (this._objRef) {\n      this._objRef.cubeCamera = value;\n    }\n  }\n\n  public get cubeCamera(): PerspectiveCamera | undefined {\n    return this._objRef?.cubeCamera;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Data3DTexture, Data3DTextureImageData } from 'three';\nimport {\n  MagnificationTextureFilter,\n  MinificationTextureFilter,\n  Wrapping,\n} from 'three/src/constants.js';\nimport { TypedArray } from 'three/src/core/BufferAttribute.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThTexture } from './ThTexture';\n\n@Component({\n  selector: 'th-data3DTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThTextureBase, useExisting: forwardRef(() => ThData3DTexture) },\n  ],\n})\nexport class ThData3DTexture<\n  T extends Data3DTexture = Data3DTexture,\n  TARGS = [\n    data?: TypedArray | null,\n    width?: number,\n    height?: number,\n    depth?: number,\n  ],\n> extends ThTexture<Data3DTextureImageData, T, TARGS> {\n  public getType(): Type<Data3DTexture> {\n    return Data3DTexture;\n  }\n\n  public get isData3DTexture(): true | undefined {\n    return this._objRef?.isData3DTexture;\n  }\n  @Input()\n  public set magFilter(value: MagnificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.magFilter = value;\n    }\n  }\n\n  public get magFilter(): MagnificationTextureFilter | undefined {\n    return this._objRef?.magFilter;\n  }\n  @Input()\n  public set minFilter(value: MinificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.minFilter = value;\n    }\n  }\n\n  public get minFilter(): MinificationTextureFilter | undefined {\n    return this._objRef?.minFilter;\n  }\n  @Input()\n  public set wrapR(value: Wrapping) {\n    if (this._objRef) {\n      this._objRef.wrapR = value;\n    }\n  }\n\n  public get wrapR(): Wrapping | undefined {\n    return this._objRef?.wrapR;\n  }\n  @Input()\n  public set flipY(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flipY = value;\n    }\n  }\n\n  public get flipY(): boolean | undefined {\n    return this._objRef?.flipY;\n  }\n  @Input()\n  public set generateMipmaps(value: boolean) {\n    if (this._objRef) {\n      this._objRef.generateMipmaps = value;\n    }\n  }\n\n  public get generateMipmaps(): boolean | undefined {\n    return this._objRef?.generateMipmaps;\n  }\n  @Input()\n  public set unpackAlignment(value: number) {\n    if (this._objRef) {\n      this._objRef.unpackAlignment = value;\n    }\n  }\n\n  public get unpackAlignment(): number | undefined {\n    return this._objRef?.unpackAlignment;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { DataArrayTexture, DataArrayTextureImageData } from 'three';\nimport {\n  MagnificationTextureFilter,\n  MinificationTextureFilter,\n} from 'three/src/constants.js';\nimport { TypedArray } from 'three/src/core/BufferAttribute.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThTexture } from './ThTexture';\n\n@Component({\n  selector: 'th-dataArrayTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThTextureBase,\n      useExisting: forwardRef(() => ThDataArrayTexture),\n    },\n  ],\n})\nexport class ThDataArrayTexture<\n  T extends DataArrayTexture = DataArrayTexture,\n  TARGS = [\n    data?: TypedArray | null,\n    width?: number,\n    height?: number,\n    depth?: number,\n  ],\n> extends ThTexture<DataArrayTextureImageData, T, TARGS> {\n  public getType(): Type<DataArrayTexture> {\n    return DataArrayTexture;\n  }\n\n  public get isDataArrayTexture(): true | undefined {\n    return this._objRef?.isDataArrayTexture;\n  }\n  @Input()\n  public set magFilter(value: MagnificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.magFilter = value;\n    }\n  }\n\n  public get magFilter(): MagnificationTextureFilter | undefined {\n    return this._objRef?.magFilter;\n  }\n  @Input()\n  public set minFilter(value: MinificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.minFilter = value;\n    }\n  }\n\n  public get minFilter(): MinificationTextureFilter | undefined {\n    return this._objRef?.minFilter;\n  }\n  @Input()\n  public set wrapR(value: boolean) {\n    if (this._objRef) {\n      this._objRef.wrapR = value;\n    }\n  }\n\n  public get wrapR(): boolean | undefined {\n    return this._objRef?.wrapR;\n  }\n  @Input()\n  public set generateMipmaps(value: boolean) {\n    if (this._objRef) {\n      this._objRef.generateMipmaps = value;\n    }\n  }\n\n  public get generateMipmaps(): boolean | undefined {\n    return this._objRef?.generateMipmaps;\n  }\n  @Input()\n  public set flipY(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flipY = value;\n    }\n  }\n\n  public get flipY(): boolean | undefined {\n    return this._objRef?.flipY;\n  }\n  @Input()\n  public set unpackAlignment(value: number) {\n    if (this._objRef) {\n      this._objRef.unpackAlignment = value;\n    }\n  }\n\n  public get unpackAlignment(): number | undefined {\n    return this._objRef?.unpackAlignment;\n  }\n  @Input()\n  public set layerUpdates(value: Set<number>) {\n    if (this._objRef) {\n      this._objRef.layerUpdates = value;\n    }\n  }\n\n  public get layerUpdates(): Set<number> | undefined {\n    return this._objRef?.layerUpdates;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { DataTexture, DataTextureImageData } from 'three';\nimport {\n  MagnificationTextureFilter,\n  Mapping,\n  MinificationTextureFilter,\n  PixelFormat,\n  TextureDataType,\n  Wrapping,\n} from 'three/src/constants.js';\nimport { TypedArray } from 'three/src/core/BufferAttribute.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThTexture } from './ThTexture';\n\n@Component({\n  selector: 'th-dataTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThTextureBase, useExisting: forwardRef(() => ThDataTexture) },\n  ],\n})\nexport class ThDataTexture<\n  T extends DataTexture = DataTexture,\n  TARGS = [\n    data?: TypedArray | null,\n    width?: number,\n    height?: number,\n    format?: PixelFormat,\n    type?: TextureDataType,\n    mapping?: Mapping,\n    wrapS?: Wrapping,\n    wrapT?: Wrapping,\n    magFilter?: MagnificationTextureFilter,\n    minFilter?: MinificationTextureFilter,\n    anisotropy?: number,\n    colorSpace?: string,\n  ],\n> extends ThTexture<DataTextureImageData, T, TARGS> {\n  public getType(): Type<DataTexture> {\n    return DataTexture;\n  }\n\n  public get isDataTexture(): true | undefined {\n    return this._objRef?.isDataTexture;\n  }\n  @Input()\n  public set magFilter(value: MagnificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.magFilter = value;\n    }\n  }\n\n  public get magFilter(): MagnificationTextureFilter | undefined {\n    return this._objRef?.magFilter;\n  }\n  @Input()\n  public set minFilter(value: MinificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.minFilter = value;\n    }\n  }\n\n  public get minFilter(): MinificationTextureFilter | undefined {\n    return this._objRef?.minFilter;\n  }\n  @Input()\n  public set flipY(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flipY = value;\n    }\n  }\n\n  public get flipY(): boolean | undefined {\n    return this._objRef?.flipY;\n  }\n  @Input()\n  public set generateMipmaps(value: boolean) {\n    if (this._objRef) {\n      this._objRef.generateMipmaps = value;\n    }\n  }\n\n  public get generateMipmaps(): boolean | undefined {\n    return this._objRef?.generateMipmaps;\n  }\n  @Input()\n  public set unpackAlignment(value: number) {\n    if (this._objRef) {\n      this._objRef.unpackAlignment = value;\n    }\n  }\n\n  public get unpackAlignment(): number | undefined {\n    return this._objRef?.unpackAlignment;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  Euler,\n  Mesh,\n  NormalBufferAttributes,\n  Vector3,\n} from 'three';\nimport { DecalGeometry } from 'three/examples/jsm/geometries/DecalGeometry.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-decalGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThDecalGeometry),\n    },\n  ],\n})\nexport class ThDecalGeometry<\n  T extends DecalGeometry = DecalGeometry,\n  TARGS = [\n    mesh?: Mesh,\n    position?: Vector3,\n    orientation?: Euler,\n    size?: Vector3,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<DecalGeometry> {\n    return DecalGeometry;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { DepthTexture, DepthTextureImageData } from 'three';\nimport {\n  DepthTexturePixelFormat,\n  MagnificationTextureFilter,\n  Mapping,\n  MinificationTextureFilter,\n  TextureComparisonFunction,\n  TextureDataType,\n  Wrapping,\n} from 'three/src/constants.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThTexture } from './ThTexture';\n\n@Component({\n  selector: 'th-depthTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThTextureBase, useExisting: forwardRef(() => ThDepthTexture) },\n  ],\n})\nexport class ThDepthTexture<\n  T extends DepthTexture = DepthTexture,\n  TARGS = [\n    width: number,\n    height: number,\n    type?: TextureDataType,\n    mapping?: Mapping,\n    wrapS?: Wrapping,\n    wrapT?: Wrapping,\n    magFilter?: MagnificationTextureFilter,\n    minFilter?: MinificationTextureFilter,\n    anisotropy?: number,\n    format?: DepthTexturePixelFormat,\n    depth?: number,\n  ],\n> extends ThTexture<DepthTextureImageData, T, TARGS> {\n  public getType(): Type<DepthTexture> {\n    return DepthTexture;\n  }\n\n  public get isDepthTexture(): true | undefined {\n    return this._objRef?.isDepthTexture;\n  }\n  @Input()\n  public set flipY(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flipY = value;\n    }\n  }\n\n  public get flipY(): boolean | undefined {\n    return this._objRef?.flipY;\n  }\n  @Input()\n  public set magFilter(value: MagnificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.magFilter = value;\n    }\n  }\n\n  public get magFilter(): MagnificationTextureFilter | undefined {\n    return this._objRef?.magFilter;\n  }\n  @Input()\n  public set minFilter(value: MinificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.minFilter = value;\n    }\n  }\n\n  public get minFilter(): MinificationTextureFilter | undefined {\n    return this._objRef?.minFilter;\n  }\n  @Input()\n  public set generateMipmaps(value: boolean) {\n    if (this._objRef) {\n      this._objRef.generateMipmaps = value;\n    }\n  }\n\n  public get generateMipmaps(): boolean | undefined {\n    return this._objRef?.generateMipmaps;\n  }\n  @Input()\n  public set format(value: DepthTexturePixelFormat) {\n    if (this._objRef) {\n      this._objRef.format = value;\n    }\n  }\n\n  public get format(): DepthTexturePixelFormat | undefined {\n    return this._objRef?.format;\n  }\n  @Input()\n  public set type(value: TextureDataType) {\n    if (this._objRef) {\n      this._objRef.type = value;\n    }\n  }\n\n  public get type(): TextureDataType | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set compareFunction(value: TextureComparisonFunction | null) {\n    if (this._objRef) {\n      this._objRef.compareFunction = value;\n    }\n  }\n\n  public get compareFunction(): (TextureComparisonFunction | null) | undefined {\n    return this._objRef?.compareFunction;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { DirectionalLight, Vector3 } from 'three';\nimport { Object3D } from 'three/src/core/Object3D.js';\nimport { DirectionalLightShadow } from 'three/src/lights/DirectionalLightShadow.js';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { applyValue } from '../util';\nimport { ThLight } from './ThLight';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-directionalLight',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThDirectionalLight) },\n  ],\n})\nexport class ThDirectionalLight<\n  T extends DirectionalLight = DirectionalLight,\n  TARGS = [color?: ColorRepresentation, intensity?: number],\n> extends ThLight<DirectionalLightShadow, T, TARGS> {\n  public getType(): Type<DirectionalLight> {\n    return DirectionalLight;\n  }\n\n  public get isDirectionalLight(): true | undefined {\n    return this._objRef?.isDirectionalLight;\n  }\n  public get type(): (string | 'DirectionalLight') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set castShadow(value: boolean) {\n    if (this._objRef) {\n      this._objRef.castShadow = value;\n    }\n  }\n\n  public get castShadow(): boolean | undefined {\n    return this._objRef?.castShadow;\n  }\n  @Input()\n  public set position(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      applyValue<Vector3>(this._objRef.position, value);\n    }\n  }\n  public get position(): Vector3 | undefined {\n    return this._objRef?.position;\n  }\n  @Input()\n  public set shadow(value: DirectionalLightShadow) {\n    if (this._objRef) {\n      this._objRef.shadow = value;\n    }\n  }\n\n  public get shadow(): DirectionalLightShadow | undefined {\n    return this._objRef?.shadow;\n  }\n  @Input()\n  public set target(value: Object3D) {\n    if (this._objRef) {\n      this._objRef.target = value;\n    }\n  }\n\n  public get target(): Object3D | undefined {\n    return this._objRef?.target;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { DirectionalLightHelper, Matrix4, Object3DEventMap } from 'three';\nimport { DirectionalLight } from 'three/src/lights/DirectionalLight.js';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { Line } from 'three/src/objects/Line.js';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-directionalLightHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThObject3D,\n      useExisting: forwardRef(() => ThDirectionalLightHelper),\n    },\n  ],\n})\nexport class ThDirectionalLightHelper<\n  T extends DirectionalLightHelper = DirectionalLightHelper,\n  TARGS = [light: DirectionalLight, size?: number, color?: ColorRepresentation],\n> extends ThObject3D<Object3DEventMap, T, TARGS> {\n  public getType(): Type<DirectionalLightHelper> {\n    return DirectionalLightHelper;\n  }\n\n  public get type(): (string | 'DirectionalLightHelper') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set lightPlane(value: Line) {\n    if (this._objRef) {\n      this._objRef.lightPlane = value;\n    }\n  }\n\n  public get lightPlane(): Line | undefined {\n    return this._objRef?.lightPlane;\n  }\n  @Input()\n  public set light(value: DirectionalLight) {\n    if (this._objRef) {\n      this._objRef.light = value;\n    }\n  }\n\n  public get light(): DirectionalLight | undefined {\n    return this._objRef?.light;\n  }\n  @Input()\n  public set matrix(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.matrix = applyValue<Matrix4>(this._objRef.matrix, value);\n    }\n  }\n  public get matrix(): Matrix4 | undefined {\n    return this._objRef?.matrix;\n  }\n  @Input()\n  public set matrixAutoUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.matrixAutoUpdate = value;\n    }\n  }\n\n  public get matrixAutoUpdate(): boolean | undefined {\n    return this._objRef?.matrixAutoUpdate;\n  }\n  @Input()\n  public set color(value: ColorRepresentation | undefined) {\n    if (this._objRef) {\n      this._objRef.color = value;\n    }\n  }\n\n  public get color(): (ColorRepresentation | undefined) | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set targetLine(value: Line) {\n    if (this._objRef) {\n      this._objRef.targetLine = value;\n    }\n  }\n\n  public get targetLine(): Line | undefined {\n    return this._objRef?.targetLine;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  NormalBufferAttributes,\n  PolyhedronGeometry,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-polyhedronGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThPolyhedronGeometry),\n    },\n  ],\n})\nexport class ThPolyhedronGeometry<\n  T extends PolyhedronGeometry = PolyhedronGeometry,\n  TARGS = [\n    vertices?: number[],\n    indices?: number[],\n    radius?: number,\n    detail?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<PolyhedronGeometry> {\n    return PolyhedronGeometry;\n  }\n\n  public get type(): (string | 'PolyhedronGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly vertices: number[];\n        readonly indices: number[];\n        readonly radius: number;\n        readonly detail: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { DodecahedronGeometry } from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\nimport { ThPolyhedronGeometry } from './ThPolyhedronGeometry';\n\n@Component({\n  selector: 'th-dodecahedronGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThDodecahedronGeometry),\n    },\n  ],\n})\nexport class ThDodecahedronGeometry<\n  T extends DodecahedronGeometry = DodecahedronGeometry,\n  TARGS = [radius?: number, detail?: number],\n> extends ThPolyhedronGeometry<T, TARGS> {\n  public getType(): Type<DodecahedronGeometry> {\n    return DodecahedronGeometry;\n  }\n\n  public get type(): (string | 'DodecahedronGeometry') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ShaderMaterial, Vector2 } from 'three';\nimport { DotScreenPass } from 'three/examples/jsm/postprocessing/DotScreenPass.js';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-dotScreenPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThDotScreenPass) },\n  ],\n})\nexport class ThDotScreenPass<\n  T extends DotScreenPass = DotScreenPass,\n  TARGS = [center?: Vector2, angle?: number, scale?: number],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<DotScreenPass> {\n    return DotScreenPass;\n  }\n\n  @Input()\n  public set uniforms(map: { [name: string]: { value: any } }) {\n    if (this._objRef) {\n      Object.assign(this._objRef.uniforms, map);\n    }\n  }\n\n  public get uniforms(): { [name: string]: { value: any } } | undefined {\n    return this._objRef?.uniforms as\n      | { [name: string]: { value: any } }\n      | undefined;\n  }\n  @Input()\n  public set material(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): ShaderMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { MOUSE, Raycaster, TOUCH } from 'three';\nimport {\n  DragControls,\n  DragControlsEventMap,\n} from 'three/examples/jsm/controls/DragControls.js';\nimport { Camera } from 'three/src/cameras/Camera.js';\nimport { Object3D } from 'three/src/core/Object3D.js';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { ThControlBase } from '../ThControlBase';\nimport { applyValue } from '../util';\n\n@Component({\n  selector: 'th-dragControls',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThControlBase, useExisting: forwardRef(() => ThDragControls) },\n  ],\n})\nexport class ThDragControls<\n  T extends DragControls = DragControls,\n  TARGS = [\n    objects: Object3D[],\n    camera: Camera,\n    domElement?: HTMLElement | SVGElement | null,\n  ],\n> extends ThControlBase<DragControlsEventMap, T, TARGS> {\n  public getType(): Type<DragControls> {\n    return DragControls;\n  }\n\n  @Input()\n  public set objects(value: Object3D[]) {\n    if (this._objRef) {\n      this._objRef.objects = value;\n    }\n  }\n\n  public get objects(): Object3D[] | undefined {\n    return this._objRef?.objects;\n  }\n  @Input()\n  public set recursive(value: boolean) {\n    if (this._objRef) {\n      this._objRef.recursive = value;\n    }\n  }\n\n  public get recursive(): boolean | undefined {\n    return this._objRef?.recursive;\n  }\n  @Input()\n  public set transformGroup(value: boolean) {\n    if (this._objRef) {\n      this._objRef.transformGroup = value;\n    }\n  }\n\n  public get transformGroup(): boolean | undefined {\n    return this._objRef?.transformGroup;\n  }\n  @Input()\n  public set rotateSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.rotateSpeed = value;\n    }\n  }\n\n  public get rotateSpeed(): number | undefined {\n    return this._objRef?.rotateSpeed;\n  }\n  @Input()\n  public set raycaster(\n    value: Raycaster | [origin: Vector3, direction: Vector3],\n  ) {\n    if (this._objRef) {\n      this._objRef.raycaster = applyValue<Raycaster>(\n        this._objRef.raycaster,\n        value,\n      );\n    }\n  }\n  public get raycaster(): Raycaster | undefined {\n    return this._objRef?.raycaster;\n  }\n  @Input()\n  public set mouseButtons(value: {\n    LEFT?: MOUSE | null | undefined;\n    MIDDLE?: MOUSE | null | undefined;\n    RIGHT?: MOUSE | null | undefined;\n  }) {\n    if (this._objRef) {\n      this._objRef.mouseButtons = value;\n    }\n  }\n\n  public get mouseButtons():\n    | {\n        LEFT?: MOUSE | null | undefined;\n        MIDDLE?: MOUSE | null | undefined;\n        RIGHT?: MOUSE | null | undefined;\n      }\n    | undefined {\n    return this._objRef?.mouseButtons;\n  }\n  @Input()\n  public set touches(value: { ONE?: TOUCH | null | undefined }) {\n    if (this._objRef) {\n      this._objRef.touches = value;\n    }\n  }\n\n  public get touches(): { ONE?: TOUCH | null | undefined } | undefined {\n    return this._objRef?.touches;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  EdgesGeometry,\n  NormalBufferAttributes,\n} from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-edgesGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThEdgesGeometry),\n    },\n  ],\n})\nexport class ThEdgesGeometry<\n  TBufferGeometry extends BufferGeometry = BufferGeometry,\n  T extends EdgesGeometry<TBufferGeometry> = EdgesGeometry<TBufferGeometry>,\n  TARGS = [geometry?: TBufferGeometry | null, thresholdAngle?: number],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<EdgesGeometry<TBufferGeometry>> {\n    return EdgesGeometry;\n  }\n\n  public get type(): (string | 'EdgesGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly geometry: TBufferGeometry | null;\n        readonly thresholdAngle: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ExternalTexture } from 'three';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThTexture } from './ThTexture';\n\n@Component({\n  selector: 'th-externalTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThTextureBase,\n      useExisting: forwardRef(() => ThExternalTexture),\n    },\n  ],\n})\nexport class ThExternalTexture<\n  T extends ExternalTexture = ExternalTexture,\n  TARGS = /* sourceTexture? */ WebGLTexture | GPUTexture | null,\n> extends ThTexture<null, T, TARGS> {\n  public getType(): Type<ExternalTexture> {\n    return ExternalTexture;\n  }\n\n  @Input()\n  public set sourceTexture(value: WebGLTexture | GPUTexture | null) {\n    if (this._objRef) {\n      this._objRef.sourceTexture = value;\n    }\n  }\n\n  public get sourceTexture(): (WebGLTexture | GPUTexture | null) | undefined {\n    return this._objRef?.sourceTexture;\n  }\n  public get isExternalTexture(): true | undefined {\n    return this._objRef?.isExternalTexture;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  ExtrudeGeometry,\n  ExtrudeGeometryOptions,\n  NormalBufferAttributes,\n} from 'three';\nimport { Shape } from 'three/src/extras/core/Shape.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-extrudeGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThExtrudeGeometry),\n    },\n  ],\n})\nexport class ThExtrudeGeometry<\n  T extends ExtrudeGeometry = ExtrudeGeometry,\n  TARGS = [shapes?: Shape | Shape[], options?: ExtrudeGeometryOptions],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<ExtrudeGeometry> {\n    return ExtrudeGeometry;\n  }\n\n  public get type(): (string | 'ExtrudeGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly shapes: Shape | Shape[];\n        readonly options: ExtrudeGeometryOptions;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ShaderMaterial } from 'three';\nimport { FilmPass } from 'three/examples/jsm/postprocessing/FilmPass.js';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-filmPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThFilmPass) },\n  ],\n})\nexport class ThFilmPass<\n  T extends FilmPass = FilmPass,\n  TARGS = [intensity?: number, grayscale?: boolean],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<FilmPass> {\n    return FilmPass;\n  }\n\n  @Input()\n  public set uniforms(map: { [name: string]: { value: any } }) {\n    if (this._objRef) {\n      Object.assign(this._objRef.uniforms, map);\n    }\n  }\n\n  public get uniforms(): { [name: string]: { value: any } } | undefined {\n    return this._objRef?.uniforms as\n      | { [name: string]: { value: any } }\n      | undefined;\n  }\n  @Input()\n  public set material(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): ShaderMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera } from 'three';\nimport { FirstPersonControls } from 'three/examples/jsm/controls/FirstPersonControls.js';\nimport { ThControlBase } from '../ThControlBase';\n\n@Component({\n  selector: 'th-firstPersonControls',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThControlBase,\n      useExisting: forwardRef(() => ThFirstPersonControls),\n    },\n  ],\n})\nexport class ThFirstPersonControls<\n  T extends FirstPersonControls = FirstPersonControls,\n  TARGS = [object: Camera, domElement?: HTMLElement | SVGElement],\n> extends ThControlBase<{}, T, TARGS> {\n  public getType(): Type<FirstPersonControls> {\n    return FirstPersonControls;\n  }\n\n  @Input()\n  public set movementSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.movementSpeed = value;\n    }\n  }\n\n  public get movementSpeed(): number | undefined {\n    return this._objRef?.movementSpeed;\n  }\n  @Input()\n  public set lookSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.lookSpeed = value;\n    }\n  }\n\n  public get lookSpeed(): number | undefined {\n    return this._objRef?.lookSpeed;\n  }\n  @Input()\n  public set lookVertical(value: boolean) {\n    if (this._objRef) {\n      this._objRef.lookVertical = value;\n    }\n  }\n\n  public get lookVertical(): boolean | undefined {\n    return this._objRef?.lookVertical;\n  }\n  @Input()\n  public set autoForward(value: boolean) {\n    if (this._objRef) {\n      this._objRef.autoForward = value;\n    }\n  }\n\n  public get autoForward(): boolean | undefined {\n    return this._objRef?.autoForward;\n  }\n  @Input()\n  public set activeLook(value: boolean) {\n    if (this._objRef) {\n      this._objRef.activeLook = value;\n    }\n  }\n\n  public get activeLook(): boolean | undefined {\n    return this._objRef?.activeLook;\n  }\n  @Input()\n  public set heightSpeed(value: boolean) {\n    if (this._objRef) {\n      this._objRef.heightSpeed = value;\n    }\n  }\n\n  public get heightSpeed(): boolean | undefined {\n    return this._objRef?.heightSpeed;\n  }\n  @Input()\n  public set heightCoef(value: number) {\n    if (this._objRef) {\n      this._objRef.heightCoef = value;\n    }\n  }\n\n  public get heightCoef(): number | undefined {\n    return this._objRef?.heightCoef;\n  }\n  @Input()\n  public set heightMin(value: number) {\n    if (this._objRef) {\n      this._objRef.heightMin = value;\n    }\n  }\n\n  public get heightMin(): number | undefined {\n    return this._objRef?.heightMin;\n  }\n  @Input()\n  public set heightMax(value: number) {\n    if (this._objRef) {\n      this._objRef.heightMax = value;\n    }\n  }\n\n  public get heightMax(): number | undefined {\n    return this._objRef?.heightMax;\n  }\n  @Input()\n  public set constrainVertical(value: boolean) {\n    if (this._objRef) {\n      this._objRef.constrainVertical = value;\n    }\n  }\n\n  public get constrainVertical(): boolean | undefined {\n    return this._objRef?.constrainVertical;\n  }\n  @Input()\n  public set verticalMin(value: number) {\n    if (this._objRef) {\n      this._objRef.verticalMin = value;\n    }\n  }\n\n  public get verticalMin(): number | undefined {\n    return this._objRef?.verticalMin;\n  }\n  @Input()\n  public set verticalMax(value: number) {\n    if (this._objRef) {\n      this._objRef.verticalMax = value;\n    }\n  }\n\n  public get verticalMax(): number | undefined {\n    return this._objRef?.verticalMax;\n  }\n  @Input()\n  public set mouseDragOn(value: boolean) {\n    if (this._objRef) {\n      this._objRef.mouseDragOn = value;\n    }\n  }\n\n  public get mouseDragOn(): boolean | undefined {\n    return this._objRef?.mouseDragOn;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera } from 'three';\nimport {\n  FlyControls,\n  FlyControlsEventMap,\n} from 'three/examples/jsm/controls/FlyControls.js';\nimport { ThControlBase } from '../ThControlBase';\n\n@Component({\n  selector: 'th-flyControls',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThControlBase, useExisting: forwardRef(() => ThFlyControls) },\n  ],\n})\nexport class ThFlyControls<\n  T extends FlyControls = FlyControls,\n  TARGS = [object: Camera, domElement?: HTMLElement | SVGElement | null],\n> extends ThControlBase<FlyControlsEventMap, T, TARGS> {\n  public getType(): Type<FlyControls> {\n    return FlyControls;\n  }\n\n  @Input()\n  public set movementSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.movementSpeed = value;\n    }\n  }\n\n  public get movementSpeed(): number | undefined {\n    return this._objRef?.movementSpeed;\n  }\n  @Input()\n  public set rollSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.rollSpeed = value;\n    }\n  }\n\n  public get rollSpeed(): number | undefined {\n    return this._objRef?.rollSpeed;\n  }\n  @Input()\n  public set dragToLook(value: boolean) {\n    if (this._objRef) {\n      this._objRef.dragToLook = value;\n    }\n  }\n\n  public get dragToLook(): boolean | undefined {\n    return this._objRef?.dragToLook;\n  }\n  @Input()\n  public set autoForward(value: boolean) {\n    if (this._objRef) {\n      this._objRef.autoForward = value;\n    }\n  }\n\n  public get autoForward(): boolean | undefined {\n    return this._objRef?.autoForward;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { FramebufferTexture, FramebufferTextureImageData } from 'three';\nimport {\n  MagnificationTextureFilter,\n  MinificationTextureFilter,\n} from 'three/src/constants.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThTexture } from './ThTexture';\n\n@Component({\n  selector: 'th-framebufferTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThTextureBase,\n      useExisting: forwardRef(() => ThFramebufferTexture),\n    },\n  ],\n})\nexport class ThFramebufferTexture<\n  T extends FramebufferTexture = FramebufferTexture,\n  TARGS = [width: number, height: number],\n> extends ThTexture<FramebufferTextureImageData, T, TARGS> {\n  public getType(): Type<FramebufferTexture> {\n    return FramebufferTexture;\n  }\n\n  public get isFramebufferTexture(): true | undefined {\n    return this._objRef?.isFramebufferTexture;\n  }\n  @Input()\n  public set magFilter(value: MagnificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.magFilter = value;\n    }\n  }\n\n  public get magFilter(): MagnificationTextureFilter | undefined {\n    return this._objRef?.magFilter;\n  }\n  @Input()\n  public set minFilter(value: MinificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.minFilter = value;\n    }\n  }\n\n  public get minFilter(): MinificationTextureFilter | undefined {\n    return this._objRef?.minFilter;\n  }\n  @Input()\n  public set generateMipmaps(value: boolean) {\n    if (this._objRef) {\n      this._objRef.generateMipmaps = value;\n    }\n  }\n\n  public get generateMipmaps(): boolean | undefined {\n    return this._objRef?.generateMipmaps;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ShaderMaterial } from 'three';\nimport { GlitchPass } from 'three/examples/jsm/postprocessing/GlitchPass.js';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-glitchPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThGlitchPass) },\n  ],\n})\nexport class ThGlitchPass<\n  T extends GlitchPass = GlitchPass,\n  TARGS = /* dt_size? */ number,\n> extends ThPass<T, TARGS> {\n  public getType(): Type<GlitchPass> {\n    return GlitchPass;\n  }\n\n  @Input()\n  public set uniforms(map: { [name: string]: { value: any } }) {\n    if (this._objRef) {\n      Object.assign(this._objRef.uniforms, map);\n    }\n  }\n\n  public get uniforms(): { [name: string]: { value: any } } | undefined {\n    return this._objRef?.uniforms as\n      | { [name: string]: { value: any } }\n      | undefined;\n  }\n  @Input()\n  public set material(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): ShaderMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n  @Input()\n  public set goWild(value: boolean) {\n    if (this._objRef) {\n      this._objRef.goWild = value;\n    }\n  }\n\n  public get goWild(): boolean | undefined {\n    return this._objRef?.goWild;\n  }\n  @Input()\n  public set curF(value: number) {\n    if (this._objRef) {\n      this._objRef.curF = value;\n    }\n  }\n\n  public get curF(): number | undefined {\n    return this._objRef?.curF;\n  }\n  @Input()\n  public set randX(value: number) {\n    if (this._objRef) {\n      this._objRef.randX = value;\n    }\n  }\n\n  public get randX(): number | undefined {\n    return this._objRef?.randX;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { GridHelper, Object3DEventMap } from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { LineBasicMaterial } from 'three/src/materials/LineBasicMaterial.js';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { ThLineSegments } from './ThLineSegments';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-gridHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThGridHelper) },\n  ],\n})\nexport class ThGridHelper<\n  T extends GridHelper = GridHelper,\n  TARGS = [\n    size?: number,\n    divisions?: number,\n    color1?: ColorRepresentation,\n    color2?: ColorRepresentation,\n  ],\n> extends ThLineSegments<\n  BufferGeometry,\n  LineBasicMaterial,\n  Object3DEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<GridHelper> {\n    return GridHelper;\n  }\n\n  public get type(): (string | 'GridHelper') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Group } from 'three';\nimport { Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-group',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThGroup) }],\n})\nexport class ThGroup<\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends Group<TEventMap> = Group<TEventMap>,\n  TARGS = [],\n> extends ThObject3D<TEventMap, T, TARGS> {\n  public getType(): Type<Group<TEventMap>> {\n    return Group;\n  }\n\n  public get isGroup(): true | undefined {\n    return this._objRef?.isGroup;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ShaderMaterial } from 'three';\nimport {\n  HalftonePass,\n  HalftonePassParameters,\n} from 'three/examples/jsm/postprocessing/HalftonePass.js';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-halftonePass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThHalftonePass) },\n  ],\n})\nexport class ThHalftonePass<\n  T extends HalftonePass = HalftonePass,\n  TARGS = /* params */ HalftonePassParameters,\n> extends ThPass<T, TARGS> {\n  public getType(): Type<HalftonePass> {\n    return HalftonePass;\n  }\n\n  @Input()\n  public set uniforms(map: { [name: string]: { value: any } }) {\n    if (this._objRef) {\n      Object.assign(this._objRef.uniforms, map);\n    }\n  }\n\n  public get uniforms(): { [name: string]: { value: any } } | undefined {\n    return this._objRef?.uniforms as\n      | { [name: string]: { value: any } }\n      | undefined;\n  }\n  @Input()\n  public set material(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): ShaderMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Color, ColorRepresentation, HemisphereLight, Vector3 } from 'three';\nimport { applyValue } from '../util';\nimport { ThLight } from './ThLight';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-hemisphereLight',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThHemisphereLight) },\n  ],\n})\nexport class ThHemisphereLight<\n  T extends HemisphereLight = HemisphereLight,\n  TARGS = [\n    skyColor?: ColorRepresentation,\n    groundColor?: ColorRepresentation,\n    intensity?: number,\n  ],\n> extends ThLight<undefined, T, TARGS> {\n  public getType(): Type<HemisphereLight> {\n    return HemisphereLight;\n  }\n\n  public get isHemisphereLight(): true | undefined {\n    return this._objRef?.isHemisphereLight;\n  }\n  public get type(): (string | 'HemisphereLight') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set position(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      applyValue<Vector3>(this._objRef.position, value);\n    }\n  }\n  public get position(): Vector3 | undefined {\n    return this._objRef?.position;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set groundColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.groundColor = applyValue<Color>(\n        this._objRef.groundColor,\n        value,\n      );\n    }\n  }\n  public get groundColor(): Color | undefined {\n    return this._objRef?.groundColor;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { HemisphereLightHelper, Matrix4, Object3DEventMap } from 'three';\nimport { HemisphereLight } from 'three/src/lights/HemisphereLight.js';\nimport { MeshBasicMaterial } from 'three/src/materials/MeshBasicMaterial.js';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-hemisphereLightHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThObject3D,\n      useExisting: forwardRef(() => ThHemisphereLightHelper),\n    },\n  ],\n})\nexport class ThHemisphereLightHelper<\n  T extends HemisphereLightHelper = HemisphereLightHelper,\n  TARGS = [light: HemisphereLight, size: number, color?: ColorRepresentation],\n> extends ThObject3D<Object3DEventMap, T, TARGS> {\n  public getType(): Type<HemisphereLightHelper> {\n    return HemisphereLightHelper;\n  }\n\n  public get type(): (string | 'HemisphereLightHelper') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set light(value: HemisphereLight) {\n    if (this._objRef) {\n      this._objRef.light = value;\n    }\n  }\n\n  public get light(): HemisphereLight | undefined {\n    return this._objRef?.light;\n  }\n  @Input()\n  public set matrix(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.matrix = applyValue<Matrix4>(this._objRef.matrix, value);\n    }\n  }\n  public get matrix(): Matrix4 | undefined {\n    return this._objRef?.matrix;\n  }\n  @Input()\n  public set matrixAutoUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.matrixAutoUpdate = value;\n    }\n  }\n\n  public get matrixAutoUpdate(): boolean | undefined {\n    return this._objRef?.matrixAutoUpdate;\n  }\n  @Input()\n  public set material(value: MeshBasicMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): MeshBasicMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set color(value: ColorRepresentation | undefined) {\n    if (this._objRef) {\n      this._objRef.color = value;\n    }\n  }\n\n  public get color(): (ColorRepresentation | undefined) | undefined {\n    return this._objRef?.color;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { IcosahedronGeometry } from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\nimport { ThPolyhedronGeometry } from './ThPolyhedronGeometry';\n\n@Component({\n  selector: 'th-icosahedronGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThIcosahedronGeometry),\n    },\n  ],\n})\nexport class ThIcosahedronGeometry<\n  T extends IcosahedronGeometry = IcosahedronGeometry,\n  TARGS = [radius?: number, detail?: number],\n> extends ThPolyhedronGeometry<T, TARGS> {\n  public getType(): Type<IcosahedronGeometry> {\n    return IcosahedronGeometry;\n  }\n\n  public get type(): (string | 'IcosahedronGeometry') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  InstancedBufferGeometry,\n  NormalBufferAttributes,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-instancedBufferGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThInstancedBufferGeometry),\n    },\n  ],\n})\nexport class ThInstancedBufferGeometry<\n  T extends InstancedBufferGeometry = InstancedBufferGeometry,\n  TARGS = [],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<InstancedBufferGeometry> {\n    return InstancedBufferGeometry;\n  }\n\n  @Input()\n  public set type(value: string) {\n    if (this._objRef) {\n      this._objRef.type = value;\n    }\n  }\n\n  public get type(): string | undefined {\n    return this._objRef?.type;\n  }\n  public get isInstancedBufferGeometry(): true | undefined {\n    return this._objRef?.isInstancedBufferGeometry;\n  }\n  @Input()\n  public set instanceCount(value: number) {\n    if (this._objRef) {\n      this._objRef.instanceCount = value;\n    }\n  }\n\n  public get instanceCount(): number | undefined {\n    return this._objRef?.instanceCount;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Box3, InstancedMesh, InstancedMeshEventMap } from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { InstancedBufferAttribute } from 'three/src/core/InstancedBufferAttribute.js';\nimport { Material } from 'three/src/materials/Material.js';\nimport { Sphere } from 'three/src/math/Sphere.js';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { DataTexture } from 'three/src/textures/DataTexture.js';\nimport { applyValue } from '../util';\nimport { ThMesh } from './ThMesh';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-instancedMesh',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThInstancedMesh) },\n  ],\n})\nexport class ThInstancedMesh<\n  TGeometry extends BufferGeometry = BufferGeometry,\n  TMaterial extends Material | Material[] = Material | Material[],\n  TEventMap extends InstancedMeshEventMap = InstancedMeshEventMap,\n  T extends InstancedMesh<TGeometry, TMaterial, TEventMap> = InstancedMesh<\n    TGeometry,\n    TMaterial,\n    TEventMap\n  >,\n  TARGS = [\n    geometry: TGeometry | undefined,\n    material: TMaterial | undefined,\n    count: number,\n  ],\n> extends ThMesh<TGeometry, TMaterial, TEventMap, T, TARGS> {\n  public getType(): Type<InstancedMesh<TGeometry, TMaterial, TEventMap>> {\n    return InstancedMesh;\n  }\n\n  public get isInstancedMesh(): true | undefined {\n    return this._objRef?.isInstancedMesh;\n  }\n  @Input()\n  public set boundingBox(value: Box3 | null | [min: Vector3, max: Vector3]) {\n    if (this._objRef) {\n      this._objRef.boundingBox = applyValue<Box3 | null>(\n        this._objRef.boundingBox,\n        value,\n      );\n    }\n  }\n  public get boundingBox(): (Box3 | null) | undefined {\n    return this._objRef?.boundingBox;\n  }\n  @Input()\n  public set boundingSphere(\n    value: Sphere | null | [center: Vector3, radius: number],\n  ) {\n    if (this._objRef) {\n      this._objRef.boundingSphere = applyValue<Sphere | null>(\n        this._objRef.boundingSphere,\n        value,\n      );\n    }\n  }\n  public get boundingSphere(): (Sphere | null) | undefined {\n    return this._objRef?.boundingSphere;\n  }\n  @Input()\n  public set count(value: number) {\n    if (this._objRef) {\n      this._objRef.count = value;\n    }\n  }\n\n  public get count(): number | undefined {\n    return this._objRef?.count;\n  }\n  @Input()\n  public set instanceColor(\n    value:\n      | InstancedBufferAttribute\n      | null\n      | [value: ArrayLike<number> | ArrayBufferView, offset?: number],\n  ) {\n    if (this._objRef) {\n      this._objRef.instanceColor = applyValue<InstancedBufferAttribute | null>(\n        this._objRef.instanceColor,\n        value,\n      );\n    }\n  }\n  public get instanceColor(): (InstancedBufferAttribute | null) | undefined {\n    return this._objRef?.instanceColor;\n  }\n  @Input()\n  public set instanceMatrix(\n    value:\n      | InstancedBufferAttribute\n      | [value: ArrayLike<number> | ArrayBufferView, offset?: number],\n  ) {\n    if (this._objRef) {\n      this._objRef.instanceMatrix = applyValue<InstancedBufferAttribute>(\n        this._objRef.instanceMatrix,\n        value,\n      );\n    }\n  }\n  public get instanceMatrix(): InstancedBufferAttribute | undefined {\n    return this._objRef?.instanceMatrix;\n  }\n  @Input()\n  public set morphTexture(value: DataTexture | null) {\n    if (this._objRef) {\n      this._objRef.morphTexture = value;\n    }\n  }\n\n  public get morphTexture(): (DataTexture | null) | undefined {\n    return this._objRef?.morphTexture;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  LatheGeometry,\n  NormalBufferAttributes,\n} from 'three';\nimport { Vector2 } from 'three/src/math/Vector2.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-latheGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThLatheGeometry),\n    },\n  ],\n})\nexport class ThLatheGeometry<\n  T extends LatheGeometry = LatheGeometry,\n  TARGS = [\n    points?: Vector2[],\n    segments?: number,\n    phiStart?: number,\n    phiLength?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<LatheGeometry> {\n    return LatheGeometry;\n  }\n\n  public get type(): (string | 'LatheGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly points: Vector2[];\n        readonly segments: number;\n        readonly phiStart: number;\n        readonly phiLength: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { LightProbe, LightShadow, SphericalHarmonics3 } from 'three';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { applyValue } from '../util';\nimport { ThLight } from './ThLight';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-lightProbe',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThLightProbe) },\n  ],\n})\nexport class ThLightProbe<\n  T extends LightProbe = LightProbe,\n  TARGS = [sh?: SphericalHarmonics3, intensity?: number],\n> extends ThLight<LightShadow | undefined, T, TARGS> {\n  public getType(): Type<LightProbe> {\n    return LightProbe;\n  }\n\n  public get isLightProbe(): true | undefined {\n    return this._objRef?.isLightProbe;\n  }\n  @Input()\n  public set sh(value: SphericalHarmonics3 | [coefficients: Vector3[]]) {\n    if (this._objRef) {\n      this._objRef.sh = applyValue<SphericalHarmonics3>(this._objRef.sh, value);\n    }\n  }\n  public get sh(): SphericalHarmonics3 | undefined {\n    return this._objRef?.sh;\n  }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { Material, Mesh } from 'three';\nimport { ThObject3D } from './generated/ThObject3D';\nimport { ThWrapperBase } from './ThWrapperBase';\n@Component({\n  selector: 'th-abs-material',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ThMaterialBase<T extends Material, ARGS> extends ThWrapperBase<T, ARGS> {\n  protected parent = inject<ThObject3D<any>>(ThObject3D);\n\n  public addToParent() {\n    if (!this.parent.objRef) {\n      throw new Error(\"parent object doesn't hold a three js object instance\");\n    }\n\n    (this.parent.objRef as Mesh).material = this.objRef as Material;\n  }\n\n  public removeFromParent() {\n    if (this._objRef && this.parent && this.parent.objRef) {\n      (this.parent.objRef as any).material = undefined;\n    }\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  inject,\n} from '@angular/core';\nimport { Color, ColorRepresentation, Material } from 'three';\nimport {\n  Blending,\n  BlendingDstFactor,\n  BlendingEquation,\n  BlendingSrcFactor,\n  DepthModes,\n  Side,\n  StencilFunc,\n  StencilOp,\n} from 'three/src/constants.js';\nimport { Plane } from 'three/src/math/Plane.js';\nimport { ThMaterialBase } from '../ThMaterialBase';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-material',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [],\n})\nexport class ThMaterial<\n  T extends Material = Material,\n  TARGS = [],\n> extends ThMaterialBase<T, TARGS> {\n  parent = inject<ThObject3D>(ThObject3D, { skipSelf: true });\n\n  public getType(): Type<Material> {\n    return Material;\n  }\n\n  public get isMaterial(): boolean | undefined {\n    return this._objRef?.isMaterial;\n  }\n  public get uuid(): string | undefined {\n    return this._objRef?.uuid;\n  }\n  @Input()\n  public set type(value: string) {\n    if (this._objRef) {\n      this._objRef.type = value;\n    }\n  }\n\n  public get type(): string | undefined {\n    return this._objRef?.type;\n  }\n  public get version(): number | undefined {\n    return this._objRef?.version;\n  }\n  @Input()\n  public set defines(value: Record<string, unknown> | undefined) {\n    if (this._objRef) {\n      this._objRef.defines = value;\n    }\n  }\n\n  public get defines(): (Record<string, unknown> | undefined) | undefined {\n    return this._objRef?.defines;\n  }\n  @Input()\n  public set needsUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.needsUpdate = value;\n    }\n  }\n\n  @Input()\n  public set name(value: string) {\n    if (this._objRef) {\n      this._objRef.name = value;\n    }\n  }\n\n  public get name(): string | undefined {\n    return this._objRef?.name;\n  }\n  @Input()\n  public set blending(value: Blending) {\n    if (this._objRef) {\n      this._objRef.blending = value;\n    }\n  }\n\n  public get blending(): Blending | undefined {\n    return this._objRef?.blending;\n  }\n  @Input()\n  public set side(value: Side) {\n    if (this._objRef) {\n      this._objRef.side = value;\n    }\n  }\n\n  public get side(): Side | undefined {\n    return this._objRef?.side;\n  }\n  @Input()\n  public set vertexColors(value: boolean) {\n    if (this._objRef) {\n      this._objRef.vertexColors = value;\n    }\n  }\n\n  public get vertexColors(): boolean | undefined {\n    return this._objRef?.vertexColors;\n  }\n  @Input()\n  public set opacity(value: number) {\n    if (this._objRef) {\n      this._objRef.opacity = value;\n    }\n  }\n\n  public get opacity(): number | undefined {\n    return this._objRef?.opacity;\n  }\n  @Input()\n  public set transparent(value: boolean) {\n    if (this._objRef) {\n      this._objRef.transparent = value;\n    }\n  }\n\n  public get transparent(): boolean | undefined {\n    return this._objRef?.transparent;\n  }\n  @Input()\n  public set alphaHash(value: boolean) {\n    if (this._objRef) {\n      this._objRef.alphaHash = value;\n    }\n  }\n\n  public get alphaHash(): boolean | undefined {\n    return this._objRef?.alphaHash;\n  }\n  @Input()\n  public set blendSrc(value: BlendingSrcFactor) {\n    if (this._objRef) {\n      this._objRef.blendSrc = value;\n    }\n  }\n\n  public get blendSrc(): BlendingSrcFactor | undefined {\n    return this._objRef?.blendSrc;\n  }\n  @Input()\n  public set blendDst(value: BlendingDstFactor) {\n    if (this._objRef) {\n      this._objRef.blendDst = value;\n    }\n  }\n\n  public get blendDst(): BlendingDstFactor | undefined {\n    return this._objRef?.blendDst;\n  }\n  @Input()\n  public set blendEquation(value: BlendingEquation) {\n    if (this._objRef) {\n      this._objRef.blendEquation = value;\n    }\n  }\n\n  public get blendEquation(): BlendingEquation | undefined {\n    return this._objRef?.blendEquation;\n  }\n  @Input()\n  public set blendSrcAlpha(value: BlendingSrcFactor | null) {\n    if (this._objRef) {\n      this._objRef.blendSrcAlpha = value;\n    }\n  }\n\n  public get blendSrcAlpha(): (BlendingSrcFactor | null) | undefined {\n    return this._objRef?.blendSrcAlpha;\n  }\n  @Input()\n  public set blendDstAlpha(value: BlendingDstFactor | null) {\n    if (this._objRef) {\n      this._objRef.blendDstAlpha = value;\n    }\n  }\n\n  public get blendDstAlpha(): (BlendingDstFactor | null) | undefined {\n    return this._objRef?.blendDstAlpha;\n  }\n  @Input()\n  public set blendEquationAlpha(value: BlendingEquation | null) {\n    if (this._objRef) {\n      this._objRef.blendEquationAlpha = value;\n    }\n  }\n\n  public get blendEquationAlpha(): (BlendingEquation | null) | undefined {\n    return this._objRef?.blendEquationAlpha;\n  }\n  @Input()\n  public set blendColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.blendColor = applyValue<Color>(\n        this._objRef.blendColor,\n        value,\n      );\n    }\n  }\n  public get blendColor(): Color | undefined {\n    return this._objRef?.blendColor;\n  }\n  @Input()\n  public set blendAlpha(value: number) {\n    if (this._objRef) {\n      this._objRef.blendAlpha = value;\n    }\n  }\n\n  public get blendAlpha(): number | undefined {\n    return this._objRef?.blendAlpha;\n  }\n  @Input()\n  public set depthFunc(value: DepthModes) {\n    if (this._objRef) {\n      this._objRef.depthFunc = value;\n    }\n  }\n\n  public get depthFunc(): DepthModes | undefined {\n    return this._objRef?.depthFunc;\n  }\n  @Input()\n  public set depthTest(value: boolean) {\n    if (this._objRef) {\n      this._objRef.depthTest = value;\n    }\n  }\n\n  public get depthTest(): boolean | undefined {\n    return this._objRef?.depthTest;\n  }\n  @Input()\n  public set depthWrite(value: boolean) {\n    if (this._objRef) {\n      this._objRef.depthWrite = value;\n    }\n  }\n\n  public get depthWrite(): boolean | undefined {\n    return this._objRef?.depthWrite;\n  }\n  @Input()\n  public set stencilWriteMask(value: number) {\n    if (this._objRef) {\n      this._objRef.stencilWriteMask = value;\n    }\n  }\n\n  public get stencilWriteMask(): number | undefined {\n    return this._objRef?.stencilWriteMask;\n  }\n  @Input()\n  public set stencilFunc(value: StencilFunc) {\n    if (this._objRef) {\n      this._objRef.stencilFunc = value;\n    }\n  }\n\n  public get stencilFunc(): StencilFunc | undefined {\n    return this._objRef?.stencilFunc;\n  }\n  @Input()\n  public set stencilRef(value: number) {\n    if (this._objRef) {\n      this._objRef.stencilRef = value;\n    }\n  }\n\n  public get stencilRef(): number | undefined {\n    return this._objRef?.stencilRef;\n  }\n  @Input()\n  public set stencilFuncMask(value: number) {\n    if (this._objRef) {\n      this._objRef.stencilFuncMask = value;\n    }\n  }\n\n  public get stencilFuncMask(): number | undefined {\n    return this._objRef?.stencilFuncMask;\n  }\n  @Input()\n  public set stencilFail(value: StencilOp) {\n    if (this._objRef) {\n      this._objRef.stencilFail = value;\n    }\n  }\n\n  public get stencilFail(): StencilOp | undefined {\n    return this._objRef?.stencilFail;\n  }\n  @Input()\n  public set stencilZFail(value: StencilOp) {\n    if (this._objRef) {\n      this._objRef.stencilZFail = value;\n    }\n  }\n\n  public get stencilZFail(): StencilOp | undefined {\n    return this._objRef?.stencilZFail;\n  }\n  @Input()\n  public set stencilZPass(value: StencilOp) {\n    if (this._objRef) {\n      this._objRef.stencilZPass = value;\n    }\n  }\n\n  public get stencilZPass(): StencilOp | undefined {\n    return this._objRef?.stencilZPass;\n  }\n  @Input()\n  public set stencilWrite(value: boolean) {\n    if (this._objRef) {\n      this._objRef.stencilWrite = value;\n    }\n  }\n\n  public get stencilWrite(): boolean | undefined {\n    return this._objRef?.stencilWrite;\n  }\n  @Input()\n  public set clippingPlanes(value: Array<Plane> | null) {\n    if (this._objRef) {\n      this._objRef.clippingPlanes = value;\n    }\n  }\n\n  public get clippingPlanes(): (Array<Plane> | null) | undefined {\n    return this._objRef?.clippingPlanes;\n  }\n  @Input()\n  public set clipIntersection(value: boolean) {\n    if (this._objRef) {\n      this._objRef.clipIntersection = value;\n    }\n  }\n\n  public get clipIntersection(): boolean | undefined {\n    return this._objRef?.clipIntersection;\n  }\n  @Input()\n  public set clipShadows(value: boolean) {\n    if (this._objRef) {\n      this._objRef.clipShadows = value;\n    }\n  }\n\n  public get clipShadows(): boolean | undefined {\n    return this._objRef?.clipShadows;\n  }\n  @Input()\n  public set shadowSide(value: Side | null) {\n    if (this._objRef) {\n      this._objRef.shadowSide = value;\n    }\n  }\n\n  public get shadowSide(): (Side | null) | undefined {\n    return this._objRef?.shadowSide;\n  }\n  @Input()\n  public set colorWrite(value: boolean) {\n    if (this._objRef) {\n      this._objRef.colorWrite = value;\n    }\n  }\n\n  public get colorWrite(): boolean | undefined {\n    return this._objRef?.colorWrite;\n  }\n  @Input()\n  public set precision(value: ('highp' | 'mediump' | 'lowp') | null) {\n    if (this._objRef) {\n      this._objRef.precision = value;\n    }\n  }\n\n  public get precision(): (('highp' | 'mediump' | 'lowp') | null) | undefined {\n    return this._objRef?.precision;\n  }\n  @Input()\n  public set polygonOffset(value: boolean) {\n    if (this._objRef) {\n      this._objRef.polygonOffset = value;\n    }\n  }\n\n  public get polygonOffset(): boolean | undefined {\n    return this._objRef?.polygonOffset;\n  }\n  @Input()\n  public set polygonOffsetFactor(value: number) {\n    if (this._objRef) {\n      this._objRef.polygonOffsetFactor = value;\n    }\n  }\n\n  public get polygonOffsetFactor(): number | undefined {\n    return this._objRef?.polygonOffsetFactor;\n  }\n  @Input()\n  public set polygonOffsetUnits(value: number) {\n    if (this._objRef) {\n      this._objRef.polygonOffsetUnits = value;\n    }\n  }\n\n  public get polygonOffsetUnits(): number | undefined {\n    return this._objRef?.polygonOffsetUnits;\n  }\n  @Input()\n  public set dithering(value: boolean) {\n    if (this._objRef) {\n      this._objRef.dithering = value;\n    }\n  }\n\n  public get dithering(): boolean | undefined {\n    return this._objRef?.dithering;\n  }\n  @Input()\n  public set alphaToCoverage(value: boolean) {\n    if (this._objRef) {\n      this._objRef.alphaToCoverage = value;\n    }\n  }\n\n  public get alphaToCoverage(): boolean | undefined {\n    return this._objRef?.alphaToCoverage;\n  }\n  @Input()\n  public set premultipliedAlpha(value: boolean) {\n    if (this._objRef) {\n      this._objRef.premultipliedAlpha = value;\n    }\n  }\n\n  public get premultipliedAlpha(): boolean | undefined {\n    return this._objRef?.premultipliedAlpha;\n  }\n  @Input()\n  public set forceSinglePass(value: boolean) {\n    if (this._objRef) {\n      this._objRef.forceSinglePass = value;\n    }\n  }\n\n  public get forceSinglePass(): boolean | undefined {\n    return this._objRef?.forceSinglePass;\n  }\n  @Input()\n  public set allowOverride(value: boolean) {\n    if (this._objRef) {\n      this._objRef.allowOverride = value;\n    }\n  }\n\n  public get allowOverride(): boolean | undefined {\n    return this._objRef?.allowOverride;\n  }\n  @Input()\n  public set visible(value: boolean) {\n    if (this._objRef) {\n      this._objRef.visible = value;\n    }\n  }\n\n  public get visible(): boolean | undefined {\n    return this._objRef?.visible;\n  }\n  @Input()\n  public set toneMapped(value: boolean) {\n    if (this._objRef) {\n      this._objRef.toneMapped = value;\n    }\n  }\n\n  public get toneMapped(): boolean | undefined {\n    return this._objRef?.toneMapped;\n  }\n  @Input()\n  public set userData(value: Record<string, any>) {\n    if (this._objRef) {\n      this._objRef.userData = value;\n    }\n  }\n\n  public get userData(): Record<string, any> | undefined {\n    return this._objRef?.userData;\n  }\n  @Input()\n  public set alphaTest(value: number) {\n    if (this._objRef) {\n      this._objRef.alphaTest = value;\n    }\n  }\n\n  public get alphaTest(): number | undefined {\n    return this._objRef?.alphaTest;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  LineBasicMaterial,\n  LineBasicMaterialParameters,\n} from 'three';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-lineBasicMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThMaterial, useExisting: forwardRef(() => ThLineBasicMaterial) },\n  ],\n})\nexport class ThLineBasicMaterial<\n  T extends LineBasicMaterial = LineBasicMaterial,\n  TARGS = /* parameters? */ LineBasicMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<LineBasicMaterial> {\n    return LineBasicMaterial;\n  }\n\n  public get isLineBasicMaterial(): boolean | undefined {\n    return this._objRef?.isLineBasicMaterial;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set linewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.linewidth = value;\n    }\n  }\n\n  public get linewidth(): number | undefined {\n    return this._objRef?.linewidth;\n  }\n  @Input()\n  public set linecap(value: 'butt' | 'round' | 'square') {\n    if (this._objRef) {\n      this._objRef.linecap = value;\n    }\n  }\n\n  public get linecap(): ('butt' | 'round' | 'square') | undefined {\n    return this._objRef?.linecap;\n  }\n  @Input()\n  public set linejoin(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.linejoin = value;\n    }\n  }\n\n  public get linejoin(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.linejoin;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { LineDashedMaterial, LineDashedMaterialParameters } from 'three';\nimport { ThLineBasicMaterial } from './ThLineBasicMaterial';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-lineDashedMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThMaterial,\n      useExisting: forwardRef(() => ThLineDashedMaterial),\n    },\n  ],\n})\nexport class ThLineDashedMaterial<\n  T extends LineDashedMaterial = LineDashedMaterial,\n  TARGS = /* parameters? */ LineDashedMaterialParameters,\n> extends ThLineBasicMaterial<T, TARGS> {\n  public getType(): Type<LineDashedMaterial> {\n    return LineDashedMaterial;\n  }\n\n  public get isLineDashedMaterial(): boolean | undefined {\n    return this._objRef?.isLineDashedMaterial;\n  }\n  @Input()\n  public set scale(value: number) {\n    if (this._objRef) {\n      this._objRef.scale = value;\n    }\n  }\n\n  public get scale(): number | undefined {\n    return this._objRef?.scale;\n  }\n  @Input()\n  public set dashSize(value: number) {\n    if (this._objRef) {\n      this._objRef.dashSize = value;\n    }\n  }\n\n  public get dashSize(): number | undefined {\n    return this._objRef?.dashSize;\n  }\n  @Input()\n  public set gapSize(value: number) {\n    if (this._objRef) {\n      this._objRef.gapSize = value;\n    }\n  }\n\n  public get gapSize(): number | undefined {\n    return this._objRef?.gapSize;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { LineLoop } from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { Material } from 'three/src/materials/Material.js';\nimport { ThLine } from './ThLine';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-lineLoop',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThLineLoop) },\n  ],\n})\nexport class ThLineLoop<\n  TGeometry extends BufferGeometry = BufferGeometry,\n  TMaterial extends Material | Material[] = Material | Material[],\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends LineLoop<TGeometry, TMaterial, TEventMap> = LineLoop<\n    TGeometry,\n    TMaterial,\n    TEventMap\n  >,\n  TARGS = [geometry?: TGeometry, material?: TMaterial],\n> extends ThLine<TGeometry, TMaterial, TEventMap, T, TARGS> {\n  public getType(): Type<LineLoop<TGeometry, TMaterial, TEventMap>> {\n    return LineLoop;\n  }\n\n  public get isLineLoop(): true | undefined {\n    return this._objRef?.isLineLoop;\n  }\n  public get type(): (string | 'LineLoop') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { LOD } from 'three';\nimport { Object3D, Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-lOD',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThLOD) }],\n})\nexport class ThLOD<\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends LOD<TEventMap> = LOD<TEventMap>,\n  TARGS = [],\n> extends ThObject3D<TEventMap, T, TARGS> {\n  public getType(): Type<LOD<TEventMap>> {\n    return LOD;\n  }\n\n  public get isLOD(): true | undefined {\n    return this._objRef?.isLOD;\n  }\n  public get type(): (string | 'LOD') | undefined {\n    return this._objRef?.type;\n  }\n  public get levels():\n    | Array<{\n        /** The Object3D to display at this level. */\n        object: Object3D;\n        /** The distance at which to display this level of detail. Expects a `Float`. */\n        distance: number;\n        /** Threshold used to avoid flickering at LOD boundaries, as a fraction of distance. Expects a `Float`. */\n        hysteresis: number;\n      }>\n    | undefined {\n    return this._objRef?.levels;\n  }\n  @Input()\n  public set autoUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.autoUpdate = value;\n    }\n  }\n\n  public get autoUpdate(): boolean | undefined {\n    return this._objRef?.autoUpdate;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ShaderMaterial } from 'three';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-shaderPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThShaderPass) },\n  ],\n})\nexport class ThShaderPass<\n  T extends ShaderPass = ShaderPass,\n  TARGS = [shader: object, textureID?: string],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<ShaderPass> {\n    return ShaderPass;\n  }\n\n  @Input()\n  public set textureID(value: string) {\n    if (this._objRef) {\n      this._objRef.textureID = value;\n    }\n  }\n\n  public get textureID(): string | undefined {\n    return this._objRef?.textureID;\n  }\n  @Input()\n  public set uniforms(map: { [name: string]: { value: any } }) {\n    if (this._objRef) {\n      Object.assign(this._objRef.uniforms, map);\n    }\n  }\n\n  public get uniforms(): { [name: string]: { value: any } } | undefined {\n    return this._objRef?.uniforms as\n      | { [name: string]: { value: any } }\n      | undefined;\n  }\n  @Input()\n  public set material(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): ShaderMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Data3DTexture, DataTexture } from 'three';\nimport {\n  LUTPass,\n  LUTPassParameters,\n} from 'three/examples/jsm/postprocessing/LUTPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThShaderPass } from './ThShaderPass';\n\n@Component({\n  selector: 'th-lUTPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThLUTPass) },\n  ],\n})\nexport class ThLUTPass<\n  T extends LUTPass = LUTPass,\n  TARGS = /* params? */ LUTPassParameters,\n> extends ThShaderPass<T, TARGS> {\n  public getType(): Type<LUTPass> {\n    return LUTPass;\n  }\n\n  @Input()\n  public set lut(value: DataTexture | Data3DTexture) {\n    if (this._objRef) {\n      this._objRef.lut = value;\n    }\n  }\n\n  public get lut(): (DataTexture | Data3DTexture) | undefined {\n    return this._objRef?.lut;\n  }\n  @Input()\n  public set intensity(value: number) {\n    if (this._objRef) {\n      this._objRef.intensity = value;\n    }\n  }\n\n  public get intensity(): number | undefined {\n    return this._objRef?.intensity;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { MOUSE, TOUCH, Vector3 } from 'three';\nimport {\n  OrbitControls,\n  OrbitControlsEventMap,\n} from 'three/examples/jsm/controls/OrbitControls.js';\nimport { Camera } from 'three/src/cameras/Camera.js';\nimport { ThControlBase } from '../ThControlBase';\nimport { applyValue } from '../util';\n\n@Component({\n  selector: 'th-orbitControls',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThControlBase, useExisting: forwardRef(() => ThOrbitControls) },\n  ],\n})\nexport class ThOrbitControls<\n  T extends OrbitControls = OrbitControls,\n  TARGS = [object: Camera, domElement?: HTMLElement | SVGElement | null],\n> extends ThControlBase<OrbitControlsEventMap, T, TARGS> {\n  public getType(): Type<OrbitControls> {\n    return OrbitControls;\n  }\n\n  @Input()\n  public set target(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      this._objRef.target = applyValue<Vector3>(this._objRef.target, value);\n    }\n  }\n  public get target(): Vector3 | undefined {\n    return this._objRef?.target;\n  }\n  @Input()\n  public set cursor(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      this._objRef.cursor = applyValue<Vector3>(this._objRef.cursor, value);\n    }\n  }\n  public get cursor(): Vector3 | undefined {\n    return this._objRef?.cursor;\n  }\n  @Input()\n  public set minDistance(value: number) {\n    if (this._objRef) {\n      this._objRef.minDistance = value;\n    }\n  }\n\n  public get minDistance(): number | undefined {\n    return this._objRef?.minDistance;\n  }\n  @Input()\n  public set maxDistance(value: number) {\n    if (this._objRef) {\n      this._objRef.maxDistance = value;\n    }\n  }\n\n  public get maxDistance(): number | undefined {\n    return this._objRef?.maxDistance;\n  }\n  @Input()\n  public set minZoom(value: number) {\n    if (this._objRef) {\n      this._objRef.minZoom = value;\n    }\n  }\n\n  public get minZoom(): number | undefined {\n    return this._objRef?.minZoom;\n  }\n  @Input()\n  public set maxZoom(value: number) {\n    if (this._objRef) {\n      this._objRef.maxZoom = value;\n    }\n  }\n\n  public get maxZoom(): number | undefined {\n    return this._objRef?.maxZoom;\n  }\n  @Input()\n  public set minTargetRadius(value: number) {\n    if (this._objRef) {\n      this._objRef.minTargetRadius = value;\n    }\n  }\n\n  public get minTargetRadius(): number | undefined {\n    return this._objRef?.minTargetRadius;\n  }\n  @Input()\n  public set maxTargetRadius(value: number) {\n    if (this._objRef) {\n      this._objRef.maxTargetRadius = value;\n    }\n  }\n\n  public get maxTargetRadius(): number | undefined {\n    return this._objRef?.maxTargetRadius;\n  }\n  @Input()\n  public set minPolarAngle(value: number) {\n    if (this._objRef) {\n      this._objRef.minPolarAngle = value;\n    }\n  }\n\n  public get minPolarAngle(): number | undefined {\n    return this._objRef?.minPolarAngle;\n  }\n  @Input()\n  public set maxPolarAngle(value: number) {\n    if (this._objRef) {\n      this._objRef.maxPolarAngle = value;\n    }\n  }\n\n  public get maxPolarAngle(): number | undefined {\n    return this._objRef?.maxPolarAngle;\n  }\n  @Input()\n  public set minAzimuthAngle(value: number) {\n    if (this._objRef) {\n      this._objRef.minAzimuthAngle = value;\n    }\n  }\n\n  public get minAzimuthAngle(): number | undefined {\n    return this._objRef?.minAzimuthAngle;\n  }\n  @Input()\n  public set maxAzimuthAngle(value: number) {\n    if (this._objRef) {\n      this._objRef.maxAzimuthAngle = value;\n    }\n  }\n\n  public get maxAzimuthAngle(): number | undefined {\n    return this._objRef?.maxAzimuthAngle;\n  }\n  @Input()\n  public set enableDamping(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enableDamping = value;\n    }\n  }\n\n  public get enableDamping(): boolean | undefined {\n    return this._objRef?.enableDamping;\n  }\n  @Input()\n  public set dampingFactor(value: number) {\n    if (this._objRef) {\n      this._objRef.dampingFactor = value;\n    }\n  }\n\n  public get dampingFactor(): number | undefined {\n    return this._objRef?.dampingFactor;\n  }\n  @Input()\n  public set enableZoom(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enableZoom = value;\n    }\n  }\n\n  public get enableZoom(): boolean | undefined {\n    return this._objRef?.enableZoom;\n  }\n  @Input()\n  public set zoomSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.zoomSpeed = value;\n    }\n  }\n\n  public get zoomSpeed(): number | undefined {\n    return this._objRef?.zoomSpeed;\n  }\n  @Input()\n  public set enableRotate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enableRotate = value;\n    }\n  }\n\n  public get enableRotate(): boolean | undefined {\n    return this._objRef?.enableRotate;\n  }\n  @Input()\n  public set rotateSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.rotateSpeed = value;\n    }\n  }\n\n  public get rotateSpeed(): number | undefined {\n    return this._objRef?.rotateSpeed;\n  }\n  @Input()\n  public set keyRotateSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.keyRotateSpeed = value;\n    }\n  }\n\n  public get keyRotateSpeed(): number | undefined {\n    return this._objRef?.keyRotateSpeed;\n  }\n  @Input()\n  public set enablePan(value: boolean) {\n    if (this._objRef) {\n      this._objRef.enablePan = value;\n    }\n  }\n\n  public get enablePan(): boolean | undefined {\n    return this._objRef?.enablePan;\n  }\n  @Input()\n  public set panSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.panSpeed = value;\n    }\n  }\n\n  public get panSpeed(): number | undefined {\n    return this._objRef?.panSpeed;\n  }\n  @Input()\n  public set screenSpacePanning(value: boolean) {\n    if (this._objRef) {\n      this._objRef.screenSpacePanning = value;\n    }\n  }\n\n  public get screenSpacePanning(): boolean | undefined {\n    return this._objRef?.screenSpacePanning;\n  }\n  @Input()\n  public set keyPanSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.keyPanSpeed = value;\n    }\n  }\n\n  public get keyPanSpeed(): number | undefined {\n    return this._objRef?.keyPanSpeed;\n  }\n  @Input()\n  public set zoomToCursor(value: boolean) {\n    if (this._objRef) {\n      this._objRef.zoomToCursor = value;\n    }\n  }\n\n  public get zoomToCursor(): boolean | undefined {\n    return this._objRef?.zoomToCursor;\n  }\n  @Input()\n  public set autoRotate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.autoRotate = value;\n    }\n  }\n\n  public get autoRotate(): boolean | undefined {\n    return this._objRef?.autoRotate;\n  }\n  @Input()\n  public set autoRotateSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.autoRotateSpeed = value;\n    }\n  }\n\n  public get autoRotateSpeed(): number | undefined {\n    return this._objRef?.autoRotateSpeed;\n  }\n  @Input()\n  public set keys(value: {\n    LEFT: string;\n    UP: string;\n    RIGHT: string;\n    BOTTOM: string;\n  }) {\n    if (this._objRef) {\n      this._objRef.keys = value;\n    }\n  }\n\n  public get keys():\n    | { LEFT: string; UP: string; RIGHT: string; BOTTOM: string }\n    | undefined {\n    return this._objRef?.keys;\n  }\n  @Input()\n  public set mouseButtons(value: {\n    LEFT?: MOUSE | null | undefined;\n    MIDDLE?: MOUSE | null | undefined;\n    RIGHT?: MOUSE | null | undefined;\n  }) {\n    if (this._objRef) {\n      this._objRef.mouseButtons = value;\n    }\n  }\n\n  public get mouseButtons():\n    | {\n        LEFT?: MOUSE | null | undefined;\n        MIDDLE?: MOUSE | null | undefined;\n        RIGHT?: MOUSE | null | undefined;\n      }\n    | undefined {\n    return this._objRef?.mouseButtons;\n  }\n  @Input()\n  public set touches(value: {\n    ONE?: TOUCH | null | undefined;\n    TWO?: TOUCH | null | undefined;\n  }) {\n    if (this._objRef) {\n      this._objRef.touches = value;\n    }\n  }\n\n  public get touches():\n    | { ONE?: TOUCH | null | undefined; TWO?: TOUCH | null | undefined }\n    | undefined {\n    return this._objRef?.touches;\n  }\n  @Input()\n  public set target0(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      this._objRef.target0 = applyValue<Vector3>(this._objRef.target0, value);\n    }\n  }\n  public get target0(): Vector3 | undefined {\n    return this._objRef?.target0;\n  }\n  @Input()\n  public set position0(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      this._objRef.position0 = applyValue<Vector3>(\n        this._objRef.position0,\n        value,\n      );\n    }\n  }\n  public get position0(): Vector3 | undefined {\n    return this._objRef?.position0;\n  }\n  @Input()\n  public set zoom0(value: number) {\n    if (this._objRef) {\n      this._objRef.zoom0 = value;\n    }\n  }\n\n  public get zoom0(): number | undefined {\n    return this._objRef?.zoom0;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera } from 'three';\nimport { MapControls } from 'three/examples/jsm/controls/MapControls.js';\nimport { ThControlBase } from '../ThControlBase';\nimport { ThOrbitControls } from './ThOrbitControls';\n\n@Component({\n  selector: 'th-mapControls',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThControlBase, useExisting: forwardRef(() => ThMapControls) },\n  ],\n})\nexport class ThMapControls<\n  T extends MapControls = MapControls,\n  TARGS = [object: Camera, domElement?: HTMLElement],\n> extends ThOrbitControls<T, TARGS> {\n  public getType(): Type<MapControls> {\n    return MapControls;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera, Scene } from 'three';\nimport { MaskPass } from 'three/examples/jsm/postprocessing/MaskPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-maskPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThMaskPass) },\n  ],\n})\nexport class ThMaskPass<\n  T extends MaskPass = MaskPass,\n  TARGS = [scene: Scene, camera: Camera],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<MaskPass> {\n    return MaskPass;\n  }\n\n  @Input()\n  public set scene(value: Scene) {\n    if (this._objRef) {\n      this._objRef.scene = value;\n    }\n  }\n\n  public get scene(): Scene | undefined {\n    return this._objRef?.scene;\n  }\n  @Input()\n  public set camera(value: Camera) {\n    if (this._objRef) {\n      this._objRef.camera = value;\n    }\n  }\n\n  public get camera(): Camera | undefined {\n    return this._objRef?.camera;\n  }\n  @Input()\n  public set inverse(value: boolean) {\n    if (this._objRef) {\n      this._objRef.inverse = value;\n    }\n  }\n\n  public get inverse(): boolean | undefined {\n    return this._objRef?.inverse;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  Euler,\n  EulerOrder,\n  MeshBasicMaterial,\n  MeshBasicMaterialParameters,\n} from 'three';\nimport { Combine } from 'three/src/constants.js';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-meshBasicMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThMaterial, useExisting: forwardRef(() => ThMeshBasicMaterial) },\n  ],\n})\nexport class ThMeshBasicMaterial<\n  T extends MeshBasicMaterial = MeshBasicMaterial,\n  TARGS = /* parameters? */ MeshBasicMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<MeshBasicMaterial> {\n    return MeshBasicMaterial;\n  }\n\n  public get isMeshBasicMaterial(): boolean | undefined {\n    return this._objRef?.isMeshBasicMaterial;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set lightMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.lightMap = value;\n    }\n  }\n\n  public get lightMap(): (Texture | null) | undefined {\n    return this._objRef?.lightMap;\n  }\n  @Input()\n  public set lightMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.lightMapIntensity = value;\n    }\n  }\n\n  public get lightMapIntensity(): number | undefined {\n    return this._objRef?.lightMapIntensity;\n  }\n  @Input()\n  public set aoMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.aoMap = value;\n    }\n  }\n\n  public get aoMap(): (Texture | null) | undefined {\n    return this._objRef?.aoMap;\n  }\n  @Input()\n  public set aoMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.aoMapIntensity = value;\n    }\n  }\n\n  public get aoMapIntensity(): number | undefined {\n    return this._objRef?.aoMapIntensity;\n  }\n  @Input()\n  public set specularMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.specularMap = value;\n    }\n  }\n\n  public get specularMap(): (Texture | null) | undefined {\n    return this._objRef?.specularMap;\n  }\n  @Input()\n  public set alphaMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.alphaMap = value;\n    }\n  }\n\n  public get alphaMap(): (Texture | null) | undefined {\n    return this._objRef?.alphaMap;\n  }\n  @Input()\n  public set envMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.envMap = value;\n    }\n  }\n\n  public get envMap(): (Texture | null) | undefined {\n    return this._objRef?.envMap;\n  }\n  @Input()\n  public set envMapRotation(\n    value: Euler | [x: number, y: number, z: number, order?: EulerOrder],\n  ) {\n    if (this._objRef) {\n      this._objRef.envMapRotation = applyValue<Euler>(\n        this._objRef.envMapRotation,\n        value,\n      );\n    }\n  }\n  public get envMapRotation(): Euler | undefined {\n    return this._objRef?.envMapRotation;\n  }\n  @Input()\n  public set combine(value: Combine) {\n    if (this._objRef) {\n      this._objRef.combine = value;\n    }\n  }\n\n  public get combine(): Combine | undefined {\n    return this._objRef?.combine;\n  }\n  @Input()\n  public set reflectivity(value: number) {\n    if (this._objRef) {\n      this._objRef.reflectivity = value;\n    }\n  }\n\n  public get reflectivity(): number | undefined {\n    return this._objRef?.reflectivity;\n  }\n  @Input()\n  public set refractionRatio(value: number) {\n    if (this._objRef) {\n      this._objRef.refractionRatio = value;\n    }\n  }\n\n  public get refractionRatio(): number | undefined {\n    return this._objRef?.refractionRatio;\n  }\n  @Input()\n  public set wireframe(value: boolean) {\n    if (this._objRef) {\n      this._objRef.wireframe = value;\n    }\n  }\n\n  public get wireframe(): boolean | undefined {\n    return this._objRef?.wireframe;\n  }\n  @Input()\n  public set wireframeLinewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.wireframeLinewidth = value;\n    }\n  }\n\n  public get wireframeLinewidth(): number | undefined {\n    return this._objRef?.wireframeLinewidth;\n  }\n  @Input()\n  public set wireframeLinecap(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.wireframeLinecap = value;\n    }\n  }\n\n  public get wireframeLinecap(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.wireframeLinecap;\n  }\n  @Input()\n  public set wireframeLinejoin(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.wireframeLinejoin = value;\n    }\n  }\n\n  public get wireframeLinejoin(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.wireframeLinejoin;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { MeshDepthMaterial, MeshDepthMaterialParameters } from 'three';\nimport { DepthPackingStrategies } from 'three/src/constants.js';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-meshDepthMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThMaterial, useExisting: forwardRef(() => ThMeshDepthMaterial) },\n  ],\n})\nexport class ThMeshDepthMaterial<\n  T extends MeshDepthMaterial = MeshDepthMaterial,\n  TARGS = /* parameters? */ MeshDepthMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<MeshDepthMaterial> {\n    return MeshDepthMaterial;\n  }\n\n  public get isMeshDepthMaterial(): boolean | undefined {\n    return this._objRef?.isMeshDepthMaterial;\n  }\n  @Input()\n  public set depthPacking(value: DepthPackingStrategies) {\n    if (this._objRef) {\n      this._objRef.depthPacking = value;\n    }\n  }\n\n  public get depthPacking(): DepthPackingStrategies | undefined {\n    return this._objRef?.depthPacking;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set alphaMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.alphaMap = value;\n    }\n  }\n\n  public get alphaMap(): (Texture | null) | undefined {\n    return this._objRef?.alphaMap;\n  }\n  @Input()\n  public set displacementMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.displacementMap = value;\n    }\n  }\n\n  public get displacementMap(): (Texture | null) | undefined {\n    return this._objRef?.displacementMap;\n  }\n  @Input()\n  public set displacementScale(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementScale = value;\n    }\n  }\n\n  public get displacementScale(): number | undefined {\n    return this._objRef?.displacementScale;\n  }\n  @Input()\n  public set displacementBias(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementBias = value;\n    }\n  }\n\n  public get displacementBias(): number | undefined {\n    return this._objRef?.displacementBias;\n  }\n  @Input()\n  public set wireframe(value: boolean) {\n    if (this._objRef) {\n      this._objRef.wireframe = value;\n    }\n  }\n\n  public get wireframe(): boolean | undefined {\n    return this._objRef?.wireframe;\n  }\n  @Input()\n  public set wireframeLinewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.wireframeLinewidth = value;\n    }\n  }\n\n  public get wireframeLinewidth(): number | undefined {\n    return this._objRef?.wireframeLinewidth;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { MeshDistanceMaterial, MeshDistanceMaterialParameters } from 'three';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-meshDistanceMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThMaterial,\n      useExisting: forwardRef(() => ThMeshDistanceMaterial),\n    },\n  ],\n})\nexport class ThMeshDistanceMaterial<\n  T extends MeshDistanceMaterial = MeshDistanceMaterial,\n  TARGS = /* parameters? */ MeshDistanceMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<MeshDistanceMaterial> {\n    return MeshDistanceMaterial;\n  }\n\n  public get isMeshDistanceMaterial(): boolean | undefined {\n    return this._objRef?.isMeshDistanceMaterial;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set alphaMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.alphaMap = value;\n    }\n  }\n\n  public get alphaMap(): (Texture | null) | undefined {\n    return this._objRef?.alphaMap;\n  }\n  @Input()\n  public set displacementMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.displacementMap = value;\n    }\n  }\n\n  public get displacementMap(): (Texture | null) | undefined {\n    return this._objRef?.displacementMap;\n  }\n  @Input()\n  public set displacementScale(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementScale = value;\n    }\n  }\n\n  public get displacementScale(): number | undefined {\n    return this._objRef?.displacementScale;\n  }\n  @Input()\n  public set displacementBias(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementBias = value;\n    }\n  }\n\n  public get displacementBias(): number | undefined {\n    return this._objRef?.displacementBias;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  Euler,\n  EulerOrder,\n  MeshLambertMaterial,\n  MeshLambertMaterialParameters,\n  Vector2,\n} from 'three';\nimport { Combine, NormalMapTypes } from 'three/src/constants.js';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-meshLambertMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThMaterial,\n      useExisting: forwardRef(() => ThMeshLambertMaterial),\n    },\n  ],\n})\nexport class ThMeshLambertMaterial<\n  T extends MeshLambertMaterial = MeshLambertMaterial,\n  TARGS = /* parameters? */ MeshLambertMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<MeshLambertMaterial> {\n    return MeshLambertMaterial;\n  }\n\n  public get isMeshLambertMaterial(): boolean | undefined {\n    return this._objRef?.isMeshLambertMaterial;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set lightMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.lightMap = value;\n    }\n  }\n\n  public get lightMap(): (Texture | null) | undefined {\n    return this._objRef?.lightMap;\n  }\n  @Input()\n  public set lightMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.lightMapIntensity = value;\n    }\n  }\n\n  public get lightMapIntensity(): number | undefined {\n    return this._objRef?.lightMapIntensity;\n  }\n  @Input()\n  public set aoMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.aoMap = value;\n    }\n  }\n\n  public get aoMap(): (Texture | null) | undefined {\n    return this._objRef?.aoMap;\n  }\n  @Input()\n  public set aoMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.aoMapIntensity = value;\n    }\n  }\n\n  public get aoMapIntensity(): number | undefined {\n    return this._objRef?.aoMapIntensity;\n  }\n  @Input()\n  public set emissive(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.emissive = applyValue<Color>(this._objRef.emissive, value);\n    }\n  }\n  public get emissive(): Color | undefined {\n    return this._objRef?.emissive;\n  }\n  @Input()\n  public set emissiveIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.emissiveIntensity = value;\n    }\n  }\n\n  public get emissiveIntensity(): number | undefined {\n    return this._objRef?.emissiveIntensity;\n  }\n  @Input()\n  public set emissiveMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.emissiveMap = value;\n    }\n  }\n\n  public get emissiveMap(): (Texture | null) | undefined {\n    return this._objRef?.emissiveMap;\n  }\n  @Input()\n  public set bumpMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.bumpMap = value;\n    }\n  }\n\n  public get bumpMap(): (Texture | null) | undefined {\n    return this._objRef?.bumpMap;\n  }\n  @Input()\n  public set bumpScale(value: number) {\n    if (this._objRef) {\n      this._objRef.bumpScale = value;\n    }\n  }\n\n  public get bumpScale(): number | undefined {\n    return this._objRef?.bumpScale;\n  }\n  @Input()\n  public set normalMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.normalMap = value;\n    }\n  }\n\n  public get normalMap(): (Texture | null) | undefined {\n    return this._objRef?.normalMap;\n  }\n  @Input()\n  public set normalMapType(value: NormalMapTypes) {\n    if (this._objRef) {\n      this._objRef.normalMapType = value;\n    }\n  }\n\n  public get normalMapType(): NormalMapTypes | undefined {\n    return this._objRef?.normalMapType;\n  }\n  @Input()\n  public set normalScale(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.normalScale = applyValue<Vector2>(\n        this._objRef.normalScale,\n        value,\n      );\n    }\n  }\n  public get normalScale(): Vector2 | undefined {\n    return this._objRef?.normalScale;\n  }\n  @Input()\n  public set displacementMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.displacementMap = value;\n    }\n  }\n\n  public get displacementMap(): (Texture | null) | undefined {\n    return this._objRef?.displacementMap;\n  }\n  @Input()\n  public set displacementScale(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementScale = value;\n    }\n  }\n\n  public get displacementScale(): number | undefined {\n    return this._objRef?.displacementScale;\n  }\n  @Input()\n  public set displacementBias(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementBias = value;\n    }\n  }\n\n  public get displacementBias(): number | undefined {\n    return this._objRef?.displacementBias;\n  }\n  @Input()\n  public set specularMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.specularMap = value;\n    }\n  }\n\n  public get specularMap(): (Texture | null) | undefined {\n    return this._objRef?.specularMap;\n  }\n  @Input()\n  public set alphaMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.alphaMap = value;\n    }\n  }\n\n  public get alphaMap(): (Texture | null) | undefined {\n    return this._objRef?.alphaMap;\n  }\n  @Input()\n  public set envMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.envMap = value;\n    }\n  }\n\n  public get envMap(): (Texture | null) | undefined {\n    return this._objRef?.envMap;\n  }\n  @Input()\n  public set envMapRotation(\n    value: Euler | [x: number, y: number, z: number, order?: EulerOrder],\n  ) {\n    if (this._objRef) {\n      this._objRef.envMapRotation = applyValue<Euler>(\n        this._objRef.envMapRotation,\n        value,\n      );\n    }\n  }\n  public get envMapRotation(): Euler | undefined {\n    return this._objRef?.envMapRotation;\n  }\n  @Input()\n  public set combine(value: Combine) {\n    if (this._objRef) {\n      this._objRef.combine = value;\n    }\n  }\n\n  public get combine(): Combine | undefined {\n    return this._objRef?.combine;\n  }\n  @Input()\n  public set reflectivity(value: number) {\n    if (this._objRef) {\n      this._objRef.reflectivity = value;\n    }\n  }\n\n  public get reflectivity(): number | undefined {\n    return this._objRef?.reflectivity;\n  }\n  @Input()\n  public set refractionRatio(value: number) {\n    if (this._objRef) {\n      this._objRef.refractionRatio = value;\n    }\n  }\n\n  public get refractionRatio(): number | undefined {\n    return this._objRef?.refractionRatio;\n  }\n  @Input()\n  public set wireframe(value: boolean) {\n    if (this._objRef) {\n      this._objRef.wireframe = value;\n    }\n  }\n\n  public get wireframe(): boolean | undefined {\n    return this._objRef?.wireframe;\n  }\n  @Input()\n  public set wireframeLinewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.wireframeLinewidth = value;\n    }\n  }\n\n  public get wireframeLinewidth(): number | undefined {\n    return this._objRef?.wireframeLinewidth;\n  }\n  @Input()\n  public set wireframeLinecap(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.wireframeLinecap = value;\n    }\n  }\n\n  public get wireframeLinecap(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.wireframeLinecap;\n  }\n  @Input()\n  public set wireframeLinejoin(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.wireframeLinejoin = value;\n    }\n  }\n\n  public get wireframeLinejoin(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.wireframeLinejoin;\n  }\n  @Input()\n  public set flatShading(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flatShading = value;\n    }\n  }\n\n  public get flatShading(): boolean | undefined {\n    return this._objRef?.flatShading;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  MeshMatcapMaterial,\n  MeshMatcapMaterialParameters,\n  Vector2,\n} from 'three';\nimport { NormalMapTypes } from 'three/src/constants.js';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-meshMatcapMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThMaterial,\n      useExisting: forwardRef(() => ThMeshMatcapMaterial),\n    },\n  ],\n})\nexport class ThMeshMatcapMaterial<\n  T extends MeshMatcapMaterial = MeshMatcapMaterial,\n  TARGS = /* parameters? */ MeshMatcapMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<MeshMatcapMaterial> {\n    return MeshMatcapMaterial;\n  }\n\n  public get isMeshMatcapMaterial(): boolean | undefined {\n    return this._objRef?.isMeshMatcapMaterial;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set matcap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.matcap = value;\n    }\n  }\n\n  public get matcap(): (Texture | null) | undefined {\n    return this._objRef?.matcap;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set bumpMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.bumpMap = value;\n    }\n  }\n\n  public get bumpMap(): (Texture | null) | undefined {\n    return this._objRef?.bumpMap;\n  }\n  @Input()\n  public set bumpScale(value: number) {\n    if (this._objRef) {\n      this._objRef.bumpScale = value;\n    }\n  }\n\n  public get bumpScale(): number | undefined {\n    return this._objRef?.bumpScale;\n  }\n  @Input()\n  public set normalMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.normalMap = value;\n    }\n  }\n\n  public get normalMap(): (Texture | null) | undefined {\n    return this._objRef?.normalMap;\n  }\n  @Input()\n  public set normalMapType(value: NormalMapTypes) {\n    if (this._objRef) {\n      this._objRef.normalMapType = value;\n    }\n  }\n\n  public get normalMapType(): NormalMapTypes | undefined {\n    return this._objRef?.normalMapType;\n  }\n  @Input()\n  public set normalScale(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.normalScale = applyValue<Vector2>(\n        this._objRef.normalScale,\n        value,\n      );\n    }\n  }\n  public get normalScale(): Vector2 | undefined {\n    return this._objRef?.normalScale;\n  }\n  @Input()\n  public set displacementMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.displacementMap = value;\n    }\n  }\n\n  public get displacementMap(): (Texture | null) | undefined {\n    return this._objRef?.displacementMap;\n  }\n  @Input()\n  public set displacementScale(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementScale = value;\n    }\n  }\n\n  public get displacementScale(): number | undefined {\n    return this._objRef?.displacementScale;\n  }\n  @Input()\n  public set displacementBias(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementBias = value;\n    }\n  }\n\n  public get displacementBias(): number | undefined {\n    return this._objRef?.displacementBias;\n  }\n  @Input()\n  public set alphaMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.alphaMap = value;\n    }\n  }\n\n  public get alphaMap(): (Texture | null) | undefined {\n    return this._objRef?.alphaMap;\n  }\n  @Input()\n  public set wireframe(value: boolean) {\n    if (this._objRef) {\n      this._objRef.wireframe = value;\n    }\n  }\n\n  public get wireframe(): boolean | undefined {\n    return this._objRef?.wireframe;\n  }\n  @Input()\n  public set wireframeLinewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.wireframeLinewidth = value;\n    }\n  }\n\n  public get wireframeLinewidth(): number | undefined {\n    return this._objRef?.wireframeLinewidth;\n  }\n  @Input()\n  public set flatShading(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flatShading = value;\n    }\n  }\n\n  public get flatShading(): boolean | undefined {\n    return this._objRef?.flatShading;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  MeshNormalMaterial,\n  MeshNormalMaterialParameters,\n  Vector2,\n} from 'three';\nimport { NormalMapTypes } from 'three/src/constants.js';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-meshNormalMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThMaterial,\n      useExisting: forwardRef(() => ThMeshNormalMaterial),\n    },\n  ],\n})\nexport class ThMeshNormalMaterial<\n  T extends MeshNormalMaterial = MeshNormalMaterial,\n  TARGS = /* parameters? */ MeshNormalMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<MeshNormalMaterial> {\n    return MeshNormalMaterial;\n  }\n\n  public get isMeshNormalMaterial(): boolean | undefined {\n    return this._objRef?.isMeshNormalMaterial;\n  }\n  @Input()\n  public set bumpMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.bumpMap = value;\n    }\n  }\n\n  public get bumpMap(): (Texture | null) | undefined {\n    return this._objRef?.bumpMap;\n  }\n  @Input()\n  public set bumpScale(value: number) {\n    if (this._objRef) {\n      this._objRef.bumpScale = value;\n    }\n  }\n\n  public get bumpScale(): number | undefined {\n    return this._objRef?.bumpScale;\n  }\n  @Input()\n  public set normalMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.normalMap = value;\n    }\n  }\n\n  public get normalMap(): (Texture | null) | undefined {\n    return this._objRef?.normalMap;\n  }\n  @Input()\n  public set normalMapType(value: NormalMapTypes) {\n    if (this._objRef) {\n      this._objRef.normalMapType = value;\n    }\n  }\n\n  public get normalMapType(): NormalMapTypes | undefined {\n    return this._objRef?.normalMapType;\n  }\n  @Input()\n  public set normalScale(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.normalScale = applyValue<Vector2>(\n        this._objRef.normalScale,\n        value,\n      );\n    }\n  }\n  public get normalScale(): Vector2 | undefined {\n    return this._objRef?.normalScale;\n  }\n  @Input()\n  public set displacementMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.displacementMap = value;\n    }\n  }\n\n  public get displacementMap(): (Texture | null) | undefined {\n    return this._objRef?.displacementMap;\n  }\n  @Input()\n  public set displacementScale(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementScale = value;\n    }\n  }\n\n  public get displacementScale(): number | undefined {\n    return this._objRef?.displacementScale;\n  }\n  @Input()\n  public set displacementBias(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementBias = value;\n    }\n  }\n\n  public get displacementBias(): number | undefined {\n    return this._objRef?.displacementBias;\n  }\n  @Input()\n  public set wireframe(value: boolean) {\n    if (this._objRef) {\n      this._objRef.wireframe = value;\n    }\n  }\n\n  public get wireframe(): boolean | undefined {\n    return this._objRef?.wireframe;\n  }\n  @Input()\n  public set wireframeLinewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.wireframeLinewidth = value;\n    }\n  }\n\n  public get wireframeLinewidth(): number | undefined {\n    return this._objRef?.wireframeLinewidth;\n  }\n  @Input()\n  public set flatShading(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flatShading = value;\n    }\n  }\n\n  public get flatShading(): boolean | undefined {\n    return this._objRef?.flatShading;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  Euler,\n  EulerOrder,\n  MeshPhongMaterial,\n  MeshPhongMaterialParameters,\n  Vector2,\n} from 'three';\nimport { Combine, NormalMapTypes } from 'three/src/constants.js';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-meshPhongMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThMaterial, useExisting: forwardRef(() => ThMeshPhongMaterial) },\n  ],\n})\nexport class ThMeshPhongMaterial<\n  T extends MeshPhongMaterial = MeshPhongMaterial,\n  TARGS = /* parameters? */ MeshPhongMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<MeshPhongMaterial> {\n    return MeshPhongMaterial;\n  }\n\n  public get isMeshPhongMaterial(): boolean | undefined {\n    return this._objRef?.isMeshPhongMaterial;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set specular(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.specular = applyValue<Color>(this._objRef.specular, value);\n    }\n  }\n  public get specular(): Color | undefined {\n    return this._objRef?.specular;\n  }\n  @Input()\n  public set shininess(value: number) {\n    if (this._objRef) {\n      this._objRef.shininess = value;\n    }\n  }\n\n  public get shininess(): number | undefined {\n    return this._objRef?.shininess;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set lightMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.lightMap = value;\n    }\n  }\n\n  public get lightMap(): (Texture | null) | undefined {\n    return this._objRef?.lightMap;\n  }\n  @Input()\n  public set lightMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.lightMapIntensity = value;\n    }\n  }\n\n  public get lightMapIntensity(): number | undefined {\n    return this._objRef?.lightMapIntensity;\n  }\n  @Input()\n  public set aoMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.aoMap = value;\n    }\n  }\n\n  public get aoMap(): (Texture | null) | undefined {\n    return this._objRef?.aoMap;\n  }\n  @Input()\n  public set aoMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.aoMapIntensity = value;\n    }\n  }\n\n  public get aoMapIntensity(): number | undefined {\n    return this._objRef?.aoMapIntensity;\n  }\n  @Input()\n  public set emissive(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.emissive = applyValue<Color>(this._objRef.emissive, value);\n    }\n  }\n  public get emissive(): Color | undefined {\n    return this._objRef?.emissive;\n  }\n  @Input()\n  public set emissiveIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.emissiveIntensity = value;\n    }\n  }\n\n  public get emissiveIntensity(): number | undefined {\n    return this._objRef?.emissiveIntensity;\n  }\n  @Input()\n  public set emissiveMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.emissiveMap = value;\n    }\n  }\n\n  public get emissiveMap(): (Texture | null) | undefined {\n    return this._objRef?.emissiveMap;\n  }\n  @Input()\n  public set bumpMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.bumpMap = value;\n    }\n  }\n\n  public get bumpMap(): (Texture | null) | undefined {\n    return this._objRef?.bumpMap;\n  }\n  @Input()\n  public set bumpScale(value: number) {\n    if (this._objRef) {\n      this._objRef.bumpScale = value;\n    }\n  }\n\n  public get bumpScale(): number | undefined {\n    return this._objRef?.bumpScale;\n  }\n  @Input()\n  public set normalMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.normalMap = value;\n    }\n  }\n\n  public get normalMap(): (Texture | null) | undefined {\n    return this._objRef?.normalMap;\n  }\n  @Input()\n  public set normalMapType(value: NormalMapTypes) {\n    if (this._objRef) {\n      this._objRef.normalMapType = value;\n    }\n  }\n\n  public get normalMapType(): NormalMapTypes | undefined {\n    return this._objRef?.normalMapType;\n  }\n  @Input()\n  public set normalScale(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.normalScale = applyValue<Vector2>(\n        this._objRef.normalScale,\n        value,\n      );\n    }\n  }\n  public get normalScale(): Vector2 | undefined {\n    return this._objRef?.normalScale;\n  }\n  @Input()\n  public set displacementMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.displacementMap = value;\n    }\n  }\n\n  public get displacementMap(): (Texture | null) | undefined {\n    return this._objRef?.displacementMap;\n  }\n  @Input()\n  public set displacementScale(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementScale = value;\n    }\n  }\n\n  public get displacementScale(): number | undefined {\n    return this._objRef?.displacementScale;\n  }\n  @Input()\n  public set displacementBias(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementBias = value;\n    }\n  }\n\n  public get displacementBias(): number | undefined {\n    return this._objRef?.displacementBias;\n  }\n  @Input()\n  public set specularMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.specularMap = value;\n    }\n  }\n\n  public get specularMap(): (Texture | null) | undefined {\n    return this._objRef?.specularMap;\n  }\n  @Input()\n  public set alphaMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.alphaMap = value;\n    }\n  }\n\n  public get alphaMap(): (Texture | null) | undefined {\n    return this._objRef?.alphaMap;\n  }\n  @Input()\n  public set envMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.envMap = value;\n    }\n  }\n\n  public get envMap(): (Texture | null) | undefined {\n    return this._objRef?.envMap;\n  }\n  @Input()\n  public set envMapRotation(\n    value: Euler | [x: number, y: number, z: number, order?: EulerOrder],\n  ) {\n    if (this._objRef) {\n      this._objRef.envMapRotation = applyValue<Euler>(\n        this._objRef.envMapRotation,\n        value,\n      );\n    }\n  }\n  public get envMapRotation(): Euler | undefined {\n    return this._objRef?.envMapRotation;\n  }\n  @Input()\n  public set combine(value: Combine) {\n    if (this._objRef) {\n      this._objRef.combine = value;\n    }\n  }\n\n  public get combine(): Combine | undefined {\n    return this._objRef?.combine;\n  }\n  @Input()\n  public set reflectivity(value: number) {\n    if (this._objRef) {\n      this._objRef.reflectivity = value;\n    }\n  }\n\n  public get reflectivity(): number | undefined {\n    return this._objRef?.reflectivity;\n  }\n  @Input()\n  public set refractionRatio(value: number) {\n    if (this._objRef) {\n      this._objRef.refractionRatio = value;\n    }\n  }\n\n  public get refractionRatio(): number | undefined {\n    return this._objRef?.refractionRatio;\n  }\n  @Input()\n  public set wireframe(value: boolean) {\n    if (this._objRef) {\n      this._objRef.wireframe = value;\n    }\n  }\n\n  public get wireframe(): boolean | undefined {\n    return this._objRef?.wireframe;\n  }\n  @Input()\n  public set wireframeLinewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.wireframeLinewidth = value;\n    }\n  }\n\n  public get wireframeLinewidth(): number | undefined {\n    return this._objRef?.wireframeLinewidth;\n  }\n  @Input()\n  public set wireframeLinecap(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.wireframeLinecap = value;\n    }\n  }\n\n  public get wireframeLinecap(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.wireframeLinecap;\n  }\n  @Input()\n  public set wireframeLinejoin(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.wireframeLinejoin = value;\n    }\n  }\n\n  public get wireframeLinejoin(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.wireframeLinejoin;\n  }\n  @Input()\n  public set flatShading(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flatShading = value;\n    }\n  }\n\n  public get flatShading(): boolean | undefined {\n    return this._objRef?.flatShading;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  Euler,\n  EulerOrder,\n  MeshStandardMaterial,\n  MeshStandardMaterialParameters,\n  Vector2,\n} from 'three';\nimport { NormalMapTypes } from 'three/src/constants.js';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-meshStandardMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThMaterial,\n      useExisting: forwardRef(() => ThMeshStandardMaterial),\n    },\n  ],\n})\nexport class ThMeshStandardMaterial<\n  T extends MeshStandardMaterial = MeshStandardMaterial,\n  TARGS = /* parameters? */ MeshStandardMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<MeshStandardMaterial> {\n    return MeshStandardMaterial;\n  }\n\n  public get isMeshStandardMaterial(): boolean | undefined {\n    return this._objRef?.isMeshStandardMaterial;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set roughness(value: number) {\n    if (this._objRef) {\n      this._objRef.roughness = value;\n    }\n  }\n\n  public get roughness(): number | undefined {\n    return this._objRef?.roughness;\n  }\n  @Input()\n  public set metalness(value: number) {\n    if (this._objRef) {\n      this._objRef.metalness = value;\n    }\n  }\n\n  public get metalness(): number | undefined {\n    return this._objRef?.metalness;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set lightMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.lightMap = value;\n    }\n  }\n\n  public get lightMap(): (Texture | null) | undefined {\n    return this._objRef?.lightMap;\n  }\n  @Input()\n  public set lightMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.lightMapIntensity = value;\n    }\n  }\n\n  public get lightMapIntensity(): number | undefined {\n    return this._objRef?.lightMapIntensity;\n  }\n  @Input()\n  public set aoMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.aoMap = value;\n    }\n  }\n\n  public get aoMap(): (Texture | null) | undefined {\n    return this._objRef?.aoMap;\n  }\n  @Input()\n  public set aoMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.aoMapIntensity = value;\n    }\n  }\n\n  public get aoMapIntensity(): number | undefined {\n    return this._objRef?.aoMapIntensity;\n  }\n  @Input()\n  public set emissive(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.emissive = applyValue<Color>(this._objRef.emissive, value);\n    }\n  }\n  public get emissive(): Color | undefined {\n    return this._objRef?.emissive;\n  }\n  @Input()\n  public set emissiveIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.emissiveIntensity = value;\n    }\n  }\n\n  public get emissiveIntensity(): number | undefined {\n    return this._objRef?.emissiveIntensity;\n  }\n  @Input()\n  public set emissiveMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.emissiveMap = value;\n    }\n  }\n\n  public get emissiveMap(): (Texture | null) | undefined {\n    return this._objRef?.emissiveMap;\n  }\n  @Input()\n  public set bumpMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.bumpMap = value;\n    }\n  }\n\n  public get bumpMap(): (Texture | null) | undefined {\n    return this._objRef?.bumpMap;\n  }\n  @Input()\n  public set bumpScale(value: number) {\n    if (this._objRef) {\n      this._objRef.bumpScale = value;\n    }\n  }\n\n  public get bumpScale(): number | undefined {\n    return this._objRef?.bumpScale;\n  }\n  @Input()\n  public set normalMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.normalMap = value;\n    }\n  }\n\n  public get normalMap(): (Texture | null) | undefined {\n    return this._objRef?.normalMap;\n  }\n  @Input()\n  public set normalMapType(value: NormalMapTypes) {\n    if (this._objRef) {\n      this._objRef.normalMapType = value;\n    }\n  }\n\n  public get normalMapType(): NormalMapTypes | undefined {\n    return this._objRef?.normalMapType;\n  }\n  @Input()\n  public set normalScale(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.normalScale = applyValue<Vector2>(\n        this._objRef.normalScale,\n        value,\n      );\n    }\n  }\n  public get normalScale(): Vector2 | undefined {\n    return this._objRef?.normalScale;\n  }\n  @Input()\n  public set displacementMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.displacementMap = value;\n    }\n  }\n\n  public get displacementMap(): (Texture | null) | undefined {\n    return this._objRef?.displacementMap;\n  }\n  @Input()\n  public set displacementScale(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementScale = value;\n    }\n  }\n\n  public get displacementScale(): number | undefined {\n    return this._objRef?.displacementScale;\n  }\n  @Input()\n  public set displacementBias(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementBias = value;\n    }\n  }\n\n  public get displacementBias(): number | undefined {\n    return this._objRef?.displacementBias;\n  }\n  @Input()\n  public set roughnessMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.roughnessMap = value;\n    }\n  }\n\n  public get roughnessMap(): (Texture | null) | undefined {\n    return this._objRef?.roughnessMap;\n  }\n  @Input()\n  public set metalnessMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.metalnessMap = value;\n    }\n  }\n\n  public get metalnessMap(): (Texture | null) | undefined {\n    return this._objRef?.metalnessMap;\n  }\n  @Input()\n  public set alphaMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.alphaMap = value;\n    }\n  }\n\n  public get alphaMap(): (Texture | null) | undefined {\n    return this._objRef?.alphaMap;\n  }\n  @Input()\n  public set envMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.envMap = value;\n    }\n  }\n\n  public get envMap(): (Texture | null) | undefined {\n    return this._objRef?.envMap;\n  }\n  @Input()\n  public set envMapRotation(\n    value: Euler | [x: number, y: number, z: number, order?: EulerOrder],\n  ) {\n    if (this._objRef) {\n      this._objRef.envMapRotation = applyValue<Euler>(\n        this._objRef.envMapRotation,\n        value,\n      );\n    }\n  }\n  public get envMapRotation(): Euler | undefined {\n    return this._objRef?.envMapRotation;\n  }\n  @Input()\n  public set envMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.envMapIntensity = value;\n    }\n  }\n\n  public get envMapIntensity(): number | undefined {\n    return this._objRef?.envMapIntensity;\n  }\n  @Input()\n  public set wireframe(value: boolean) {\n    if (this._objRef) {\n      this._objRef.wireframe = value;\n    }\n  }\n\n  public get wireframe(): boolean | undefined {\n    return this._objRef?.wireframe;\n  }\n  @Input()\n  public set wireframeLinewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.wireframeLinewidth = value;\n    }\n  }\n\n  public get wireframeLinewidth(): number | undefined {\n    return this._objRef?.wireframeLinewidth;\n  }\n  @Input()\n  public set wireframeLinecap(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.wireframeLinecap = value;\n    }\n  }\n\n  public get wireframeLinecap(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.wireframeLinecap;\n  }\n  @Input()\n  public set wireframeLinejoin(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.wireframeLinejoin = value;\n    }\n  }\n\n  public get wireframeLinejoin(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.wireframeLinejoin;\n  }\n  @Input()\n  public set flatShading(value: boolean) {\n    if (this._objRef) {\n      this._objRef.flatShading = value;\n    }\n  }\n\n  public get flatShading(): boolean | undefined {\n    return this._objRef?.flatShading;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  MeshPhysicalMaterial,\n  MeshPhysicalMaterialParameters,\n  Vector2,\n} from 'three';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\nimport { ThMeshStandardMaterial } from './ThMeshStandardMaterial';\n\n@Component({\n  selector: 'th-meshPhysicalMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThMaterial,\n      useExisting: forwardRef(() => ThMeshPhysicalMaterial),\n    },\n  ],\n})\nexport class ThMeshPhysicalMaterial<\n  T extends MeshPhysicalMaterial = MeshPhysicalMaterial,\n  TARGS = /* parameters? */ MeshPhysicalMaterialParameters,\n> extends ThMeshStandardMaterial<T, TARGS> {\n  public getType(): Type<MeshPhysicalMaterial> {\n    return MeshPhysicalMaterial;\n  }\n\n  public get isMeshPhysicalMaterial(): boolean | undefined {\n    return this._objRef?.isMeshPhysicalMaterial;\n  }\n  @Input()\n  public set anisotropyRotation(value: number) {\n    if (this._objRef) {\n      this._objRef.anisotropyRotation = value;\n    }\n  }\n\n  public get anisotropyRotation(): number | undefined {\n    return this._objRef?.anisotropyRotation;\n  }\n  @Input()\n  public set anisotropyMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.anisotropyMap = value;\n    }\n  }\n\n  public get anisotropyMap(): (Texture | null) | undefined {\n    return this._objRef?.anisotropyMap;\n  }\n  @Input()\n  public set clearcoatMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.clearcoatMap = value;\n    }\n  }\n\n  public get clearcoatMap(): (Texture | null) | undefined {\n    return this._objRef?.clearcoatMap;\n  }\n  @Input()\n  public set clearcoatRoughness(value: number) {\n    if (this._objRef) {\n      this._objRef.clearcoatRoughness = value;\n    }\n  }\n\n  public get clearcoatRoughness(): number | undefined {\n    return this._objRef?.clearcoatRoughness;\n  }\n  @Input()\n  public set clearcoatRoughnessMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.clearcoatRoughnessMap = value;\n    }\n  }\n\n  public get clearcoatRoughnessMap(): (Texture | null) | undefined {\n    return this._objRef?.clearcoatRoughnessMap;\n  }\n  @Input()\n  public set clearcoatNormalScale(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.clearcoatNormalScale = applyValue<Vector2>(\n        this._objRef.clearcoatNormalScale,\n        value,\n      );\n    }\n  }\n  public get clearcoatNormalScale(): Vector2 | undefined {\n    return this._objRef?.clearcoatNormalScale;\n  }\n  @Input()\n  public set clearcoatNormalMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.clearcoatNormalMap = value;\n    }\n  }\n\n  public get clearcoatNormalMap(): (Texture | null) | undefined {\n    return this._objRef?.clearcoatNormalMap;\n  }\n  @Input()\n  public set ior(value: number) {\n    if (this._objRef) {\n      this._objRef.ior = value;\n    }\n  }\n\n  public get ior(): number | undefined {\n    return this._objRef?.ior;\n  }\n  public get reflectivity(): number | undefined {\n    return this._objRef?.reflectivity;\n  }\n  @Input()\n  public set reflectivity(value: number) {\n    if (this._objRef) {\n      this._objRef.reflectivity = value;\n    }\n  }\n\n  @Input()\n  public set iridescenceMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.iridescenceMap = value;\n    }\n  }\n\n  public get iridescenceMap(): (Texture | null) | undefined {\n    return this._objRef?.iridescenceMap;\n  }\n  @Input()\n  public set iridescenceIOR(value: number) {\n    if (this._objRef) {\n      this._objRef.iridescenceIOR = value;\n    }\n  }\n\n  public get iridescenceIOR(): number | undefined {\n    return this._objRef?.iridescenceIOR;\n  }\n  @Input()\n  public set iridescenceThicknessRange(value: [number, number]) {\n    if (this._objRef) {\n      this._objRef.iridescenceThicknessRange = value;\n    }\n  }\n\n  public get iridescenceThicknessRange(): [number, number] | undefined {\n    return this._objRef?.iridescenceThicknessRange;\n  }\n  @Input()\n  public set iridescenceThicknessMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.iridescenceThicknessMap = value;\n    }\n  }\n\n  public get iridescenceThicknessMap(): (Texture | null) | undefined {\n    return this._objRef?.iridescenceThicknessMap;\n  }\n  @Input()\n  public set sheenColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.sheenColor = applyValue<Color>(\n        this._objRef.sheenColor,\n        value,\n      );\n    }\n  }\n  public get sheenColor(): Color | undefined {\n    return this._objRef?.sheenColor;\n  }\n  @Input()\n  public set sheenColorMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.sheenColorMap = value;\n    }\n  }\n\n  public get sheenColorMap(): (Texture | null) | undefined {\n    return this._objRef?.sheenColorMap;\n  }\n  @Input()\n  public set sheenRoughness(value: number) {\n    if (this._objRef) {\n      this._objRef.sheenRoughness = value;\n    }\n  }\n\n  public get sheenRoughness(): number | undefined {\n    return this._objRef?.sheenRoughness;\n  }\n  @Input()\n  public set sheenRoughnessMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.sheenRoughnessMap = value;\n    }\n  }\n\n  public get sheenRoughnessMap(): (Texture | null) | undefined {\n    return this._objRef?.sheenRoughnessMap;\n  }\n  @Input()\n  public set transmissionMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.transmissionMap = value;\n    }\n  }\n\n  public get transmissionMap(): (Texture | null) | undefined {\n    return this._objRef?.transmissionMap;\n  }\n  @Input()\n  public set thickness(value: number) {\n    if (this._objRef) {\n      this._objRef.thickness = value;\n    }\n  }\n\n  public get thickness(): number | undefined {\n    return this._objRef?.thickness;\n  }\n  @Input()\n  public set thicknessMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.thicknessMap = value;\n    }\n  }\n\n  public get thicknessMap(): (Texture | null) | undefined {\n    return this._objRef?.thicknessMap;\n  }\n  @Input()\n  public set attenuationDistance(value: number) {\n    if (this._objRef) {\n      this._objRef.attenuationDistance = value;\n    }\n  }\n\n  public get attenuationDistance(): number | undefined {\n    return this._objRef?.attenuationDistance;\n  }\n  @Input()\n  public set attenuationColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.attenuationColor = applyValue<Color>(\n        this._objRef.attenuationColor,\n        value,\n      );\n    }\n  }\n  public get attenuationColor(): Color | undefined {\n    return this._objRef?.attenuationColor;\n  }\n  @Input()\n  public set specularIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.specularIntensity = value;\n    }\n  }\n\n  public get specularIntensity(): number | undefined {\n    return this._objRef?.specularIntensity;\n  }\n  @Input()\n  public set specularIntensityMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.specularIntensityMap = value;\n    }\n  }\n\n  public get specularIntensityMap(): (Texture | null) | undefined {\n    return this._objRef?.specularIntensityMap;\n  }\n  @Input()\n  public set specularColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.specularColor = applyValue<Color>(\n        this._objRef.specularColor,\n        value,\n      );\n    }\n  }\n  public get specularColor(): Color | undefined {\n    return this._objRef?.specularColor;\n  }\n  @Input()\n  public set specularColorMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.specularColorMap = value;\n    }\n  }\n\n  public get specularColorMap(): (Texture | null) | undefined {\n    return this._objRef?.specularColorMap;\n  }\n  @Input()\n  public set anisotropy(value: number) {\n    if (this._objRef) {\n      this._objRef.anisotropy = value;\n    }\n  }\n\n  public get anisotropy(): number | undefined {\n    return this._objRef?.anisotropy;\n  }\n  @Input()\n  public set clearcoat(value: number) {\n    if (this._objRef) {\n      this._objRef.clearcoat = value;\n    }\n  }\n\n  public get clearcoat(): number | undefined {\n    return this._objRef?.clearcoat;\n  }\n  @Input()\n  public set iridescence(value: number) {\n    if (this._objRef) {\n      this._objRef.iridescence = value;\n    }\n  }\n\n  public get iridescence(): number | undefined {\n    return this._objRef?.iridescence;\n  }\n  @Input()\n  public set dispersion(value: number) {\n    if (this._objRef) {\n      this._objRef.dispersion = value;\n    }\n  }\n\n  public get dispersion(): number | undefined {\n    return this._objRef?.dispersion;\n  }\n  @Input()\n  public set sheen(value: number) {\n    if (this._objRef) {\n      this._objRef.sheen = value;\n    }\n  }\n\n  public get sheen(): number | undefined {\n    return this._objRef?.sheen;\n  }\n  @Input()\n  public set transmission(value: number) {\n    if (this._objRef) {\n      this._objRef.transmission = value;\n    }\n  }\n\n  public get transmission(): number | undefined {\n    return this._objRef?.transmission;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  MeshToonMaterial,\n  MeshToonMaterialParameters,\n  Vector2,\n} from 'three';\nimport { NormalMapTypes } from 'three/src/constants.js';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-meshToonMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThMaterial, useExisting: forwardRef(() => ThMeshToonMaterial) },\n  ],\n})\nexport class ThMeshToonMaterial<\n  T extends MeshToonMaterial = MeshToonMaterial,\n  TARGS = /* parameters? */ MeshToonMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<MeshToonMaterial> {\n    return MeshToonMaterial;\n  }\n\n  public get isMeshToonMaterial(): boolean | undefined {\n    return this._objRef?.isMeshToonMaterial;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set gradientMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.gradientMap = value;\n    }\n  }\n\n  public get gradientMap(): (Texture | null) | undefined {\n    return this._objRef?.gradientMap;\n  }\n  @Input()\n  public set lightMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.lightMap = value;\n    }\n  }\n\n  public get lightMap(): (Texture | null) | undefined {\n    return this._objRef?.lightMap;\n  }\n  @Input()\n  public set lightMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.lightMapIntensity = value;\n    }\n  }\n\n  public get lightMapIntensity(): number | undefined {\n    return this._objRef?.lightMapIntensity;\n  }\n  @Input()\n  public set aoMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.aoMap = value;\n    }\n  }\n\n  public get aoMap(): (Texture | null) | undefined {\n    return this._objRef?.aoMap;\n  }\n  @Input()\n  public set aoMapIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.aoMapIntensity = value;\n    }\n  }\n\n  public get aoMapIntensity(): number | undefined {\n    return this._objRef?.aoMapIntensity;\n  }\n  @Input()\n  public set emissive(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.emissive = applyValue<Color>(this._objRef.emissive, value);\n    }\n  }\n  public get emissive(): Color | undefined {\n    return this._objRef?.emissive;\n  }\n  @Input()\n  public set emissiveIntensity(value: number) {\n    if (this._objRef) {\n      this._objRef.emissiveIntensity = value;\n    }\n  }\n\n  public get emissiveIntensity(): number | undefined {\n    return this._objRef?.emissiveIntensity;\n  }\n  @Input()\n  public set emissiveMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.emissiveMap = value;\n    }\n  }\n\n  public get emissiveMap(): (Texture | null) | undefined {\n    return this._objRef?.emissiveMap;\n  }\n  @Input()\n  public set bumpMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.bumpMap = value;\n    }\n  }\n\n  public get bumpMap(): (Texture | null) | undefined {\n    return this._objRef?.bumpMap;\n  }\n  @Input()\n  public set bumpScale(value: number) {\n    if (this._objRef) {\n      this._objRef.bumpScale = value;\n    }\n  }\n\n  public get bumpScale(): number | undefined {\n    return this._objRef?.bumpScale;\n  }\n  @Input()\n  public set normalMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.normalMap = value;\n    }\n  }\n\n  public get normalMap(): (Texture | null) | undefined {\n    return this._objRef?.normalMap;\n  }\n  @Input()\n  public set normalMapType(value: NormalMapTypes) {\n    if (this._objRef) {\n      this._objRef.normalMapType = value;\n    }\n  }\n\n  public get normalMapType(): NormalMapTypes | undefined {\n    return this._objRef?.normalMapType;\n  }\n  @Input()\n  public set normalScale(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.normalScale = applyValue<Vector2>(\n        this._objRef.normalScale,\n        value,\n      );\n    }\n  }\n  public get normalScale(): Vector2 | undefined {\n    return this._objRef?.normalScale;\n  }\n  @Input()\n  public set displacementMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.displacementMap = value;\n    }\n  }\n\n  public get displacementMap(): (Texture | null) | undefined {\n    return this._objRef?.displacementMap;\n  }\n  @Input()\n  public set displacementScale(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementScale = value;\n    }\n  }\n\n  public get displacementScale(): number | undefined {\n    return this._objRef?.displacementScale;\n  }\n  @Input()\n  public set displacementBias(value: number) {\n    if (this._objRef) {\n      this._objRef.displacementBias = value;\n    }\n  }\n\n  public get displacementBias(): number | undefined {\n    return this._objRef?.displacementBias;\n  }\n  @Input()\n  public set alphaMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.alphaMap = value;\n    }\n  }\n\n  public get alphaMap(): (Texture | null) | undefined {\n    return this._objRef?.alphaMap;\n  }\n  @Input()\n  public set wireframe(value: boolean) {\n    if (this._objRef) {\n      this._objRef.wireframe = value;\n    }\n  }\n\n  public get wireframe(): boolean | undefined {\n    return this._objRef?.wireframe;\n  }\n  @Input()\n  public set wireframeLinewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.wireframeLinewidth = value;\n    }\n  }\n\n  public get wireframeLinewidth(): number | undefined {\n    return this._objRef?.wireframeLinewidth;\n  }\n  @Input()\n  public set wireframeLinecap(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.wireframeLinecap = value;\n    }\n  }\n\n  public get wireframeLinecap(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.wireframeLinecap;\n  }\n  @Input()\n  public set wireframeLinejoin(value: 'round' | 'bevel' | 'miter') {\n    if (this._objRef) {\n      this._objRef.wireframeLinejoin = value;\n    }\n  }\n\n  public get wireframeLinejoin(): ('round' | 'bevel' | 'miter') | undefined {\n    return this._objRef?.wireframeLinejoin;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { OctahedronGeometry } from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\nimport { ThPolyhedronGeometry } from './ThPolyhedronGeometry';\n\n@Component({\n  selector: 'th-octahedronGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThOctahedronGeometry),\n    },\n  ],\n})\nexport class ThOctahedronGeometry<\n  T extends OctahedronGeometry = OctahedronGeometry,\n  TARGS = [radius?: number, detail?: number],\n> extends ThPolyhedronGeometry<T, TARGS> {\n  public getType(): Type<OctahedronGeometry> {\n    return OctahedronGeometry;\n  }\n\n  public get type(): (string | 'OctahedronGeometry') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { OrthographicCamera } from 'three';\nimport { ThCamera } from './ThCamera';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-orthographicCamera',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThObject3D,\n      useExisting: forwardRef(() => ThOrthographicCamera),\n    },\n    { provide: ThCamera, useExisting: forwardRef(() => ThOrthographicCamera) },\n  ],\n})\nexport class ThOrthographicCamera<\n  T extends OrthographicCamera = OrthographicCamera,\n  TARGS = [\n    left?: number,\n    right?: number,\n    top?: number,\n    bottom?: number,\n    near?: number,\n    far?: number,\n  ],\n> extends ThCamera<T, TARGS> {\n  public getType(): Type<OrthographicCamera> {\n    return OrthographicCamera;\n  }\n\n  public get isOrthographicCamera(): true | undefined {\n    return this._objRef?.isOrthographicCamera;\n  }\n  public get type(): (string | 'OrthographicCamera') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set zoom(value: number) {\n    if (this._objRef) {\n      this._objRef.zoom = value;\n    }\n  }\n\n  public get zoom(): number | undefined {\n    return this._objRef?.zoom;\n  }\n  @Input()\n  public set view(\n    value: null | {\n      enabled: boolean;\n      fullWidth: number;\n      fullHeight: number;\n      offsetX: number;\n      offsetY: number;\n      width: number;\n      height: number;\n    },\n  ) {\n    if (this._objRef) {\n      this._objRef.view = value;\n    }\n  }\n\n  public get view():\n    | (null | {\n        enabled: boolean;\n        fullWidth: number;\n        fullHeight: number;\n        offsetX: number;\n        offsetY: number;\n        width: number;\n        height: number;\n      })\n    | undefined {\n    return this._objRef?.view;\n  }\n  @Input()\n  public set left(value: number) {\n    if (this._objRef) {\n      this._objRef.left = value;\n    }\n  }\n\n  public get left(): number | undefined {\n    return this._objRef?.left;\n  }\n  @Input()\n  public set right(value: number) {\n    if (this._objRef) {\n      this._objRef.right = value;\n    }\n  }\n\n  public get right(): number | undefined {\n    return this._objRef?.right;\n  }\n  @Input()\n  public set top(value: number) {\n    if (this._objRef) {\n      this._objRef.top = value;\n    }\n  }\n\n  public get top(): number | undefined {\n    return this._objRef?.top;\n  }\n  @Input()\n  public set bottom(value: number) {\n    if (this._objRef) {\n      this._objRef.bottom = value;\n    }\n  }\n\n  public get bottom(): number | undefined {\n    return this._objRef?.bottom;\n  }\n  @Input()\n  public set near(value: number) {\n    if (this._objRef) {\n      this._objRef.near = value;\n    }\n  }\n\n  public get near(): number | undefined {\n    return this._objRef?.near;\n  }\n  @Input()\n  public set far(value: number) {\n    if (this._objRef) {\n      this._objRef.far = value;\n    }\n  }\n\n  public get far(): number | undefined {\n    return this._objRef?.far;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Camera,\n  Color,\n  ColorRepresentation,\n  Matrix4,\n  MeshBasicMaterial,\n  MeshDepthMaterial,\n  Object3D,\n  Scene,\n  ShaderMaterial,\n  Texture,\n  Vector2,\n  WebGLRenderTarget,\n} from 'three';\nimport { OutlinePass } from 'three/examples/jsm/postprocessing/OutlinePass.js';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { applyValue } from '../util';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-outlinePass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThOutlinePass) },\n  ],\n})\nexport class ThOutlinePass<\n  T extends OutlinePass = OutlinePass,\n  TARGS = [\n    resolution: Vector2,\n    scene: Scene,\n    camera: Camera,\n    selectedObjects?: Object3D[],\n  ],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<OutlinePass> {\n    return OutlinePass;\n  }\n\n  @Input()\n  public set renderScene(value: Scene) {\n    if (this._objRef) {\n      this._objRef.renderScene = value;\n    }\n  }\n\n  public get renderScene(): Scene | undefined {\n    return this._objRef?.renderScene;\n  }\n  @Input()\n  public set renderCamera(value: Camera) {\n    if (this._objRef) {\n      this._objRef.renderCamera = value;\n    }\n  }\n\n  public get renderCamera(): Camera | undefined {\n    return this._objRef?.renderCamera;\n  }\n  @Input()\n  public set selectedObjects(value: Object3D[]) {\n    if (this._objRef) {\n      this._objRef.selectedObjects = value;\n    }\n  }\n\n  public get selectedObjects(): Object3D[] | undefined {\n    return this._objRef?.selectedObjects;\n  }\n  @Input()\n  public set visibleEdgeColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.visibleEdgeColor = applyValue<Color>(\n        this._objRef.visibleEdgeColor,\n        value,\n      );\n    }\n  }\n  public get visibleEdgeColor(): Color | undefined {\n    return this._objRef?.visibleEdgeColor;\n  }\n  @Input()\n  public set hiddenEdgeColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.hiddenEdgeColor = applyValue<Color>(\n        this._objRef.hiddenEdgeColor,\n        value,\n      );\n    }\n  }\n  public get hiddenEdgeColor(): Color | undefined {\n    return this._objRef?.hiddenEdgeColor;\n  }\n  @Input()\n  public set edgeGlow(value: number) {\n    if (this._objRef) {\n      this._objRef.edgeGlow = value;\n    }\n  }\n\n  public get edgeGlow(): number | undefined {\n    return this._objRef?.edgeGlow;\n  }\n  @Input()\n  public set usePatternTexture(value: boolean) {\n    if (this._objRef) {\n      this._objRef.usePatternTexture = value;\n    }\n  }\n\n  public get usePatternTexture(): boolean | undefined {\n    return this._objRef?.usePatternTexture;\n  }\n  @Input()\n  public set edgeThickness(value: number) {\n    if (this._objRef) {\n      this._objRef.edgeThickness = value;\n    }\n  }\n\n  public get edgeThickness(): number | undefined {\n    return this._objRef?.edgeThickness;\n  }\n  @Input()\n  public set edgeStrength(value: number) {\n    if (this._objRef) {\n      this._objRef.edgeStrength = value;\n    }\n  }\n\n  public get edgeStrength(): number | undefined {\n    return this._objRef?.edgeStrength;\n  }\n  @Input()\n  public set downSampleRatio(value: number) {\n    if (this._objRef) {\n      this._objRef.downSampleRatio = value;\n    }\n  }\n\n  public get downSampleRatio(): number | undefined {\n    return this._objRef?.downSampleRatio;\n  }\n  @Input()\n  public set pulsePeriod(value: number) {\n    if (this._objRef) {\n      this._objRef.pulsePeriod = value;\n    }\n  }\n\n  public get pulsePeriod(): number | undefined {\n    return this._objRef?.pulsePeriod;\n  }\n  @Input()\n  public set resolution(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.resolution = applyValue<Vector2>(\n        this._objRef.resolution,\n        value,\n      );\n    }\n  }\n  public get resolution(): Vector2 | undefined {\n    return this._objRef?.resolution;\n  }\n  @Input()\n  public set patternTexture(value: Texture) {\n    if (this._objRef) {\n      this._objRef.patternTexture = value;\n    }\n  }\n\n  public get patternTexture(): Texture | undefined {\n    return this._objRef?.patternTexture;\n  }\n  @Input()\n  public set maskBufferMaterial(value: MeshBasicMaterial) {\n    if (this._objRef) {\n      this._objRef.maskBufferMaterial = value;\n    }\n  }\n\n  public get maskBufferMaterial(): MeshBasicMaterial | undefined {\n    return this._objRef?.maskBufferMaterial;\n  }\n  @Input()\n  public set renderTargetMaskBuffer(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetMaskBuffer = value;\n    }\n  }\n\n  public get renderTargetMaskBuffer(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetMaskBuffer;\n  }\n  @Input()\n  public set depthMaterial(value: MeshDepthMaterial) {\n    if (this._objRef) {\n      this._objRef.depthMaterial = value;\n    }\n  }\n\n  public get depthMaterial(): MeshDepthMaterial | undefined {\n    return this._objRef?.depthMaterial;\n  }\n  @Input()\n  public set prepareMaskMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.prepareMaskMaterial = value;\n    }\n  }\n\n  public get prepareMaskMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.prepareMaskMaterial;\n  }\n  @Input()\n  public set renderTargetDepthBuffer(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetDepthBuffer = value;\n    }\n  }\n\n  public get renderTargetDepthBuffer(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetDepthBuffer;\n  }\n  @Input()\n  public set renderTargetMaskDownSampleBuffer(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetMaskDownSampleBuffer = value;\n    }\n  }\n\n  public get renderTargetMaskDownSampleBuffer(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetMaskDownSampleBuffer;\n  }\n  @Input()\n  public set renderTargetBlurBuffer1(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetBlurBuffer1 = value;\n    }\n  }\n\n  public get renderTargetBlurBuffer1(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetBlurBuffer1;\n  }\n  @Input()\n  public set renderTargetBlurBuffer2(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetBlurBuffer2 = value;\n    }\n  }\n\n  public get renderTargetBlurBuffer2(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetBlurBuffer2;\n  }\n  @Input()\n  public set edgeDetectionMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.edgeDetectionMaterial = value;\n    }\n  }\n\n  public get edgeDetectionMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.edgeDetectionMaterial;\n  }\n  @Input()\n  public set renderTargetEdgeBuffer1(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetEdgeBuffer1 = value;\n    }\n  }\n\n  public get renderTargetEdgeBuffer1(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetEdgeBuffer1;\n  }\n  @Input()\n  public set renderTargetEdgeBuffer2(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetEdgeBuffer2 = value;\n    }\n  }\n\n  public get renderTargetEdgeBuffer2(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetEdgeBuffer2;\n  }\n  @Input()\n  public set separableBlurMaterial1(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.separableBlurMaterial1 = value;\n    }\n  }\n\n  public get separableBlurMaterial1(): ShaderMaterial | undefined {\n    return this._objRef?.separableBlurMaterial1;\n  }\n  @Input()\n  public set separableBlurMaterial2(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.separableBlurMaterial2 = value;\n    }\n  }\n\n  public get separableBlurMaterial2(): ShaderMaterial | undefined {\n    return this._objRef?.separableBlurMaterial2;\n  }\n  @Input()\n  public set overlayMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.overlayMaterial = value;\n    }\n  }\n\n  public get overlayMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.overlayMaterial;\n  }\n  @Input()\n  public set copyUniforms(value: object) {\n    if (this._objRef) {\n      this._objRef.copyUniforms = value;\n    }\n  }\n\n  public get copyUniforms(): object | undefined {\n    return this._objRef?.copyUniforms;\n  }\n  @Input()\n  public set materialCopy(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.materialCopy = value;\n    }\n  }\n\n  public get materialCopy(): ShaderMaterial | undefined {\n    return this._objRef?.materialCopy;\n  }\n  @Input()\n  public set oldClearColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.oldClearColor = applyValue<Color>(\n        this._objRef.oldClearColor,\n        value,\n      );\n    }\n  }\n  public get oldClearColor(): Color | undefined {\n    return this._objRef?.oldClearColor;\n  }\n  @Input()\n  public set oldClearAlpha(value: number) {\n    if (this._objRef) {\n      this._objRef.oldClearAlpha = value;\n    }\n  }\n\n  public get oldClearAlpha(): number | undefined {\n    return this._objRef?.oldClearAlpha;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n  @Input()\n  public set tempPulseColor1(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.tempPulseColor1 = applyValue<Color>(\n        this._objRef.tempPulseColor1,\n        value,\n      );\n    }\n  }\n  public get tempPulseColor1(): Color | undefined {\n    return this._objRef?.tempPulseColor1;\n  }\n  @Input()\n  public set tempPulseColor2(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.tempPulseColor2 = applyValue<Color>(\n        this._objRef.tempPulseColor2,\n        value,\n      );\n    }\n  }\n  public get tempPulseColor2(): Color | undefined {\n    return this._objRef?.tempPulseColor2;\n  }\n  @Input()\n  public set textureMatrix(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.textureMatrix = applyValue<Matrix4>(\n        this._objRef.textureMatrix,\n        value,\n      );\n    }\n  }\n  public get textureMatrix(): Matrix4 | undefined {\n    return this._objRef?.textureMatrix;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { RawShaderMaterial } from 'three';\nimport { OutputPass } from 'three/examples/jsm/postprocessing/OutputPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-outputPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThOutputPass) },\n  ],\n})\nexport class ThOutputPass<\n  T extends OutputPass = OutputPass,\n  TARGS = [],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<OutputPass> {\n    return OutputPass;\n  }\n\n  public get isOutputPass(): true | undefined {\n    return this._objRef?.isOutputPass;\n  }\n  @Input()\n  public set uniforms(map: { [name: string]: { value: any } }) {\n    if (this._objRef) {\n      Object.assign(this._objRef.uniforms, map);\n    }\n  }\n\n  public get uniforms(): { [name: string]: { value: any } } | undefined {\n    return this._objRef?.uniforms as\n      | { [name: string]: { value: any } }\n      | undefined;\n  }\n  @Input()\n  public set material(value: RawShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): RawShaderMaterial | undefined {\n    return this._objRef?.material;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { BufferGeometryEventMap, NormalBufferAttributes, Vector3 } from 'three';\nimport { ParametricGeometry } from 'three/examples/jsm/geometries/ParametricGeometry.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-parametricGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThParametricGeometry),\n    },\n  ],\n})\nexport class ThParametricGeometry<\n  T extends ParametricGeometry = ParametricGeometry,\n  TARGS = [\n    func?: (u: number, v: number, target: Vector3) => void,\n    slices?: number,\n    stacks?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<ParametricGeometry> {\n    return ParametricGeometry;\n  }\n\n  @Input()\n  public set type(value: string) {\n    if (this._objRef) {\n      this._objRef.type = value;\n    }\n  }\n\n  public get type(): string | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set parameters(value: {\n    func: (u: number, v: number, dest: Vector3) => void;\n    slices: number;\n    stacks: number;\n  }) {\n    if (this._objRef) {\n      this._objRef.parameters = value;\n    }\n  }\n\n  public get parameters():\n    | {\n        func: (u: number, v: number, dest: Vector3) => void;\n        slices: number;\n        stacks: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  NormalBufferAttributes,\n  PlaneGeometry,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-planeGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThPlaneGeometry),\n    },\n  ],\n})\nexport class ThPlaneGeometry<\n  T extends PlaneGeometry = PlaneGeometry,\n  TARGS = [\n    width?: number,\n    height?: number,\n    widthSegments?: number,\n    heightSegments?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<PlaneGeometry> {\n    return PlaneGeometry;\n  }\n\n  public get type(): (string | 'PlaneGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly width: number;\n        readonly height: number;\n        readonly widthSegments: number;\n        readonly heightSegments: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometry,\n  Material,\n  Object3DEventMap,\n  Plane,\n  PlaneHelper,\n} from 'three';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { applyValue } from '../util';\nimport { ThLineSegments } from './ThLineSegments';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-planeHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThPlaneHelper) },\n  ],\n})\nexport class ThPlaneHelper<\n  T extends PlaneHelper = PlaneHelper,\n  TARGS = [plane: Plane, size?: number, hex?: number],\n> extends ThLineSegments<\n  BufferGeometry,\n  Material | Material[],\n  Object3DEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<PlaneHelper> {\n    return PlaneHelper;\n  }\n\n  public get type(): (string | 'PlaneHelper') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set plane(value: Plane | [normal: Vector3, constant: number]) {\n    if (this._objRef) {\n      this._objRef.plane = applyValue<Plane>(this._objRef.plane, value);\n    }\n  }\n  public get plane(): Plane | undefined {\n    return this._objRef?.plane;\n  }\n  @Input()\n  public set size(value: number) {\n    if (this._objRef) {\n      this._objRef.size = value;\n    }\n  }\n\n  public get size(): number | undefined {\n    return this._objRef?.size;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera } from 'three';\nimport {\n  PointerLockControls,\n  PointerLockControlsEventMap,\n} from 'three/examples/jsm/controls/PointerLockControls.js';\nimport { ThControlBase } from '../ThControlBase';\n\n@Component({\n  selector: 'th-pointerLockControls',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThControlBase,\n      useExisting: forwardRef(() => ThPointerLockControls),\n    },\n  ],\n})\nexport class ThPointerLockControls<\n  T extends PointerLockControls = PointerLockControls,\n  TARGS = [camera: Camera, domElement?: HTMLElement | SVGElement | null],\n> extends ThControlBase<PointerLockControlsEventMap, T, TARGS> {\n  public getType(): Type<PointerLockControls> {\n    return PointerLockControls;\n  }\n\n  @Input()\n  public set isLocked(value: boolean) {\n    if (this._objRef) {\n      this._objRef.isLocked = value;\n    }\n  }\n\n  public get isLocked(): boolean | undefined {\n    return this._objRef?.isLocked;\n  }\n  @Input()\n  public set minPolarAngle(value: number) {\n    if (this._objRef) {\n      this._objRef.minPolarAngle = value;\n    }\n  }\n\n  public get minPolarAngle(): number | undefined {\n    return this._objRef?.minPolarAngle;\n  }\n  @Input()\n  public set maxPolarAngle(value: number) {\n    if (this._objRef) {\n      this._objRef.maxPolarAngle = value;\n    }\n  }\n\n  public get maxPolarAngle(): number | undefined {\n    return this._objRef?.maxPolarAngle;\n  }\n  @Input()\n  public set pointerSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.pointerSpeed = value;\n    }\n  }\n\n  public get pointerSpeed(): number | undefined {\n    return this._objRef?.pointerSpeed;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { PointLight } from 'three';\nimport { PointLightShadow } from 'three/src/lights/PointLightShadow.js';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { ThLight } from './ThLight';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-pointLight',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThPointLight) },\n  ],\n})\nexport class ThPointLight<\n  T extends PointLight = PointLight,\n  TARGS = [\n    color?: ColorRepresentation,\n    intensity?: number,\n    distance?: number,\n    decay?: number,\n  ],\n> extends ThLight<PointLightShadow, T, TARGS> {\n  public getType(): Type<PointLight> {\n    return PointLight;\n  }\n\n  public get isPointLight(): true | undefined {\n    return this._objRef?.isPointLight;\n  }\n  @Input()\n  public set type(value: string) {\n    if (this._objRef) {\n      this._objRef.type = value;\n    }\n  }\n\n  public get type(): string | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set intensity(value: number) {\n    if (this._objRef) {\n      this._objRef.intensity = value;\n    }\n  }\n\n  public get intensity(): number | undefined {\n    return this._objRef?.intensity;\n  }\n  @Input()\n  public set distance(value: number) {\n    if (this._objRef) {\n      this._objRef.distance = value;\n    }\n  }\n\n  public get distance(): number | undefined {\n    return this._objRef?.distance;\n  }\n  @Input()\n  public set castShadow(value: boolean) {\n    if (this._objRef) {\n      this._objRef.castShadow = value;\n    }\n  }\n\n  public get castShadow(): boolean | undefined {\n    return this._objRef?.castShadow;\n  }\n  @Input()\n  public set decay(value: number) {\n    if (this._objRef) {\n      this._objRef.decay = value;\n    }\n  }\n\n  public get decay(): number | undefined {\n    return this._objRef?.decay;\n  }\n  @Input()\n  public set shadow(value: PointLightShadow) {\n    if (this._objRef) {\n      this._objRef.shadow = value;\n    }\n  }\n\n  public get shadow(): PointLightShadow | undefined {\n    return this._objRef?.shadow;\n  }\n  @Input()\n  public set power(value: number) {\n    if (this._objRef) {\n      this._objRef.power = value;\n    }\n  }\n\n  public get power(): number | undefined {\n    return this._objRef?.power;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Matrix4, Object3DEventMap, PointLightHelper } from 'three';\nimport { PointLight } from 'three/src/lights/PointLight.js';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-pointLightHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThPointLightHelper) },\n  ],\n})\nexport class ThPointLightHelper<\n  T extends PointLightHelper = PointLightHelper,\n  TARGS = [light: PointLight, sphereSize?: number, color?: ColorRepresentation],\n> extends ThObject3D<Object3DEventMap, T, TARGS> {\n  public getType(): Type<PointLightHelper> {\n    return PointLightHelper;\n  }\n\n  public get type(): (string | 'PointLightHelper') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set light(value: PointLight) {\n    if (this._objRef) {\n      this._objRef.light = value;\n    }\n  }\n\n  public get light(): PointLight | undefined {\n    return this._objRef?.light;\n  }\n  @Input()\n  public set matrix(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.matrix = applyValue<Matrix4>(this._objRef.matrix, value);\n    }\n  }\n  public get matrix(): Matrix4 | undefined {\n    return this._objRef?.matrix;\n  }\n  @Input()\n  public set color(value: ColorRepresentation | undefined) {\n    if (this._objRef) {\n      this._objRef.color = value;\n    }\n  }\n\n  public get color(): (ColorRepresentation | undefined) | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set matrixAutoUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.matrixAutoUpdate = value;\n    }\n  }\n\n  public get matrixAutoUpdate(): boolean | undefined {\n    return this._objRef?.matrixAutoUpdate;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Points } from 'three';\nimport {\n  BufferGeometry,\n  NormalOrGLBufferAttributes,\n} from 'three/src/core/BufferGeometry.js';\nimport { Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { Material } from 'three/src/materials/Material.js';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-points',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThPoints) }],\n})\nexport class ThPoints<\n  TGeometry extends BufferGeometry<NormalOrGLBufferAttributes> = BufferGeometry,\n  TMaterial extends Material | Material[] = Material | Material[],\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends Points<TGeometry, TMaterial, TEventMap> = Points<\n    TGeometry,\n    TMaterial,\n    TEventMap\n  >,\n  TARGS = [geometry?: TGeometry, material?: TMaterial],\n> extends ThObject3D<TEventMap, T, TARGS> {\n  public getType(): Type<Points<TGeometry, TMaterial, TEventMap>> {\n    return Points;\n  }\n\n  public get isPoints(): true | undefined {\n    return this._objRef?.isPoints;\n  }\n  public get type(): (string | 'Points') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set morphTargetInfluences(value: number[] | undefined) {\n    if (this._objRef) {\n      this._objRef.morphTargetInfluences = value;\n    }\n  }\n\n  public get morphTargetInfluences(): (number[] | undefined) | undefined {\n    return this._objRef?.morphTargetInfluences;\n  }\n  @Input()\n  public set morphTargetDictionary(\n    value: { [key: string]: number } | undefined,\n  ) {\n    if (this._objRef) {\n      this._objRef.morphTargetDictionary = value;\n    }\n  }\n\n  public get morphTargetDictionary():\n    | ({ [key: string]: number } | undefined)\n    | undefined {\n    return this._objRef?.morphTargetDictionary;\n  }\n  @Input()\n  public set geometry(value: TGeometry) {\n    if (this._objRef) {\n      this._objRef.geometry = value;\n    }\n  }\n\n  public get geometry(): TGeometry | undefined {\n    return this._objRef?.geometry;\n  }\n  @Input()\n  public set material(value: TMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): TMaterial | undefined {\n    return this._objRef?.material;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  PointsMaterial,\n  PointsMaterialParameters,\n} from 'three';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-pointsMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThMaterial, useExisting: forwardRef(() => ThPointsMaterial) },\n  ],\n})\nexport class ThPointsMaterial<\n  T extends PointsMaterial = PointsMaterial,\n  TARGS = /* parameters? */ PointsMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<PointsMaterial> {\n    return PointsMaterial;\n  }\n\n  public get isPointsMaterial(): boolean | undefined {\n    return this._objRef?.isPointsMaterial;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set alphaMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.alphaMap = value;\n    }\n  }\n\n  public get alphaMap(): (Texture | null) | undefined {\n    return this._objRef?.alphaMap;\n  }\n  @Input()\n  public set size(value: number) {\n    if (this._objRef) {\n      this._objRef.size = value;\n    }\n  }\n\n  public get size(): number | undefined {\n    return this._objRef?.size;\n  }\n  @Input()\n  public set sizeAttenuation(value: boolean) {\n    if (this._objRef) {\n      this._objRef.sizeAttenuation = value;\n    }\n  }\n\n  public get sizeAttenuation(): boolean | undefined {\n    return this._objRef?.sizeAttenuation;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometry,\n  Material,\n  Object3DEventMap,\n  PolarGridHelper,\n} from 'three';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { ThLineSegments } from './ThLineSegments';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-polarGridHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThPolarGridHelper) },\n  ],\n})\nexport class ThPolarGridHelper<\n  T extends PolarGridHelper = PolarGridHelper,\n  TARGS = [\n    radius?: number,\n    radials?: number,\n    circles?: number,\n    divisions?: number,\n    color1?: ColorRepresentation,\n    color2?: ColorRepresentation,\n  ],\n> extends ThLineSegments<\n  BufferGeometry,\n  Material | Material[],\n  Object3DEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<PolarGridHelper> {\n    return PolarGridHelper;\n  }\n\n  public get type(): (string | 'PolarGridHelper') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { PositionalAudio } from 'three';\nimport { AudioListener } from 'three/src/audio/AudioListener.js';\nimport { ThAudio } from './ThAudio';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-positionalAudio',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThPositionalAudio) },\n  ],\n})\nexport class ThPositionalAudio<\n  T extends PositionalAudio = PositionalAudio,\n  TARGS = /* listener */ AudioListener,\n> extends ThAudio<PannerNode, T, TARGS> {\n  public getType(): Type<PositionalAudio> {\n    return PositionalAudio;\n  }\n\n  @Input()\n  public set panner(value: PannerNode) {\n    if (this._objRef) {\n      this._objRef.panner = value;\n    }\n  }\n\n  public get panner(): PannerNode | undefined {\n    return this._objRef?.panner;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport { ChangeDetectionStrategy, Component, Input, Type, forwardRef } from '@angular/core';\nimport { ShaderMaterial, ShaderMaterialParameters } from 'three';\nimport { GLSLVersion } from 'three/src/constants.js';\nimport { UniformsGroup } from 'three/src/core/UniformsGroup.js';\nimport { IUniform } from 'three/src/renderers/shaders/UniformsLib.js';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-shaderMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThMaterial, useExisting: forwardRef(() => ThShaderMaterial) }],\n})\nexport class ThShaderMaterial<\n  T extends ShaderMaterial = ShaderMaterial,\n  TARGS = /* parameters? */ ShaderMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<ShaderMaterial> {\n    return ShaderMaterial;\n  }\n\n  public get isShaderMaterial(): boolean | undefined {\n    return this._objRef?.isShaderMaterial;\n  }\n  @Input()\n  public set defines(value: Record<string, unknown>) {\n    if (this._objRef) {\n      this._objRef.defines = value;\n    }\n  }\n\n  public get defines(): Record<string, unknown> | undefined {\n    return this._objRef?.defines;\n  }\n\n  @Input()\n  public set uniforms(value: { [uniform: string]: IUniform }) {\n    if (this._objRef) {\n      this._objRef.uniforms = value;\n    }\n  }\n\n  public get uniforms(): { [uniform: string]: IUniform } | undefined {\n    return this._objRef?.uniforms;\n  }\n  @Input()\n  public set uniformsGroups(value: Array<UniformsGroup>) {\n    if (this._objRef) {\n      this._objRef.uniformsGroups = value;\n    }\n  }\n\n  public get uniformsGroups(): Array<UniformsGroup> | undefined {\n    return this._objRef?.uniformsGroups;\n  }\n  @Input()\n  public set vertexShader(value: string) {\n    if (this._objRef) {\n      this._objRef.vertexShader = value;\n    }\n  }\n\n  public get vertexShader(): string | undefined {\n    return this._objRef?.vertexShader;\n  }\n  @Input()\n  public set fragmentShader(value: string) {\n    if (this._objRef) {\n      this._objRef.fragmentShader = value;\n    }\n  }\n\n  public get fragmentShader(): string | undefined {\n    return this._objRef?.fragmentShader;\n  }\n  @Input()\n  public set linewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.linewidth = value;\n    }\n  }\n\n  public get linewidth(): number | undefined {\n    return this._objRef?.linewidth;\n  }\n  @Input()\n  public set wireframe(value: boolean) {\n    if (this._objRef) {\n      this._objRef.wireframe = value;\n    }\n  }\n\n  public get wireframe(): boolean | undefined {\n    return this._objRef?.wireframe;\n  }\n  @Input()\n  public set wireframeLinewidth(value: number) {\n    if (this._objRef) {\n      this._objRef.wireframeLinewidth = value;\n    }\n  }\n\n  public get wireframeLinewidth(): number | undefined {\n    return this._objRef?.wireframeLinewidth;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n  @Input()\n  public set lights(value: boolean) {\n    if (this._objRef) {\n      this._objRef.lights = value;\n    }\n  }\n\n  public get lights(): boolean | undefined {\n    return this._objRef?.lights;\n  }\n  @Input()\n  public set clipping(value: boolean) {\n    if (this._objRef) {\n      this._objRef.clipping = value;\n    }\n  }\n\n  public get clipping(): boolean | undefined {\n    return this._objRef?.clipping;\n  }\n  @Input()\n  public set extensions(value: { clipCullDistance: boolean; multiDraw: boolean }) {\n    if (this._objRef) {\n      this._objRef.extensions = value;\n    }\n  }\n\n  public get extensions():\n    | {\n        clipCullDistance: boolean;\n        multiDraw: boolean;\n      }\n    | undefined {\n    return this._objRef?.extensions;\n  }\n  @Input()\n  public set defaultAttributeValues(value: {\n    color: [number, number, number];\n    uv: [number, number];\n    uv1: [number, number];\n  }) {\n    if (this._objRef) {\n      this._objRef.defaultAttributeValues = value;\n    }\n  }\n\n  public get defaultAttributeValues():\n    | {\n        color: [number, number, number];\n        uv: [number, number];\n        uv1: [number, number];\n      }\n    | undefined {\n    return this._objRef?.defaultAttributeValues;\n  }\n  @Input()\n  public set index0AttributeName(value: string | undefined) {\n    if (this._objRef) {\n      this._objRef.index0AttributeName = value;\n    }\n  }\n\n  public get index0AttributeName(): (string | undefined) | undefined {\n    return this._objRef?.index0AttributeName;\n  }\n  @Input()\n  public set uniformsNeedUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.uniformsNeedUpdate = value;\n    }\n  }\n\n  public get uniformsNeedUpdate(): boolean | undefined {\n    return this._objRef?.uniformsNeedUpdate;\n  }\n  @Input()\n  public set glslVersion(value: GLSLVersion | null) {\n    if (this._objRef) {\n      this._objRef.glslVersion = value;\n    }\n  }\n\n  public get glslVersion(): (GLSLVersion | null) | undefined {\n    return this._objRef?.glslVersion;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport { ChangeDetectionStrategy, Component, Type, forwardRef } from '@angular/core';\nimport { RawShaderMaterial, ShaderMaterialParameters } from 'three';\nimport { ThMaterial } from './ThMaterial';\nimport { ThShaderMaterial } from './ThShaderMaterial';\n\n@Component({\n  selector: 'th-rawShaderMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThMaterial, useExisting: forwardRef(() => ThRawShaderMaterial) }],\n})\nexport class ThRawShaderMaterial<\n  T extends RawShaderMaterial = RawShaderMaterial,\n  TARGS = /* parameters? */ ShaderMaterialParameters,\n> extends ThShaderMaterial<T, TARGS> {\n  public getType(): Type<RawShaderMaterial> {\n    return RawShaderMaterial;\n  }\n\n  public get isRawShaderMaterial(): boolean | undefined {\n    return this._objRef?.isRawShaderMaterial;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { RectAreaLight } from 'three';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { ThLight } from './ThLight';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-rectAreaLight',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThRectAreaLight) },\n  ],\n})\nexport class ThRectAreaLight<\n  T extends RectAreaLight = RectAreaLight,\n  TARGS = [\n    color?: ColorRepresentation,\n    intensity?: number,\n    width?: number,\n    height?: number,\n  ],\n> extends ThLight<undefined, T, TARGS> {\n  public getType(): Type<RectAreaLight> {\n    return RectAreaLight;\n  }\n\n  public get isRectAreaLight(): true | undefined {\n    return this._objRef?.isRectAreaLight;\n  }\n  public get type(): (string | 'RectAreaLight') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set width(value: number) {\n    if (this._objRef) {\n      this._objRef.width = value;\n    }\n  }\n\n  public get width(): number | undefined {\n    return this._objRef?.width;\n  }\n  @Input()\n  public set height(value: number) {\n    if (this._objRef) {\n      this._objRef.height = value;\n    }\n  }\n\n  public get height(): number | undefined {\n    return this._objRef?.height;\n  }\n  @Input()\n  public set intensity(value: number) {\n    if (this._objRef) {\n      this._objRef.intensity = value;\n    }\n  }\n\n  public get intensity(): number | undefined {\n    return this._objRef?.intensity;\n  }\n  @Input()\n  public set power(value: number) {\n    if (this._objRef) {\n      this._objRef.power = value;\n    }\n  }\n\n  public get power(): number | undefined {\n    return this._objRef?.power;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  NormalBufferAttributes,\n  RingGeometry,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-ringGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThRingGeometry),\n    },\n  ],\n})\nexport class ThRingGeometry<\n  T extends RingGeometry = RingGeometry,\n  TARGS = [\n    innerRadius?: number,\n    outerRadius?: number,\n    thetaSegments?: number,\n    phiSegments?: number,\n    thetaStart?: number,\n    thetaLength?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<RingGeometry> {\n    return RingGeometry;\n  }\n\n  public get type(): (string | 'RingGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly innerRadius: number;\n        readonly outerRadius: number;\n        readonly thetaSegments: number;\n        readonly phiSegments: number;\n        readonly thetaStart: number;\n        readonly thetaLength: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { RoundedBoxGeometry } from 'three/examples/jsm/geometries/RoundedBoxGeometry.js';\nimport { ThBoxGeometry } from './ThBoxGeometry';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-roundedBoxGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThRoundedBoxGeometry),\n    },\n  ],\n})\nexport class ThRoundedBoxGeometry<\n  T extends RoundedBoxGeometry = RoundedBoxGeometry,\n  TARGS = [\n    width?: number,\n    height?: number,\n    depth?: number,\n    segments?: number,\n    radius?: number,\n  ],\n> extends ThBoxGeometry<T, TARGS> {\n  public getType(): Type<RoundedBoxGeometry> {\n    return RoundedBoxGeometry;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  forwardRef,\n  Input,\n  Type,\n} from '@angular/core';\nimport {\n  Camera,\n  Color,\n  ColorRepresentation,\n  MeshNormalMaterial,\n  Scene,\n  ShaderMaterial,\n  Vector2,\n  WebGLRenderTarget,\n} from 'three';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport {\n  SAOPass,\n  SAOPassParams,\n} from 'three/examples/jsm/postprocessing/SAOPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { applyValue } from '../util';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-sAOPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThSAOPass) },\n  ],\n})\nexport class ThSAOPass<\n  T extends SAOPass = SAOPass,\n  TARGS = [scene: Scene, camera: Camera, resolution?: Vector2],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<SAOPass> {\n    return SAOPass;\n  }\n\n  @Input()\n  public set scene(value: Scene) {\n    if (this._objRef) {\n      this._objRef.scene = value;\n    }\n  }\n\n  public get scene(): Scene | undefined {\n    return this._objRef?.scene;\n  }\n  @Input()\n  public set camera(value: Camera) {\n    if (this._objRef) {\n      this._objRef.camera = value;\n    }\n  }\n\n  public get camera(): Camera | undefined {\n    return this._objRef?.camera;\n  }\n  @Input()\n  public set originalClearColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.originalClearColor = applyValue<Color>(\n        this._objRef.originalClearColor,\n        value,\n      );\n    }\n  }\n  public get originalClearColor(): Color | undefined {\n    return this._objRef?.originalClearColor;\n  }\n  @Input()\n  public set oldClearColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.oldClearColor = applyValue<Color>(\n        this._objRef.oldClearColor,\n        value,\n      );\n    }\n  }\n  public get oldClearColor(): Color | undefined {\n    return this._objRef?.oldClearColor;\n  }\n  @Input()\n  public set oldClearAlpha(value: number) {\n    if (this._objRef) {\n      this._objRef.oldClearAlpha = value;\n    }\n  }\n\n  public get oldClearAlpha(): number | undefined {\n    return this._objRef?.oldClearAlpha;\n  }\n  @Input()\n  public set resolution(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.resolution = applyValue<Vector2>(\n        this._objRef.resolution,\n        value,\n      );\n    }\n  }\n  public get resolution(): Vector2 | undefined {\n    return this._objRef?.resolution;\n  }\n  @Input()\n  public set saoRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.saoRenderTarget = value;\n    }\n  }\n\n  public get saoRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.saoRenderTarget;\n  }\n  @Input()\n  public set blurIntermediateRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.blurIntermediateRenderTarget = value;\n    }\n  }\n\n  public get blurIntermediateRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.blurIntermediateRenderTarget;\n  }\n  @Input()\n  public set normalRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.normalRenderTarget = value;\n    }\n  }\n\n  public get normalRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.normalRenderTarget;\n  }\n  @Input()\n  public set normalMaterial(value: MeshNormalMaterial) {\n    if (this._objRef) {\n      this._objRef.normalMaterial = value;\n    }\n  }\n\n  public get normalMaterial(): MeshNormalMaterial | undefined {\n    return this._objRef?.normalMaterial;\n  }\n  @Input()\n  public set saoMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.saoMaterial = value;\n    }\n  }\n\n  public get saoMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.saoMaterial;\n  }\n  @Input()\n  public set vBlurMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.vBlurMaterial = value;\n    }\n  }\n\n  public get vBlurMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.vBlurMaterial;\n  }\n  @Input()\n  public set hBlurMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.hBlurMaterial = value;\n    }\n  }\n\n  public get hBlurMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.hBlurMaterial;\n  }\n  @Input()\n  public set materialCopy(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.materialCopy = value;\n    }\n  }\n\n  public get materialCopy(): ShaderMaterial | undefined {\n    return this._objRef?.materialCopy;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n  @Input()\n  public set params(value: SAOPassParams) {\n    if (this._objRef) {\n      this._objRef.params = value;\n    }\n  }\n\n  public get params(): SAOPassParams | undefined {\n    return this._objRef?.params;\n  }\n\n  public static readonly OUTPUT = SAOPass.OUTPUT;\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ShaderMaterial, WebGLRenderTarget } from 'three';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { SavePass } from 'three/examples/jsm/postprocessing/SavePass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-savePass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThSavePass) },\n  ],\n})\nexport class ThSavePass<\n  T extends SavePass = SavePass,\n  TARGS = /* renderTarget? */ WebGLRenderTarget,\n> extends ThPass<T, TARGS> {\n  public getType(): Type<SavePass> {\n    return SavePass;\n  }\n\n  @Input()\n  public set textureID(value: string) {\n    if (this._objRef) {\n      this._objRef.textureID = value;\n    }\n  }\n\n  public get textureID(): string | undefined {\n    return this._objRef?.textureID;\n  }\n  @Input()\n  public set renderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTarget = value;\n    }\n  }\n\n  public get renderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTarget;\n  }\n  @Input()\n  public set uniforms(map: { [name: string]: { value: any } }) {\n    if (this._objRef) {\n      Object.assign(this._objRef.uniforms, map);\n    }\n  }\n\n  public get uniforms(): { [name: string]: { value: any } } | undefined {\n    return this._objRef?.uniforms as\n      | { [name: string]: { value: any } }\n      | undefined;\n  }\n  @Input()\n  public set material(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): ShaderMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  ShadowMaterial,\n  ShadowMaterialParameters,\n} from 'three';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-shadowMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThMaterial, useExisting: forwardRef(() => ThShadowMaterial) },\n  ],\n})\nexport class ThShadowMaterial<\n  T extends ShadowMaterial = ShadowMaterial,\n  TARGS = /* parameters? */ ShadowMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<ShadowMaterial> {\n    return ShadowMaterial;\n  }\n\n  public get isShadowMaterial(): boolean | undefined {\n    return this._objRef?.isShadowMaterial;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  NormalBufferAttributes,\n  ShapeGeometry,\n} from 'three';\nimport { Shape } from 'three/src/extras/core/Shape.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-shapeGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThShapeGeometry),\n    },\n  ],\n})\nexport class ThShapeGeometry<\n  T extends ShapeGeometry = ShapeGeometry,\n  TARGS = [shapes?: Shape | Shape[], curveSegments?: number],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<ShapeGeometry> {\n    return ShapeGeometry;\n  }\n\n  public get type(): (string | 'ShapeGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly shapes: Shape | Shape[];\n        readonly curveSegments: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometry,\n  Material,\n  Object3DEventMap,\n  SkeletonHelper,\n} from 'three';\nimport { Object3D } from 'three/src/core/Object3D.js';\nimport { Bone } from 'three/src/objects/Bone.js';\nimport { SkinnedMesh } from 'three/src/objects/SkinnedMesh.js';\nimport { ThLineSegments } from './ThLineSegments';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-skeletonHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThSkeletonHelper) },\n  ],\n})\nexport class ThSkeletonHelper<\n  T extends SkeletonHelper = SkeletonHelper,\n  TARGS = /* object */ SkinnedMesh | Object3D,\n> extends ThLineSegments<\n  BufferGeometry,\n  Material | Material[],\n  Object3DEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<SkeletonHelper> {\n    return SkeletonHelper;\n  }\n\n  public get type(): (string | 'SkeletonHelper') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set root(value: SkinnedMesh | Object3D) {\n    if (this._objRef) {\n      this._objRef.root = value;\n    }\n  }\n\n  public get root(): (SkinnedMesh | Object3D) | undefined {\n    return this._objRef?.root;\n  }\n  @Input()\n  public set bones(value: Bone[]) {\n    if (this._objRef) {\n      this._objRef.bones = value;\n    }\n  }\n\n  public get bones(): Bone[] | undefined {\n    return this._objRef?.bones;\n  }\n  @Input()\n  public set matrixAutoUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.matrixAutoUpdate = value;\n    }\n  }\n\n  public get matrixAutoUpdate(): boolean | undefined {\n    return this._objRef?.matrixAutoUpdate;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Box3, Matrix4, SkinnedMesh } from 'three';\nimport { BindMode } from 'three/src/constants.js';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { Material } from 'three/src/materials/Material.js';\nimport { Sphere } from 'three/src/math/Sphere.js';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { Skeleton } from 'three/src/objects/Skeleton.js';\nimport { applyValue } from '../util';\nimport { ThMesh } from './ThMesh';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-skinnedMesh',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThSkinnedMesh) },\n  ],\n})\nexport class ThSkinnedMesh<\n  TGeometry extends BufferGeometry = BufferGeometry,\n  TMaterial extends Material | Material[] = Material | Material[],\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends SkinnedMesh<TGeometry, TMaterial, TEventMap> = SkinnedMesh<\n    TGeometry,\n    TMaterial,\n    TEventMap\n  >,\n  TARGS = [\n    geometry?: TGeometry,\n    material?: TMaterial,\n    useVertexTexture?: boolean,\n  ],\n> extends ThMesh<TGeometry, TMaterial, TEventMap, T, TARGS> {\n  public getType(): Type<SkinnedMesh<TGeometry, TMaterial, TEventMap>> {\n    return SkinnedMesh;\n  }\n\n  public get isSkinnedMesh(): true | undefined {\n    return this._objRef?.isSkinnedMesh;\n  }\n  public get type(): (string | 'SkinnedMesh') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set bindMode(value: BindMode) {\n    if (this._objRef) {\n      this._objRef.bindMode = value;\n    }\n  }\n\n  public get bindMode(): BindMode | undefined {\n    return this._objRef?.bindMode;\n  }\n  @Input()\n  public set bindMatrix(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.bindMatrix = applyValue<Matrix4>(\n        this._objRef.bindMatrix,\n        value,\n      );\n    }\n  }\n  public get bindMatrix(): Matrix4 | undefined {\n    return this._objRef?.bindMatrix;\n  }\n  @Input()\n  public set bindMatrixInverse(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.bindMatrixInverse = applyValue<Matrix4>(\n        this._objRef.bindMatrixInverse,\n        value,\n      );\n    }\n  }\n  public get bindMatrixInverse(): Matrix4 | undefined {\n    return this._objRef?.bindMatrixInverse;\n  }\n  @Input()\n  public set boundingBox(value: Box3 | [min: Vector3, max: Vector3]) {\n    if (this._objRef) {\n      this._objRef.boundingBox = applyValue<Box3>(\n        this._objRef.boundingBox,\n        value,\n      );\n    }\n  }\n  public get boundingBox(): Box3 | undefined {\n    return this._objRef?.boundingBox;\n  }\n  @Input()\n  public set boundingSphere(value: Sphere | [center: Vector3, radius: number]) {\n    if (this._objRef) {\n      this._objRef.boundingSphere = applyValue<Sphere>(\n        this._objRef.boundingSphere,\n        value,\n      );\n    }\n  }\n  public get boundingSphere(): Sphere | undefined {\n    return this._objRef?.boundingSphere;\n  }\n  @Input()\n  public set skeleton(value: Skeleton) {\n    if (this._objRef) {\n      this._objRef.skeleton = value;\n    }\n  }\n\n  public get skeleton(): Skeleton | undefined {\n    return this._objRef?.skeleton;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ShaderMaterial, Texture, WebGLRenderTarget } from 'three';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { SMAAPass } from 'three/examples/jsm/postprocessing/SMAAPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-sMAAPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThSMAAPass) },\n  ],\n})\nexport class ThSMAAPass<\n  T extends SMAAPass = SMAAPass,\n  TARGS = [],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<SMAAPass> {\n    return SMAAPass;\n  }\n\n  @Input()\n  public set edgesRT(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.edgesRT = value;\n    }\n  }\n\n  public get edgesRT(): WebGLRenderTarget | undefined {\n    return this._objRef?.edgesRT;\n  }\n  @Input()\n  public set weightsRT(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.weightsRT = value;\n    }\n  }\n\n  public get weightsRT(): WebGLRenderTarget | undefined {\n    return this._objRef?.weightsRT;\n  }\n  @Input()\n  public set areaTexture(value: Texture) {\n    if (this._objRef) {\n      this._objRef.areaTexture = value;\n    }\n  }\n\n  public get areaTexture(): Texture | undefined {\n    return this._objRef?.areaTexture;\n  }\n  @Input()\n  public set searchTexture(value: Texture) {\n    if (this._objRef) {\n      this._objRef.searchTexture = value;\n    }\n  }\n\n  public get searchTexture(): Texture | undefined {\n    return this._objRef?.searchTexture;\n  }\n  @Input()\n  public set uniformsEdges(value: object) {\n    if (this._objRef) {\n      this._objRef.uniformsEdges = value;\n    }\n  }\n\n  public get uniformsEdges(): object | undefined {\n    return this._objRef?.uniformsEdges;\n  }\n  @Input()\n  public set materialEdges(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.materialEdges = value;\n    }\n  }\n\n  public get materialEdges(): ShaderMaterial | undefined {\n    return this._objRef?.materialEdges;\n  }\n  @Input()\n  public set uniformsWeights(value: object) {\n    if (this._objRef) {\n      this._objRef.uniformsWeights = value;\n    }\n  }\n\n  public get uniformsWeights(): object | undefined {\n    return this._objRef?.uniformsWeights;\n  }\n  @Input()\n  public set materialWeights(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.materialWeights = value;\n    }\n  }\n\n  public get materialWeights(): ShaderMaterial | undefined {\n    return this._objRef?.materialWeights;\n  }\n  @Input()\n  public set uniformsBlend(value: object) {\n    if (this._objRef) {\n      this._objRef.uniformsBlend = value;\n    }\n  }\n\n  public get uniformsBlend(): object | undefined {\n    return this._objRef?.uniformsBlend;\n  }\n  @Input()\n  public set materialBlend(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.materialBlend = value;\n    }\n  }\n\n  public get materialBlend(): ShaderMaterial | undefined {\n    return this._objRef?.materialBlend;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  NormalBufferAttributes,\n  SphereGeometry,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-sphereGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThSphereGeometry),\n    },\n  ],\n})\nexport class ThSphereGeometry<\n  T extends SphereGeometry = SphereGeometry,\n  TARGS = [\n    radius?: number,\n    widthSegments?: number,\n    heightSegments?: number,\n    phiStart?: number,\n    phiLength?: number,\n    thetaStart?: number,\n    thetaLength?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<SphereGeometry> {\n    return SphereGeometry;\n  }\n\n  public get type(): (string | 'SphereGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly radius: number;\n        readonly widthSegments: number;\n        readonly heightSegments: number;\n        readonly phiStart: number;\n        readonly phiLength: number;\n        readonly thetaStart: number;\n        readonly thetaLength: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { SpotLight, Vector3 } from 'three';\nimport { Object3D } from 'three/src/core/Object3D.js';\nimport { SpotLightShadow } from 'three/src/lights/SpotLightShadow.js';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThLight } from './ThLight';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-spotLight',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThSpotLight) },\n  ],\n})\nexport class ThSpotLight<\n  T extends SpotLight = SpotLight,\n  TARGS = [\n    color?: ColorRepresentation,\n    intensity?: number,\n    distance?: number,\n    angle?: number,\n    penumbra?: number,\n    decay?: number,\n  ],\n> extends ThLight<SpotLightShadow, T, TARGS> {\n  public getType(): Type<SpotLight> {\n    return SpotLight;\n  }\n\n  public get isSpotLight(): true | undefined {\n    return this._objRef?.isSpotLight;\n  }\n  public get type(): (string | 'SpotLight') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set position(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      applyValue<Vector3>(this._objRef.position, value);\n    }\n  }\n  public get position(): Vector3 | undefined {\n    return this._objRef?.position;\n  }\n  @Input()\n  public set target(value: Object3D) {\n    if (this._objRef) {\n      this._objRef.target = value;\n    }\n  }\n\n  public get target(): Object3D | undefined {\n    return this._objRef?.target;\n  }\n  @Input()\n  public set castShadow(value: boolean) {\n    if (this._objRef) {\n      this._objRef.castShadow = value;\n    }\n  }\n\n  public get castShadow(): boolean | undefined {\n    return this._objRef?.castShadow;\n  }\n  @Input()\n  public set intensity(value: number) {\n    if (this._objRef) {\n      this._objRef.intensity = value;\n    }\n  }\n\n  public get intensity(): number | undefined {\n    return this._objRef?.intensity;\n  }\n  @Input()\n  public set distance(value: number) {\n    if (this._objRef) {\n      this._objRef.distance = value;\n    }\n  }\n\n  public get distance(): number | undefined {\n    return this._objRef?.distance;\n  }\n  @Input()\n  public set angle(value: number) {\n    if (this._objRef) {\n      this._objRef.angle = value;\n    }\n  }\n\n  public get angle(): number | undefined {\n    return this._objRef?.angle;\n  }\n  @Input()\n  public set decay(value: number) {\n    if (this._objRef) {\n      this._objRef.decay = value;\n    }\n  }\n\n  public get decay(): number | undefined {\n    return this._objRef?.decay;\n  }\n  @Input()\n  public set shadow(value: SpotLightShadow) {\n    if (this._objRef) {\n      this._objRef.shadow = value;\n    }\n  }\n\n  public get shadow(): SpotLightShadow | undefined {\n    return this._objRef?.shadow;\n  }\n  @Input()\n  public set power(value: number) {\n    if (this._objRef) {\n      this._objRef.power = value;\n    }\n  }\n\n  public get power(): number | undefined {\n    return this._objRef?.power;\n  }\n  @Input()\n  public set penumbra(value: number) {\n    if (this._objRef) {\n      this._objRef.penumbra = value;\n    }\n  }\n\n  public get penumbra(): number | undefined {\n    return this._objRef?.penumbra;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Matrix4, Object3DEventMap, SpotLightHelper } from 'three';\nimport { Light } from 'three/src/lights/Light.js';\nimport { ColorRepresentation } from 'three/src/math/Color.js';\nimport { LineSegments } from 'three/src/objects/LineSegments.js';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-spotLightHelper',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThSpotLightHelper) },\n  ],\n})\nexport class ThSpotLightHelper<\n  T extends SpotLightHelper = SpotLightHelper,\n  TARGS = [light: Light, color?: ColorRepresentation],\n> extends ThObject3D<Object3DEventMap, T, TARGS> {\n  public getType(): Type<SpotLightHelper> {\n    return SpotLightHelper;\n  }\n\n  public get type(): (string | 'SpotLightHelper') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set cone(value: LineSegments) {\n    if (this._objRef) {\n      this._objRef.cone = value;\n    }\n  }\n\n  public get cone(): LineSegments | undefined {\n    return this._objRef?.cone;\n  }\n  @Input()\n  public set light(value: Light) {\n    if (this._objRef) {\n      this._objRef.light = value;\n    }\n  }\n\n  public get light(): Light | undefined {\n    return this._objRef?.light;\n  }\n  @Input()\n  public set matrix(\n    value:\n      | Matrix4\n      | [\n          n11: number,\n          n12: number,\n          n13: number,\n          n14: number,\n          n21: number,\n          n22: number,\n          n23: number,\n          n24: number,\n          n31: number,\n          n32: number,\n          n33: number,\n          n34: number,\n          n41: number,\n          n42: number,\n          n43: number,\n          n44: number,\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.matrix = applyValue<Matrix4>(this._objRef.matrix, value);\n    }\n  }\n  public get matrix(): Matrix4 | undefined {\n    return this._objRef?.matrix;\n  }\n  @Input()\n  public set color(value: ColorRepresentation | undefined) {\n    if (this._objRef) {\n      this._objRef.color = value;\n    }\n  }\n\n  public get color(): (ColorRepresentation | undefined) | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set matrixAutoUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.matrixAutoUpdate = value;\n    }\n  }\n\n  public get matrixAutoUpdate(): boolean | undefined {\n    return this._objRef?.matrixAutoUpdate;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Sprite, Vector2 } from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { Object3DEventMap } from 'three/src/core/Object3D.js';\nimport { SpriteMaterial } from 'three/src/materials/Materials.js';\nimport { applyValue } from '../util';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-sprite',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{ provide: ThObject3D, useExisting: forwardRef(() => ThSprite) }],\n})\nexport class ThSprite<\n  TEventMap extends Object3DEventMap = Object3DEventMap,\n  T extends Sprite<TEventMap> = Sprite<TEventMap>,\n  TARGS = /* material? */ SpriteMaterial,\n> extends ThObject3D<TEventMap, T, TARGS> {\n  public getType(): Type<Sprite<TEventMap>> {\n    return Sprite;\n  }\n\n  public get isSprite(): true | undefined {\n    return this._objRef?.isSprite;\n  }\n  public get type(): (string | 'Sprite') | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set castShadow(value: false) {\n    if (this._objRef) {\n      this._objRef.castShadow = value;\n    }\n  }\n\n  public get castShadow(): false | undefined {\n    return this._objRef?.castShadow;\n  }\n  @Input()\n  public set geometry(value: BufferGeometry) {\n    if (this._objRef) {\n      this._objRef.geometry = value;\n    }\n  }\n\n  public get geometry(): BufferGeometry | undefined {\n    return this._objRef?.geometry;\n  }\n  @Input()\n  public set material(value: SpriteMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): SpriteMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set center(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.center = applyValue<Vector2>(this._objRef.center, value);\n    }\n  }\n  public get center(): Vector2 | undefined {\n    return this._objRef?.center;\n  }\n  @Input()\n  public set count(value: number) {\n    if (this._objRef) {\n      this._objRef.count = value;\n    }\n  }\n\n  public get count(): number | undefined {\n    return this._objRef?.count;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  SpriteMaterial,\n  SpriteMaterialParameters,\n} from 'three';\nimport { Texture } from 'three/src/textures/Texture.js';\nimport { applyValue } from '../util';\nimport { ThMaterial } from './ThMaterial';\n\n@Component({\n  selector: 'th-spriteMaterial',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThMaterial, useExisting: forwardRef(() => ThSpriteMaterial) },\n  ],\n})\nexport class ThSpriteMaterial<\n  T extends SpriteMaterial = SpriteMaterial,\n  TARGS = /* parameters? */ SpriteMaterialParameters,\n> extends ThMaterial<T, TARGS> {\n  public getType(): Type<SpriteMaterial> {\n    return SpriteMaterial;\n  }\n\n  public get isSpriteMaterial(): boolean | undefined {\n    return this._objRef?.isSpriteMaterial;\n  }\n  @Input()\n  public set color(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.color = applyValue<Color>(this._objRef.color, value);\n    }\n  }\n  public get color(): Color | undefined {\n    return this._objRef?.color;\n  }\n  @Input()\n  public set map(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | null) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set alphaMap(value: Texture | null) {\n    if (this._objRef) {\n      this._objRef.alphaMap = value;\n    }\n  }\n\n  public get alphaMap(): (Texture | null) | undefined {\n    return this._objRef?.alphaMap;\n  }\n  @Input()\n  public set rotation(value: number) {\n    if (this._objRef) {\n      this._objRef.rotation = value;\n    }\n  }\n\n  public get rotation(): number | undefined {\n    return this._objRef?.rotation;\n  }\n  @Input()\n  public set sizeAttenuation(value: boolean) {\n    if (this._objRef) {\n      this._objRef.sizeAttenuation = value;\n    }\n  }\n\n  public get sizeAttenuation(): boolean | undefined {\n    return this._objRef?.sizeAttenuation;\n  }\n  @Input()\n  public set fog(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fog = value;\n    }\n  }\n\n  public get fog(): boolean | undefined {\n    return this._objRef?.fog;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Camera,\n  ColorRepresentation,\n  Scene,\n  ShaderMaterial,\n  WebGLRenderTarget,\n} from 'three';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { SSAARenderPass } from 'three/examples/jsm/postprocessing/SSAARenderPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-sSAARenderPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThSSAARenderPass) },\n  ],\n})\nexport class ThSSAARenderPass<\n  T extends SSAARenderPass = SSAARenderPass,\n  TARGS = [\n    scene: Scene,\n    camera: Camera,\n    clearColor?: ColorRepresentation,\n    clearAlpha?: number,\n  ],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<SSAARenderPass> {\n    return SSAARenderPass;\n  }\n\n  @Input()\n  public set scene(value: Scene) {\n    if (this._objRef) {\n      this._objRef.scene = value;\n    }\n  }\n\n  public get scene(): Scene | undefined {\n    return this._objRef?.scene;\n  }\n  @Input()\n  public set camera(value: Camera) {\n    if (this._objRef) {\n      this._objRef.camera = value;\n    }\n  }\n\n  public get camera(): Camera | undefined {\n    return this._objRef?.camera;\n  }\n  @Input()\n  public set sampleLevel(value: number) {\n    if (this._objRef) {\n      this._objRef.sampleLevel = value;\n    }\n  }\n\n  public get sampleLevel(): number | undefined {\n    return this._objRef?.sampleLevel;\n  }\n  @Input()\n  public set unbiased(value: boolean) {\n    if (this._objRef) {\n      this._objRef.unbiased = value;\n    }\n  }\n\n  public get unbiased(): boolean | undefined {\n    return this._objRef?.unbiased;\n  }\n  @Input()\n  public set stencilBuffer(value: boolean) {\n    if (this._objRef) {\n      this._objRef.stencilBuffer = value;\n    }\n  }\n\n  public get stencilBuffer(): boolean | undefined {\n    return this._objRef?.stencilBuffer;\n  }\n  @Input()\n  public set clearColor(value: ColorRepresentation) {\n    if (this._objRef) {\n      this._objRef.clearColor = value;\n    }\n  }\n\n  public get clearColor(): ColorRepresentation | undefined {\n    return this._objRef?.clearColor;\n  }\n  @Input()\n  public set clearAlpha(value: number) {\n    if (this._objRef) {\n      this._objRef.clearAlpha = value;\n    }\n  }\n\n  public get clearAlpha(): number | undefined {\n    return this._objRef?.clearAlpha;\n  }\n  @Input()\n  public set copyUniforms(value: object) {\n    if (this._objRef) {\n      this._objRef.copyUniforms = value;\n    }\n  }\n\n  public get copyUniforms(): object | undefined {\n    return this._objRef?.copyUniforms;\n  }\n  @Input()\n  public set copyMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.copyMaterial = value;\n    }\n  }\n\n  public get copyMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.copyMaterial;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n  @Input()\n  public set sampleRenderTarget(value: WebGLRenderTarget | undefined) {\n    if (this._objRef) {\n      this._objRef.sampleRenderTarget = value;\n    }\n  }\n\n  public get sampleRenderTarget(): (WebGLRenderTarget | undefined) | undefined {\n    return this._objRef?.sampleRenderTarget;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  forwardRef,\n  Input,\n  Type,\n} from '@angular/core';\nimport {\n  Camera,\n  Color,\n  ColorRepresentation,\n  DataTexture,\n  MeshNormalMaterial,\n  Scene,\n  ShaderMaterial,\n  WebGLRenderTarget,\n} from 'three';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport {\n  SSAOPass,\n  SSAOPassOUTPUT,\n} from 'three/examples/jsm/postprocessing/SSAOPass.js';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { applyValue } from '../util';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-sSAOPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThSSAOPass) },\n  ],\n})\nexport class ThSSAOPass<\n  T extends SSAOPass = SSAOPass,\n  TARGS = [\n    scene: Scene,\n    camera: Camera,\n    width?: number,\n    height?: number,\n    kernelSize?: number,\n  ],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<SSAOPass> {\n    return SSAOPass;\n  }\n\n  @Input()\n  public set scene(value: Scene) {\n    if (this._objRef) {\n      this._objRef.scene = value;\n    }\n  }\n\n  public get scene(): Scene | undefined {\n    return this._objRef?.scene;\n  }\n  @Input()\n  public set camera(value: Camera) {\n    if (this._objRef) {\n      this._objRef.camera = value;\n    }\n  }\n\n  public get camera(): Camera | undefined {\n    return this._objRef?.camera;\n  }\n  @Input()\n  public set width(value: number) {\n    if (this._objRef) {\n      this._objRef.width = value;\n    }\n  }\n\n  public get width(): number | undefined {\n    return this._objRef?.width;\n  }\n  @Input()\n  public set height(value: number) {\n    if (this._objRef) {\n      this._objRef.height = value;\n    }\n  }\n\n  public get height(): number | undefined {\n    return this._objRef?.height;\n  }\n  @Input()\n  public set clear(value: boolean) {\n    if (this._objRef) {\n      this._objRef.clear = value;\n    }\n  }\n\n  public get clear(): boolean | undefined {\n    return this._objRef?.clear;\n  }\n  @Input()\n  public set kernelRadius(value: number) {\n    if (this._objRef) {\n      this._objRef.kernelRadius = value;\n    }\n  }\n\n  public get kernelRadius(): number | undefined {\n    return this._objRef?.kernelRadius;\n  }\n  @Input()\n  public set kernel(value: Vector3[]) {\n    if (this._objRef) {\n      this._objRef.kernel = value;\n    }\n  }\n\n  public get kernel(): Vector3[] | undefined {\n    return this._objRef?.kernel;\n  }\n  @Input()\n  public set noiseTexture(value: DataTexture) {\n    if (this._objRef) {\n      this._objRef.noiseTexture = value;\n    }\n  }\n\n  public get noiseTexture(): DataTexture | undefined {\n    return this._objRef?.noiseTexture;\n  }\n  @Input()\n  public set output(value: SSAOPassOUTPUT) {\n    if (this._objRef) {\n      this._objRef.output = value;\n    }\n  }\n\n  public get output(): SSAOPassOUTPUT | undefined {\n    return this._objRef?.output;\n  }\n  @Input()\n  public set minDistance(value: number) {\n    if (this._objRef) {\n      this._objRef.minDistance = value;\n    }\n  }\n\n  public get minDistance(): number | undefined {\n    return this._objRef?.minDistance;\n  }\n  @Input()\n  public set maxDistance(value: number) {\n    if (this._objRef) {\n      this._objRef.maxDistance = value;\n    }\n  }\n\n  public get maxDistance(): number | undefined {\n    return this._objRef?.maxDistance;\n  }\n  @Input()\n  public set normalRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.normalRenderTarget = value;\n    }\n  }\n\n  public get normalRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.normalRenderTarget;\n  }\n  @Input()\n  public set ssaoRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.ssaoRenderTarget = value;\n    }\n  }\n\n  public get ssaoRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.ssaoRenderTarget;\n  }\n  @Input()\n  public set blurRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.blurRenderTarget = value;\n    }\n  }\n\n  public get blurRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.blurRenderTarget;\n  }\n  @Input()\n  public set ssaoMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.ssaoMaterial = value;\n    }\n  }\n\n  public get ssaoMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.ssaoMaterial;\n  }\n  @Input()\n  public set normalMaterial(value: MeshNormalMaterial) {\n    if (this._objRef) {\n      this._objRef.normalMaterial = value;\n    }\n  }\n\n  public get normalMaterial(): MeshNormalMaterial | undefined {\n    return this._objRef?.normalMaterial;\n  }\n  @Input()\n  public set blurMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.blurMaterial = value;\n    }\n  }\n\n  public get blurMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.blurMaterial;\n  }\n  @Input()\n  public set depthRenderMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.depthRenderMaterial = value;\n    }\n  }\n\n  public get depthRenderMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.depthRenderMaterial;\n  }\n  @Input()\n  public set copyMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.copyMaterial = value;\n    }\n  }\n\n  public get copyMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.copyMaterial;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n  @Input()\n  public set originalClearColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.originalClearColor = applyValue<Color>(\n        this._objRef.originalClearColor,\n        value,\n      );\n    }\n  }\n  public get originalClearColor(): Color | undefined {\n    return this._objRef?.originalClearColor;\n  }\n\n  public static readonly OUTPUT = SSAOPass.OUTPUT;\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  forwardRef,\n  Input,\n  Type,\n} from '@angular/core';\nimport {\n  Camera,\n  Color,\n  ColorRepresentation,\n  Mesh,\n  MeshBasicMaterial,\n  MeshNormalMaterial,\n  Scene,\n  ShaderMaterial,\n  WebGLRenderer,\n  WebGLRenderTarget,\n} from 'three';\nimport { ReflectorForSSRPass } from 'three/examples/jsm/objects/ReflectorForSSRPass.js';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport {\n  SSRPass,\n  SSRPassParams,\n} from 'three/examples/jsm/postprocessing/SSRPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { applyValue } from '../util';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-sSRPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThSSRPass) },\n  ],\n})\nexport class ThSSRPass<\n  T extends SSRPass = SSRPass,\n  TARGS = /* params */ SSRPassParams,\n> extends ThPass<T, TARGS> {\n  public getType(): Type<SSRPass> {\n    return SSRPass;\n  }\n\n  @Input()\n  public set width(value: number) {\n    if (this._objRef) {\n      this._objRef.width = value;\n    }\n  }\n\n  public get width(): number | undefined {\n    return this._objRef?.width;\n  }\n  @Input()\n  public set height(value: number) {\n    if (this._objRef) {\n      this._objRef.height = value;\n    }\n  }\n\n  public get height(): number | undefined {\n    return this._objRef?.height;\n  }\n  @Input()\n  public set clear(value: boolean) {\n    if (this._objRef) {\n      this._objRef.clear = value;\n    }\n  }\n\n  public get clear(): boolean | undefined {\n    return this._objRef?.clear;\n  }\n  @Input()\n  public set renderer(value: WebGLRenderer) {\n    if (this._objRef) {\n      this._objRef.renderer = value;\n    }\n  }\n\n  public get renderer(): WebGLRenderer | undefined {\n    return this._objRef?.renderer;\n  }\n  @Input()\n  public set scene(value: Scene) {\n    if (this._objRef) {\n      this._objRef.scene = value;\n    }\n  }\n\n  public get scene(): Scene | undefined {\n    return this._objRef?.scene;\n  }\n  @Input()\n  public set camera(value: Camera) {\n    if (this._objRef) {\n      this._objRef.camera = value;\n    }\n  }\n\n  public get camera(): Camera | undefined {\n    return this._objRef?.camera;\n  }\n  @Input()\n  public set groundReflector(value: ReflectorForSSRPass | null) {\n    if (this._objRef) {\n      this._objRef.groundReflector = value;\n    }\n  }\n\n  public get groundReflector(): (ReflectorForSSRPass | null) | undefined {\n    return this._objRef?.groundReflector;\n  }\n  @Input()\n  public set opacity(value: number) {\n    if (this._objRef) {\n      this._objRef.opacity = value;\n    }\n  }\n\n  public get opacity(): number | undefined {\n    return this._objRef?.opacity;\n  }\n  @Input()\n  public set output(value: number) {\n    if (this._objRef) {\n      this._objRef.output = value;\n    }\n  }\n\n  public get output(): number | undefined {\n    return this._objRef?.output;\n  }\n  @Input()\n  public set maxDistance(value: number) {\n    if (this._objRef) {\n      this._objRef.maxDistance = value;\n    }\n  }\n\n  public get maxDistance(): number | undefined {\n    return this._objRef?.maxDistance;\n  }\n  @Input()\n  public set thickness(value: number) {\n    if (this._objRef) {\n      this._objRef.thickness = value;\n    }\n  }\n\n  public get thickness(): number | undefined {\n    return this._objRef?.thickness;\n  }\n  @Input()\n  public set tempColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.tempColor = applyValue<Color>(this._objRef.tempColor, value);\n    }\n  }\n  public get tempColor(): Color | undefined {\n    return this._objRef?.tempColor;\n  }\n  public get selects(): (Mesh[] | null) | undefined {\n    return this._objRef?.selects;\n  }\n  @Input()\n  public set selects(value: Mesh[] | null) {\n    if (this._objRef) {\n      this._objRef.selects = value;\n    }\n  }\n\n  @Input()\n  public set selective(value: boolean) {\n    if (this._objRef) {\n      this._objRef.selective = value;\n    }\n  }\n\n  public get selective(): boolean | undefined {\n    return this._objRef?.selective;\n  }\n  public get bouncing(): boolean | undefined {\n    return this._objRef?.bouncing;\n  }\n  @Input()\n  public set bouncing(value: boolean) {\n    if (this._objRef) {\n      this._objRef.bouncing = value;\n    }\n  }\n\n  @Input()\n  public set blur(value: boolean) {\n    if (this._objRef) {\n      this._objRef.blur = value;\n    }\n  }\n\n  public get blur(): boolean | undefined {\n    return this._objRef?.blur;\n  }\n  public get distanceAttenuation(): boolean | undefined {\n    return this._objRef?.distanceAttenuation;\n  }\n  @Input()\n  public set distanceAttenuation(value: boolean) {\n    if (this._objRef) {\n      this._objRef.distanceAttenuation = value;\n    }\n  }\n\n  public get fresnel(): boolean | undefined {\n    return this._objRef?.fresnel;\n  }\n  @Input()\n  public set fresnel(value: boolean) {\n    if (this._objRef) {\n      this._objRef.fresnel = value;\n    }\n  }\n\n  public get infiniteThick(): boolean | undefined {\n    return this._objRef?.infiniteThick;\n  }\n  @Input()\n  public set infiniteThick(value: boolean) {\n    if (this._objRef) {\n      this._objRef.infiniteThick = value;\n    }\n  }\n\n  @Input()\n  public set beautyRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.beautyRenderTarget = value;\n    }\n  }\n\n  public get beautyRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.beautyRenderTarget;\n  }\n  @Input()\n  public set prevRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.prevRenderTarget = value;\n    }\n  }\n\n  public get prevRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.prevRenderTarget;\n  }\n  @Input()\n  public set normalRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.normalRenderTarget = value;\n    }\n  }\n\n  public get normalRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.normalRenderTarget;\n  }\n  @Input()\n  public set metalnessRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.metalnessRenderTarget = value;\n    }\n  }\n\n  public get metalnessRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.metalnessRenderTarget;\n  }\n  @Input()\n  public set ssrRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.ssrRenderTarget = value;\n    }\n  }\n\n  public get ssrRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.ssrRenderTarget;\n  }\n  @Input()\n  public set blurRenderTarget(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.blurRenderTarget = value;\n    }\n  }\n\n  public get blurRenderTarget(): WebGLRenderTarget | undefined {\n    return this._objRef?.blurRenderTarget;\n  }\n  @Input()\n  public set blurRenderTarget2(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.blurRenderTarget2 = value;\n    }\n  }\n\n  public get blurRenderTarget2(): WebGLRenderTarget | undefined {\n    return this._objRef?.blurRenderTarget2;\n  }\n  @Input()\n  public set ssrMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.ssrMaterial = value;\n    }\n  }\n\n  public get ssrMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.ssrMaterial;\n  }\n  @Input()\n  public set normalMaterial(value: MeshNormalMaterial) {\n    if (this._objRef) {\n      this._objRef.normalMaterial = value;\n    }\n  }\n\n  public get normalMaterial(): MeshNormalMaterial | undefined {\n    return this._objRef?.normalMaterial;\n  }\n  @Input()\n  public set metalnessOnMaterial(value: MeshBasicMaterial) {\n    if (this._objRef) {\n      this._objRef.metalnessOnMaterial = value;\n    }\n  }\n\n  public get metalnessOnMaterial(): MeshBasicMaterial | undefined {\n    return this._objRef?.metalnessOnMaterial;\n  }\n  @Input()\n  public set metalnessOffMaterial(value: MeshBasicMaterial) {\n    if (this._objRef) {\n      this._objRef.metalnessOffMaterial = value;\n    }\n  }\n\n  public get metalnessOffMaterial(): MeshBasicMaterial | undefined {\n    return this._objRef?.metalnessOffMaterial;\n  }\n  @Input()\n  public set blurMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.blurMaterial = value;\n    }\n  }\n\n  public get blurMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.blurMaterial;\n  }\n  @Input()\n  public set blurMaterial2(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.blurMaterial2 = value;\n    }\n  }\n\n  public get blurMaterial2(): ShaderMaterial | undefined {\n    return this._objRef?.blurMaterial2;\n  }\n  @Input()\n  public set depthRenderMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.depthRenderMaterial = value;\n    }\n  }\n\n  public get depthRenderMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.depthRenderMaterial;\n  }\n  @Input()\n  public set copyMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.copyMaterial = value;\n    }\n  }\n\n  public get copyMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.copyMaterial;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n  @Input()\n  public set originalClearColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.originalClearColor = applyValue<Color>(\n        this._objRef.originalClearColor,\n        value,\n      );\n    }\n  }\n  public get originalClearColor(): Color | undefined {\n    return this._objRef?.originalClearColor;\n  }\n\n  public static readonly OUTPUT = SSRPass.OUTPUT;\n\n  public get resolutionScale(): number | undefined {\n    return this._objRef?.resolutionScale;\n  }\n  @Input()\n  public set resolutionScale(value: number) {\n    if (this._objRef) {\n      this._objRef.resolutionScale = value;\n    }\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { StereoCamera } from 'three';\nimport { PerspectiveCamera } from 'three/src/cameras/PerspectiveCamera.js';\nimport { ThCamera } from './ThCamera';\nimport { ThObject3D } from './ThObject3D';\n\n@Component({\n  selector: 'th-stereoCamera',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThObject3D, useExisting: forwardRef(() => ThStereoCamera) },\n    { provide: ThCamera, useExisting: forwardRef(() => ThStereoCamera) },\n  ],\n})\nexport class ThStereoCamera<\n  T extends StereoCamera = StereoCamera,\n  TARGS = [],\n> extends ThCamera<T, TARGS> {\n  public getType(): Type<StereoCamera> {\n    return StereoCamera;\n  }\n\n  @Input()\n  public set type(value: 'StereoCamera') {\n    if (this._objRef) {\n      this._objRef.type = value;\n    }\n  }\n\n  public get type(): 'StereoCamera' | undefined {\n    return this._objRef?.type;\n  }\n  @Input()\n  public set aspect(value: number) {\n    if (this._objRef) {\n      this._objRef.aspect = value;\n    }\n  }\n\n  public get aspect(): number | undefined {\n    return this._objRef?.aspect;\n  }\n  @Input()\n  public set eyeSep(value: number) {\n    if (this._objRef) {\n      this._objRef.eyeSep = value;\n    }\n  }\n\n  public get eyeSep(): number | undefined {\n    return this._objRef?.eyeSep;\n  }\n  @Input()\n  public set cameraL(value: PerspectiveCamera) {\n    if (this._objRef) {\n      this._objRef.cameraL = value;\n    }\n  }\n\n  public get cameraL(): PerspectiveCamera | undefined {\n    return this._objRef?.cameraL;\n  }\n  @Input()\n  public set cameraR(value: PerspectiveCamera) {\n    if (this._objRef) {\n      this._objRef.cameraR = value;\n    }\n  }\n\n  public get cameraR(): PerspectiveCamera | undefined {\n    return this._objRef?.cameraR;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Camera, ColorRepresentation, Scene } from 'three';\nimport { TAARenderPass } from 'three/examples/jsm/postprocessing/TAARenderPass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThSSAARenderPass } from './ThSSAARenderPass';\n\n@Component({\n  selector: 'th-tAARenderPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThTAARenderPass) },\n  ],\n})\nexport class ThTAARenderPass<\n  T extends TAARenderPass = TAARenderPass,\n  TARGS = [\n    scene: Scene,\n    camera: Camera,\n    clearColor?: ColorRepresentation,\n    clearAlpha?: number,\n  ],\n> extends ThSSAARenderPass<T, TARGS> {\n  public getType(): Type<TAARenderPass> {\n    return TAARenderPass;\n  }\n\n  @Input()\n  public set accumulate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.accumulate = value;\n    }\n  }\n\n  public get accumulate(): boolean | undefined {\n    return this._objRef?.accumulate;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { BufferGeometryEventMap, NormalBufferAttributes } from 'three';\nimport { TeapotGeometry } from 'three/examples/jsm/geometries/TeapotGeometry.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-teapotGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThTeapotGeometry),\n    },\n  ],\n})\nexport class ThTeapotGeometry<\n  T extends TeapotGeometry = TeapotGeometry,\n  TARGS = [\n    size?: number,\n    segments?: number,\n    bottom?: boolean,\n    lid?: boolean,\n    body?: boolean,\n    fitLid?: boolean,\n    blinn?: boolean,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<TeapotGeometry> {\n    return TeapotGeometry;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { TetrahedronGeometry } from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\nimport { ThPolyhedronGeometry } from './ThPolyhedronGeometry';\n\n@Component({\n  selector: 'th-tetrahedronGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThTetrahedronGeometry),\n    },\n  ],\n})\nexport class ThTetrahedronGeometry<\n  T extends TetrahedronGeometry = TetrahedronGeometry,\n  TARGS = [radius?: number, detail?: number],\n> extends ThPolyhedronGeometry<T, TARGS> {\n  public getType(): Type<TetrahedronGeometry> {\n    return TetrahedronGeometry;\n  }\n\n  public get type(): (string | 'TetrahedronGeometry') | undefined {\n    return this._objRef?.type;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { Shape } from 'three';\nimport {\n  TextGeometry,\n  TextGeometryParameters,\n} from 'three/examples/jsm/geometries/TextGeometry.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\nimport { ThExtrudeGeometry } from './ThExtrudeGeometry';\n\n@Component({\n  selector: 'th-textGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThTextGeometry),\n    },\n  ],\n})\nexport class ThTextGeometry<\n  T extends TextGeometry = TextGeometry,\n  TARGS = [text: string, parameters?: TextGeometryParameters],\n> extends ThExtrudeGeometry<T, TARGS> {\n  public getType(): Type<TextGeometry> {\n    return TextGeometry;\n  }\n\n  public get type(): (string | 'TextGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly shapes: Shape | Shape[];\n        readonly options: TextGeometryParameters;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { ShaderMaterial, Texture } from 'three';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { TexturePass } from 'three/examples/jsm/postprocessing/TexturePass.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-texturePass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThTexturePass) },\n  ],\n})\nexport class ThTexturePass<\n  T extends TexturePass = TexturePass,\n  TARGS = [map?: Texture, opacity?: number],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<TexturePass> {\n    return TexturePass;\n  }\n\n  @Input()\n  public set map(value: Texture | undefined) {\n    if (this._objRef) {\n      this._objRef.map = value;\n    }\n  }\n\n  public get map(): (Texture | undefined) | undefined {\n    return this._objRef?.map;\n  }\n  @Input()\n  public set opacity(value: number) {\n    if (this._objRef) {\n      this._objRef.opacity = value;\n    }\n  }\n\n  public get opacity(): number | undefined {\n    return this._objRef?.opacity;\n  }\n  @Input()\n  public set uniforms(map: { [name: string]: { value: any } }) {\n    if (this._objRef) {\n      Object.assign(this._objRef.uniforms, map);\n    }\n  }\n\n  public get uniforms(): { [name: string]: { value: any } } | undefined {\n    return this._objRef?.uniforms as\n      | { [name: string]: { value: any } }\n      | undefined;\n  }\n  @Input()\n  public set material(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.material = value;\n    }\n  }\n\n  public get material(): ShaderMaterial | undefined {\n    return this._objRef?.material;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  NormalBufferAttributes,\n  TorusGeometry,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-torusGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThTorusGeometry),\n    },\n  ],\n})\nexport class ThTorusGeometry<\n  T extends TorusGeometry = TorusGeometry,\n  TARGS = [\n    radius?: number,\n    tube?: number,\n    radialSegments?: number,\n    tubularSegments?: number,\n    arc?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<TorusGeometry> {\n    return TorusGeometry;\n  }\n\n  public get type(): (string | 'TorusGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly radius: number;\n        readonly tube: number;\n        readonly radialSegments: number;\n        readonly tubularSegments: number;\n        readonly arc: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  NormalBufferAttributes,\n  TorusKnotGeometry,\n} from 'three';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-torusKnotGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThTorusKnotGeometry),\n    },\n  ],\n})\nexport class ThTorusKnotGeometry<\n  T extends TorusKnotGeometry = TorusKnotGeometry,\n  TARGS = [\n    radius?: number,\n    tube?: number,\n    tubularSegments?: number,\n    radialSegments?: number,\n    p?: number,\n    q?: number,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<TorusKnotGeometry> {\n    return TorusKnotGeometry;\n  }\n\n  public get type(): (string | 'TorusKnotGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly radius: number;\n        readonly tube: number;\n        readonly tubularSegments: number;\n        readonly radialSegments: number;\n        readonly p: number;\n        readonly q: number;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { MOUSE, Vector3 } from 'three';\nimport {\n  TrackballControls,\n  TrackballControlsEventMap,\n} from 'three/examples/jsm/controls/TrackballControls.js';\nimport { Camera } from 'three/src/cameras/Camera.js';\nimport { ThControlBase } from '../ThControlBase';\nimport { applyValue } from '../util';\n\n@Component({\n  selector: 'th-trackballControls',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThControlBase,\n      useExisting: forwardRef(() => ThTrackballControls),\n    },\n  ],\n})\nexport class ThTrackballControls<\n  T extends TrackballControls = TrackballControls,\n  TARGS = [camera: Camera, domElement?: HTMLElement | SVGElement | null],\n> extends ThControlBase<TrackballControlsEventMap, T, TARGS> {\n  public getType(): Type<TrackballControls> {\n    return TrackballControls;\n  }\n\n  @Input()\n  public set screen(value: {\n    left: number;\n    top: number;\n    width: number;\n    height: number;\n  }) {\n    if (this._objRef) {\n      this._objRef.screen = value;\n    }\n  }\n\n  public get screen():\n    | { left: number; top: number; width: number; height: number }\n    | undefined {\n    return this._objRef?.screen;\n  }\n  @Input()\n  public set rotateSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.rotateSpeed = value;\n    }\n  }\n\n  public get rotateSpeed(): number | undefined {\n    return this._objRef?.rotateSpeed;\n  }\n  @Input()\n  public set zoomSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.zoomSpeed = value;\n    }\n  }\n\n  public get zoomSpeed(): number | undefined {\n    return this._objRef?.zoomSpeed;\n  }\n  @Input()\n  public set panSpeed(value: number) {\n    if (this._objRef) {\n      this._objRef.panSpeed = value;\n    }\n  }\n\n  public get panSpeed(): number | undefined {\n    return this._objRef?.panSpeed;\n  }\n  @Input()\n  public set noRotate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.noRotate = value;\n    }\n  }\n\n  public get noRotate(): boolean | undefined {\n    return this._objRef?.noRotate;\n  }\n  @Input()\n  public set noZoom(value: boolean) {\n    if (this._objRef) {\n      this._objRef.noZoom = value;\n    }\n  }\n\n  public get noZoom(): boolean | undefined {\n    return this._objRef?.noZoom;\n  }\n  @Input()\n  public set noPan(value: boolean) {\n    if (this._objRef) {\n      this._objRef.noPan = value;\n    }\n  }\n\n  public get noPan(): boolean | undefined {\n    return this._objRef?.noPan;\n  }\n  @Input()\n  public set staticMoving(value: boolean) {\n    if (this._objRef) {\n      this._objRef.staticMoving = value;\n    }\n  }\n\n  public get staticMoving(): boolean | undefined {\n    return this._objRef?.staticMoving;\n  }\n  @Input()\n  public set dynamicDampingFactor(value: number) {\n    if (this._objRef) {\n      this._objRef.dynamicDampingFactor = value;\n    }\n  }\n\n  public get dynamicDampingFactor(): number | undefined {\n    return this._objRef?.dynamicDampingFactor;\n  }\n  @Input()\n  public set minDistance(value: number) {\n    if (this._objRef) {\n      this._objRef.minDistance = value;\n    }\n  }\n\n  public get minDistance(): number | undefined {\n    return this._objRef?.minDistance;\n  }\n  @Input()\n  public set maxDistance(value: number) {\n    if (this._objRef) {\n      this._objRef.maxDistance = value;\n    }\n  }\n\n  public get maxDistance(): number | undefined {\n    return this._objRef?.maxDistance;\n  }\n  @Input()\n  public set minZoom(value: number) {\n    if (this._objRef) {\n      this._objRef.minZoom = value;\n    }\n  }\n\n  public get minZoom(): number | undefined {\n    return this._objRef?.minZoom;\n  }\n  @Input()\n  public set maxZoom(value: number) {\n    if (this._objRef) {\n      this._objRef.maxZoom = value;\n    }\n  }\n\n  public get maxZoom(): number | undefined {\n    return this._objRef?.maxZoom;\n  }\n  @Input()\n  public set keys(value: [string, string, string]) {\n    if (this._objRef) {\n      this._objRef.keys = value;\n    }\n  }\n\n  public get keys(): [string, string, string] | undefined {\n    return this._objRef?.keys;\n  }\n  @Input()\n  public set mouseButtons(value: {\n    LEFT?: MOUSE | null | undefined;\n    MIDDLE?: MOUSE | null | undefined;\n    RIGHT?: MOUSE | null | undefined;\n  }) {\n    if (this._objRef) {\n      this._objRef.mouseButtons = value;\n    }\n  }\n\n  public get mouseButtons():\n    | {\n        LEFT?: MOUSE | null | undefined;\n        MIDDLE?: MOUSE | null | undefined;\n        RIGHT?: MOUSE | null | undefined;\n      }\n    | undefined {\n    return this._objRef?.mouseButtons;\n  }\n  @Input()\n  public set target(value: Vector3 | [x: number, y: number, z: number]) {\n    if (this._objRef) {\n      this._objRef.target = applyValue<Vector3>(this._objRef.target, value);\n    }\n  }\n  public get target(): Vector3 | undefined {\n    return this._objRef?.target;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  NormalBufferAttributes,\n  TubeGeometry,\n} from 'three';\nimport { Curve } from 'three/src/extras/core/Curve.js';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-tubeGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThTubeGeometry),\n    },\n  ],\n})\nexport class ThTubeGeometry<\n  T extends TubeGeometry = TubeGeometry,\n  TARGS = [\n    path?: Curve<Vector3>,\n    tubularSegments?: number,\n    radius?: number,\n    radialSegments?: number,\n    closed?: boolean,\n  ],\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<TubeGeometry> {\n    return TubeGeometry;\n  }\n\n  public get type(): (string | 'TubeGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly path: Curve<Vector3>;\n        readonly tubularSegments: number;\n        readonly radius: number;\n        readonly radialSegments: number;\n        readonly closed: boolean;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n  @Input()\n  public set tangents(value: Vector3[]) {\n    if (this._objRef) {\n      this._objRef.tangents = value;\n    }\n  }\n\n  public get tangents(): Vector3[] | undefined {\n    return this._objRef?.tangents;\n  }\n  @Input()\n  public set normals(value: Vector3[]) {\n    if (this._objRef) {\n      this._objRef.normals = value;\n    }\n  }\n\n  public get normals(): Vector3[] | undefined {\n    return this._objRef?.normals;\n  }\n  @Input()\n  public set binormals(value: Vector3[]) {\n    if (this._objRef) {\n      this._objRef.binormals = value;\n    }\n  }\n\n  public get binormals(): Vector3[] | undefined {\n    return this._objRef?.binormals;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  Color,\n  ColorRepresentation,\n  MeshBasicMaterial,\n  ShaderMaterial,\n  Vector2,\n  WebGLRenderTarget,\n} from 'three';\nimport { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass.js';\nimport { UnrealBloomPass } from 'three/examples/jsm/postprocessing/UnrealBloomPass.js';\nimport { Vector3 } from 'three/src/math/Vector3.js';\nimport { ThPassBase } from '../ThPassBase';\nimport { applyValue } from '../util';\nimport { ThPass } from './ThPass';\n\n@Component({\n  selector: 'th-unrealBloomPass',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThPassBase, useExisting: forwardRef(() => ThUnrealBloomPass) },\n  ],\n})\nexport class ThUnrealBloomPass<\n  T extends UnrealBloomPass = UnrealBloomPass,\n  TARGS = [\n    resolution: Vector2,\n    strength: number,\n    radius: number,\n    threshold: number,\n  ],\n> extends ThPass<T, TARGS> {\n  public getType(): Type<UnrealBloomPass> {\n    return UnrealBloomPass;\n  }\n\n  @Input()\n  public set resolution(value: Vector2 | [x: number, y: number]) {\n    if (this._objRef) {\n      this._objRef.resolution = applyValue<Vector2>(\n        this._objRef.resolution,\n        value,\n      );\n    }\n  }\n  public get resolution(): Vector2 | undefined {\n    return this._objRef?.resolution;\n  }\n  @Input()\n  public set strength(value: number) {\n    if (this._objRef) {\n      this._objRef.strength = value;\n    }\n  }\n\n  public get strength(): number | undefined {\n    return this._objRef?.strength;\n  }\n  @Input()\n  public set radius(value: number) {\n    if (this._objRef) {\n      this._objRef.radius = value;\n    }\n  }\n\n  public get radius(): number | undefined {\n    return this._objRef?.radius;\n  }\n  @Input()\n  public set threshold(value: number) {\n    if (this._objRef) {\n      this._objRef.threshold = value;\n    }\n  }\n\n  public get threshold(): number | undefined {\n    return this._objRef?.threshold;\n  }\n  @Input()\n  public set clearColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.clearColor = applyValue<Color>(\n        this._objRef.clearColor,\n        value,\n      );\n    }\n  }\n  public get clearColor(): Color | undefined {\n    return this._objRef?.clearColor;\n  }\n  @Input()\n  public set renderTargetsHorizontal(value: WebGLRenderTarget[]) {\n    if (this._objRef) {\n      this._objRef.renderTargetsHorizontal = value;\n    }\n  }\n\n  public get renderTargetsHorizontal(): WebGLRenderTarget[] | undefined {\n    return this._objRef?.renderTargetsHorizontal;\n  }\n  @Input()\n  public set renderTargetsVertical(value: WebGLRenderTarget[]) {\n    if (this._objRef) {\n      this._objRef.renderTargetsVertical = value;\n    }\n  }\n\n  public get renderTargetsVertical(): WebGLRenderTarget[] | undefined {\n    return this._objRef?.renderTargetsVertical;\n  }\n  @Input()\n  public set nMips(value: number) {\n    if (this._objRef) {\n      this._objRef.nMips = value;\n    }\n  }\n\n  public get nMips(): number | undefined {\n    return this._objRef?.nMips;\n  }\n  @Input()\n  public set renderTargetBright(value: WebGLRenderTarget) {\n    if (this._objRef) {\n      this._objRef.renderTargetBright = value;\n    }\n  }\n\n  public get renderTargetBright(): WebGLRenderTarget | undefined {\n    return this._objRef?.renderTargetBright;\n  }\n  @Input()\n  public set highPassUniforms(value: object) {\n    if (this._objRef) {\n      this._objRef.highPassUniforms = value;\n    }\n  }\n\n  public get highPassUniforms(): object | undefined {\n    return this._objRef?.highPassUniforms;\n  }\n  @Input()\n  public set materialHighPassFilter(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.materialHighPassFilter = value;\n    }\n  }\n\n  public get materialHighPassFilter(): ShaderMaterial | undefined {\n    return this._objRef?.materialHighPassFilter;\n  }\n  @Input()\n  public set separableBlurMaterials(value: ShaderMaterial[]) {\n    if (this._objRef) {\n      this._objRef.separableBlurMaterials = value;\n    }\n  }\n\n  public get separableBlurMaterials(): ShaderMaterial[] | undefined {\n    return this._objRef?.separableBlurMaterials;\n  }\n  @Input()\n  public set compositeMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.compositeMaterial = value;\n    }\n  }\n\n  public get compositeMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.compositeMaterial;\n  }\n  @Input()\n  public set bloomTintColors(value: Vector3[]) {\n    if (this._objRef) {\n      this._objRef.bloomTintColors = value;\n    }\n  }\n\n  public get bloomTintColors(): Vector3[] | undefined {\n    return this._objRef?.bloomTintColors;\n  }\n  @Input()\n  public set copyUniforms(value: object) {\n    if (this._objRef) {\n      this._objRef.copyUniforms = value;\n    }\n  }\n\n  public get copyUniforms(): object | undefined {\n    return this._objRef?.copyUniforms;\n  }\n  @Input()\n  public set blendMaterial(value: ShaderMaterial) {\n    if (this._objRef) {\n      this._objRef.blendMaterial = value;\n    }\n  }\n\n  public get blendMaterial(): ShaderMaterial | undefined {\n    return this._objRef?.blendMaterial;\n  }\n  @Input()\n  public set oldClearColor(\n    value:\n      | Color\n      | [\n          ...args:\n            | [color: ColorRepresentation]\n            | [r: number, g: number, b: number],\n        ],\n  ) {\n    if (this._objRef) {\n      this._objRef.oldClearColor = applyValue<Color>(\n        this._objRef.oldClearColor,\n        value,\n      );\n    }\n  }\n  public get oldClearColor(): Color | undefined {\n    return this._objRef?.oldClearColor;\n  }\n  @Input()\n  public set oldClearAlpha(value: number) {\n    if (this._objRef) {\n      this._objRef.oldClearAlpha = value;\n    }\n  }\n\n  public get oldClearAlpha(): number | undefined {\n    return this._objRef?.oldClearAlpha;\n  }\n  @Input()\n  public set basic(value: MeshBasicMaterial) {\n    if (this._objRef) {\n      this._objRef.basic = value;\n    }\n  }\n\n  public get basic(): MeshBasicMaterial | undefined {\n    return this._objRef?.basic;\n  }\n  @Input()\n  public set fsQuad(value: FullScreenQuad) {\n    if (this._objRef) {\n      this._objRef.fsQuad = value;\n    }\n  }\n\n  public get fsQuad(): FullScreenQuad | undefined {\n    return this._objRef?.fsQuad;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { VideoTexture } from 'three';\nimport {\n  MagnificationTextureFilter,\n  Mapping,\n  MinificationTextureFilter,\n  PixelFormat,\n  TextureDataType,\n  Wrapping,\n} from 'three/src/constants.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThTexture } from './ThTexture';\n\n@Component({\n  selector: 'th-videoTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: ThTextureBase, useExisting: forwardRef(() => ThVideoTexture) },\n  ],\n})\nexport class ThVideoTexture<\n  TVideo = HTMLVideoElement,\n  T extends VideoTexture<TVideo> = VideoTexture<TVideo>,\n  TARGS = [\n    video: TVideo,\n    mapping?: Mapping,\n    wrapS?: Wrapping,\n    wrapT?: Wrapping,\n    magFilter?: MagnificationTextureFilter,\n    minFilter?: MinificationTextureFilter,\n    format?: PixelFormat,\n    type?: TextureDataType,\n    anisotropy?: number,\n  ],\n> extends ThTexture<TVideo, T, TARGS> {\n  public getType(): Type<VideoTexture<TVideo>> {\n    return VideoTexture;\n  }\n\n  public get isVideoTexture(): true | undefined {\n    return this._objRef?.isVideoTexture;\n  }\n  @Input()\n  public set magFilter(value: MagnificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.magFilter = value;\n    }\n  }\n\n  public get magFilter(): MagnificationTextureFilter | undefined {\n    return this._objRef?.magFilter;\n  }\n  @Input()\n  public set minFilter(value: MinificationTextureFilter) {\n    if (this._objRef) {\n      this._objRef.minFilter = value;\n    }\n  }\n\n  public get minFilter(): MinificationTextureFilter | undefined {\n    return this._objRef?.minFilter;\n  }\n  @Input()\n  public set generateMipmaps(value: boolean) {\n    if (this._objRef) {\n      this._objRef.generateMipmaps = value;\n    }\n  }\n\n  public get generateMipmaps(): boolean | undefined {\n    return this._objRef?.generateMipmaps;\n  }\n  @Input()\n  public set needsUpdate(value: boolean) {\n    if (this._objRef) {\n      this._objRef.needsUpdate = value;\n    }\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport { VideoFrameTexture } from 'three';\nimport {\n  MagnificationTextureFilter,\n  Mapping,\n  MinificationTextureFilter,\n  PixelFormat,\n  TextureDataType,\n  Wrapping,\n} from 'three/src/constants.js';\nimport { ThTextureBase } from '../ThTextureBase';\nimport { ThVideoTexture } from './ThVideoTexture';\n\n@Component({\n  selector: 'th-videoFrameTexture',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThTextureBase,\n      useExisting: forwardRef(() => ThVideoFrameTexture),\n    },\n  ],\n})\nexport class ThVideoFrameTexture<\n  T extends VideoFrameTexture = VideoFrameTexture,\n  TARGS = [\n    mapping?: Mapping,\n    wrapS?: Wrapping,\n    wrapT?: Wrapping,\n    magFilter?: MagnificationTextureFilter,\n    minFilter?: MinificationTextureFilter,\n    format?: PixelFormat,\n    type?: TextureDataType,\n    anisotropy?: number,\n  ],\n> extends ThVideoTexture<VideoFrame | {}, T, TARGS> {\n  public getType(): Type<VideoFrameTexture> {\n    return VideoFrameTexture;\n  }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @angular-eslint/component-selector, @angular-eslint/component-class-suffix */\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Type,\n  forwardRef,\n} from '@angular/core';\nimport {\n  BufferGeometryEventMap,\n  NormalBufferAttributes,\n  WireframeGeometry,\n} from 'three';\nimport { BufferGeometry } from 'three/src/core/BufferGeometry.js';\nimport { ThBufferGeometry } from './ThBufferGeometry';\n\n@Component({\n  selector: 'th-wireframeGeometry',\n  template: '<ng-content/>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: ThBufferGeometry,\n      useExisting: forwardRef(() => ThWireframeGeometry),\n    },\n  ],\n})\nexport class ThWireframeGeometry<\n  TBufferGeometry extends BufferGeometry = BufferGeometry,\n  T extends\n    WireframeGeometry<TBufferGeometry> = WireframeGeometry<TBufferGeometry>,\n  TARGS = /* geometry? */ TBufferGeometry,\n> extends ThBufferGeometry<\n  NormalBufferAttributes,\n  BufferGeometryEventMap,\n  T,\n  TARGS\n> {\n  public getType(): Type<WireframeGeometry<TBufferGeometry>> {\n    return WireframeGeometry;\n  }\n\n  public get type(): (string | 'WireframeGeometry') | undefined {\n    return this._objRef?.type;\n  }\n  public get parameters():\n    | {\n        readonly geometry: TBufferGeometry;\n      }\n    | undefined {\n    return this._objRef?.parameters;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { ThCSS2DObject } from './overrides/ThCSS2DObject';\nimport { ThCSS3DObject } from './overrides/ThCSS3DObject';\nimport { ThEffectComposer } from './overrides/ThEffectComposer';\nimport { ThRenderPass } from './overrides/ThRenderPass';\nimport { ThTransformControls } from './overrides/ThTransformControls';\nimport { ThAfterimagePass } from './ThAfterimagePass';\nimport { ThAmbientLight } from './ThAmbientLight';\nimport { ThArcballControls } from './ThArcballControls';\nimport { ThArrayCamera } from './ThArrayCamera';\nimport { ThArrowHelper } from './ThArrowHelper';\nimport { ThAudio } from './ThAudio';\nimport { ThAudioListener } from './ThAudioListener';\nimport { ThAxesHelper } from './ThAxesHelper';\nimport { ThBatchedMesh } from './ThBatchedMesh';\nimport { ThBloomPass } from './ThBloomPass';\nimport { ThBokehPass } from './ThBokehPass';\nimport { ThBone } from './ThBone';\nimport { ThBox3Helper } from './ThBox3Helper';\nimport { ThBoxGeometry } from './ThBoxGeometry';\nimport { ThBoxHelper } from './ThBoxHelper';\nimport { ThBoxLineGeometry } from './ThBoxLineGeometry';\nimport { ThBufferGeometry } from './ThBufferGeometry';\nimport { ThCamera } from './ThCamera';\nimport { ThCameraHelper } from './ThCameraHelper';\nimport { ThCanvasTexture } from './ThCanvasTexture';\nimport { ThCapsuleGeometry } from './ThCapsuleGeometry';\nimport { ThCircleGeometry } from './ThCircleGeometry';\nimport { ThClearMaskPass } from './ThClearMaskPass';\nimport { ThClearPass } from './ThClearPass';\nimport { ThCompressedArrayTexture } from './ThCompressedArrayTexture';\nimport { ThCompressedCubeTexture } from './ThCompressedCubeTexture';\nimport { ThCompressedTexture } from './ThCompressedTexture';\nimport { ThConeGeometry } from './ThConeGeometry';\nimport { ThConvexGeometry } from './ThConvexGeometry';\nimport { ThCSS2DObjectGen } from './ThCSS2DObjectGen';\nimport { ThCSS3DObjectGen } from './ThCSS3DObjectGen';\nimport { ThCubeCamera } from './ThCubeCamera';\nimport { ThCubeTexture } from './ThCubeTexture';\nimport { ThCubeTexturePass } from './ThCubeTexturePass';\nimport { ThCylinderGeometry } from './ThCylinderGeometry';\nimport { ThData3DTexture } from './ThData3DTexture';\nimport { ThDataArrayTexture } from './ThDataArrayTexture';\nimport { ThDataTexture } from './ThDataTexture';\nimport { ThDecalGeometry } from './ThDecalGeometry';\nimport { ThDepthTexture } from './ThDepthTexture';\nimport { ThDirectionalLight } from './ThDirectionalLight';\nimport { ThDirectionalLightHelper } from './ThDirectionalLightHelper';\nimport { ThDodecahedronGeometry } from './ThDodecahedronGeometry';\nimport { ThDotScreenPass } from './ThDotScreenPass';\nimport { ThDragControls } from './ThDragControls';\nimport { ThEdgesGeometry } from './ThEdgesGeometry';\nimport { ThEffectComposerGen } from './ThEffectComposerGen';\nimport { ThExternalTexture } from './ThExternalTexture';\nimport { ThExtrudeGeometry } from './ThExtrudeGeometry';\nimport { ThFilmPass } from './ThFilmPass';\nimport { ThFirstPersonControls } from './ThFirstPersonControls';\nimport { ThFlyControls } from './ThFlyControls';\nimport { ThFramebufferTexture } from './ThFramebufferTexture';\nimport { ThGlitchPass } from './ThGlitchPass';\nimport { ThGridHelper } from './ThGridHelper';\nimport { ThGroup } from './ThGroup';\nimport { ThHalftonePass } from './ThHalftonePass';\nimport { ThHemisphereLight } from './ThHemisphereLight';\nimport { ThHemisphereLightHelper } from './ThHemisphereLightHelper';\nimport { ThIcosahedronGeometry } from './ThIcosahedronGeometry';\nimport { ThInstancedBufferGeometry } from './ThInstancedBufferGeometry';\nimport { ThInstancedMesh } from './ThInstancedMesh';\nimport { ThLatheGeometry } from './ThLatheGeometry';\nimport { ThLightProbe } from './ThLightProbe';\nimport { ThLine } from './ThLine';\nimport { ThLineBasicMaterial } from './ThLineBasicMaterial';\nimport { ThLineDashedMaterial } from './ThLineDashedMaterial';\nimport { ThLineLoop } from './ThLineLoop';\nimport { ThLineSegments } from './ThLineSegments';\nimport { ThLOD } from './ThLOD';\nimport { ThLUTPass } from './ThLUTPass';\nimport { ThMapControls } from './ThMapControls';\nimport { ThMaskPass } from './ThMaskPass';\nimport { ThMaterial } from './ThMaterial';\nimport { ThMesh } from './ThMesh';\nimport { ThMeshBasicMaterial } from './ThMeshBasicMaterial';\nimport { ThMeshDepthMaterial } from './ThMeshDepthMaterial';\nimport { ThMeshDistanceMaterial } from './ThMeshDistanceMaterial';\nimport { ThMeshLambertMaterial } from './ThMeshLambertMaterial';\nimport { ThMeshMatcapMaterial } from './ThMeshMatcapMaterial';\nimport { ThMeshNormalMaterial } from './ThMeshNormalMaterial';\nimport { ThMeshPhongMaterial } from './ThMeshPhongMaterial';\nimport { ThMeshPhysicalMaterial } from './ThMeshPhysicalMaterial';\nimport { ThMeshStandardMaterial } from './ThMeshStandardMaterial';\nimport { ThMeshToonMaterial } from './ThMeshToonMaterial';\nimport { ThObject3D } from './ThObject3D';\nimport { ThOctahedronGeometry } from './ThOctahedronGeometry';\nimport { ThOrbitControls } from './ThOrbitControls';\nimport { ThOrthographicCamera } from './ThOrthographicCamera';\nimport { ThOutlinePass } from './ThOutlinePass';\nimport { ThOutputPass } from './ThOutputPass';\nimport { ThParametricGeometry } from './ThParametricGeometry';\nimport { ThPass } from './ThPass';\nimport { ThPerspectiveCamera } from './ThPerspectiveCamera';\nimport { ThPlaneGeometry } from './ThPlaneGeometry';\nimport { ThPlaneHelper } from './ThPlaneHelper';\nimport { ThPointerLockControls } from './ThPointerLockControls';\nimport { ThPointLight } from './ThPointLight';\nimport { ThPointLightHelper } from './ThPointLightHelper';\nimport { ThPoints } from './ThPoints';\nimport { ThPointsMaterial } from './ThPointsMaterial';\nimport { ThPolarGridHelper } from './ThPolarGridHelper';\nimport { ThPolyhedronGeometry } from './ThPolyhedronGeometry';\nimport { ThPositionalAudio } from './ThPositionalAudio';\nimport { ThRawShaderMaterial } from './ThRawShaderMaterial';\nimport { ThRectAreaLight } from './ThRectAreaLight';\nimport { ThRenderPassGen } from './ThRenderPassGen';\nimport { ThRingGeometry } from './ThRingGeometry';\nimport { ThRoundedBoxGeometry } from './ThRoundedBoxGeometry';\nimport { ThSAOPass } from './ThSAOPass';\nimport { ThSavePass } from './ThSavePass';\nimport { ThScene } from './ThScene';\nimport { ThShaderMaterial } from './ThShaderMaterial';\nimport { ThShaderPass } from './ThShaderPass';\nimport { ThShadowMaterial } from './ThShadowMaterial';\nimport { ThShapeGeometry } from './ThShapeGeometry';\nimport { ThSkeletonHelper } from './ThSkeletonHelper';\nimport { ThSkinnedMesh } from './ThSkinnedMesh';\nimport { ThSMAAPass } from './ThSMAAPass';\nimport { ThSphereGeometry } from './ThSphereGeometry';\nimport { ThSpotLight } from './ThSpotLight';\nimport { ThSpotLightHelper } from './ThSpotLightHelper';\nimport { ThSprite } from './ThSprite';\nimport { ThSpriteMaterial } from './ThSpriteMaterial';\nimport { ThSSAARenderPass } from './ThSSAARenderPass';\nimport { ThSSAOPass } from './ThSSAOPass';\nimport { ThSSRPass } from './ThSSRPass';\nimport { ThStereoCamera } from './ThStereoCamera';\nimport { ThTAARenderPass } from './ThTAARenderPass';\nimport { ThTeapotGeometry } from './ThTeapotGeometry';\nimport { ThTetrahedronGeometry } from './ThTetrahedronGeometry';\nimport { ThTextGeometry } from './ThTextGeometry';\nimport { ThTexture } from './ThTexture';\nimport { ThTexturePass } from './ThTexturePass';\nimport { ThTorusGeometry } from './ThTorusGeometry';\nimport { ThTorusKnotGeometry } from './ThTorusKnotGeometry';\nimport { ThTrackballControls } from './ThTrackballControls';\nimport { ThTransformControlsGen } from './ThTransformControlsGen';\nimport { ThTubeGeometry } from './ThTubeGeometry';\nimport { ThUnrealBloomPass } from './ThUnrealBloomPass';\nimport { ThVideoFrameTexture } from './ThVideoFrameTexture';\nimport { ThVideoTexture } from './ThVideoTexture';\nimport { ThWireframeGeometry } from './ThWireframeGeometry';\n\n@NgModule({\n  imports: [\n    ThTransformControlsGen,\n    ThTransformControls,\n    ThArcballControls,\n    ThDragControls,\n    ThFirstPersonControls,\n    ThFlyControls,\n    ThOrbitControls,\n    ThMapControls,\n    ThPointerLockControls,\n    ThTrackballControls,\n    ThAudio,\n    ThAudioListener,\n    ThPositionalAudio,\n    ThArrayCamera,\n    ThCamera,\n    ThCubeCamera,\n    ThOrthographicCamera,\n    ThPerspectiveCamera,\n    ThStereoCamera,\n    ThObject3D,\n    ThArrowHelper,\n    ThAxesHelper,\n    ThBox3Helper,\n    ThBoxHelper,\n    ThCameraHelper,\n    ThDirectionalLightHelper,\n    ThGridHelper,\n    ThHemisphereLightHelper,\n    ThPlaneHelper,\n    ThPointLightHelper,\n    ThPolarGridHelper,\n    ThSkeletonHelper,\n    ThSpotLightHelper,\n    ThAmbientLight,\n    ThDirectionalLight,\n    ThHemisphereLight,\n    ThLightProbe,\n    ThPointLight,\n    ThRectAreaLight,\n    ThSpotLight,\n    ThBatchedMesh,\n    ThBone,\n    ThGroup,\n    ThInstancedMesh,\n    ThLine,\n    ThLineLoop,\n    ThLineSegments,\n    ThLOD,\n    ThMesh,\n    ThPoints,\n    ThSkinnedMesh,\n    ThSprite,\n    ThScene,\n    ThCSS3DObjectGen,\n    ThCSS3DObject,\n    ThCSS2DObjectGen,\n    ThCSS2DObject,\n    ThLineBasicMaterial,\n    ThLineDashedMaterial,\n    ThMaterial,\n    ThMeshBasicMaterial,\n    ThMeshDepthMaterial,\n    ThMeshDistanceMaterial,\n    ThMeshLambertMaterial,\n    ThMeshMatcapMaterial,\n    ThMeshNormalMaterial,\n    ThMeshPhongMaterial,\n    ThMeshPhysicalMaterial,\n    ThMeshStandardMaterial,\n    ThMeshToonMaterial,\n    ThPointsMaterial,\n    ThRawShaderMaterial,\n    ThShaderMaterial,\n    ThShadowMaterial,\n    ThSpriteMaterial,\n    ThBufferGeometry,\n    ThInstancedBufferGeometry,\n    ThBoxGeometry,\n    ThCapsuleGeometry,\n    ThCircleGeometry,\n    ThConeGeometry,\n    ThCylinderGeometry,\n    ThDodecahedronGeometry,\n    ThEdgesGeometry,\n    ThExtrudeGeometry,\n    ThIcosahedronGeometry,\n    ThLatheGeometry,\n    ThOctahedronGeometry,\n    ThPlaneGeometry,\n    ThPolyhedronGeometry,\n    ThRingGeometry,\n    ThShapeGeometry,\n    ThSphereGeometry,\n    ThTetrahedronGeometry,\n    ThTorusGeometry,\n    ThTorusKnotGeometry,\n    ThTubeGeometry,\n    ThWireframeGeometry,\n    ThBoxLineGeometry,\n    ThConvexGeometry,\n    ThDecalGeometry,\n    ThParametricGeometry,\n    ThRoundedBoxGeometry,\n    ThTeapotGeometry,\n    ThTextGeometry,\n    ThPass,\n    ThEffectComposerGen,\n    ThEffectComposer,\n    ThAfterimagePass,\n    ThBloomPass,\n    ThBokehPass,\n    ThClearPass,\n    ThCubeTexturePass,\n    ThDotScreenPass,\n    ThFilmPass,\n    ThGlitchPass,\n    ThHalftonePass,\n    ThLUTPass,\n    ThMaskPass,\n    ThClearMaskPass,\n    ThOutlinePass,\n    ThOutputPass,\n    ThRenderPassGen,\n    ThRenderPass,\n    ThSAOPass,\n    ThSMAAPass,\n    ThSSAARenderPass,\n    ThSSAOPass,\n    ThSSRPass,\n    ThSavePass,\n    ThShaderPass,\n    ThTAARenderPass,\n    ThTexturePass,\n    ThUnrealBloomPass,\n    ThCanvasTexture,\n    ThCompressedArrayTexture,\n    ThCompressedCubeTexture,\n    ThCompressedTexture,\n    ThCubeTexture,\n    ThData3DTexture,\n    ThDataArrayTexture,\n    ThDataTexture,\n    ThDepthTexture,\n    ThExternalTexture,\n    ThFramebufferTexture,\n    ThTexture,\n    ThVideoFrameTexture,\n    ThVideoTexture,\n  ],\n  exports: [\n    ThTransformControlsGen,\n    ThTransformControls,\n    ThArcballControls,\n    ThDragControls,\n    ThFirstPersonControls,\n    ThFlyControls,\n    ThOrbitControls,\n    ThMapControls,\n    ThPointerLockControls,\n    ThTrackballControls,\n    ThAudio,\n    ThAudioListener,\n    ThPositionalAudio,\n    ThArrayCamera,\n    ThCamera,\n    ThCubeCamera,\n    ThOrthographicCamera,\n    ThPerspectiveCamera,\n    ThStereoCamera,\n    ThObject3D,\n    ThArrowHelper,\n    ThAxesHelper,\n    ThBox3Helper,\n    ThBoxHelper,\n    ThCameraHelper,\n    ThDirectionalLightHelper,\n    ThGridHelper,\n    ThHemisphereLightHelper,\n    ThPlaneHelper,\n    ThPointLightHelper,\n    ThPolarGridHelper,\n    ThSkeletonHelper,\n    ThSpotLightHelper,\n    ThAmbientLight,\n    ThDirectionalLight,\n    ThHemisphereLight,\n    ThLightProbe,\n    ThPointLight,\n    ThRectAreaLight,\n    ThSpotLight,\n    ThBatchedMesh,\n    ThBone,\n    ThGroup,\n    ThInstancedMesh,\n    ThLine,\n    ThLineLoop,\n    ThLineSegments,\n    ThLOD,\n    ThMesh,\n    ThPoints,\n    ThSkinnedMesh,\n    ThSprite,\n    ThScene,\n    ThCSS3DObjectGen,\n    ThCSS3DObject,\n    ThCSS2DObjectGen,\n    ThCSS2DObject,\n    ThLineBasicMaterial,\n    ThLineDashedMaterial,\n    ThMaterial,\n    ThMeshBasicMaterial,\n    ThMeshDepthMaterial,\n    ThMeshDistanceMaterial,\n    ThMeshLambertMaterial,\n    ThMeshMatcapMaterial,\n    ThMeshNormalMaterial,\n    ThMeshPhongMaterial,\n    ThMeshPhysicalMaterial,\n    ThMeshStandardMaterial,\n    ThMeshToonMaterial,\n    ThPointsMaterial,\n    ThRawShaderMaterial,\n    ThShaderMaterial,\n    ThShadowMaterial,\n    ThSpriteMaterial,\n    ThBufferGeometry,\n    ThInstancedBufferGeometry,\n    ThBoxGeometry,\n    ThCapsuleGeometry,\n    ThCircleGeometry,\n    ThConeGeometry,\n    ThCylinderGeometry,\n    ThDodecahedronGeometry,\n    ThEdgesGeometry,\n    ThExtrudeGeometry,\n    ThIcosahedronGeometry,\n    ThLatheGeometry,\n    ThOctahedronGeometry,\n    ThPlaneGeometry,\n    ThPolyhedronGeometry,\n    ThRingGeometry,\n    ThShapeGeometry,\n    ThSphereGeometry,\n    ThTetrahedronGeometry,\n    ThTorusGeometry,\n    ThTorusKnotGeometry,\n    ThTubeGeometry,\n    ThWireframeGeometry,\n    ThBoxLineGeometry,\n    ThConvexGeometry,\n    ThDecalGeometry,\n    ThParametricGeometry,\n    ThRoundedBoxGeometry,\n    ThTeapotGeometry,\n    ThTextGeometry,\n    ThPass,\n    ThEffectComposerGen,\n    ThEffectComposer,\n    ThAfterimagePass,\n    ThBloomPass,\n    ThBokehPass,\n    ThClearPass,\n    ThCubeTexturePass,\n    ThDotScreenPass,\n    ThFilmPass,\n    ThGlitchPass,\n    ThHalftonePass,\n    ThLUTPass,\n    ThMaskPass,\n    ThClearMaskPass,\n    ThOutlinePass,\n    ThOutputPass,\n    ThRenderPassGen,\n    ThRenderPass,\n    ThSAOPass,\n    ThSMAAPass,\n    ThSSAARenderPass,\n    ThSSAOPass,\n    ThSSRPass,\n    ThSavePass,\n    ThShaderPass,\n    ThTAARenderPass,\n    ThTexturePass,\n    ThUnrealBloomPass,\n    ThCanvasTexture,\n    ThCompressedArrayTexture,\n    ThCompressedCubeTexture,\n    ThCompressedTexture,\n    ThCubeTexture,\n    ThData3DTexture,\n    ThDataArrayTexture,\n    ThDataTexture,\n    ThDepthTexture,\n    ThExternalTexture,\n    ThFramebufferTexture,\n    ThTexture,\n    ThVideoFrameTexture,\n    ThVideoTexture,\n  ],\n})\nexport class NgxThreeGeneratedModule {}\n","import { Type } from '@angular/core';\nimport { Loader } from 'three';\n\nexport abstract class ThLoader<TData = unknown, TUrl extends string | string[] = string> {\n  public abstract readonly clazz: Type<Loader<TData, TUrl>>;\n\n  protected crossOrigin?: string;\n  protected withCredentials?: boolean;\n\n  public setCrossOrigin(cors: string) {\n    this.crossOrigin = cors;\n  }\n\n  public setWithCredentials(credentials: boolean) {\n    this.withCredentials = credentials;\n  }\n\n  public createLoaderInstance(): Loader<TData, TUrl> {\n    const loader = new this.clazz();\n    if (this.crossOrigin) {\n      loader.setCrossOrigin(this.crossOrigin);\n    }\n    if (this.withCredentials !== undefined) {\n      loader.setWithCredentials(this.withCredentials);\n    }\n    return loader;\n  }\n}\n","import { Directive, EventEmitter, Input, NgZone, OnInit, Output, PipeTransform, inject } from '@angular/core';\nimport { Loader } from 'three';\nimport { isObserved } from '../util';\nimport { ThLoader } from './ThLoaderBase';\n\nexport abstract class ThCallbackLoaderService<\n  TData = unknown,\n  TUrl extends string | string[] = string,\n> extends ThLoader<TData, TUrl> {\n  public load(...args: Parameters<Loader<TData, TUrl>['load']>): ReturnType<Loader<TData, TUrl>['load']> {\n    const loader = this.createLoaderInstance();\n    return loader.load(...args);\n  }\n}\n\nexport abstract class ThCallbackLoaderBasePipe<TData = unknown, TUrl extends string | string[] = string>\n  implements PipeTransform\n{\n  protected abstract service: ThCallbackLoaderService<TData, TUrl>;\n\n  public transform(...args: Parameters<Loader<TData, TUrl>['load']>) {\n    return this.service.load(...args);\n  }\n}\n\n@Directive()\nexport abstract class ThCallbackLoaderBaseDirective<TData = unknown, TUrl extends string | string[] = string>\n  implements OnInit\n{\n  /**\n   * Derived directive should inject the host object.\n   */\n  protected abstract host: { objRef: any };\n\n  /**\n   * Derived directive should inject the (derived) service.\n   */\n  protected abstract service: ThCallbackLoaderService<TData, TUrl>;\n\n  protected zone = inject(NgZone);\n  private initialized = false;\n  private _url?: TUrl;\n\n  protected onLoaded$?: EventEmitter<ReturnType<Loader<TData, TUrl>['load']>>;\n  protected onProgress$?: EventEmitter<ProgressEvent>;\n\n  @Input()\n  set url(url: TUrl | undefined) {\n    this._url = url;\n    this.load();\n  }\n\n  get url() {\n    return this._url;\n  }\n\n  @Output() get onLoaded() {\n    if (!this.onLoaded$) {\n      this.onLoaded$ = new EventEmitter();\n    }\n    return this.onLoaded$;\n  }\n\n  @Output() get onProgress() {\n    if (!this.onProgress$) {\n      this.onProgress$ = new EventEmitter();\n    }\n    return this.onProgress$;\n  }\n\n  ngOnInit(): void {\n    this.initialized = true;\n    this.load();\n    // this.zone.runOutsideAngular(() => );\n  }\n\n  protected async load() {\n    if (!this.initialized) {\n      return;\n    }\n\n    if (this._url === undefined) {\n      throw new Error('missing url');\n    }\n\n    const url = this._url;\n\n    const onProgress = isObserved(this.onProgress$)\n      ? (progress: ProgressEvent<EventTarget>) => {\n          this.onProgress$?.next(progress);\n        }\n      : undefined;\n\n    const onLoad = isObserved(this.onLoaded$)\n      ? (...args: any) => {\n          this.onLoaded$?.next(args[0]);\n        }\n      : undefined;\n\n    this.host.objRef = this.zone.runOutsideAngular(() =>\n      (this.service as ThCallbackLoaderService<TData, TUrl>).load(url, onLoad!, onProgress),\n    );\n  }\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { DDSLoader } from 'three/examples/jsm/loaders/DDSLoader.js';\nimport { ThCompressedTexture } from '../../generated/ThCompressedTexture';\nimport {\n  ThCallbackLoaderService,\n  ThCallbackLoaderBaseDirective,\n  ThCallbackLoaderBasePipe,\n} from '../ThCallbackLoaderBase';\nimport { CompressedTexture } from 'three';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DDSLoaderService extends ThCallbackLoaderService<CompressedTexture> {\n  public clazz = DDSLoader;\n}\n\n@Pipe({\n  name: 'loadDDSTexture',\n  pure: true,\n})\nexport class ThDDSLoaderPipe extends ThCallbackLoaderBasePipe<CompressedTexture> implements PipeTransform {\n  protected service = inject(DDSLoaderService);\n}\n\n@Directive({\n  selector: '[loadDDSTexture]',\n})\nexport class ThDDSLoaderDirective extends ThCallbackLoaderBaseDirective<CompressedTexture> {\n  protected host = inject(ThCompressedTexture, { host: true });\n  protected service = inject(DDSLoaderService);\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader.js';\nimport { ThTexture } from '../../generated/ThTexture';\nimport {\n  ThCallbackLoaderService,\n  ThCallbackLoaderBaseDirective,\n  ThCallbackLoaderBasePipe,\n} from '../ThCallbackLoaderBase';\nimport { CompressedTexture } from 'three';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class KTX2LoaderService extends ThCallbackLoaderService<CompressedTexture> {\n  public readonly clazz = KTX2Loader;\n\n  protected transcoderPath = '';\n\n  public setDecoderPath(path: string) {\n    this.transcoderPath = path;\n  }\n\n  public createLoaderInstance(): KTX2Loader {\n    const loader = super.createLoaderInstance() as KTX2Loader;\n    loader.setTranscoderPath(this.transcoderPath);\n    return loader;\n  }\n}\n\n@Pipe({\n  name: 'loadKTX2Texture',\n  pure: true,\n})\nexport class ThKTX2LoaderPipe extends ThCallbackLoaderBasePipe<CompressedTexture> implements PipeTransform {\n  protected service = inject(KTX2LoaderService);\n}\n\n@Directive({\n  selector: '[loadKTX2Texture]',\n})\nexport class ThKTX2LoaderDirective extends ThCallbackLoaderBaseDirective<CompressedTexture> {\n  protected host = inject(ThTexture, { host: true });\n  protected service = inject(KTX2LoaderService);\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { KTXLoader } from 'three/examples/jsm/loaders/KTXLoader.js';\nimport { ThCompressedTexture } from '../../generated/ThCompressedTexture';\nimport {\n  ThCallbackLoaderService,\n  ThCallbackLoaderBaseDirective,\n  ThCallbackLoaderBasePipe,\n} from '../ThCallbackLoaderBase';\nimport { CompressedTexture } from 'three';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class KTXLoaderService extends ThCallbackLoaderService<CompressedTexture> {\n  public clazz = KTXLoader;\n}\n\n@Pipe({\n  name: 'loadKTXTexture',\n  pure: true,\n})\nexport class ThKTXLoaderPipe extends ThCallbackLoaderBasePipe<CompressedTexture> implements PipeTransform {\n  protected service = inject(KTXLoaderService);\n}\n\n@Directive({\n  selector: '[loadKTXTexture]',\n})\nexport class ThKTXLoaderDirective extends ThCallbackLoaderBaseDirective<CompressedTexture> {\n  protected host = inject(ThCompressedTexture, { host: true });\n  protected service = inject(KTXLoaderService);\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { PVRLoader } from 'three/examples/jsm/loaders/PVRLoader.js';\nimport { ThCompressedTexture } from '../../generated/ThCompressedTexture';\nimport {\n  ThCallbackLoaderService,\n  ThCallbackLoaderBaseDirective,\n  ThCallbackLoaderBasePipe,\n} from '../ThCallbackLoaderBase';\nimport { CompressedTexture } from 'three';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PVRLoaderService extends ThCallbackLoaderService<CompressedTexture> {\n  public clazz = PVRLoader;\n}\n\n@Pipe({\n  name: 'loadPVRTexture',\n  pure: true,\n})\nexport class ThPVRLoaderPipe extends ThCallbackLoaderBasePipe<CompressedTexture> implements PipeTransform {\n  protected service = inject(PVRLoaderService);\n}\n\n@Directive({\n  selector: '[loadPVRTexture]',\n})\nexport class ThPVRLoaderDirective extends ThCallbackLoaderBaseDirective<CompressedTexture> {\n  protected host = inject(ThCompressedTexture, { host: true });\n  protected service = inject(PVRLoaderService);\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { EXRLoader } from 'three/examples/jsm/loaders/EXRLoader.js';\nimport { ThDataTexture } from '../../generated/ThDataTexture';\nimport {\n  ThCallbackLoaderBaseDirective,\n  ThCallbackLoaderBasePipe,\n  ThCallbackLoaderService,\n} from '../ThCallbackLoaderBase';\nimport { DataTexture } from 'three';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class EXRLoaderService extends ThCallbackLoaderService<DataTexture> {\n  public clazz = EXRLoader;\n}\n\n@Pipe({\n  name: 'loadEXRTexture',\n  pure: true,\n})\nexport class ThEXRLoaderPipe extends ThCallbackLoaderBasePipe<DataTexture> implements PipeTransform {\n  protected service = inject(EXRLoaderService);\n}\n\n@Directive({\n  selector: '[loadEXRTexture]',\n})\nexport class ThEXRLoaderDirective extends ThCallbackLoaderBaseDirective<DataTexture> {\n  protected host = inject(ThDataTexture, { host: true });\n  protected service = inject(EXRLoaderService);\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js';\nimport { ThDataTexture } from '../../generated/ThDataTexture';\nimport {\n  ThCallbackLoaderService,\n  ThCallbackLoaderBaseDirective,\n  ThCallbackLoaderBasePipe,\n} from '../ThCallbackLoaderBase';\nimport { DataTexture } from 'three';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class RGBELoaderService extends ThCallbackLoaderService<DataTexture> {\n  public clazz = RGBELoader;\n}\n\n@Pipe({\n  name: 'loadRGBETexture',\n  pure: true,\n})\nexport class ThRGBELoaderPipe extends ThCallbackLoaderBasePipe<DataTexture> implements PipeTransform {\n  protected service = inject(RGBELoaderService);\n}\n\n@Directive({\n  selector: '[loadRGBETexture]',\n})\nexport class ThRGBELoaderDirective extends ThCallbackLoaderBaseDirective<DataTexture> {\n  protected host = inject(ThDataTexture, { host: true });\n  protected service = inject(RGBELoaderService);\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { ThDataTexture } from '../../generated/ThDataTexture';\nimport { TGALoader } from 'three/examples/jsm/loaders/TGALoader.js';\nimport {\n  ThCallbackLoaderService,\n  ThCallbackLoaderBaseDirective,\n  ThCallbackLoaderBasePipe,\n} from '../ThCallbackLoaderBase';\nimport { DataTexture } from 'three';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class TGALoaderService extends ThCallbackLoaderService<DataTexture> {\n  public clazz = TGALoader;\n}\n\n@Pipe({\n  name: 'loadTGATexture',\n  pure: true,\n})\nexport class ThTGALoaderPipe extends ThCallbackLoaderBasePipe<DataTexture> implements PipeTransform {\n  protected service = inject(TGALoaderService);\n}\n\n@Directive({\n  selector: '[loadTGATexture]',\n})\nexport class ThTGALoaderDirective extends ThCallbackLoaderBaseDirective<DataTexture> {\n  protected host = inject(ThDataTexture, { host: true });\n  protected service = inject(TGALoaderService);\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { CubeTexture, CubeTextureLoader, Texture } from 'three';\nimport { ThTexture } from '../generated/ThTexture';\nimport {\n  ThCallbackLoaderService,\n  ThCallbackLoaderBaseDirective,\n  ThCallbackLoaderBasePipe,\n} from './ThCallbackLoaderBase';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CubeTextureLoaderService extends ThCallbackLoaderService<CubeTexture, string[]> {\n  public clazz = CubeTextureLoader;\n}\n\n@Pipe({\n  name: 'loadCubeTexture',\n  pure: true,\n})\nexport class ThCubeTextureLoaderPipe extends ThCallbackLoaderBasePipe<CubeTexture, string[]> implements PipeTransform {\n  protected service = inject(CubeTextureLoaderService);\n}\n\n@Directive({\n  selector: '[loadCubeTexture]',\n})\nexport class ThCubeTextureLoaderDirective extends ThCallbackLoaderBaseDirective<CubeTexture, string[]> {\n  protected host = inject<ThTexture<Texture>>(ThTexture, { host: true });\n  protected service = inject(CubeTextureLoaderService);\n}\n","import { Injectable } from '@angular/core';\nimport { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';\nimport { ThCallbackLoaderService } from '../ThCallbackLoaderBase';\nimport { BufferGeometry } from 'three';\n\nexport interface DRACODecoderConfig {\n  type: 'js' | 'wasm';\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DRACOLoaderService extends ThCallbackLoaderService<BufferGeometry> {\n  public readonly clazz = DRACOLoader;\n  protected decoderPath = '';\n  protected decoderConfig?: DRACODecoderConfig;\n  protected workerLimit?: number;\n  protected reuseInstance = true;\n\n  protected instance?: DRACOLoader;\n\n  public setDecoderPath(path: string) {\n    this.decoderPath = path;\n  }\n\n  public setDecoderConfig(config: DRACODecoderConfig) {\n    this.decoderConfig = config;\n  }\n\n  public setWorkerLimit(limit: number) {\n    this.workerLimit = limit;\n  }\n\n  public setReuseInstance(reuse: boolean) {\n    this.reuseInstance = reuse;\n  }\n\n  public createLoaderInstance(): DRACOLoader {\n    if (this.reuseInstance && this.instance) {\n      return this.instance;\n    }\n\n    const loader = super.createLoaderInstance() as DRACOLoader;\n    loader.setDecoderPath(this.decoderPath);\n\n    if (this.decoderConfig) {\n      loader.setDecoderConfig(this.decoderConfig);\n    }\n\n    if (this.workerLimit) {\n      loader.setWorkerLimit(this.workerLimit);\n    }\n\n    if (this.reuseInstance) {\n      this.instance = loader;\n    }\n\n    return loader;\n  }\n}\n","/*\n          Generated, modifications will get overwritten\n        */\n\nexport * from './overrides/ThCSS2DObject';\nexport * from './overrides/ThCSS3DObject';\nexport * from './overrides/ThEffectComposer';\nexport * from './overrides/ThRenderPass';\nexport * from './overrides/ThTransformControls';\nexport * from './ThAfterimagePass';\nexport * from './ThAmbientLight';\nexport * from './ThArcballControls';\nexport * from './ThArrayCamera';\nexport * from './ThArrowHelper';\nexport * from './ThAudio';\nexport * from './ThAudioListener';\nexport * from './ThAxesHelper';\nexport * from './ThBatchedMesh';\nexport * from './ThBloomPass';\nexport * from './ThBokehPass';\nexport * from './ThBone';\nexport * from './ThBox3Helper';\nexport * from './ThBoxGeometry';\nexport * from './ThBoxHelper';\nexport * from './ThBoxLineGeometry';\nexport * from './ThBufferGeometry';\nexport * from './ThCamera';\nexport * from './ThCameraHelper';\nexport * from './ThCanvasTexture';\nexport * from './ThCapsuleGeometry';\nexport * from './ThCircleGeometry';\nexport * from './ThClearMaskPass';\nexport * from './ThClearPass';\nexport * from './ThCompressedArrayTexture';\nexport * from './ThCompressedCubeTexture';\nexport * from './ThCompressedTexture';\nexport * from './ThConeGeometry';\nexport * from './ThConvexGeometry';\nexport * from './ThCSS2DObjectGen';\nexport * from './ThCSS3DObjectGen';\nexport * from './ThCubeCamera';\nexport * from './ThCubeTexture';\nexport * from './ThCubeTexturePass';\nexport * from './ThCylinderGeometry';\nexport * from './ThData3DTexture';\nexport * from './ThDataArrayTexture';\nexport * from './ThDataTexture';\nexport * from './ThDecalGeometry';\nexport * from './ThDepthTexture';\nexport * from './ThDirectionalLight';\nexport * from './ThDirectionalLightHelper';\nexport * from './ThDodecahedronGeometry';\nexport * from './ThDotScreenPass';\nexport * from './ThDragControls';\nexport * from './ThEdgesGeometry';\nexport * from './ThEffectComposerGen';\nexport * from './ThExternalTexture';\nexport * from './ThExtrudeGeometry';\nexport * from './ThFilmPass';\nexport * from './ThFirstPersonControls';\nexport * from './ThFlyControls';\nexport * from './ThFramebufferTexture';\nexport * from './ThGlitchPass';\nexport * from './ThGridHelper';\nexport * from './ThGroup';\nexport * from './ThHalftonePass';\nexport * from './ThHemisphereLight';\nexport * from './ThHemisphereLightHelper';\nexport * from './ThIcosahedronGeometry';\nexport * from './ThInstancedBufferGeometry';\nexport * from './ThInstancedMesh';\nexport * from './ThLatheGeometry';\nexport * from './ThLight';\nexport * from './ThLightProbe';\nexport * from './ThLine';\nexport * from './ThLineBasicMaterial';\nexport * from './ThLineDashedMaterial';\nexport * from './ThLineLoop';\nexport * from './ThLineSegments';\nexport * from './ThLOD';\nexport * from './ThLUTPass';\nexport * from './ThMapControls';\nexport * from './ThMaskPass';\nexport * from './ThMaterial';\nexport * from './ThMesh';\nexport * from './ThMeshBasicMaterial';\nexport * from './ThMeshDepthMaterial';\nexport * from './ThMeshDistanceMaterial';\nexport * from './ThMeshLambertMaterial';\nexport * from './ThMeshMatcapMaterial';\nexport * from './ThMeshNormalMaterial';\nexport * from './ThMeshPhongMaterial';\nexport * from './ThMeshPhysicalMaterial';\nexport * from './ThMeshStandardMaterial';\nexport * from './ThMeshToonMaterial';\nexport * from './ThObject3D';\nexport * from './ThOctahedronGeometry';\nexport * from './ThOrbitControls';\nexport * from './ThOrthographicCamera';\nexport * from './ThOutlinePass';\nexport * from './ThOutputPass';\nexport * from './ThParametricGeometry';\nexport * from './ThPass';\nexport * from './ThPerspectiveCamera';\nexport * from './ThPlaneGeometry';\nexport * from './ThPlaneHelper';\nexport * from './ThPointerLockControls';\nexport * from './ThPointLight';\nexport * from './ThPointLightHelper';\nexport * from './ThPoints';\nexport * from './ThPointsMaterial';\nexport * from './ThPolarGridHelper';\nexport * from './ThPolyhedronGeometry';\nexport * from './ThPositionalAudio';\nexport * from './ThRawShaderMaterial';\nexport * from './ThRectAreaLight';\nexport * from './ThRenderPassGen';\nexport * from './ThRingGeometry';\nexport * from './ThRoundedBoxGeometry';\nexport * from './ThSAOPass';\nexport * from './ThSavePass';\nexport * from './ThScene';\nexport * from './ThShaderMaterial';\nexport * from './ThShaderPass';\nexport * from './ThShadowMaterial';\nexport * from './ThShapeGeometry';\nexport * from './ThSkeletonHelper';\nexport * from './ThSkinnedMesh';\nexport * from './ThSMAAPass';\nexport * from './ThSphereGeometry';\nexport * from './ThSpotLight';\nexport * from './ThSpotLightHelper';\nexport * from './ThSprite';\nexport * from './ThSpriteMaterial';\nexport * from './ThSSAARenderPass';\nexport * from './ThSSAOPass';\nexport * from './ThSSRPass';\nexport * from './ThStereoCamera';\nexport * from './ThTAARenderPass';\nexport * from './ThTeapotGeometry';\nexport * from './ThTetrahedronGeometry';\nexport * from './ThTextGeometry';\nexport * from './ThTexture';\nexport * from './ThTexturePass';\nexport * from './ThTorusGeometry';\nexport * from './ThTorusKnotGeometry';\nexport * from './ThTrackballControls';\nexport * from './ThTransformControlsGen';\nexport * from './ThTubeGeometry';\nexport * from './ThUnrealBloomPass';\nexport * from './ThVideoFrameTexture';\nexport * from './ThVideoTexture';\nexport * from './ThWireframeGeometry';\n","import {\n  Directive,\n  EventEmitter,\n  inject,\n  Injectable,\n  Input,\n  NgZone,\n  OnInit,\n  Output,\n  PipeTransform,\n} from '@angular/core';\nimport { Loader } from 'three';\nimport { ThAnimationLoopService } from '../renderer/th-animation-loop.service';\nimport { isObserved } from '../util';\nimport { createLazyObject3DProxy, LazyObject3DProxy } from './LazyObject3dProxy';\nimport { ThLoader } from './ThLoaderBase';\nimport { ThObject3D } from '../generated';\n\ntype Awaited<T> = T extends PromiseLike<infer U> ? U : T;\n\n@Injectable()\nexport abstract class ThAsyncLoaderService<TData = unknown, TUrl extends string | string[] = string> extends ThLoader<\n  TData,\n  TUrl\n> {\n  public load(...args: Parameters<Loader<TData, TUrl>['loadAsync']>): ReturnType<Loader<TData, TUrl>['loadAsync']> {\n    const loader = this.createLoaderInstance();\n    return loader.loadAsync(...args);\n  }\n}\n\nexport abstract class ThAsyncLoaderBasePipe<TData = unknown, TUrl extends string | string[] = string>\n  implements PipeTransform\n{\n  protected abstract service: ThAsyncLoaderService<TData, TUrl>;\n  private animationLoop = inject(ThAnimationLoopService);\n  constructor() {}\n\n  public transform(...args: Parameters<Loader<TData, TUrl>['loadAsync']>) {\n    return this.service.load(...args).then((response) => {\n      this.animationLoop.requestAnimationFrame();\n      return response;\n    });\n  }\n}\n\n@Directive({})\nexport abstract class ThAsyncLoaderBaseDirective<TData = unknown, TUrl extends string | string[] = string>\n  implements OnInit\n{\n  /**\n   * injector function to get the host object reference.\n   *\n   * Override this method in dervied classes if you want to inject other host element types (e.g. ThBufferGeometry, etc.), default is ThOBject3D.\n   * always implement as a function not as a fat arrow function, else it will not be available in the constructor.\n   */\n  protected injectHost(): { objRef: any } {\n    return inject(ThObject3D, { host: true });\n  }\n\n  /**\n   * Derived directive should inject the (derived) service.\n   */\n  protected abstract service: ThAsyncLoaderService<TData, TUrl>;\n\n  protected abstract getRefFromResponse(response: Awaited<ReturnType<Loader<TData, TUrl>['loadAsync']>>): any;\n\n  protected zone = inject(NgZone);\n  protected animationLoop = inject(ThAnimationLoopService);\n  protected _host: { objRef: any };\n\n  protected initialized = false;\n  protected _url?: Parameters<Loader<TData, TUrl>['loadAsync']>[0];\n\n  protected onLoaded$?: EventEmitter<Awaited<ReturnType<Loader<TData, TUrl>['loadAsync']>>>;\n  protected onProgress$?: EventEmitter<ProgressEvent>;\n  protected proxy: LazyObject3DProxy;\n\n  @Input()\n  set url(url: Parameters<Loader<TData, TUrl>['loadAsync']>[0] | undefined) {\n    this._url = url;\n    this.load();\n  }\n\n  get url() {\n    return this._url;\n  }\n\n  @Output() get onLoaded() {\n    if (!this.onLoaded$) {\n      this.onLoaded$ = new EventEmitter();\n    }\n    return this.onLoaded$;\n  }\n\n  @Output() get onProgress() {\n    if (!this.onProgress$) {\n      this.onProgress$ = new EventEmitter();\n    }\n    return this.onProgress$;\n  }\n\n  constructor() {\n    this.proxy = createLazyObject3DProxy();\n    this._host = this.injectHost();\n    this._host.objRef = this.proxy;\n  }\n\n  ngOnInit(): void {\n    this.initialized = true;\n    this.load();\n    // this.zone.runOutsideAngular(() => );\n  }\n\n  protected async load() {\n    if (!this.initialized) {\n      return;\n    }\n\n    if (this._url === undefined) {\n      throw new Error('missing url');\n    }\n\n    if (!this.proxy) {\n      return;\n    }\n\n    const url = this._url;\n\n    const onProgress = isObserved(this.onProgress$)\n      ? (progress: ProgressEvent<EventTarget>) => {\n          this.zone.run(() => {\n            this.onProgress$?.next(progress);\n          });\n        }\n      : undefined;\n\n    const result = await this.zone.runOutsideAngular(() =>\n      (this.service as ThAsyncLoaderService<TData, TUrl>).load(url, onProgress),\n    );\n\n    this.animationLoop.requestAnimationFrame();\n    this.proxy.objRef = this.getRefFromResponse(result);\n    // add the new object to the parent and\n    // emit a loaded event directly on the three.js object and on objRef$\n    this._host.objRef = this.proxy;\n\n    if (this.onLoaded$ && result != null) {\n      this.zone.run(() => this.onLoaded$?.next(result));\n    }\n  }\n}\n","import { Directive, Injectable, InjectionToken, Pipe, PipeTransform, inject } from '@angular/core';\nimport { GLTF, GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';\nimport { DRACOLoaderService } from './compressed-texture/ThDRACOLoader';\nimport { ThAsyncLoaderBaseDirective, ThAsyncLoaderBasePipe, ThAsyncLoaderService } from './ThAsyncLoaderBase';\nimport type { MeshoptDecoder } from 'three/examples/jsm/libs/meshopt_decoder.module.js';\n\nconst MESHOPT_DECODER_TOKEN = new InjectionToken<typeof MeshoptDecoder>('MeshoptDecoderToken');\n\n/**\n * use this function to provide a MeshoptDecoder implementation to the GLTFLoaderService\n * @param decoder\n * @returns\n */\nexport function provideMeshoptDecoder(decoder: typeof MeshoptDecoder) {\n  return {\n    provide: MESHOPT_DECODER_TOKEN,\n    useValue: decoder,\n  };\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class GLTFLoaderService extends ThAsyncLoaderService<GLTF> {\n  protected dracoLoaderService = inject(DRACOLoaderService);\n  protected meshoptDecoder = inject(MESHOPT_DECODER_TOKEN, { optional: true });\n  public clazz = GLTFLoader;\n\n  public createLoaderInstance(): GLTFLoader {\n    const loader = super.createLoaderInstance() as GLTFLoader;\n    loader.setDRACOLoader(this.dracoLoaderService.createLoaderInstance());\n    if (this.meshoptDecoder) {\n      loader.setMeshoptDecoder(this.meshoptDecoder);\n    }\n    return loader;\n  }\n}\n\n@Pipe({\n  name: 'loadGLTF',\n  pure: true,\n})\nexport class ThGLTFLoaderPipe extends ThAsyncLoaderBasePipe<GLTF> implements PipeTransform {\n  protected service = inject(GLTFLoaderService);\n}\n\n@Directive({\n  selector: '[loadGLTF]',\n})\nexport class ThGLTFLoaderDirective extends ThAsyncLoaderBaseDirective<GLTF> {\n  protected service = inject(GLTFLoaderService);\n\n  protected getRefFromResponse(response: GLTF) {\n    return response.scene;\n  }\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { Texture, TextureLoader } from 'three';\nimport { ThTexture } from '../generated/ThTexture';\nimport {\n  ThCallbackLoaderService,\n  ThCallbackLoaderBaseDirective,\n  ThCallbackLoaderBasePipe,\n} from './ThCallbackLoaderBase';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class TextureLoaderService extends ThCallbackLoaderService<Texture> {\n  public clazz = TextureLoader;\n}\n\n@Pipe({\n  name: 'loadTexture',\n  pure: true,\n})\nexport class ThTextureLoaderPipe extends ThCallbackLoaderBasePipe<Texture> implements PipeTransform {\n  protected service = inject(TextureLoaderService);\n}\n\n@Directive({\n  selector: '[loadTexture]',\n})\nexport class ThTextureLoaderDirective extends ThCallbackLoaderBaseDirective<Texture> {\n  protected host = inject<ThTexture<Texture>>(ThTexture, { host: true });\n  protected service = inject(TextureLoaderService);\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThWrapperBase } from '../ThWrapperBase';\n\n/**\n * create a clone of any \"cloneable\" three.js class (or from it's ngx-three warpper)\n */\n@Pipe({\n  name: 'clone',\n})\nexport class ClonePipe implements PipeTransform {\n  transform<T extends { clone(): T }>(value?: ThWrapperBase<T, any> | T | null): T | undefined {\n    if (!value) {\n      return;\n    }\n\n    if (value instanceof ThWrapperBase) {\n      return value.objRef?.clone();\n    } else {\n      return value.clone();\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Color, ColorRepresentation } from 'three';\n\n/**\n * constructs a color of it's constructor parameters\n */\n@Pipe({\n  name: 'color',\n  pure: true,\n})\nexport class ColorPipe implements PipeTransform {\n  /* ContructorProperties does not support multiple constructors --> */\n  transform(args: ColorRepresentation | [r: number, g: number, b: number]): Color {\n    if (Array.isArray(args)) {\n      return new Color(...args);\n    } else {\n      return new Color(args);\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Fog } from 'three';\n\n@Pipe({\n  name: 'fog',\n  pure: true,\n})\nexport class FogPipe implements PipeTransform {\n  transform(args: ConstructorParameters<typeof Fog>): Fog {\n    return new Fog(...args);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Vector2, Vector3, Vector4 } from 'three';\n\n/**\n * transform arrays to vectors\n */\n@Pipe({\n  name: 'vector2',\n  pure: true,\n})\nexport class Vector2Pipe implements PipeTransform {\n  transform(args: ConstructorParameters<typeof Vector2>): Vector2 {\n    return new Vector2(...args);\n  }\n}\n\n@Pipe({\n  name: 'vector3',\n  pure: true,\n})\nexport class Vector3Pipe implements PipeTransform {\n  transform(args: ConstructorParameters<typeof Vector3>): Vector3 {\n    return new Vector3(...args);\n  }\n}\n\n@Pipe({\n  name: 'vector4',\n  pure: true,\n})\nexport class Vector4Pipe implements PipeTransform {\n  transform(args: ConstructorParameters<typeof Vector4>): Vector4 {\n    return new Vector4(...args);\n  }\n}\n","import { Directive, Input, Output, inject } from '@angular/core';\nimport { ThEngineService } from '../ThEngine.service';\nimport { ThAnimationLoopService } from './th-animation-loop.service';\n\n@Directive({\n  selector: '[beforeRender], [onResize], [renderOnDemand]',\n})\nexport class ThRenderDirective {\n  private engineService = inject(ThEngineService);\n  private animationLoopService = inject(ThAnimationLoopService);\n\n  @Output()\n  public get beforeRender() {\n    return this.engineService.beforeRender$;\n  }\n\n  @Output()\n  public get onResize() {\n    return this.engineService.resize$;\n  }\n\n  @Input()\n  public set renderOnDemand(onDemand: boolean) {\n    if (onDemand) {\n      this.animationLoopService.stop();\n    } else {\n      this.animationLoopService.start();\n    }\n  }\n\n  public get renderOnDemand() {\n    return !this.animationLoopService.isActive();\n  }\n}\n","import { Directive, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { ThEngineService } from '../ThEngine.service';\nimport Stats from 'three/examples/jsm/libs/stats.module.js';\nimport { Subscription } from 'rxjs';\nimport { ThCanvas } from '../ThCanvas';\n\n@Directive({\n  selector: '[thStats]',\n})\nexport class StatsDirective implements OnInit, OnDestroy {\n  private engineService = inject(ThEngineService);\n  private canvas = inject(ThCanvas);\n\n  private stats: Stats;\n  private renderSubscription?: Subscription;\n  constructor() {\n    this.stats = new Stats();\n  }\n  ngOnDestroy(): void {\n    if (this.renderSubscription) {\n      this.renderSubscription.unsubscribe();\n    }\n  }\n  ngOnInit(): void {\n    if (!this.canvas.elementRef) {\n      throw new Error('No canvas present');\n    }\n\n    const parentElement = this.canvas.elementRef.nativeElement;\n    if (parentElement) {\n      parentElement.style.position = 'relative';\n      this.stats.dom.style.position = 'absolute';\n      this.stats.showPanel(0);\n      parentElement.appendChild(this.stats.dom);\n      this.renderSubscription = this.engineService.beforeRender$.subscribe(() => {\n        this.stats.update();\n      });\n    }\n  }\n\n  @Input()\n  public set thStats(enabled: boolean) {\n    if (!enabled) {\n      this.stats.dom.style.visibility = 'hidden';\n    } else {\n      this.stats.dom.style.visibility = 'visible';\n    }\n  }\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\n\nimport { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js';\nimport { ThAsyncLoaderBaseDirective, ThAsyncLoaderBasePipe, ThAsyncLoaderService } from './ThAsyncLoaderBase';\nimport { Group } from 'three';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class OBJLoaderService extends ThAsyncLoaderService<Group> {\n  public clazz = OBJLoader;\n}\n\n@Pipe({\n  name: 'loadObj',\n  pure: true,\n})\nexport class ThObjLoaderPipe extends ThAsyncLoaderBasePipe<Group> implements PipeTransform {\n  protected service = inject(OBJLoaderService);\n}\n\n@Directive({\n  selector: '[loadObj]',\n})\nexport class ThObjLoaderDirective extends ThAsyncLoaderBaseDirective<Group> {\n  protected service = inject(OBJLoaderService);\n\n  protected getRefFromResponse(response: Group) {\n    return response;\n  }\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader.js';\nimport { ThAsyncLoaderBaseDirective, ThAsyncLoaderBasePipe, ThAsyncLoaderService } from './ThAsyncLoaderBase';\nimport { Group } from 'three';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class FBXLoaderService extends ThAsyncLoaderService<Group> {\n  public clazz = FBXLoader;\n}\n\n@Pipe({\n  name: 'loadFBX',\n  pure: true,\n})\nexport class ThFBXLoaderPipe extends ThAsyncLoaderBasePipe<Group> implements PipeTransform {\n  protected service = inject(FBXLoaderService);\n}\n\n@Directive({\n  selector: '[loadFBX]',\n})\nexport class ThFBXLoaderDirective extends ThAsyncLoaderBaseDirective<Group> {\n  protected service = inject(FBXLoaderService);\n\n  protected getRefFromResponse(response: Group) {\n    return response;\n  }\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\nimport { ThDataTexture } from '../../generated/ThDataTexture';\nimport { UltraHDRLoader } from 'three/examples/jsm/loaders/UltraHDRLoader.js';\nimport {\n  ThCallbackLoaderBaseDirective,\n  ThCallbackLoaderBasePipe,\n  ThCallbackLoaderService,\n} from '../ThCallbackLoaderBase';\nimport { DataTexture } from 'three';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class UltraHDRLoaderService extends ThCallbackLoaderService<DataTexture> {\n  public clazz = UltraHDRLoader;\n}\n\n@Pipe({\n  name: 'loadUltraHDRTexture',\n  pure: true,\n})\nexport class ThUltraHDRLoaderPipe extends ThCallbackLoaderBasePipe<DataTexture> implements PipeTransform {\n  protected service = inject(UltraHDRLoaderService);\n}\n\n@Directive({\n  selector: '[loadUltraHDRTexture]',\n})\nexport class ThUltraHDRLoaderDirective extends ThCallbackLoaderBaseDirective<DataTexture> {\n  protected host = inject(ThDataTexture, { host: true });\n  protected service = inject(UltraHDRLoaderService);\n}\n","import { Directive, Injectable, Pipe, PipeTransform, inject } from '@angular/core';\n\nimport { PLYLoader } from 'three/examples/jsm/loaders/PLYLoader.js';\nimport { ThAsyncLoaderBaseDirective, ThAsyncLoaderBasePipe, ThAsyncLoaderService } from './ThAsyncLoaderBase';\nimport { BufferGeometry } from 'three';\nimport { ThBufferGeometry } from '../generated';\nimport { isObserved } from '../util';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PLYLoaderService extends ThAsyncLoaderService<BufferGeometry> {\n  public clazz = PLYLoader;\n}\n\n@Pipe({\n  name: 'loadPLY',\n  pure: true,\n})\nexport class ThPLYLoaderPipe extends ThAsyncLoaderBasePipe<BufferGeometry> implements PipeTransform {\n  protected service = inject(PLYLoaderService);\n}\n\n@Directive({\n  selector: '[loadPLY]',\n})\nexport class ThPLYLoaderDirective extends ThAsyncLoaderBaseDirective<BufferGeometry> {\n  protected injectHost() {\n    return inject(ThBufferGeometry, { host: true });\n  }\n\n  protected service = inject(PLYLoaderService);\n\n  protected getRefFromResponse(response: BufferGeometry) {\n    response.computeVertexNormals();\n    return response;\n  }\n\n  protected async load() {\n    if (!this.initialized) {\n      return;\n    }\n\n    if (this._url === undefined) {\n      throw new Error('missing url');\n    }\n\n    const url = this._url;\n\n    const onProgress = isObserved(this.onProgress$)\n      ? (progress: ProgressEvent<EventTarget>) => {\n          this.onProgress$?.next(progress);\n        }\n      : undefined;\n\n    const result = await this.zone.runOutsideAngular(() => this.service.load(url, onProgress));\n\n    // add the new object to the parent and\n    // emit a loaded event directly on the three.js object and on objRef$\n    this._host.objRef = this.getRefFromResponse(result);\n\n    if (this.onLoaded$ && result !== undefined) {\n      this.onLoaded$?.next(result);\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'bind',\n})\nexport class BindPipe implements PipeTransform {\n  transform(methodToBind: (...anyArgs: unknown[]) => unknown, instance: unknown) {\n    return methodToBind.bind(instance);\n  }\n}\n","/**\n * The following code is ported from pmndrs/drei and adapted to work with Angular and ngx-three\n * Many thanks to pmndrs/drei at its contributors!\n */\n\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport {\n  Camera,\n  DoubleSide,\n  Matrix4,\n  Object3D,\n  OrthographicCamera,\n  PerspectiveCamera,\n  Raycaster,\n  Vector2,\n  Vector3,\n} from 'three';\nimport { RAYCASTER } from '../../events/raycaster.service';\nimport { ThGroup, ThObject3D } from '../../generated';\nimport { NgChanges } from '../../util';\nimport { ThView } from '../../ThView';\nimport { NgTemplateOutlet } from '@angular/common';\n\nconst v1 = new Vector3();\nconst v2 = new Vector3();\nconst v3 = new Vector3();\n\nfunction defaultCalculatePosition(el: Object3D, camera: Camera, size: { width: number; height: number }) {\n  const objectPos = v1.setFromMatrixPosition(el.matrixWorld);\n  objectPos.project(camera);\n  const widthHalf = size.width / 2;\n  const heightHalf = size.height / 2;\n  return [objectPos.x * widthHalf + widthHalf, -(objectPos.y * heightHalf) + heightHalf];\n}\n\nexport type CalculatePosition = typeof defaultCalculatePosition;\n\nfunction isObjectBehindCamera(el: Object3D, camera: Camera) {\n  const objectPos = v1.setFromMatrixPosition(el.matrixWorld);\n  const cameraPos = v2.setFromMatrixPosition(camera.matrixWorld);\n  const deltaCamObj = objectPos.sub(cameraPos);\n  const camDir = camera.getWorldDirection(v3);\n  return deltaCamObj.angleTo(camDir) > Math.PI / 2;\n}\n\nfunction isObjectVisible(el: Object3D, camera: Camera, raycaster: Raycaster, occlude: Object3D[]) {\n  const elPos = v1.setFromMatrixPosition(el.matrixWorld);\n  const screenPos = elPos.clone();\n  screenPos.project(camera);\n  raycaster.setFromCamera(screenPos as unknown as Vector2, camera);\n  const intersects = raycaster.intersectObjects(occlude, true);\n  if (intersects.length) {\n    const intersectionDistance = intersects[0].distance;\n    const pointDistance = elPos.distanceTo(raycaster.ray.origin);\n    return pointDistance < intersectionDistance;\n  }\n  return true;\n}\n\nfunction objectScale(el: Object3D, camera: Camera) {\n  if (camera instanceof OrthographicCamera) {\n    return camera.zoom;\n  } else if (camera instanceof PerspectiveCamera) {\n    const objectPos = v1.setFromMatrixPosition(el.matrixWorld);\n    const cameraPos = v2.setFromMatrixPosition(camera.matrixWorld);\n    const vFOV = (camera.fov * Math.PI) / 180;\n    const dist = objectPos.distanceTo(cameraPos);\n    const scaleFOV = 2 * Math.tan(vFOV / 2) * dist;\n    return 1 / scaleFOV;\n  } else {\n    return 1;\n  }\n}\n\nfunction objectZIndex(el: Object3D, camera: Camera, zIndexRange: Array<number>) {\n  if (camera instanceof PerspectiveCamera || camera instanceof OrthographicCamera) {\n    const objectPos = v1.setFromMatrixPosition(el.matrixWorld);\n    const cameraPos = v2.setFromMatrixPosition(camera.matrixWorld);\n    const dist = objectPos.distanceTo(cameraPos);\n    const A = (zIndexRange[1] - zIndexRange[0]) / (camera.far - camera.near);\n    const B = zIndexRange[1] - A * camera.far;\n    return Math.round(A * dist + B);\n  }\n  return undefined;\n}\n\nconst epsilon = (value: number) => (Math.abs(value) < 1e-10 ? 0 : value);\n\nfunction getCSSMatrix(matrix: Matrix4, multipliers: number[], prepend = '') {\n  let matrix3d = 'matrix3d(';\n  for (let i = 0; i !== 16; i++) {\n    matrix3d += epsilon(multipliers[i] * matrix.elements[i]) + (i !== 15 ? ',' : ')');\n  }\n  return prepend + matrix3d;\n}\n\nconst getCameraCSSMatrix = (\n  (multipliers: number[]) => (matrix: Matrix4) =>\n    getCSSMatrix(matrix, multipliers)\n)([1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1]);\n\nconst getObjectCSSMatrix = (\n  (scaleMultipliers: (n: number) => number[]) => (matrix: Matrix4, factor: number) =>\n    getCSSMatrix(matrix, scaleMultipliers(factor), 'translate(-50%,-50%)')\n)((f: number) => [1 / f, 1 / f, 1 / f, 1, -1 / f, -1 / f, -1 / f, -1, 1 / f, 1 / f, 1 / f, 1, 1, 1, 1, 1]);\n\ntype PointerEventsProperties =\n  | 'auto'\n  | 'none'\n  | 'visiblePainted'\n  | 'visibleFill'\n  | 'visibleStroke'\n  | 'visible'\n  | 'painted'\n  | 'fill'\n  | 'stroke'\n  | 'all'\n  | 'inherit';\n\n/**\n * A port of the pmndrs/drei Html component\n *\n * Add Html content to any three.js object3d node\n */\n@Component({\n  selector: 'th-html',\n  templateUrl: './html.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgTemplateOutlet],\n})\nexport class HtmlComponent extends ThGroup implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n  private view = inject(ThView);\n\n  // eslint-disable-next-line @typescript-eslint/naming-convention\n  protected readonly DoubleSide = DoubleSide;\n  // eslint-disable-next-line @typescript-eslint/naming-convention\n  protected readonly FRAGMENT_SHADER = FRAGMENT_SHADER;\n  // eslint-disable-next-line @typescript-eslint/naming-convention\n  protected readonly VERTEX_SHADER = VERTEX_SHADER;\n\n  @Input() prepend = false; // Project content behind the canvas (default: false)\n  @Input() center = false; // Adds a -50%/-50% css transform (default: false) [ignored in transform mode]\n  @Input() fullscreen = false; // Aligns to the upper-left corner, fills the screen (default:false) [ignored in transform mode]\n  eps = 0.001;\n  @Input() portal?: HTMLElement; // Reference to target container (default=undefined)\n  /* If set (default: undefined), children will be scaled by\n   * this factor, and also by distance to a PerspectiveCamera / zoom by a OrthographicCamera.\n   */\n  @Input() distanceFactor?: number;\n  @Input() sprite = false; // Renders as sprite, but only in transform mode (default=false)\n  @Input() transform = false; // If true, applies matrix3d transformations (default=false)\n  @Input() zIndexRange: [number, number] = [16777271, 0]; // Z-order range (default=[16777271, 0])\n\n  @Input() style?: Partial<CSSStyleDeclaration>;\n  @Input() className?: string;\n\n  // Occlusion based off work by Jerome Etienne and James Baicoianu\n  // https://www.youtube.com/watch?v=ScZcUEDGjJI\n  // as well as Joe Pea in CodePen: https://codepen.io/trusktr/pen/RjzKJx\n  @Input() occlude?: Object3D[] | ThObject3D[] | boolean;\n  @Output()\n  public onOcclude = new EventEmitter<boolean>();\n\n  /**\n   * Override default positioning function. [ignored in transform mode]\n   */\n  @Input() calculatePosition: CalculatePosition = defaultCalculatePosition;\n  @Input() as = 'div'; // Wrapping element (default: 'div')\n  @Input() wrapperClass?: string; // The className of the wrapping element (default: undefined)\n  @Input() pointerEvents: PointerEventsProperties = 'auto';\n\n  protected transformInnerStyles = this.computeInnerStyles();\n  protected styles: Record<string, any> | null = null;\n\n  private oldZoom = 0;\n  private oldPosition = [0, 0];\n  private notOccluded = true;\n\n  @ViewChild('outerRef')\n  private transformOuterRef?: ElementRef<HTMLDivElement>;\n  @ViewChild('innerRef')\n  private transformInnerRef?: ElementRef<HTMLDivElement>;\n  private el?: HTMLElement;\n  private target?: HTMLElement | null;\n  private frameSubscription?: Subscription;\n  private raycaster = inject(RAYCASTER);\n\n  public ngOnInit(): void {\n    super.ngOnInit();\n    this.styles = this.computeStyles();\n  }\n\n  public ngAfterViewInit() {\n    this.el = document.createElement(this.as);\n    this.frameSubscription = this.view.onRender.subscribe(() => this.onFrame());\n    if (this.transformOuterRef) {\n      this.el.appendChild(this.transformOuterRef.nativeElement);\n    }\n    if (this.el && !this.target) {\n      this.appendElement(this.el);\n    }\n  }\n\n  protected onResize() {\n    this.styles = this.computeStyles();\n  }\n\n  public ngOnChanges(changes: NgChanges<HtmlComponent>): void {\n    super.ngOnChanges(changes);\n    /*\n    if(this.el) {\n      if(changes.portal || changes.transform) {\n        this.appendElement(this.el);\n      }\n\n      if(changes.wrapperClass) {\n        this.el.className = changes.wrapperClass.currentValue ?? '';\n      }\n\n      if(changes.pointerEvents) {\n        this.transformInnerStyles = this.computeInnerStyles();\n      }\n    }\n    */\n  }\n\n  private appendElement(el: HTMLElement) {\n    if (!this.el || !this.objRef || !this.view.hostElement || !this.view.camera) {\n      return;\n    }\n    this.target = this.portal ?? this.view.hostElement.nativeElement;\n    this.view.scene?.objRef?.updateMatrixWorld();\n    if (this.transform) {\n      el.style.cssText = 'position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;';\n    } else {\n      const vec = this.calculatePosition(this.objRef, this.view.camera.objRef as Camera, this.getSize());\n      el.style.cssText = `position:absolute;top:0;left:0;transform:translate3d(${vec[0]}px,${vec[1]}px,0);transform-origin:0 0;`;\n    }\n    if (this.target) {\n      if (this.prepend) {\n        this.target.prepend(el);\n      } else {\n        this.target.appendChild(el);\n      }\n    }\n  }\n\n  public onFrame() {\n    const camera = this.view.camera?.objRef as PerspectiveCamera | OrthographicCamera | undefined;\n    const scene = this.view.scene?.objRef;\n    const group = this._objRef;\n    const size = this.getSize();\n    if (!camera || !group || !scene || !this.el) {\n      return;\n    }\n\n    camera.updateMatrixWorld();\n    group.updateWorldMatrix(true, false);\n    const vec = this.transform ? this.oldPosition : this.calculatePosition(group, camera, size);\n\n    if (\n      this.transform ||\n      Math.abs(this.oldZoom - camera.zoom) > this.eps ||\n      Math.abs(this.oldPosition[0] - vec[0]) > this.eps ||\n      Math.abs(this.oldPosition[1] - vec[1]) > this.eps\n    ) {\n      const isBehindCamera = isObjectBehindCamera(group, camera);\n      let raytraceTarget: null | undefined | boolean | Object3D[] = false;\n      if (typeof this.occlude === 'boolean') {\n        if (this.occlude === true) {\n          raytraceTarget = [scene];\n        }\n      } else if (Array.isArray(this.occlude)) {\n        raytraceTarget = this.occlude.map((item) => (item as Partial<ThObject3D>).objRef ?? item) as Object3D[];\n      }\n\n      const previouslyVisible = this.notOccluded;\n      if (raytraceTarget) {\n        this.notOccluded = !isBehindCamera && isObjectVisible(group, camera, this.raycaster, raytraceTarget);\n      } else {\n        this.notOccluded = !isBehindCamera;\n      }\n\n      if (previouslyVisible !== this.notOccluded) {\n        if (this.onOcclude.length > 0) {\n          this.onOcclude.next(!this.notOccluded);\n        } else {\n          this.el.style.display = this.notOccluded ? 'block' : 'none';\n        }\n      }\n\n      this.el.style.zIndex = `${objectZIndex(group, camera, this.zIndexRange)}`;\n      if (this.transform) {\n        const [widthHalf, heightHalf] = [size.width / 2, size.height / 2];\n        const fov = camera.projectionMatrix.elements[5] * heightHalf;\n        const { isOrthographicCamera, top, left, bottom, right } = camera as OrthographicCamera;\n        const cameraMatrix = getCameraCSSMatrix(camera.matrixWorldInverse);\n        const cameraTransform = isOrthographicCamera\n          ? `scale(${fov})translate(${epsilon(-(right + left) / 2)}px,${epsilon((top + bottom) / 2)}px)`\n          : `translateZ(${fov}px)`;\n        let matrix = group.matrixWorld;\n        if (this.sprite) {\n          matrix = camera.matrixWorldInverse.clone().transpose().copyPosition(matrix).scale(group.scale);\n          matrix.elements[3] = matrix.elements[7] = matrix.elements[11] = 0;\n          matrix.elements[15] = 1;\n        }\n        this.el.style.width = size.width + 'px';\n        this.el.style.height = size.height + 'px';\n        this.el.style.perspective = isOrthographicCamera ? '' : `${fov}px`;\n        if (this.transformOuterRef && this.transformInnerRef) {\n          // eslint-disable-next-line max-len\n          this.transformOuterRef.nativeElement.style.transform = `${cameraTransform}${cameraMatrix}translate(${widthHalf}px,${heightHalf}px)`;\n          this.transformInnerRef.nativeElement.style.transform = getObjectCSSMatrix(\n            matrix,\n            1 / ((this.distanceFactor || 10) / 400),\n          );\n        }\n      } else {\n        const scale = this.distanceFactor === undefined ? 1 : objectScale(group, camera) * this.distanceFactor;\n        this.el.style.transform = `translate3d(${vec[0]}px,${vec[1]}px,0) scale(${scale})`;\n      }\n      this.oldPosition = vec;\n      this.oldZoom = camera.zoom;\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.el?.remove();\n    this.frameSubscription?.unsubscribe();\n  }\n\n  private computeStyles() {\n    const size = this.getSize();\n    if (this.transform) {\n      return {\n        position: 'absolute',\n        top: 0,\n        left: 0,\n        width: size.width + 'px',\n        height: size.height + 'px',\n        transformStyle: 'preserve-3d',\n        pointerEvents: 'none',\n      };\n    } else {\n      return {\n        position: 'absolute',\n        transform: this.center ? 'translate3d(-50%,-50%,0)' : 'none',\n        ...(this.fullscreen && {\n          top: -size.height / 2 + 'px',\n          left: -size.width / 2 + 'px',\n          width: size.width + 'px',\n          height: size.height + 'px',\n        }),\n        ...this.style,\n      };\n    }\n  }\n\n  private computeInnerStyles() {\n    return { position: 'absolute', pointerEvents: this.pointerEvents };\n  }\n\n  private getSize() {\n    return this.view.viewPort ?? this.view.hostElement.nativeElement.getBoundingClientRect() ?? { width: 0, height: 0 };\n  }\n}\n\nexport const VERTEX_SHADER = /* glsl */ `\n/*\n  This shader is from the THREE's SpriteMaterial.\n  We need to turn the backing plane into a Sprite\n  (make it always face the camera) if \"transfrom\" \n  is false. \n*/\n#include <common>\nvoid main() {\n  vec2 center = vec2(0., 1.);\n  float rotation = 0.0;\n  \n  // This is somewhat arbitrary, but it seems to work well\n  // Need to figure out how to derive this dynamically if it even matters\n  float size = 0.03;\n  vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n  vec2 scale;\n  scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n  scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n  bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n  if ( isPerspective ) scale *= - mvPosition.z;\n  vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size;\n  vec2 rotatedPosition;\n  rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n  rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n  mvPosition.xy += rotatedPosition;\n  gl_Position = projectionMatrix * mvPosition;\n}\n`;\n\nexport const FRAGMENT_SHADER = /* glsl */ `\nvoid main() {\n  gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n}\n`;\n","@if (transform) {\n  <div [style]=\"styles\" #outerRef (onResize)=\"onResize()\">\n    <div #innerRef [style]=\"transformInnerStyles\">\n      <div [style]=\"style\" [className]=\"className\">\n        <ng-container *ngTemplateOutlet=\"tempOutlet\"></ng-container>\n      </div>\n    </div>\n  </div>\n} @else {\n  <div [style]=\"styles\" [className]=\"className\" #outerRef>\n    <ng-container *ngTemplateOutlet=\"tempOutlet\"></ng-container>\n  </div>\n}\n\n<ng-template #tempOutlet>\n  <ng-content></ng-content>\n</ng-template>\n","import { Directive, Input, OnDestroy, inject } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Object3D } from 'three';\nimport { ThObject3D } from '../generated';\nimport { createLazyObject3DProxy, isLazyObject3dProxy } from '../loaders/LazyObject3dProxy';\n\n@Directive({\n  selector: '[refById]',\n})\nexport class RefByIdDirective implements OnDestroy {\n  private host = inject(ThObject3D, { self: true });\n  private parent = inject(ThObject3D, { skipSelf: true });\n\n  protected subscription?: Subscription;\n  protected parentObj?: Object3D;\n  protected id?: string;\n  constructor() {\n    this.host.autoAddToParent = false;\n    this.host.autoDispose = false;\n    this.host.objRef = createLazyObject3DProxy();\n  }\n\n  @Input()\n  set refById(id: string | undefined) {\n    this.id = id;\n    this.subscription?.unsubscribe();\n    this.subscription = this.parent.objRef$.subscribe((obj) => {\n      this.parentObj = obj;\n      this.applyRef();\n    });\n  }\n\n  applyRef() {\n    if (!this.parentObj || this.id === undefined) {\n      return;\n    }\n\n    const ref = this.findById(this.parentObj, this.id);\n    if (ref) {\n      this.setRef(this.host as ThObject3D, ref);\n    }\n  }\n\n  protected findById(parentObj: Object3D, id: string): Object3D | undefined {\n    if ((parentObj.name ?? parentObj.uuid) === id) {\n      return parentObj;\n    }\n\n    for (const child of parentObj.children) {\n      const object = this.findById(child, id);\n      if (object !== undefined) {\n        return object;\n      }\n    }\n    return undefined;\n  }\n\n  protected setRef(host: ThObject3D, ref: Object3D) {\n    const objRef = host.objRef;\n    if (!objRef) {\n      return;\n    }\n    if (isLazyObject3dProxy(objRef)) {\n      objRef.objRef = ref;\n      host.objRef = objRef;\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.subscription?.unsubscribe();\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Plane, Vector3 } from 'three';\n\n/**\n * creates a plane from a normal vector3 and a constant:\n * https://threejs.org/docs/#api/en/math/Plane\n */\n@Pipe({\n  name: 'plane',\n})\nexport class PlanePipe implements PipeTransform {\n  transform(normal: [number, number?, number?], constant?: number) {\n    return new Plane(new Vector3(...normal), constant);\n  }\n}\n","import { Directive, OnDestroy, inject, Input, OnChanges, OnInit } from '@angular/core';\nimport { ThLOD, ThObject3D } from '../generated';\n\n@Directive({\n  selector: '[lodLevel]',\n})\nexport class LODLevelDirective implements OnInit, OnChanges, OnDestroy {\n  lod = inject(ThLOD, { skipSelf: true });\n  target = inject(ThObject3D, { self: true });\n\n  @Input()\n  lodLevel?: { distance?: number; hysteresis?: number };\n\n  ngOnInit(): void {\n    if (!this.lodLevel) {\n      this.setLevel(); // Make sure setLevel is called even when the component has no input.\n    }\n  }\n\n  ngOnChanges(): void {\n    this.setLevel();\n  }\n\n  ngOnDestroy(): void {\n    this.removeLevel();\n  }\n\n  setLevel() {\n    const target = this.target.objRef;\n    const lod = this.lod.objRef;\n    if (lod && target) {\n      this.removeLevel();\n      lod.addLevel(target, this.lodLevel?.distance, this.lodLevel?.hysteresis);\n    }\n  }\n\n  removeLevel() {\n    const target = this.target.objRef;\n    const lod = this.lod.objRef;\n    if (lod && target) {\n      const previous = lod.levels.find((l) => l.object === target);\n      if (previous) {\n        lod.removeLevel(previous.distance);\n      }\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { RaycasterEventDirective } from './events/raycaster.events.directive';\nimport { NgxThreeGeneratedModule } from './generated/ngx-three-generated.module';\nimport { ThDDSLoaderDirective, ThDDSLoaderPipe } from './loaders/compressed-texture/ThDDSLoader';\nimport { ThKTX2LoaderDirective, ThKTX2LoaderPipe } from './loaders/compressed-texture/ThKTX2Loader';\nimport { ThKTXLoaderDirective, ThKTXLoaderPipe } from './loaders/compressed-texture/ThKTXLoader';\nimport { ThPVRLoaderDirective, ThPVRLoaderPipe } from './loaders/compressed-texture/ThPVRLoader';\nimport { ThEXRLoaderDirective, ThEXRLoaderPipe } from './loaders/data-texture/ThEXRLoader';\nimport { ThRGBELoaderDirective, ThRGBELoaderPipe } from './loaders/data-texture/ThRGBELoader';\nimport { ThTGALoaderDirective, ThTGALoaderPipe } from './loaders/data-texture/ThTGALoader';\nimport { ThCubeTextureLoaderDirective, ThCubeTextureLoaderPipe } from './loaders/ThCubeTextureLoader';\nimport { ThGLTFLoaderDirective, ThGLTFLoaderPipe } from './loaders/ThGLTFLoader';\nimport { ThTextureLoaderDirective, ThTextureLoaderPipe } from './loaders/ThTextureLoader';\nimport { ClonePipe } from './pipes/clone.pipe';\nimport { ColorPipe } from './pipes/color.pipe';\nimport { FogPipe } from './pipes/fog.pipe';\nimport { Vector2Pipe, Vector3Pipe, Vector4Pipe } from './pipes/vector.pipe';\nimport { ThRenderDirective } from './renderer/th-render.directive';\nimport { StatsDirective } from './stats/stats.directive';\nimport { ThObjLoaderDirective, ThObjLoaderPipe } from './loaders/ThOBJLoader';\nimport { ThCanvas } from './ThCanvas';\nimport { ThMaterialBase } from './ThMaterialBase';\nimport { ThObjectBase } from './ThObjectBase';\nimport { ThView } from './ThView';\nimport { ThWrapperBase } from './ThWrapperBase';\nimport { ThFBXLoaderDirective, ThFBXLoaderPipe } from './loaders/ThFBXLoader';\nimport { ThUltraHDRLoaderDirective, ThUltraHDRLoaderPipe } from './loaders/data-texture/ThUltraHDRLoader';\nimport { ThPLYLoaderDirective, ThPLYLoaderPipe } from './loaders/ThPLYLoader';\nimport { BindPipe } from './pipes/bind.pipe';\nimport { HtmlComponent } from './extra/web/html.component';\nimport { CommonModule } from '@angular/common';\nimport { RefByIdDirective } from './directives/ref-by-id.directive';\nimport { PlanePipe } from './pipes/plane.pipe';\nimport { RendererProviderDirective } from './renderer/renderer-providers';\nimport { LODLevelDirective } from './directives/lod-level.directive';\n\n@NgModule({\n  imports: [\n    ThCanvas,\n    ThView,\n    ThObjectBase,\n    ThMaterialBase,\n    ThWrapperBase,\n    ThGLTFLoaderDirective,\n    ThGLTFLoaderPipe,\n    ThObjLoaderPipe,\n    ThObjLoaderDirective,\n    ThFBXLoaderDirective,\n    ThFBXLoaderPipe,\n    ThPLYLoaderDirective,\n    ThPLYLoaderPipe,\n    RaycasterEventDirective,\n    ColorPipe,\n    Vector2Pipe,\n    Vector3Pipe,\n    Vector4Pipe,\n    ClonePipe,\n    FogPipe,\n    BindPipe,\n    PlanePipe,\n    StatsDirective,\n    ThRenderDirective,\n    // texture loaders\n    ThTextureLoaderDirective,\n    ThTextureLoaderPipe,\n    ThCubeTextureLoaderDirective,\n    ThCubeTextureLoaderPipe,\n    // compressed texture loaders\n    ThDDSLoaderDirective,\n    ThDDSLoaderPipe,\n    ThKTXLoaderDirective,\n    ThKTXLoaderPipe,\n    ThKTX2LoaderDirective,\n    ThKTX2LoaderPipe,\n    ThPVRLoaderDirective,\n    ThPVRLoaderPipe,\n    // data texture loaders\n    ThEXRLoaderDirective,\n    ThEXRLoaderPipe,\n    ThRGBELoaderDirective,\n    ThRGBELoaderPipe,\n    ThTGALoaderDirective,\n    ThTGALoaderPipe,\n    ThUltraHDRLoaderDirective,\n    ThUltraHDRLoaderPipe,\n    // directives\n    RefByIdDirective,\n    RendererProviderDirective,\n    LODLevelDirective,\n    //extras\n    HtmlComponent,\n    NgxThreeGeneratedModule,\n    CommonModule,\n  ],\n  exports: [\n    NgxThreeGeneratedModule,\n    ThCanvas,\n    ThView,\n    ThGLTFLoaderDirective,\n    ThGLTFLoaderPipe,\n    ThObjLoaderDirective,\n    ThObjLoaderPipe,\n    ThFBXLoaderDirective,\n    ThFBXLoaderPipe,\n    ThPLYLoaderDirective,\n    ThPLYLoaderPipe,\n    RaycasterEventDirective,\n    ColorPipe,\n    Vector2Pipe,\n    Vector3Pipe,\n    Vector4Pipe,\n    ClonePipe,\n    FogPipe,\n    BindPipe,\n    PlanePipe,\n    ThRenderDirective,\n    StatsDirective,\n    // texture loaders\n    ThTextureLoaderDirective,\n    ThTextureLoaderPipe,\n    ThCubeTextureLoaderDirective,\n    ThCubeTextureLoaderPipe,\n    // compressed texture loaders\n    ThDDSLoaderDirective,\n    ThDDSLoaderPipe,\n    ThKTXLoaderDirective,\n    ThKTXLoaderPipe,\n    ThKTX2LoaderDirective,\n    ThKTX2LoaderPipe,\n    ThPVRLoaderDirective,\n    ThPVRLoaderPipe,\n    // data texture loaders\n    ThEXRLoaderDirective,\n    ThEXRLoaderPipe,\n    ThRGBELoaderDirective,\n    ThRGBELoaderPipe,\n    ThTGALoaderDirective,\n    ThTGALoaderPipe,\n    ThUltraHDRLoaderDirective,\n    ThUltraHDRLoaderPipe,\n    // directives\n    RefByIdDirective,\n    RendererProviderDirective,\n    LODLevelDirective,\n    // extra\n    HtmlComponent,\n  ],\n})\nexport class NgxThreeModule {}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { Object3D } from 'three';\nimport { ThCamera } from './generated/ThCamera';\nimport { ThObject3D } from './generated/ThObject3D';\n\nexport function createThProviderArray(cls: InstanceType<any>, baseCls: InstanceType<any>) {\n  const providers: Provider[] = [];\n  if (ThObject3D.isPrototypeOf(baseCls) || Object3D === baseCls) {\n    providers.push({ provide: ThObject3D, useExisting: forwardRef(() => cls) });\n\n    if (ThCamera.isPrototypeOf(baseCls) || ThCamera === baseCls) {\n      providers.push({ provide: ThCamera, useExisting: forwardRef(() => cls) });\n    }\n  }\n}\n\n/**\n * usage:\n *\n * @Component({\n *  providers: createObj3DProviderArray(forwardRef(() => TheComponent)))\n * })\n * export class TheComponent {\n * ...\n * }\n * @param type the Object3D derived Class to be provided\n */\nexport function createObj3DProviderArray(type: Type<any>) {\n  return [{ provide: ThObject3D, useExisting: forwardRef(() => type) }];\n}\n\nexport function createCameraProviderArray(type: Type<any>) {\n  return [\n    { provide: ThObject3D, useExisting: forwardRef(() => type) },\n    { provide: ThCamera, useExisting: forwardRef(() => type) }\n  ];\n}\n","import { BufferGeometry, InstancedMesh, Material, Matrix4, Mesh, Object3D } from 'three';\nimport * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';\n\nexport interface BakedMesh {\n  geometry: BufferGeometry;\n  material: Material;\n}\n\n// Traverse scene and bake world transforms into cloned geometries\nexport function bakeSceneMeshes(source: Object3D): BakedMesh[] {\n  const baked: BakedMesh[] = [];\n  source.updateMatrixWorld(true);\n  source.traverse((obj: any) => {\n    if (obj?.isMesh) {\n      const mesh = obj as Mesh;\n      // Skip skinned meshes for basic instancing use-case\n      if ((mesh as any).isSkinnedMesh) {\n        return;\n      }\n      const geom = mesh.geometry.clone();\n      geom.applyMatrix4(mesh.matrixWorld);\n      if (!geom.attributes.normal) {\n        geom.computeVertexNormals();\n      }\n      baked.push({ geometry: geom, material: mesh.material as Material });\n    }\n  });\n  return baked;\n}\n\n// Group baked geometries by material identity\nfunction groupByMaterial(baked: BakedMesh[]) {\n  const groups = new Map<string, { material: Material; geometries: BufferGeometry[] }>();\n  baked.forEach(({ geometry, material }) => {\n    const key: string = (material as any)?.uuid ?? material.type;\n    const g = groups.get(key);\n    if (g) {\n      g.geometries.push(geometry);\n    } else {\n      groups.set(key, { material, geometries: [geometry] });\n    }\n  });\n  return groups;\n}\n\n// Merge geometries per material using BufferGeometryUtils\nfunction mergePerMaterial(groups: Map<string, { material: Material; geometries: BufferGeometry[] }>) {\n  const result: { material: Material; geometry: BufferGeometry }[] = [];\n  for (const { material, geometries } of groups.values()) {\n    const merged = BufferGeometryUtils.mergeGeometries(geometries, false);\n    if (!merged) {\n      // Fallback: if merge fails, use first geometry\n      result.push({ material, geometry: geometries[0] });\n    } else {\n      result.push({ material, geometry: merged });\n    }\n  }\n  return result;\n}\n\n// Build instanced meshes representing N copies of the baked scene\nexport function buildInstancedScene(source: Object3D, instanceCount: number): Object3D {\n  const baked = bakeSceneMeshes(source);\n  const groups = groupByMaterial(baked);\n  const merged = mergePerMaterial(groups);\n\n  const root = new Object3D();\n  merged.forEach(({ material, geometry }) => {\n    const inst = new InstancedMesh(geometry, material, instanceCount);\n    // Initialize identity matrices; caller will update later.\n    const identity = new Matrix4();\n    for (let i = 0; i < instanceCount; i++) {\n      inst.setMatrixAt(i, identity);\n    }\n    inst.instanceMatrix.needsUpdate = true;\n    root.add(inst);\n  });\n  return root;\n}\n\n// Apply an array of matrices to every InstancedMesh in the instanced scene.\n// Length of matrices must be >= instanceCount of each mesh; extra entries are ignored.\nexport function applyInstanceMatrices(instancedScene: Object3D, matrices: Matrix4[]): void {\n  instancedScene.traverse((child: any) => {\n    if (child instanceof InstancedMesh) {\n      const count = child.count;\n      for (let i = 0; i < count && i < matrices.length; i++) {\n        child.setMatrixAt(i, matrices[i]);\n      }\n      child.instanceMatrix.needsUpdate = true;\n    }\n  });\n}\n\n// Update a single instance matrix across all InstancedMeshes (useful if all share same instance indexing).\nexport function updateInstanceMatrix(instancedScene: Object3D, instanceIndex: number, matrix: Matrix4): void {\n  instancedScene.traverse((child: any) => {\n    if (child instanceof InstancedMesh) {\n      if (instanceIndex >= 0 && instanceIndex < child.count) {\n        child.setMatrixAt(instanceIndex, matrix);\n        child.instanceMatrix.needsUpdate = true;\n      }\n    }\n  });\n}\n\n// Helper to extract matrices (e.g., for interpolation or debugging)\nexport function readInstanceMatrices(instancedScene: Object3D): Matrix4[][] {\n  const all: Matrix4[][] = [];\n  instancedScene.traverse((child: any) => {\n    if (child instanceof InstancedMesh) {\n      const arr: Matrix4[] = [];\n      const m = new Matrix4();\n      for (let i = 0; i < child.count; i++) {\n        child.getMatrixAt(i, m);\n        arr.push(m.clone());\n      }\n      all.push(arr);\n    }\n  });\n  return all;\n}\n","/*\n * Public API Surface of ngx-three\n */\n\nexport * from './lib/ngx-three.module';\n\n// renderer specific functionality\nexport * from './lib/ThCanvas';\nexport * from './lib/ThEngine.service';\nexport * from './lib/ThView';\nexport * from './lib/renderer/renderer-providers';\nexport * from './lib/renderer/th-animation-loop.service';\nexport * from './lib/renderer/th-render.directive';\n\n// loaders\nexport * from './lib/loaders/LazyObject3dProxy';\nexport * from './lib/loaders/ThAsyncLoaderBase';\nexport * from './lib/loaders/ThCallbackLoaderBase';\nexport * from './lib/loaders/ThGLTFLoader';\nexport * from './lib/loaders/ThOBJLoader';\nexport * from './lib/loaders/ThFBXLoader';\n\n// generated\nexport * from './lib/generated';\nexport * from './lib/generated/ngx-three-generated.module';\n\nexport * from './lib/events/raycaster.events.directive';\n\n// component helpers\n\nexport * from './lib/component.helpers';\n\n// utility pipes and directives\n\nexport * from './lib/pipes/clone.pipe';\nexport * from './lib/pipes/color.pipe';\nexport * from './lib/pipes/vector.pipe';\nexport * from './lib/pipes/fog.pipe';\nexport * from './lib/pipes/bind.pipe';\nexport * from './lib/pipes/plane.pipe';\n\nexport * from './lib/stats/stats.directive';\n\n// texture loaders\nexport * from './lib/loaders/ThTextureLoader';\nexport * from './lib/loaders/data-texture/ThTGALoader';\nexport * from './lib/loaders/ThCubeTextureLoader';\nexport * from './lib/loaders/compressed-texture/ThDDSLoader';\nexport * from './lib/loaders/compressed-texture/ThKTX2Loader';\nexport * from './lib/loaders/compressed-texture/ThKTXLoader';\nexport * from './lib/loaders/compressed-texture/ThPVRLoader';\nexport * from './lib/loaders/compressed-texture/ThDRACOLoader';\nexport * from './lib/loaders/data-texture/ThEXRLoader';\nexport * from './lib/loaders/data-texture/ThRGBELoader';\nexport * from './lib/loaders/data-texture/ThTGALoader';\nexport * from './lib/loaders/data-texture/ThUltraHDRLoader';\nexport * from './lib/loaders/ThPLYLoader';\n\nexport * from './lib/directives/ref-by-id.directive';\nexport * from './lib/directives/lod-level.directive';\n\n// extras\nexport * from './lib/directives/lod-level.directive';\n\n// web\nexport * from './lib/extra/web/html.component';\n\n//utils\nexport * from './lib/utils/instanced-scene-utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}