angular-three-soba 1.12.2 → 1.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/esm2020/abstractions/lib/billboard/billboard.mjs +3 -3
  2. package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +3 -3
  3. package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +3 -3
  4. package/esm2020/abstractions/lib/edges/edges.mjs +3 -3
  5. package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +6 -6
  6. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +3 -3
  7. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +6 -6
  8. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +3 -3
  9. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +3 -3
  10. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +6 -6
  11. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +3 -3
  12. package/esm2020/abstractions/lib/line/line-input.mjs +3 -3
  13. package/esm2020/abstractions/lib/line/line.mjs +3 -3
  14. package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +3 -3
  15. package/esm2020/abstractions/lib/text/text.mjs +3 -3
  16. package/esm2020/abstractions/lib/text-3d/text-3d.mjs +3 -3
  17. package/esm2020/cameras/lib/camera/camera-content.mjs +3 -3
  18. package/esm2020/cameras/lib/camera/camera.mjs +3 -3
  19. package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +3 -3
  20. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +3 -3
  21. package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +3 -3
  22. package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +3 -3
  23. package/esm2020/loaders/lib/loader/loader.mjs +3 -3
  24. package/esm2020/materials/lib/mesh-distort-material/mesh-distort-material.mjs +3 -3
  25. package/esm2020/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +3 -3
  26. package/esm2020/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +3 -3
  27. package/esm2020/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +3 -3
  28. package/esm2020/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +3 -3
  29. package/esm2020/misc/lib/animations/animations.mjs +21 -13
  30. package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +3 -3
  31. package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +3 -3
  32. package/esm2020/performance/lib/adaptive/adaptive-events.mjs +3 -3
  33. package/esm2020/performance/lib/detailed/detailed.mjs +3 -3
  34. package/esm2020/performance/lib/stats/stats.mjs +3 -3
  35. package/esm2020/shaders/index.mjs +2 -1
  36. package/esm2020/shaders/lib/star-field-material/star-field-material.mjs +32 -0
  37. package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +6 -6
  38. package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +6 -6
  39. package/esm2020/staging/lib/bounds/bounds.mjs +3 -3
  40. package/esm2020/staging/lib/camera-shake/camera-shake.mjs +3 -3
  41. package/esm2020/staging/lib/caustics/caustics.mjs +4 -4
  42. package/esm2020/staging/lib/center/center.mjs +3 -3
  43. package/esm2020/staging/lib/cloud/cloud.mjs +3 -3
  44. package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +3 -3
  45. package/esm2020/staging/lib/environment/environment-cube.mjs +3 -3
  46. package/esm2020/staging/lib/environment/environment-ground.mjs +3 -3
  47. package/esm2020/staging/lib/environment/environment-inputs.mjs +5 -5
  48. package/esm2020/staging/lib/environment/environment-map.mjs +3 -3
  49. package/esm2020/staging/lib/environment/environment-portal.mjs +3 -3
  50. package/esm2020/staging/lib/environment/environment.mjs +6 -6
  51. package/esm2020/staging/lib/float/float.mjs +3 -3
  52. package/esm2020/staging/lib/sky/sky.mjs +3 -3
  53. package/esm2020/staging/lib/sparkles/sparkles.mjs +3 -3
  54. package/esm2020/staging/lib/spot-light/shadow-mesh-input.mjs +3 -3
  55. package/esm2020/staging/lib/spot-light/spot-light-input.mjs +3 -3
  56. package/esm2020/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +3 -3
  57. package/esm2020/staging/lib/spot-light/spot-light-shadow-shader.mjs +3 -3
  58. package/esm2020/staging/lib/spot-light/spot-light-shadow.mjs +3 -3
  59. package/esm2020/staging/lib/spot-light/spot-light.mjs +3 -3
  60. package/esm2020/staging/lib/spot-light/volumetric-mesh.mjs +3 -3
  61. package/esm2020/staging/lib/stage/stage.mjs +6 -6
  62. package/esm2020/staging/lib/stars/stars.mjs +8 -40
  63. package/fesm2015/angular-three-soba-abstractions.mjs +57 -57
  64. package/fesm2015/angular-three-soba-cameras.mjs +15 -15
  65. package/fesm2015/angular-three-soba-controls.mjs +3 -3
  66. package/fesm2015/angular-three-soba-loaders.mjs +3 -3
  67. package/fesm2015/angular-three-soba-materials.mjs +15 -15
  68. package/fesm2015/angular-three-soba-misc.mjs +23 -15
  69. package/fesm2015/angular-three-soba-misc.mjs.map +1 -1
  70. package/fesm2015/angular-three-soba-performance.mjs +12 -12
  71. package/fesm2015/angular-three-soba-shaders.mjs +32 -1
  72. package/fesm2015/angular-three-soba-shaders.mjs.map +1 -1
  73. package/fesm2015/angular-three-soba-staging.mjs +93 -126
  74. package/fesm2015/angular-three-soba-staging.mjs.map +1 -1
  75. package/fesm2020/angular-three-soba-abstractions.mjs +57 -57
  76. package/fesm2020/angular-three-soba-cameras.mjs +15 -15
  77. package/fesm2020/angular-three-soba-controls.mjs +3 -3
  78. package/fesm2020/angular-three-soba-loaders.mjs +3 -3
  79. package/fesm2020/angular-three-soba-materials.mjs +15 -15
  80. package/fesm2020/angular-three-soba-misc.mjs +23 -15
  81. package/fesm2020/angular-three-soba-misc.mjs.map +1 -1
  82. package/fesm2020/angular-three-soba-performance.mjs +12 -12
  83. package/fesm2020/angular-three-soba-shaders.mjs +32 -1
  84. package/fesm2020/angular-three-soba-shaders.mjs.map +1 -1
  85. package/fesm2020/angular-three-soba-staging.mjs +93 -126
  86. package/fesm2020/angular-three-soba-staging.mjs.map +1 -1
  87. package/misc/lib/animations/animations.d.ts +2 -2
  88. package/package.json +5 -4
  89. package/plugin/package.json +2 -2
  90. package/shaders/index.d.ts +1 -0
  91. package/shaders/lib/mesh-distort-material/mesh-distort-material.d.ts +2 -2
  92. package/shaders/lib/star-field-material/star-field-material.d.ts +3 -0
  93. package/staging/lib/caustics/caustics.d.ts +3 -3
  94. package/staging/lib/spot-light/spot-light-shadow-no-shader.d.ts +1 -1
  95. package/staging/lib/spot-light/spot-light-shadow-shader.d.ts +2 -2
  96. package/staging/lib/stars/stars.d.ts +4 -4
