{"version":3,"file":"angular-three-core-meshes.mjs","sources":["../../../../libs/core/meshes/src/mesh/mesh.ts","../../../../libs/core/meshes/src/instanced-mesh/instanced-mesh.ts","../../../../libs/core/meshes/src/skinned-mesh/skinned-mesh.ts","../../../../libs/core/meshes/src/angular-three-core-meshes.ts"],"sourcesContent":["import { AnyConstructor, NgtCommonMesh, provideCommonMeshRef, provideNgtCommonMesh } from '@angular-three/core';\nimport { ChangeDetectionStrategy, Component, NgModule } from '@angular/core';\nimport * as THREE from 'three';\n\n@Component({\n  selector: 'ngt-mesh',\n  standalone: true,\n  template: '<ng-content></ng-content>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtCommonMesh(NgtMesh), provideCommonMeshRef(NgtMesh)],\n})\nexport class NgtMesh extends NgtCommonMesh {\n  override get meshType(): AnyConstructor<THREE.Mesh> {\n    return THREE.Mesh;\n  }\n}\n\n@NgModule({\n  imports: [NgtMesh],\n  exports: [NgtMesh],\n})\nexport class NgtMeshModule {}\n","import {\n  AnyConstructor,\n  coerceNumberProperty,\n  NgtCommonMesh,\n  NumberInput,\n  provideCommonMeshRef,\n  provideNgtCommonMesh,\n} from '@angular-three/core';\nimport { ChangeDetectionStrategy, Component, Input, NgModule } from '@angular/core';\nimport * as THREE from 'three';\n\n@Component({\n  selector: 'ngt-instanced-mesh[count]',\n  standalone: true,\n  template: '<ng-content></ng-content>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtCommonMesh(NgtInstancedMesh), provideCommonMeshRef(NgtInstancedMesh)],\n})\nexport class NgtInstancedMesh extends NgtCommonMesh<THREE.InstancedMesh> {\n  @Input() set count(count: NumberInput) {\n    this.set({ count: coerceNumberProperty(count) });\n  }\n\n  override get meshType(): AnyConstructor<THREE.InstancedMesh> {\n    return THREE.InstancedMesh;\n  }\n\n  protected override postPrepare(instancedMesh: THREE.InstancedMesh) {\n    instancedMesh.instanceMatrix.setUsage(THREE.DynamicDrawUsage);\n  }\n\n  protected override get optionFields(): Record<string, boolean> {\n    return { ...super.optionFields, count: false };\n  }\n\n  protected override get argsKeys(): string[] {\n    return ['count'];\n  }\n}\n\n@NgModule({\n  imports: [NgtInstancedMesh],\n  exports: [NgtInstancedMesh],\n})\nexport class NgtInstancedMeshModule {}\n","import {\n  AnyConstructor,\n  AnyFunction,\n  BooleanInput,\n  coerceBooleanProperty,\n  coerceNumberProperty,\n  injectBoneHostRef,\n  injectSkeletonHostRef,\n  injectSkinnedMeshHostRef,\n  make,\n  NgtCommonMesh,\n  NgtInstance,\n  NgtInstanceState,\n  NgtMatrix4,\n  NgtObject,\n  NumberInput,\n  provideCommonMeshRef,\n  provideInstanceRef,\n  provideNgtCommonMesh,\n  provideNgtInstance,\n  provideNgtObject,\n  provideObjectRef,\n  Ref,\n  tapEffect,\n} from '@angular-three/core';\nimport { ChangeDetectionStrategy, Component, inject, Input, NgModule } from '@angular/core';\nimport { pipe, withLatestFrom } from 'rxjs';\nimport * as THREE from 'three';\n\n@Component({\n  selector: 'ngt-skinned-mesh',\n  standalone: true,\n  template: '<ng-content></ng-content>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtCommonMesh(NgtSkinnedMesh), provideCommonMeshRef(NgtSkinnedMesh)],\n})\nexport class NgtSkinnedMesh extends NgtCommonMesh<THREE.SkinnedMesh> {\n  @Input() set skeleton(skeleton: THREE.Skeleton) {\n    this.set({ skeleton });\n  }\n\n  @Input() set useVertexTexture(useVertexTexture: BooleanInput) {\n    this.set({ useVertexTexture: coerceBooleanProperty(useVertexTexture) });\n  }\n\n  @Input() set bindMatrix(bindMatrix: NgtMatrix4) {\n    this.set({ bindMatrix: make(THREE.Matrix4, bindMatrix) });\n  }\n\n  @Input() set bindMatrixInverse(bindMatrixInverse: NgtMatrix4) {\n    this.set({\n      bindMatrixInverse: make(THREE.Matrix4, bindMatrixInverse),\n    });\n  }\n\n  @Input() set bindMode(bindMode: string) {\n    this.set({ bindMode });\n  }\n\n  override get meshType(): AnyConstructor<THREE.SkinnedMesh> {\n    return THREE.SkinnedMesh;\n  }\n\n  protected override get argsKeys(): string[] {\n    return ['useVertexTexture'];\n  }\n\n  protected override get optionFields(): Record<string, boolean> {\n    return {\n      ...super.optionFields,\n      bindMatrix: true,\n      bindMatrixInverse: true,\n      bindMode: true,\n      skeleton: true,\n    };\n  }\n\n  bind(skeleton: THREE.Skeleton) {\n    this.instance.value.bind(\n      skeleton,\n      this.get((s) => s['bindMatrix'])\n    );\n  }\n}\n\nexport interface NgtSkeletonState extends NgtInstanceState<THREE.Skeleton> {\n  bones: THREE.Bone[];\n  boneInverses: THREE.Matrix4[];\n  boneMatrices: Float32Array;\n  boneTexture: null | THREE.DataTexture;\n  boneTextureSize: number;\n  frame: number;\n}\n\n@Component({\n  selector: 'ngt-skeleton',\n  standalone: true,\n  template: '<ng-content></ng-content>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtInstance(NgtSkeleton), provideInstanceRef(NgtSkeleton)],\n})\nexport class NgtSkeleton extends NgtInstance<THREE.Skeleton, NgtSkeletonState> {\n  @Input() set args(args: ConstructorParameters<typeof THREE.Skeleton>) {\n    this.set({ instanceArgs: args });\n  }\n\n  @Input() set bones(bones: THREE.Bone[]) {\n    this.set({ bones });\n  }\n\n  @Input() set boneInverses(boneInverses: NgtMatrix4[]) {\n    this.set({\n      boneInverses: boneInverses.map((datum) => make(THREE.Matrix4, datum)),\n    });\n  }\n\n  @Input() set boneMatrices(boneMatrices: Float32Array) {\n    this.set({ boneMatrices });\n  }\n\n  @Input() set boneTexture(boneTexture: null | THREE.DataTexture) {\n    this.set({ boneTexture });\n  }\n\n  @Input() set boneTextureSize(boneTextureSize: NumberInput) {\n    this.set({ boneTextureSize: coerceNumberProperty(boneTextureSize) });\n  }\n\n  @Input() set frame(frame: NumberInput) {\n    this.set({ frame: coerceNumberProperty(frame) });\n  }\n\n  private skinnedMesh = inject(NgtSkinnedMesh, { optional: true });\n  protected override parentRef = (() => this.skinnedMesh?.instance) as AnyFunction<Ref>;\n  protected override parentHostRef = injectSkinnedMeshHostRef({ optional: true, skipSelf: true });\n\n  constructor() {\n    super();\n    if (this.parentHostRef && !this.parentHostRef().value.isSkinnedMesh) {\n      throw new Error('<ngt-skeleton> can only be used within <ngt-skinned-mesh>');\n    }\n  }\n\n  protected override preInit() {\n    this.set((state) => ({\n      attach: state.attach.length ? state.attach : ['skeleton'],\n      bones: state.bones || [],\n      boneInverses: state.boneInverses || [],\n      boneMatrices: state.boneMatrices || (null as unknown as Float32Array),\n      boneTexture: state.boneTexture || null,\n      boneTextureSize: state.boneTextureSize || 0,\n      frame: state.frame || -1,\n    }));\n  }\n\n  override ngOnInit() {\n    super.ngOnInit();\n    this.store.onReady(() => {\n      this.init(this.instanceArgs$);\n    });\n  }\n\n  private readonly init = this.effect<unknown[]>(\n    pipe(\n      withLatestFrom(\n        this.select(\n          this.select((s) => s.bones),\n          this.select((s) => s.boneInverses),\n          (bones, boneInverses) => ({ bones, boneInverses })\n        )\n      ),\n      tapEffect(([instanceArgs, { bones, boneInverses }]) => {\n        const skeletonArgs = [...instanceArgs];\n\n        if (skeletonArgs.length === 0) {\n          if (bones.length) {\n            skeletonArgs[0] = bones;\n          }\n\n          if (boneInverses.length) {\n            skeletonArgs[1] = boneInverses;\n          }\n        }\n\n        const skeleton = this.prepareInstance(\n          new THREE.Skeleton(...(skeletonArgs as ConstructorParameters<typeof THREE.Skeleton>))\n        );\n\n        if (!this.skinnedMesh?.instance.value.skeleton) {\n          this.skinnedMesh?.bind(skeleton);\n        }\n\n        return () => {\n          skeleton.dispose();\n        };\n      })\n    )\n  );\n\n  protected override get optionFields(): Record<string, boolean> {\n    return {\n      ...super.optionFields,\n      bones: false,\n      boneTexture: false,\n      boneTextureSize: false,\n      boneMatrices: false,\n      boneInverses: false,\n      frame: false,\n    };\n  }\n}\n\n@Component({\n  selector: 'ngt-bone',\n  standalone: true,\n  template: '<ng-content></ng-content>',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [provideNgtObject(NgtBone), provideObjectRef(NgtBone)],\n})\nexport class NgtBone extends NgtObject<THREE.Bone> {\n  private hostBoneRef = injectBoneHostRef({ skipSelf: true, optional: true });\n  private hostSkeletonRef = injectSkeletonHostRef({ skipSelf: true, optional: true });\n  private hostSkinnedMeshRef = injectSkinnedMeshHostRef({ skipSelf: true, optional: true });\n\n  private parentBone = inject(NgtBone, { skipSelf: true, optional: true });\n  private parentSkinnedMesh = inject(NgtSkinnedMesh, { optional: true });\n  private parentSkeleton = inject(NgtSkeleton, { optional: true });\n\n  protected override parentRef = (() =>\n    this.parentBone?.instance || this.parentSkinnedMesh?.instance) as AnyFunction<Ref>;\n  protected override parentHostRef = this.hostBoneRef || this.hostSkinnedMeshRef;\n\n  protected override objectInitFn(): THREE.Bone {\n    return new THREE.Bone();\n  }\n\n  protected override postPrepare(bone: THREE.Bone) {\n    if (this.parentSkeleton) {\n      this.parentSkeleton.instance.value.bones.push(bone);\n    } else if (this.hostSkeletonRef) {\n      this.hostSkeletonRef().value.bones.push(bone);\n    }\n  }\n}\n\n@NgModule({\n  imports: [NgtSkinnedMesh, NgtSkeleton, NgtBone],\n  exports: [NgtSkinnedMesh, NgtSkeleton, NgtBone],\n})\nexport class NgtSkinnedMeshModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}