@@ -35,8 +35,8 @@ class NgtsMeshDistortMaterial extends NgtRxStore {
35
35
  });
36
36
  }
37
37
  }
38
- NgtsMeshDistortMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsMeshDistortMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- NgtsMeshDistortMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsMeshDistortMaterial, isStandalone: true, selector: "ngts-mesh-distort-material", inputs: { materialRef: "materialRef", time: "time", distort: "distort", radius: "radius", speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
38
+ NgtsMeshDistortMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshDistortMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ NgtsMeshDistortMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsMeshDistortMaterial, isStandalone: true, selector: "ngts-mesh-distort-material", inputs: { materialRef: "materialRef", time: "time", distort: "distort", radius: "radius", speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
40
40
  <ngt-primitive
41
41
  *args="[material]"
42
42
  [ref]="materialRef"
@@ -47,7 +47,7 @@ NgtsMeshDistortMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
47
47
  attach="material"
48
48
  />
49
49
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsMeshDistortMaterial, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshDistortMaterial, decorators: [{
51
51
  type: Component,
52
52
  args: [{
53
53
  selector: 'ngts-mesh-distort-material',
@@ -307,8 +307,8 @@ class NgtsMeshReflectorMaterial extends NgtRxStore {
307
307
  }
308
308
  }
309
309
  }
310
- NgtsMeshReflectorMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsMeshReflectorMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
311
- NgtsMeshReflectorMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsMeshReflectorMaterial, isStandalone: true, selector: "ngts-mesh-reflector-material", inputs: { materialRef: "materialRef", resolution: "resolution", mixBlur: "mixBlur", mixStrength: "mixStrength", blur: "blur", mirror: "mirror", minDepthThreshold: "minDepthThreshold", maxDepthThreshold: "maxDepthThreshold", depthScale: "depthScale", depthToBlurRatioBias: "depthToBlurRatioBias", distortionMap: "distortionMap", distortion: "distortion", mixContrast: "mixContrast", reflectorOffset: "reflectorOffset" }, usesInheritance: true, ngImport: i0, template: `
310
+ NgtsMeshReflectorMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshReflectorMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
311
+ NgtsMeshReflectorMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsMeshReflectorMaterial, isStandalone: true, selector: "ngts-mesh-reflector-material", inputs: { materialRef: "materialRef", resolution: "resolution", mixBlur: "mixBlur", mixStrength: "mixStrength", blur: "blur", mirror: "mirror", minDepthThreshold: "minDepthThreshold", maxDepthThreshold: "maxDepthThreshold", depthScale: "depthScale", depthToBlurRatioBias: "depthToBlurRatioBias", distortionMap: "distortionMap", distortion: "distortion", mixContrast: "mixContrast", reflectorOffset: "reflectorOffset" }, usesInheritance: true, ngImport: i0, template: `
312
312
  <ngt-mesh-reflector-material
313
313
  ngtCompound
314
314
  attach="material"
@@ -334,7 +334,7 @@ NgtsMeshReflectorMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
334
334
  <ng-content />
335
335
  </ngt-mesh-reflector-material>
336
336
  `, isInline: true, dependencies: [{ kind: "pipe", type: NgtPush, name: "ngtPush" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
337
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsMeshReflectorMaterial, decorators: [{
337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshReflectorMaterial, decorators: [{
338
338
  type: Component,
339
339
  args: [{
340
340
  selector: 'ngts-mesh-reflector-material',
@@ -483,8 +483,8 @@ class NgtsMeshRefractionMaterial extends NgtRxStore {
483
483
  });
484
484
  }
485
485
  }
486
- NgtsMeshRefractionMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsMeshRefractionMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
487
- NgtsMeshRefractionMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsMeshRefractionMaterial, isStandalone: true, selector: "ngts-mesh-refraction-material", inputs: { materialRef: "materialRef", envMap: "envMap", bounces: "bounces", ior: "ior", fresnel: "fresnel", aberrationStrength: "aberrationStrength", color: "color", fastChroma: "fastChroma" }, usesInheritance: true, ngImport: i0, template: `
486
+ NgtsMeshRefractionMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshRefractionMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
487
+ NgtsMeshRefractionMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsMeshRefractionMaterial, isStandalone: true, selector: "ngts-mesh-refraction-material", inputs: { materialRef: "materialRef", envMap: "envMap", bounces: "bounces", ior: "ior", fresnel: "fresnel", aberrationStrength: "aberrationStrength", color: "color", fastChroma: "fastChroma" }, usesInheritance: true, ngImport: i0, template: `
488
488
  <ngt-mesh-refraction-material
489
489
  *ngIf="defines$ | ngtPush as defines"
490
490
  [ref]="materialRef"
@@ -503,7 +503,7 @@ NgtsMeshRefractionMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
503
503
  <ng-content />
504
504
  </ngt-mesh-refraction-material>
505
505
  `, isInline: true, dependencies: [{ kind: "pipe", type: NgtPush, name: "ngtPush" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsMeshRefractionMaterial, decorators: [{
506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshRefractionMaterial, decorators: [{
507
507
  type: Component,
508
508
  args: [{
509
509
  selector: 'ngts-mesh-refraction-material',
@@ -693,8 +693,8 @@ class NgtsMeshTranmissionMaterial extends NgtRxStore {
693
693
  });
694
694
  }
695
695
  }
696
- NgtsMeshTranmissionMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsMeshTranmissionMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
697
- NgtsMeshTranmissionMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsMeshTranmissionMaterial, isStandalone: true, selector: "ngts-mesh-transmission-material", inputs: { materialRef: "materialRef", transmissionSampler: "transmissionSampler", backside: "backside", backsideThickness: "backsideThickness", resolution: "resolution", backsideResolution: "backsideResolution", samples: "samples", background: "background", transmission: "transmission", thickness: "thickness", roughness: "roughness", chromaticAberration: "chromaticAberration", anisotropy: "anisotropy", distortion: "distortion", distortionScale: "distortionScale", temporalDistortion: "temporalDistortion", buffer: "buffer", time: "time" }, usesInheritance: true, ngImport: i0, template: `
696
+ NgtsMeshTranmissionMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshTranmissionMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
697
+ NgtsMeshTranmissionMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsMeshTranmissionMaterial, isStandalone: true, selector: "ngts-mesh-transmission-material", inputs: { materialRef: "materialRef", transmissionSampler: "transmissionSampler", backside: "backside", backsideThickness: "backsideThickness", resolution: "resolution", backsideResolution: "backsideResolution", samples: "samples", background: "background", transmission: "transmission", thickness: "thickness", roughness: "roughness", chromaticAberration: "chromaticAberration", anisotropy: "anisotropy", distortion: "distortion", distortionScale: "distortionScale", temporalDistortion: "temporalDistortion", buffer: "buffer", time: "time" }, usesInheritance: true, ngImport: i0, template: `
698
698
  <ngt-mesh-transmission-material
699
699
  *args="[get('samples'), get('transmissionSampler')]"
700
700
  ngtCompound
@@ -713,7 +713,7 @@ NgtsMeshTranmissionMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
713
713
  [time]="get('time')"
714
714
  />
715
715
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsMeshTranmissionMaterial, decorators: [{
716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshTranmissionMaterial, decorators: [{
717
717
  type: Component,
718
718
  args: [{
719
719
  selector: 'ngts-mesh-transmission-material',
@@ -802,8 +802,8 @@ class NgtsMeshWobbleMaterial extends NgtRxStore {
802
802
  });
803
803
  }
804
804
  }
805
- NgtsMeshWobbleMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsMeshWobbleMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
806
- NgtsMeshWobbleMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsMeshWobbleMaterial, isStandalone: true, selector: "ngts-mesh-wobble-material", inputs: { materialRef: "materialRef", time: "time", factor: "factor", speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
805
+ NgtsMeshWobbleMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshWobbleMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
806
+ NgtsMeshWobbleMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsMeshWobbleMaterial, isStandalone: true, selector: "ngts-mesh-wobble-material", inputs: { materialRef: "materialRef", time: "time", factor: "factor", speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
807
807
  <ngt-primitive
808
808
  *args="[material]"
809
809
  [ref]="materialRef"
@@ -813,7 +813,7 @@ NgtsMeshWobbleMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
813
813
  ngtCompound
814
814
  />
815
815
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
816
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsMeshWobbleMaterial, decorators: [{
816
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshWobbleMaterial, decorators: [{
817
817
  type: Component,
818
818
  args: [{
819
819
  selector: 'ngts-mesh-wobble-material',
@@ -1,11 +1,19 @@
1
1
  import { injectNgtRef, injectNgtDestroy, injectBeforeRender, NgtRxStore, NgtStore, safeDetectChanges } from 'angular-three';
2
- import { takeUntil, isObservable, of, combineLatest, map } from 'rxjs';
2
+ import { takeUntil, switchMap, map, isObservable, of, combineLatest } from 'rxjs';
3
3
  import * as THREE from 'three';
4
4
  import * as i0 from '@angular/core';
5
5
  import { inject, Directive } from '@angular/core';
6
6
 
7
- function injectNgtsAnimations(gltf$, modelSelector = (gltf) => gltf.scene) {
8
- const ref = injectNgtRef();
7
+ function injectNgtsAnimations(animations$, ref) {
8
+ let actualRef = injectNgtRef();
9
+ if (ref) {
10
+ if (ref instanceof THREE.Object3D) {
11
+ actualRef.nativeElement = ref;
12
+ }
13
+ else {
14
+ actualRef = ref;
15
+ }
16
+ }
9
17
  const mixer = new THREE.AnimationMixer(null);
10
18
  const actions = {};
11
19
  let cached = {};
@@ -16,25 +24,25 @@ function injectNgtsAnimations(gltf$, modelSelector = (gltf) => gltf.scene) {
16
24
  cached = {};
17
25
  // uncache actions
18
26
  Object.values(actions).forEach((action) => {
19
- if (ref.nativeElement) {
20
- mixer.uncacheAction(action, ref.nativeElement);
27
+ if (actualRef.nativeElement) {
28
+ mixer.uncacheAction(action, actualRef.nativeElement);
21
29
  }
22
30
  });
23
31
  // stop all actions
24
32
  mixer.stopAllAction();
25
33
  });
26
34
  injectBeforeRender(({ delta }) => mixer.update(delta));
27
- gltf$.pipe(takeUntil(destroy$)).subscribe((gltf) => {
28
- const model = modelSelector(gltf);
29
- ref.nativeElement = model;
30
- for (let i = 0; i < gltf.animations.length; i++) {
31
- const clip = gltf.animations[i];
35
+ actualRef.$.pipe(takeUntil(destroy$))
36
+ .pipe(switchMap((object) => animations$.pipe(map((animations) => [object, animations]))))
37
+ .subscribe(([object, animations]) => {
38
+ for (let i = 0; i < animations.length; i++) {
39
+ const clip = animations[i];
32
40
  names.push(clip.name);
33
41
  clips.push(clip);
34
42
  Object.defineProperty(actions, clip.name, {
35
43
  enumerable: true,
36
44
  get: () => {
37
- return cached[clip.name] || (cached[clip.name] = mixer.clipAction(clip, model));
45
+ return cached[clip.name] || (cached[clip.name] = mixer.clipAction(clip, object));
38
46
  },
39
47
  });
40
48
  if (i === 0) {
@@ -42,7 +50,7 @@ function injectNgtsAnimations(gltf$, modelSelector = (gltf) => gltf.scene) {
42
50
  }
43
51
  }
44
52
  });
45
- return { ref, actions, mixer, names, clips };
53
+ return { ref: actualRef, actions, mixer, names, clips };
46
54
  }
47
55
 
48
56
  class NgtsBakeShadows extends NgtRxStore {
@@ -60,9 +68,9 @@ class NgtsBakeShadows extends NgtRxStore {
60
68
  });
61
69
  }
62
70
  }
63
- NgtsBakeShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsBakeShadows, deps: null, target: i0.ɵɵFactoryTarget.Directive });
64
- NgtsBakeShadows.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsBakeShadows, isStandalone: true, selector: "ngts-bake-shadows", usesInheritance: true, ngImport: i0 });
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsBakeShadows, decorators: [{
71
+ NgtsBakeShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsBakeShadows, deps: null, target: i0.ɵɵFactoryTarget.Directive });
72
+ NgtsBakeShadows.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtsBakeShadows, isStandalone: true, selector: "ngts-bake-shadows", usesInheritance: true, ngImport: i0 });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsBakeShadows, decorators: [{
66
74
  type: Directive,
67
75
  args: [{ selector: 'ngts-bake-shadows', standalone: true }]
68
76
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-misc.mjs","sources":["../../../../libs/angular-three-soba/misc/src/lib/animations/animations.ts","../../../../libs/angular-three-soba/misc/src/lib/bake-shadows/bake-shadows.ts","../../../../libs/angular-three-soba/misc/src/lib/fbo/fbo.ts","../../../../libs/angular-three-soba/misc/src/lib/depth-buffer/depth-buffer.ts","../../../../libs/angular-three-soba/misc/src/angular-three-soba-misc.ts"],"sourcesContent":["import { injectBeforeRender, injectNgtDestroy, injectNgtRef, NgtInjectedRef } from 'angular-three';\nimport { Observable, takeUntil } from 'rxjs';\nimport * as THREE from 'three';\nimport { GLTF } from 'three-stdlib';\n\ntype Api = {\n ref: NgtInjectedRef<THREE.Object3D>;\n clips: THREE.AnimationClip[];\n mixer: THREE.AnimationMixer;\n names: string[];\n actions: Record<string, THREE.AnimationAction>;\n};\n\nexport function injectNgtsAnimations(\n gltf$: Observable<GLTF>,\n modelSelector: (gltf: GLTF) => THREE.Object3D = (gltf) => gltf.scene\n): Api {\n const ref = injectNgtRef<THREE.Object3D>();\n const mixer = new THREE.AnimationMixer(null!);\n const actions = {} as Record<string, THREE.AnimationAction>;\n let cached = {} as Record<string, THREE.AnimationAction>;\n\n const clips = [] as THREE.AnimationClip[];\n const names = [] as string[];\n\n const { destroy$ } = injectNgtDestroy(() => {\n // clear cached\n cached = {};\n // uncache actions\n Object.values(actions).forEach((action) => {\n if (ref.nativeElement) {\n mixer.uncacheAction(action as unknown as THREE.AnimationClip, ref.nativeElement);\n }\n });\n // stop all actions\n mixer.stopAllAction();\n });\n\n injectBeforeRender(({ delta }) => mixer.update(delta));\n\n gltf$.pipe(takeUntil(destroy$)).subscribe((gltf) => {\n const model = modelSelector(gltf);\n ref.nativeElement = model;\n\n for (let i = 0; i < gltf.animations.length; i++) {\n const clip = gltf.animations[i];\n\n names.push(clip.name);\n clips.push(clip);\n\n Object.defineProperty(actions, clip.name, {\n enumerable: true,\n get: () => {\n return cached[clip.name] || (cached[clip.name] = mixer.clipAction(clip, model));\n },\n });\n\n if (i === 0) {\n actions[clip.name].play();\n }\n }\n });\n\n return { ref, actions, mixer, names, clips };\n}\n","import { Directive, inject, OnInit } from '@angular/core';\nimport { NgtRxStore, NgtStore } from 'angular-three';\n\n@Directive({ selector: 'ngts-bake-shadows', standalone: true })\nexport class NgtsBakeShadows extends NgtRxStore implements OnInit {\n private readonly store = inject(NgtStore);\n\n ngOnInit() {\n this.effect(this.store.select('gl'), (gl) => {\n gl.shadowMap.autoUpdate = false;\n gl.shadowMap.needsUpdate = true;\n\n return () => {\n gl.shadowMap.autoUpdate = gl.shadowMap.needsUpdate = true;\n };\n });\n }\n}\n","import { inject } from '@angular/core';\nimport { injectNgtDestroy, injectNgtRef, NgtStore, safeDetectChanges } from 'angular-three';\nimport { isObservable, Observable, of, takeUntil } from 'rxjs';\nimport * as THREE from 'three';\n\ninterface FBOSettings extends THREE.WebGLRenderTargetOptions {\n /** Defines the count of MSAA samples. Can only be used with WebGL 2. Default: 0 */\n samples?: number;\n /** If set, the scene depth will be rendered into buffer.depthTexture. Default: false */\n depth?: boolean;\n}\n\nexport interface NgtsFBOParams {\n width?: number | FBOSettings;\n height?: number;\n settings?: FBOSettings;\n}\n\nexport function injectNgtsFBO(\n paramsFactory: (defaultParams: Partial<NgtsFBOParams>) => NgtsFBOParams | Observable<NgtsFBOParams>\n) {\n const store = inject(NgtStore);\n const targetRef = injectNgtRef<THREE.WebGLRenderTarget>();\n const { destroy$, cdr } = injectNgtDestroy(() => {\n targetRef.nativeElement?.dispose();\n });\n const params = paramsFactory({});\n const params$ = isObservable(params) ? params : of(params);\n\n params$.pipe(takeUntil(destroy$)).subscribe(({ width, height, settings }) => {\n const { gl, size, viewport } = store.get();\n const _width = typeof width === 'number' ? width : size.width * viewport.dpr;\n const _height = typeof height === 'number' ? height : size.height * viewport.dpr;\n const _settings = (typeof width === 'number' ? settings : (width as FBOSettings)) || {};\n\n const { samples = 0, depth, ...targetSettings } = _settings;\n\n if (!targetRef.nativeElement) {\n const target = new THREE.WebGLRenderTarget(_width, _height, {\n minFilter: THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n encoding: gl.outputEncoding,\n type: THREE.HalfFloatType,\n ...targetSettings,\n });\n if (depth) target.depthTexture = new THREE.DepthTexture(_width, _height, THREE.FloatType);\n\n target.samples = samples;\n targetRef.nativeElement = target;\n }\n\n targetRef.nativeElement.setSize(_width, _height);\n if (samples) targetRef.nativeElement.samples = samples;\n safeDetectChanges(cdr);\n });\n\n return targetRef;\n}\n","import { inject } from '@angular/core';\nimport { injectBeforeRender, injectNgtDestroy, injectNgtRef, NgtStore } from 'angular-three';\nimport { combineLatest, isObservable, map, Observable, of, takeUntil } from 'rxjs';\nimport * as THREE from 'three';\nimport { injectNgtsFBO } from '../fbo/fbo';\n\nexport interface NgtsDepthBufferParams {\n size: number;\n frames: number;\n}\n\nexport function injectNgtsDepthBuffer(\n paramsFactory: (\n defaultParams: Partial<NgtsDepthBufferParams>\n ) => NgtsDepthBufferParams | Observable<NgtsDepthBufferParams> = (params) => params as NgtsDepthBufferParams\n) {\n const depthBufferRef = injectNgtRef<THREE.DepthTexture>();\n\n const store = inject(NgtStore);\n const { destroy$ } = injectNgtDestroy();\n\n const params = paramsFactory({ size: 256, frames: Infinity });\n const params$ = isObservable(params) ? params : of(params);\n\n let rawParams = { size: 256, frames: Infinity };\n\n const fbo = injectNgtsFBO(() => {\n return combineLatest([params$, store.select('size'), store.select('viewport', 'dpr')]).pipe(\n map(([params, size, dpr]) => {\n rawParams = params;\n const w = params.size || size.width * dpr;\n const h = params.size || size.height * dpr;\n const depthTexture = new THREE.DepthTexture(w, h);\n depthTexture.format = THREE.DepthFormat;\n depthTexture.type = THREE.UnsignedShortType;\n const depthConfig = { depthTexture };\n\n return { width: w, height: h, settings: depthConfig };\n })\n );\n });\n\n let count = 0;\n injectBeforeRender(({ gl, scene, camera }) => {\n if ((rawParams.frames === Infinity || count < rawParams.frames) && fbo.nativeElement) {\n gl.setRenderTarget(fbo.nativeElement);\n gl.render(scene, camera);\n gl.setRenderTarget(null);\n count++;\n }\n });\n\n fbo.$.pipe(takeUntil(destroy$)).subscribe((fbo) => {\n depthBufferRef.nativeElement = fbo.depthTexture;\n });\n\n return depthBufferRef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-soba-misc.mjs","sources":["../../../../libs/angular-three-soba/misc/src/lib/animations/animations.ts","../../../../libs/angular-three-soba/misc/src/lib/bake-shadows/bake-shadows.ts","../../../../libs/angular-three-soba/misc/src/lib/fbo/fbo.ts","../../../../libs/angular-three-soba/misc/src/lib/depth-buffer/depth-buffer.ts","../../../../libs/angular-three-soba/misc/src/angular-three-soba-misc.ts"],"sourcesContent":["import { injectBeforeRender, injectNgtDestroy, injectNgtRef, NgtInjectedRef } from 'angular-three';\nimport { map, Observable, switchMap, takeUntil } from 'rxjs';\nimport * as THREE from 'three';\nimport { AnimationClip } from 'three';\n\ntype Api = {\n ref: NgtInjectedRef<THREE.Object3D>;\n clips: THREE.AnimationClip[];\n mixer: THREE.AnimationMixer;\n names: string[];\n actions: Record<string, THREE.AnimationAction>;\n};\n\nexport function injectNgtsAnimations(\n animations$: Observable<AnimationClip[]>,\n ref?: NgtInjectedRef<THREE.Object3D> | THREE.Object3D\n): Api {\n let actualRef = injectNgtRef<THREE.Object3D>();\n\n if (ref) {\n if (ref instanceof THREE.Object3D) {\n actualRef.nativeElement = ref;\n } else {\n actualRef = ref;\n }\n }\n\n const mixer = new THREE.AnimationMixer(null!);\n const actions = {} as Record<string, THREE.AnimationAction>;\n let cached = {} as Record<string, THREE.AnimationAction>;\n\n const clips = [] as THREE.AnimationClip[];\n const names = [] as string[];\n\n const { destroy$ } = injectNgtDestroy(() => {\n // clear cached\n cached = {};\n // uncache actions\n Object.values(actions).forEach((action) => {\n if (actualRef.nativeElement) {\n mixer.uncacheAction(action as unknown as THREE.AnimationClip, actualRef.nativeElement);\n }\n });\n // stop all actions\n mixer.stopAllAction();\n });\n\n injectBeforeRender(({ delta }) => mixer.update(delta));\n\n actualRef.$.pipe(takeUntil(destroy$))\n .pipe(switchMap((object) => animations$.pipe(map((animations) => [object, animations] as const))))\n .subscribe(([object, animations]) => {\n for (let i = 0; i < animations.length; i++) {\n const clip = animations[i];\n\n names.push(clip.name);\n clips.push(clip);\n\n Object.defineProperty(actions, clip.name, {\n enumerable: true,\n get: () => {\n return cached[clip.name] || (cached[clip.name] = mixer.clipAction(clip, object));\n },\n });\n\n if (i === 0) {\n actions[clip.name].play();\n }\n }\n });\n\n return { ref: actualRef, actions, mixer, names, clips };\n}\n","import { Directive, inject, OnInit } from '@angular/core';\nimport { NgtRxStore, NgtStore } from 'angular-three';\n\n@Directive({ selector: 'ngts-bake-shadows', standalone: true })\nexport class NgtsBakeShadows extends NgtRxStore implements OnInit {\n private readonly store = inject(NgtStore);\n\n ngOnInit() {\n this.effect(this.store.select('gl'), (gl) => {\n gl.shadowMap.autoUpdate = false;\n gl.shadowMap.needsUpdate = true;\n\n return () => {\n gl.shadowMap.autoUpdate = gl.shadowMap.needsUpdate = true;\n };\n });\n }\n}\n","import { inject } from '@angular/core';\nimport { injectNgtDestroy, injectNgtRef, NgtStore, safeDetectChanges } from 'angular-three';\nimport { isObservable, Observable, of, takeUntil } from 'rxjs';\nimport * as THREE from 'three';\n\ninterface FBOSettings extends THREE.WebGLRenderTargetOptions {\n /** Defines the count of MSAA samples. Can only be used with WebGL 2. Default: 0 */\n samples?: number;\n /** If set, the scene depth will be rendered into buffer.depthTexture. Default: false */\n depth?: boolean;\n}\n\nexport interface NgtsFBOParams {\n width?: number | FBOSettings;\n height?: number;\n settings?: FBOSettings;\n}\n\nexport function injectNgtsFBO(\n paramsFactory: (defaultParams: Partial<NgtsFBOParams>) => NgtsFBOParams | Observable<NgtsFBOParams>\n) {\n const store = inject(NgtStore);\n const targetRef = injectNgtRef<THREE.WebGLRenderTarget>();\n const { destroy$, cdr } = injectNgtDestroy(() => {\n targetRef.nativeElement?.dispose();\n });\n const params = paramsFactory({});\n const params$ = isObservable(params) ? params : of(params);\n\n params$.pipe(takeUntil(destroy$)).subscribe(({ width, height, settings }) => {\n const { gl, size, viewport } = store.get();\n const _width = typeof width === 'number' ? width : size.width * viewport.dpr;\n const _height = typeof height === 'number' ? height : size.height * viewport.dpr;\n const _settings = (typeof width === 'number' ? settings : (width as FBOSettings)) || {};\n\n const { samples = 0, depth, ...targetSettings } = _settings;\n\n if (!targetRef.nativeElement) {\n const target = new THREE.WebGLRenderTarget(_width, _height, {\n minFilter: THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n encoding: gl.outputEncoding,\n type: THREE.HalfFloatType,\n ...targetSettings,\n });\n if (depth) target.depthTexture = new THREE.DepthTexture(_width, _height, THREE.FloatType);\n\n target.samples = samples;\n targetRef.nativeElement = target;\n }\n\n targetRef.nativeElement.setSize(_width, _height);\n if (samples) targetRef.nativeElement.samples = samples;\n safeDetectChanges(cdr);\n });\n\n return targetRef;\n}\n","import { inject } from '@angular/core';\nimport { injectBeforeRender, injectNgtDestroy, injectNgtRef, NgtStore } from 'angular-three';\nimport { combineLatest, isObservable, map, Observable, of, takeUntil } from 'rxjs';\nimport * as THREE from 'three';\nimport { injectNgtsFBO } from '../fbo/fbo';\n\nexport interface NgtsDepthBufferParams {\n size: number;\n frames: number;\n}\n\nexport function injectNgtsDepthBuffer(\n paramsFactory: (\n defaultParams: Partial<NgtsDepthBufferParams>\n ) => NgtsDepthBufferParams | Observable<NgtsDepthBufferParams> = (params) => params as NgtsDepthBufferParams\n) {\n const depthBufferRef = injectNgtRef<THREE.DepthTexture>();\n\n const store = inject(NgtStore);\n const { destroy$ } = injectNgtDestroy();\n\n const params = paramsFactory({ size: 256, frames: Infinity });\n const params$ = isObservable(params) ? params : of(params);\n\n let rawParams = { size: 256, frames: Infinity };\n\n const fbo = injectNgtsFBO(() => {\n return combineLatest([params$, store.select('size'), store.select('viewport', 'dpr')]).pipe(\n map(([params, size, dpr]) => {\n rawParams = params;\n const w = params.size || size.width * dpr;\n const h = params.size || size.height * dpr;\n const depthTexture = new THREE.DepthTexture(w, h);\n depthTexture.format = THREE.DepthFormat;\n depthTexture.type = THREE.UnsignedShortType;\n const depthConfig = { depthTexture };\n\n return { width: w, height: h, settings: depthConfig };\n })\n );\n });\n\n let count = 0;\n injectBeforeRender(({ gl, scene, camera }) => {\n if ((rawParams.frames === Infinity || count < rawParams.frames) && fbo.nativeElement) {\n gl.setRenderTarget(fbo.nativeElement);\n gl.render(scene, camera);\n gl.setRenderTarget(null);\n count++;\n }\n });\n\n fbo.$.pipe(takeUntil(destroy$)).subscribe((fbo) => {\n depthBufferRef.nativeElement = fbo.depthTexture;\n });\n\n return depthBufferRef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -36,9 +36,9 @@ class NgtsAdaptiveDpr extends NgtRxStore {
36
36
  });
37
37
  }
38
38
  }
39
- NgtsAdaptiveDpr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsAdaptiveDpr, deps: null, target: i0.ɵɵFactoryTarget.Directive });
40
- NgtsAdaptiveDpr.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: "pixelated" }, providers: [RxActionFactory], usesInheritance: true, ngImport: i0 });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
39
+ NgtsAdaptiveDpr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsAdaptiveDpr, deps: null, target: i0.ɵɵFactoryTarget.Directive });
40
+ NgtsAdaptiveDpr.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: "pixelated" }, providers: [RxActionFactory], usesInheritance: true, ngImport: i0 });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
42
42
  type: Directive,
43
43
  args: [{
44
44
  selector: 'ngts-adaptive-dpr',
@@ -70,9 +70,9 @@ class NgtsAdaptiveEvents extends NgtRxStore {
70
70
  });
71
71
  }
72
72
  }
73
- NgtsAdaptiveEvents.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsAdaptiveEvents, deps: null, target: i0.ɵɵFactoryTarget.Directive });
74
- NgtsAdaptiveEvents.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", providers: [RxActionFactory], usesInheritance: true, ngImport: i0 });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
73
+ NgtsAdaptiveEvents.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsAdaptiveEvents, deps: null, target: i0.ɵɵFactoryTarget.Directive });
74
+ NgtsAdaptiveEvents.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", providers: [RxActionFactory], usesInheritance: true, ngImport: i0 });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
76
76
  type: Directive,
77
77
  args: [{
78
78
  selector: 'ngts-adaptive-events',
@@ -105,13 +105,13 @@ class NgtsDetailed extends NgtRxStore {
105
105
  });
106
106
  }
107
107
  }
108
- NgtsDetailed.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsDetailed, deps: null, target: i0.ɵɵFactoryTarget.Component });
109
- NgtsDetailed.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed[distances]", inputs: { lodRef: "lodRef", distances: "distances" }, usesInheritance: true, ngImport: i0, template: `
108
+ NgtsDetailed.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsDetailed, deps: null, target: i0.ɵɵFactoryTarget.Component });
109
+ NgtsDetailed.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed[distances]", inputs: { lodRef: "lodRef", distances: "distances" }, usesInheritance: true, ngImport: i0, template: `
110
110
  <ngt-lOD [ref]="lodRef" ngtCompound (beforeRender)="onLODBeforeRender($any($event))">
111
111
  <ng-content />
112
112
  </ngt-lOD>
113
113
  `, isInline: true });
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsDetailed, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsDetailed, decorators: [{
115
115
  type: Component,
116
116
  args: [{
117
117
  selector: 'ngts-detailed[distances]',
@@ -184,9 +184,9 @@ class NgtsStats extends NgtRxStore {
184
184
  });
185
185
  }
186
186
  }
187
- NgtsStats.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsStats, deps: null, target: i0.ɵɵFactoryTarget.Directive });
188
- NgtsStats.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsStats, isStandalone: true, selector: "ngts-stats", inputs: { showPanel: "showPanel", parent: "parent", classes: "classes", right: "right" }, usesInheritance: true, ngImport: i0 });
189
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsStats, decorators: [{
187
+ NgtsStats.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsStats, deps: null, target: i0.ɵɵFactoryTarget.Directive });
188
+ NgtsStats.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtsStats, isStandalone: true, selector: "ngts-stats", inputs: { showPanel: "showPanel", parent: "parent", classes: "classes", right: "right" }, usesInheritance: true, ngImport: i0 });
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsStats, decorators: [{
190
190
  type: Directive,
191
191
  args: [{
192
192
  selector: 'ngts-stats',
@@ -1205,9 +1205,40 @@ class SpotLightMaterial extends ShaderMaterial {
1205
1205
  }
1206
1206
  }
1207
1207
 
1208
+ const StarFieldMaterial = shaderMaterial({ time: 0.0, fade: 0.0 },
1209
+ // language=GLSL
1210
+ `
1211
+ uniform float time;
1212
+ attribute float size;
1213
+ varying vec3 vColor;
1214
+ void main() {
1215
+ vColor = color;
1216
+ vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);
1217
+ gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(time + 100.0));
1218
+ gl_Position = projectionMatrix * mvPosition;
1219
+ }
1220
+ `,
1221
+ // language=GLSL
1222
+ `
1223
+ uniform sampler2D pointTexture;
1224
+ uniform float fade;
1225
+ varying vec3 vColor;
1226
+ void main() {
1227
+ float opacity = 1.0;
1228
+ if (fade == 1.0) {
1229
+ float d = distance(gl_PointCoord, vec2(0.5, 0.5));
1230
+ opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));
1231
+ }
1232
+ gl_FragColor = vec4(vColor, opacity);
1233
+
1234
+ #include <tonemapping_fragment>
1235
+ #include <encodings_fragment>
1236
+ }
1237
+ `);
1238
+
1208
1239
  /**
1209
1240
  * Generated bundle index. Do not edit.
1210
1241
  */
1211
1242
 
1212
- export { BlurPass, CausticsMaterial, CausticsProjectionMaterial, ConvolutionMaterial, DiscardMaterial, MeshReflectorMaterial, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, NGTS_DISTORT_MATERIAL_SHADER, SoftShadowMaterial, SpotLightMaterial, provideNgtsMeshDistortMaterialShader, shaderMaterial };
1243
+ export { BlurPass, CausticsMaterial, CausticsProjectionMaterial, ConvolutionMaterial, DiscardMaterial, MeshReflectorMaterial, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, NGTS_DISTORT_MATERIAL_SHADER, SoftShadowMaterial, SpotLightMaterial, StarFieldMaterial, provideNgtsMeshDistortMaterialShader, shaderMaterial };
1213
1244
  //# sourceMappingURL=angular-three-soba-shaders.mjs.map