angular-three-soba 1.9.3 → 1.11.0

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 (123) hide show
  1. package/abstractions/index.d.ts +1 -0
  2. package/abstractions/lib/edges/edges.d.ts +18 -0
  3. package/cameras/index.d.ts +1 -0
  4. package/cameras/lib/camera/camera-content.d.ts +1 -1
  5. package/cameras/lib/cube-camera/cube-camera.d.ts +27 -0
  6. package/esm2020/abstractions/index.mjs +2 -1
  7. package/esm2020/abstractions/lib/billboard/billboard.mjs +3 -3
  8. package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +3 -3
  9. package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +3 -3
  10. package/esm2020/abstractions/lib/edges/edges.mjs +95 -0
  11. package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +6 -6
  12. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +3 -3
  13. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +6 -6
  14. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +3 -3
  15. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +3 -3
  16. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +6 -6
  17. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +3 -3
  18. package/esm2020/abstractions/lib/line/line-input.mjs +3 -3
  19. package/esm2020/abstractions/lib/line/line.mjs +3 -3
  20. package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +3 -3
  21. package/esm2020/abstractions/lib/text/text.mjs +3 -3
  22. package/esm2020/abstractions/lib/text-3d/text-3d.mjs +3 -3
  23. package/esm2020/cameras/index.mjs +2 -1
  24. package/esm2020/cameras/lib/camera/camera-content.mjs +4 -4
  25. package/esm2020/cameras/lib/camera/camera.mjs +3 -3
  26. package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +130 -0
  27. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +3 -3
  28. package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +3 -3
  29. package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +3 -3
  30. package/esm2020/loaders/lib/loader/loader.mjs +3 -3
  31. package/esm2020/materials/index.mjs +3 -1
  32. package/esm2020/materials/lib/mesh-distort-material/mesh-distort-material.mjs +3 -3
  33. package/esm2020/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +3 -3
  34. package/esm2020/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +157 -0
  35. package/esm2020/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +240 -0
  36. package/esm2020/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +3 -3
  37. package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +3 -3
  38. package/esm2020/misc/lib/fbo/fbo.mjs +5 -4
  39. package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +3 -3
  40. package/esm2020/performance/lib/adaptive/adaptive-events.mjs +3 -3
  41. package/esm2020/performance/lib/detailed/detailed.mjs +3 -3
  42. package/esm2020/performance/lib/stats/stats.mjs +3 -3
  43. package/esm2020/shaders/index.mjs +6 -1
  44. package/esm2020/shaders/lib/caustics-material/caustics-material.mjs +128 -0
  45. package/esm2020/shaders/lib/caustics-projection-material/caustics-projection-material.mjs +33 -0
  46. package/esm2020/shaders/lib/discard-material/discard-material.mjs +3 -0
  47. package/esm2020/shaders/lib/mesh-refraction-material/mesh-refraction-material.mjs +169 -0
  48. package/esm2020/shaders/lib/mesh-transmission-material/mesh-transmission-material.mjs +268 -0
  49. package/esm2020/staging/index.mjs +2 -1
  50. package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +6 -6
  51. package/esm2020/staging/lib/accumulative-shadows/progressive-light-map.mjs +2 -3
  52. package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +6 -6
  53. package/esm2020/staging/lib/bounds/bounds.mjs +3 -3
  54. package/esm2020/staging/lib/camera-shake/camera-shake.mjs +3 -3
  55. package/esm2020/staging/lib/caustics/caustics.mjs +364 -0
  56. package/esm2020/staging/lib/center/center.mjs +3 -3
  57. package/esm2020/staging/lib/cloud/cloud.mjs +3 -3
  58. package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +3 -3
  59. package/esm2020/staging/lib/environment/environment-cube.mjs +3 -3
  60. package/esm2020/staging/lib/environment/environment-ground.mjs +3 -3
  61. package/esm2020/staging/lib/environment/environment-inputs.mjs +3 -3
  62. package/esm2020/staging/lib/environment/environment-map.mjs +3 -3
  63. package/esm2020/staging/lib/environment/environment-portal.mjs +3 -3
  64. package/esm2020/staging/lib/environment/environment.mjs +6 -6
  65. package/esm2020/staging/lib/float/float.mjs +3 -3
  66. package/esm2020/staging/lib/sky/sky.mjs +3 -3
  67. package/esm2020/staging/lib/sparkles/sparkles.mjs +3 -3
  68. package/esm2020/staging/lib/spot-light/shadow-mesh-input.mjs +3 -3
  69. package/esm2020/staging/lib/spot-light/spot-light-input.mjs +3 -3
  70. package/esm2020/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +3 -3
  71. package/esm2020/staging/lib/spot-light/spot-light-shadow-shader.mjs +3 -3
  72. package/esm2020/staging/lib/spot-light/spot-light-shadow.mjs +3 -3
  73. package/esm2020/staging/lib/spot-light/spot-light.mjs +3 -3
  74. package/esm2020/staging/lib/spot-light/volumetric-mesh.mjs +3 -3
  75. package/esm2020/staging/lib/stage/stage.mjs +6 -6
  76. package/esm2020/staging/lib/stars/stars.mjs +3 -3
  77. package/fesm2015/angular-three-soba-abstractions.mjs +145 -56
  78. package/fesm2015/angular-three-soba-abstractions.mjs.map +1 -1
  79. package/fesm2015/angular-three-soba-cameras.mjs +139 -16
  80. package/fesm2015/angular-three-soba-cameras.mjs.map +1 -1
  81. package/fesm2015/angular-three-soba-controls.mjs +3 -3
  82. package/fesm2015/angular-three-soba-loaders.mjs +3 -3
  83. package/fesm2015/angular-three-soba-materials.mjs +398 -11
  84. package/fesm2015/angular-three-soba-materials.mjs.map +1 -1
  85. package/fesm2015/angular-three-soba-misc.mjs +7 -6
  86. package/fesm2015/angular-three-soba-misc.mjs.map +1 -1
  87. package/fesm2015/angular-three-soba-performance.mjs +12 -12
  88. package/fesm2015/angular-three-soba-shaders.mjs +619 -31
  89. package/fesm2015/angular-three-soba-shaders.mjs.map +1 -1
  90. package/fesm2015/angular-three-soba-staging.mjs +450 -96
  91. package/fesm2015/angular-three-soba-staging.mjs.map +1 -1
  92. package/fesm2020/angular-three-soba-abstractions.mjs +145 -56
  93. package/fesm2020/angular-three-soba-abstractions.mjs.map +1 -1
  94. package/fesm2020/angular-three-soba-cameras.mjs +139 -16
  95. package/fesm2020/angular-three-soba-cameras.mjs.map +1 -1
  96. package/fesm2020/angular-three-soba-controls.mjs +3 -3
  97. package/fesm2020/angular-three-soba-loaders.mjs +3 -3
  98. package/fesm2020/angular-three-soba-materials.mjs +396 -11
  99. package/fesm2020/angular-three-soba-materials.mjs.map +1 -1
  100. package/fesm2020/angular-three-soba-misc.mjs +7 -6
  101. package/fesm2020/angular-three-soba-misc.mjs.map +1 -1
  102. package/fesm2020/angular-three-soba-performance.mjs +12 -12
  103. package/fesm2020/angular-three-soba-shaders.mjs +625 -34
  104. package/fesm2020/angular-three-soba-shaders.mjs.map +1 -1
  105. package/fesm2020/angular-three-soba-staging.mjs +449 -96
  106. package/fesm2020/angular-three-soba-staging.mjs.map +1 -1
  107. package/materials/index.d.ts +2 -0
  108. package/materials/lib/mesh-refraction-material/mesh-refraction-material.d.ts +28 -0
  109. package/materials/lib/mesh-transmission-material/mesh-transmission-material.d.ts +47 -0
  110. package/misc/lib/fbo/fbo.d.ts +8 -6
  111. package/package.json +4 -3
  112. package/plugin/package.json +1 -1
  113. package/shaders/index.d.ts +5 -0
  114. package/shaders/lib/caustics-material/caustics-material.d.ts +4 -0
  115. package/shaders/lib/caustics-projection-material/caustics-projection-material.d.ts +4 -0
  116. package/shaders/lib/discard-material/discard-material.d.ts +3 -0
  117. package/shaders/lib/mesh-refraction-material/mesh-refraction-material.d.ts +4 -0
  118. package/shaders/lib/mesh-transmission-material/mesh-transmission-material.d.ts +25 -0
  119. package/staging/index.d.ts +1 -0
  120. package/staging/lib/caustics/caustics.d.ts +48 -0
  121. package/staging/lib/environment/environment-cube.d.ts +1 -1
  122. package/staging/lib/environment/environment-ground.d.ts +1 -1
  123. package/staging/lib/environment/utils.d.ts +1 -1
@@ -1,13 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Directive, Component, CUSTOM_ELEMENTS_SCHEMA, Input, EventEmitter, Output, TemplateRef, ContentChild, ChangeDetectorRef } from '@angular/core';
2
+ import { InjectionToken, inject, Directive, Component, CUSTOM_ELEMENTS_SCHEMA, Input, EventEmitter, Output, ChangeDetectorRef, TemplateRef, ContentChild } from '@angular/core';
3
3
  import { extend, NgtStore, getLocalState, NgtRxStore, injectNgtRef, NgtArgs, NgtRepeat, is, injectBeforeRender, NgtPush, injectNgtDestroy, injectNgtLoader, startWithUndefined, prepare, NgtPortal, NgtPortalContent, createRunInContext, checkUpdate } from 'angular-three';
4
- import { shaderMaterial, SpotLightMaterial } from 'angular-three-soba/shaders';
5
- import { Subject, combineLatest, switchMap, isObservable, of, debounceTime, map, takeUntil, startWith, withLatestFrom } from 'rxjs';
4
+ import { DiscardMaterial, shaderMaterial, CausticsProjectionMaterial, CausticsMaterial, SpotLightMaterial } from 'angular-three-soba/shaders';
5
+ import { Subject, combineLatest, switchMap, map, isObservable, of, debounceTime, takeUntil, startWith, withLatestFrom } from 'rxjs';
6
6
  import * as THREE from 'three';
7
- import { Group, Mesh, PlaneGeometry, DirectionalLight, OrthographicCamera, Vector2, Box3, Vector3, Sphere, MeshStandardMaterial, MeshBasicMaterial, CubeTextureLoader, CubeReflectionMapping, EquirectangularReflectionMapping, sRGBEncoding, LinearEncoding, CubeCamera, HalfFloatType, Points, BufferGeometry, BufferAttribute, Vector4, Color, MathUtils, SpotLight, SpotLightHelper, AmbientLight, PointLight, Spherical, AdditiveBlending } from 'three';
8
- import { SimplexNoise, HorizontalBlurShader, VerticalBlurShader, RGBELoader, GroundProjectedEnv, Sky, FullScreenQuad } from 'three-stdlib';
9
- import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
10
- import { NgtsBillboard } from 'angular-three-soba/abstractions';
7
+ import { Group, Mesh, PlaneGeometry, DirectionalLight, OrthographicCamera, Vector2, Scene, LineBasicMaterial, Box3, Vector3, Sphere, MeshStandardMaterial, MeshBasicMaterial, CubeTextureLoader, CubeReflectionMapping, EquirectangularReflectionMapping, sRGBEncoding, LinearEncoding, CubeCamera, HalfFloatType, Points, BufferGeometry, BufferAttribute, Vector4, Color, MathUtils, SpotLight, SpotLightHelper, AmbientLight, PointLight, Spherical, AdditiveBlending } from 'three';
8
+ import { SimplexNoise, FullScreenQuad, HorizontalBlurShader, VerticalBlurShader, RGBELoader, GroundProjectedEnv, Sky } from 'three-stdlib';
9
+ import { NgIf, NgFor, NgTemplateOutlet } from '@angular/common';
10
+ import { NgtsEdges, NgtsBillboard } from 'angular-three-soba/abstractions';
11
+ import { injectNgtsFBO } from 'angular-three-soba/misc';
11
12
  import { injectNgtsTextureLoader } from 'angular-three-soba/loaders';
12
13
 
13
14
  function isLight(object) {
@@ -16,7 +17,6 @@ function isLight(object) {
16
17
  function isGeometry(object) {
17
18
  return !!object.geometry;
18
19
  }
19
- const DiscardMaterial = shaderMaterial({}, 'void main() { gl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }', 'void main() { discard; }');
20
20
  class ProgressiveLightMap {
21
21
  constructor(renderer, scene, res = 1024) {
22
22
  this.renderer = renderer;
@@ -227,9 +227,9 @@ class AccumulativeShadowsConsumer {
227
227
  inject(NGTS_ACCUMULATIVE_SHADOWS_API);
228
228
  }
229
229
  }
230
- AccumulativeShadowsConsumer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AccumulativeShadowsConsumer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
231
- AccumulativeShadowsConsumer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: AccumulativeShadowsConsumer, isStandalone: true, selector: "ngts-accumulative-shadows-consumer", ngImport: i0 });
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AccumulativeShadowsConsumer, decorators: [{
230
+ AccumulativeShadowsConsumer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AccumulativeShadowsConsumer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
231
+ AccumulativeShadowsConsumer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: AccumulativeShadowsConsumer, isStandalone: true, selector: "ngts-accumulative-shadows-consumer", ngImport: i0 });
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: AccumulativeShadowsConsumer, decorators: [{
233
233
  type: Directive,
234
234
  args: [{ selector: 'ngts-accumulative-shadows-consumer', standalone: true }]
235
235
  }], ctorParameters: function () { return []; } });
@@ -303,8 +303,8 @@ class NgtsAccumulativeShadows extends NgtRxStore {
303
303
  });
304
304
  }
305
305
  }
306
- NgtsAccumulativeShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsAccumulativeShadows, deps: null, target: i0.ɵɵFactoryTarget.Component });
307
- NgtsAccumulativeShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsAccumulativeShadows, isStandalone: true, selector: "ngts-accumulative-shadows", inputs: { frames: "frames", blend: "blend", limit: "limit", scale: "scale", temporal: "temporal", opacity: "opacity", alphaTest: "alphaTest", color: "color", colorBlend: "colorBlend", resolution: "resolution", toneMapped: "toneMapped" }, providers: [
306
+ NgtsAccumulativeShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsAccumulativeShadows, deps: null, target: i0.ɵɵFactoryTarget.Component });
307
+ NgtsAccumulativeShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsAccumulativeShadows, isStandalone: true, selector: "ngts-accumulative-shadows", inputs: { frames: "frames", blend: "blend", limit: "limit", scale: "scale", temporal: "temporal", opacity: "opacity", alphaTest: "alphaTest", color: "color", colorBlend: "colorBlend", resolution: "resolution", toneMapped: "toneMapped" }, providers: [
308
308
  {
309
309
  provide: NGTS_ACCUMULATIVE_SHADOWS_API,
310
310
  useFactory: accumulativeShadowsApiFactory,
@@ -329,7 +329,7 @@ NgtsAccumulativeShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
329
329
  </ngt-mesh>
330
330
  </ngt-group>
331
331
  `, isInline: true, dependencies: [{ kind: "directive", type: AccumulativeShadowsConsumer, selector: "ngts-accumulative-shadows-consumer" }] });
332
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsAccumulativeShadows, decorators: [{
332
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsAccumulativeShadows, decorators: [{
333
333
  type: Component,
334
334
  args: [{
335
335
  selector: 'ngts-accumulative-shadows',
@@ -429,9 +429,9 @@ class RandomizedLightsConsumer {
429
429
  inject(NGTS_RANDOMIZED_LIGHTS_API);
430
430
  }
431
431
  }
432
- RandomizedLightsConsumer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: RandomizedLightsConsumer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
433
- RandomizedLightsConsumer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: RandomizedLightsConsumer, isStandalone: true, selector: "ngts-randomized-lights-consumer", ngImport: i0 });
434
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: RandomizedLightsConsumer, decorators: [{
432
+ RandomizedLightsConsumer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: RandomizedLightsConsumer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
433
+ RandomizedLightsConsumer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: RandomizedLightsConsumer, isStandalone: true, selector: "ngts-randomized-lights-consumer", ngImport: i0 });
434
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: RandomizedLightsConsumer, decorators: [{
435
435
  type: Directive,
436
436
  args: [{ selector: 'ngts-randomized-lights-consumer', standalone: true }]
437
437
  }], ctorParameters: function () { return []; } });
@@ -509,8 +509,8 @@ class NgtsRandomizedLights extends NgtRxStore {
509
509
  this.connect('length', this.select(['position'], ({ position }) => new THREE.Vector3(...position).length()));
510
510
  }
511
511
  }
512
- NgtsRandomizedLights.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsRandomizedLights, deps: null, target: i0.ɵɵFactoryTarget.Component });
513
- NgtsRandomizedLights.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsRandomizedLights, isStandalone: true, selector: "ngts-randomized-lights", inputs: { lightsRef: "lightsRef", frames: "frames", position: "position", radius: "radius", amount: "amount", intensity: "intensity", ambient: "ambient", castShadow: "castShadow", bias: "bias", mapSize: "mapSize", size: "size", near: "near", far: "far" }, providers: [
512
+ NgtsRandomizedLights.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsRandomizedLights, deps: null, target: i0.ɵɵFactoryTarget.Component });
513
+ NgtsRandomizedLights.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsRandomizedLights, isStandalone: true, selector: "ngts-randomized-lights", inputs: { lightsRef: "lightsRef", frames: "frames", position: "position", radius: "radius", amount: "amount", intensity: "intensity", ambient: "ambient", castShadow: "castShadow", bias: "bias", mapSize: "mapSize", size: "size", near: "near", far: "far" }, providers: [
514
514
  { provide: NGTS_RANDOMIZED_LIGHTS_API, useFactory: randomizedLightsApiFactory, deps: [NgtsRandomizedLights] },
515
515
  ], usesInheritance: true, ngImport: i0, template: `
516
516
  <ngt-group ngtCompound [ref]="lightsRef">
@@ -526,7 +526,7 @@ NgtsRandomizedLights.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
526
526
  <ngts-randomized-lights-consumer />
527
527
  </ngt-group>
528
528
  `, isInline: true, dependencies: [{ kind: "directive", type: RandomizedLightsConsumer, selector: "ngts-randomized-lights-consumer" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRepeat, selector: "[ngFor][ngForRepeat]", inputs: ["ngForRepeat"] }] });
529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsRandomizedLights, decorators: [{
529
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsRandomizedLights, decorators: [{
530
530
  type: Component,
531
531
  args: [{
532
532
  selector: 'ngts-randomized-lights',
@@ -819,13 +819,13 @@ class NgtsBounds extends NgtRxStore {
819
819
  });
820
820
  }
821
821
  }
822
- NgtsBounds.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsBounds, deps: null, target: i0.ɵɵFactoryTarget.Component });
823
- NgtsBounds.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsBounds, isStandalone: true, selector: "ngts-bounds", inputs: { boundsRef: "boundsRef", damping: "damping", fit: "fit", clip: "clip", observe: "observe", margin: "margin", eps: "eps" }, outputs: { fitted: "fitted" }, providers: [{ provide: NGTS_BOUNDS_API, useFactory: boundsApiFactory, deps: [NgtsBounds] }], usesInheritance: true, ngImport: i0, template: `
822
+ NgtsBounds.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsBounds, deps: null, target: i0.ɵɵFactoryTarget.Component });
823
+ NgtsBounds.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsBounds, isStandalone: true, selector: "ngts-bounds", inputs: { boundsRef: "boundsRef", damping: "damping", fit: "fit", clip: "clip", observe: "observe", margin: "margin", eps: "eps" }, outputs: { fitted: "fitted" }, providers: [{ provide: NGTS_BOUNDS_API, useFactory: boundsApiFactory, deps: [NgtsBounds] }], usesInheritance: true, ngImport: i0, template: `
824
824
  <ngt-group ngtCompound [ref]="boundsRef">
825
825
  <ng-content />
826
826
  </ngt-group>
827
827
  `, isInline: true });
828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsBounds, decorators: [{
828
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsBounds, decorators: [{
829
829
  type: Component,
830
830
  args: [{
831
831
  selector: 'ngts-bounds',
@@ -944,9 +944,9 @@ class NgtsCameraShake extends NgtRxStore {
944
944
  }
945
945
  }
946
946
  }
947
- NgtsCameraShake.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsCameraShake, deps: [], target: i0.ɵɵFactoryTarget.Directive });
948
- NgtsCameraShake.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: NgtsCameraShake, isStandalone: true, selector: "ngts-camera-shake", inputs: { intensity: "intensity", decay: "decay", decayRate: "decayRate", maxYaw: "maxYaw", maxPitch: "maxPitch", maxRoll: "maxRoll", yawFrequency: "yawFrequency", pitchFrequency: "pitchFrequency", rollFrequency: "rollFrequency" }, usesInheritance: true, ngImport: i0 });
949
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsCameraShake, decorators: [{
947
+ NgtsCameraShake.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsCameraShake, deps: [], target: i0.ɵɵFactoryTarget.Directive });
948
+ NgtsCameraShake.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsCameraShake, isStandalone: true, selector: "ngts-camera-shake", inputs: { intensity: "intensity", decay: "decay", decayRate: "decayRate", maxYaw: "maxYaw", maxPitch: "maxPitch", maxRoll: "maxRoll", yawFrequency: "yawFrequency", pitchFrequency: "pitchFrequency", rollFrequency: "rollFrequency" }, usesInheritance: true, ngImport: i0 });
949
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsCameraShake, decorators: [{
950
950
  type: Directive,
951
951
  args: [{
952
952
  selector: 'ngts-camera-shake',
@@ -972,6 +972,360 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
972
972
  type: Input
973
973
  }] } });
974
974
 
975
+ extend({ Group, Scene, Mesh, PlaneGeometry, OrthographicCamera, CausticsProjectionMaterial, LineBasicMaterial });
976
+ const NORMALPROPS = {
977
+ depth: true,
978
+ minFilter: THREE.LinearFilter,
979
+ magFilter: THREE.LinearFilter,
980
+ encoding: THREE.LinearEncoding,
981
+ type: THREE.UnsignedByteType,
982
+ };
983
+ const CAUSTICPROPS = {
984
+ minFilter: THREE.LinearMipmapLinearFilter,
985
+ magFilter: THREE.LinearFilter,
986
+ encoding: THREE.LinearEncoding,
987
+ format: THREE.RGBAFormat,
988
+ type: THREE.FloatType,
989
+ generateMipmaps: true,
990
+ };
991
+ function createNormalMaterial(side = THREE.FrontSide) {
992
+ const viewMatrix = { value: new THREE.Matrix4() };
993
+ return Object.assign(new THREE.MeshNormalMaterial({ side }), {
994
+ viewMatrix,
995
+ onBeforeCompile: (shader) => {
996
+ shader.uniforms.viewMatrix = viewMatrix;
997
+ shader.fragmentShader =
998
+ `vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {
999
+ return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );
1000
+ }\n` +
1001
+ shader.fragmentShader.replace('#include <normal_fragment_maps>', `#include <normal_fragment_maps>
1002
+ normal = inverseTransformDirection( normal, viewMatrix );\n`);
1003
+ },
1004
+ });
1005
+ }
1006
+ class NgtsCaustics extends NgtRxStore {
1007
+ constructor() {
1008
+ super(...arguments);
1009
+ this.CustomBlending = THREE.CustomBlending;
1010
+ this.OneFactor = THREE.OneFactor;
1011
+ this.SrcAlphaFactor = THREE.SrcAlphaFactor;
1012
+ this.Math = Math;
1013
+ this.planeRef = injectNgtRef();
1014
+ this.sceneRef = injectNgtRef();
1015
+ this.cameraRef = injectNgtRef();
1016
+ this.causticsRef = injectNgtRef();
1017
+ this.normalTargetFbo = injectNgtsFBO(() => this.select('resolution').pipe(map((resolution) => ({ width: resolution, height: resolution, settings: NORMALPROPS }))));
1018
+ this.normalTargetBFbo = injectNgtsFBO(() => this.select('resolution').pipe(map((resolution) => ({ width: resolution, height: resolution, settings: NORMALPROPS }))));
1019
+ this.causticsTargetFbo = injectNgtsFBO(() => this.select('resolution').pipe(map((resolution) => ({ width: resolution, height: resolution, settings: CAUSTICPROPS }))));
1020
+ this.causticsTargetBFbo = injectNgtsFBO(() => this.select('resolution').pipe(map((resolution) => ({ width: resolution, height: resolution, settings: CAUSTICPROPS }))));
1021
+ this.store = inject(NgtStore);
1022
+ this.cdr = inject(ChangeDetectorRef);
1023
+ }
1024
+ /** How many frames it will render, set it to Infinity for runtime, default: 1 */
1025
+ set frames(frames) {
1026
+ this.set({ frames });
1027
+ }
1028
+ /** Enables visual cues to help you stage your scene, default: false */
1029
+ set debug(debug) {
1030
+ this.set({ debug });
1031
+ }
1032
+ /** Will display caustics only and skip the models, default: false */
1033
+ set causticsOnly(causticsOnly) {
1034
+ this.set({ causticsOnly });
1035
+ }
1036
+ /** Will include back faces and enable the backsideIOR prop, default: false */
1037
+ set backside(backside) {
1038
+ this.set({ backside });
1039
+ }
1040
+ /** The IOR refraction index, default: 1.1 */
1041
+ set ior(ior) {
1042
+ this.set({ ior });
1043
+ }
1044
+ /** The IOR refraction index for back faces (only available when backside is enabled), default: 1.1 */
1045
+ set backsideIOR(backsideIOR) {
1046
+ this.set({ backsideIOR });
1047
+ }
1048
+ /** The texel size, default: 0.3125 */
1049
+ set worldRadius(worldRadius) {
1050
+ this.set({ worldRadius });
1051
+ }
1052
+ /** Intensity of the prjected caustics, default: 0.05 */
1053
+ set intensity(intensity) {
1054
+ this.set({ intensity });
1055
+ }
1056
+ /** Caustics color, default: white */
1057
+ set color(color) {
1058
+ this.set({ color });
1059
+ }
1060
+ /** Buffer resolution, default: 2048 */
1061
+ set resolution(resolution) {
1062
+ this.set({ resolution });
1063
+ }
1064
+ /** Camera position, it will point towards the contents bounds center, default: [5, 5, 5] */
1065
+ set lightSource(lightSource) {
1066
+ this.set({ lightSource });
1067
+ }
1068
+ initialize() {
1069
+ this.set({
1070
+ frames: 1,
1071
+ ior: 1.1,
1072
+ color: 'white',
1073
+ causticsOnly: false,
1074
+ backside: false,
1075
+ backsideIOR: 1.1,
1076
+ worldRadius: 0.3125,
1077
+ intensity: 0.05,
1078
+ resolution: 2024,
1079
+ lightSource: [5, 5, 5],
1080
+ });
1081
+ }
1082
+ ngOnInit() {
1083
+ this.updateWorldMatrix();
1084
+ this.setBeforeRender();
1085
+ }
1086
+ updateWorldMatrix() {
1087
+ this.hold(combineLatest([this.sceneRef.children$(), this.causticsRef.$, this.causticsRef.children$(), this.select()]), () => {
1088
+ if (this.causticsRef.nativeElement) {
1089
+ this.causticsRef.nativeElement.updateWorldMatrix(false, true);
1090
+ }
1091
+ });
1092
+ }
1093
+ setBeforeRender() {
1094
+ const causticsMaterial = new CausticsMaterial();
1095
+ const causticsQuad = new FullScreenQuad(causticsMaterial);
1096
+ const normalMaterial = createNormalMaterial();
1097
+ const normalMaterialB = createNormalMaterial(THREE.BackSide);
1098
+ this.effect(combineLatest([
1099
+ this.sceneRef.$,
1100
+ this.sceneRef.children$('both'),
1101
+ this.causticsRef.$,
1102
+ this.cameraRef.$,
1103
+ this.planeRef.$,
1104
+ this.planeRef.children$('both'),
1105
+ this.normalTargetFbo.$,
1106
+ this.normalTargetBFbo.$,
1107
+ this.causticsTargetFbo.$,
1108
+ this.causticsTargetBFbo.$,
1109
+ ]), ([scene, children, caustics, camera, plane, , normalTarget, normalTargetB, causticsTarget, causticsTargetB,]) => {
1110
+ const v = new THREE.Vector3();
1111
+ const lpF = new THREE.Frustum();
1112
+ const lpM = new THREE.Matrix4();
1113
+ const lpP = new THREE.Plane();
1114
+ const lightDir = new THREE.Vector3();
1115
+ const lightDirInv = new THREE.Vector3();
1116
+ const bounds = new THREE.Box3();
1117
+ const focusPos = new THREE.Vector3();
1118
+ let count = 0;
1119
+ caustics.updateWorldMatrix(false, true);
1120
+ if (children.length > 1) {
1121
+ return this.store.get('internal').subscribe(({ gl }) => {
1122
+ var _a;
1123
+ const { frames, lightSource, resolution, worldRadius, intensity, backside, backsideIOR, ior, causticsOnly, debug, } = this.get();
1124
+ if (frames === Infinity || count++ < frames) {
1125
+ if (Array.isArray(lightSource))
1126
+ lightDir.fromArray(lightSource).normalize();
1127
+ else
1128
+ lightDir.copy(caustics.worldToLocal(lightSource.nativeElement.getWorldPosition(v)).normalize());
1129
+ lightDirInv.copy(lightDir).multiplyScalar(-1);
1130
+ let boundsVertices = [];
1131
+ (_a = scene.parent) === null || _a === void 0 ? void 0 : _a.matrixWorld.identity();
1132
+ bounds.setFromObject(scene, true);
1133
+ boundsVertices.push(new THREE.Vector3(bounds.min.x, bounds.min.y, bounds.min.z));
1134
+ boundsVertices.push(new THREE.Vector3(bounds.min.x, bounds.min.y, bounds.max.z));
1135
+ boundsVertices.push(new THREE.Vector3(bounds.min.x, bounds.max.y, bounds.min.z));
1136
+ boundsVertices.push(new THREE.Vector3(bounds.min.x, bounds.max.y, bounds.max.z));
1137
+ boundsVertices.push(new THREE.Vector3(bounds.max.x, bounds.min.y, bounds.min.z));
1138
+ boundsVertices.push(new THREE.Vector3(bounds.max.x, bounds.min.y, bounds.max.z));
1139
+ boundsVertices.push(new THREE.Vector3(bounds.max.x, bounds.max.y, bounds.min.z));
1140
+ boundsVertices.push(new THREE.Vector3(bounds.max.x, bounds.max.y, bounds.max.z));
1141
+ const worldVerts = boundsVertices.map((v) => v.clone());
1142
+ bounds.getCenter(focusPos);
1143
+ boundsVertices = boundsVertices.map((v) => v.clone().sub(focusPos));
1144
+ const lightPlane = lpP.set(lightDirInv, 0);
1145
+ const projectedVerts = boundsVertices.map((v) => lightPlane.projectPoint(v, new THREE.Vector3()));
1146
+ const centralVert = projectedVerts
1147
+ .reduce((a, b) => a.add(b), v.set(0, 0, 0))
1148
+ .divideScalar(projectedVerts.length);
1149
+ const radius = projectedVerts
1150
+ .map((v) => v.distanceTo(centralVert))
1151
+ .reduce((a, b) => Math.max(a, b));
1152
+ const dirLength = boundsVertices
1153
+ .map((x) => x.dot(lightDir))
1154
+ .reduce((a, b) => Math.max(a, b));
1155
+ // Shadows
1156
+ camera.position.copy(lightDir.clone().multiplyScalar(dirLength).add(focusPos));
1157
+ camera.lookAt(scene.localToWorld(focusPos.clone()));
1158
+ const dirMatrix = lpM.lookAt(camera.position, focusPos, v.set(0, 1, 0));
1159
+ camera.left = -radius;
1160
+ camera.right = radius;
1161
+ camera.top = radius;
1162
+ camera.bottom = -radius;
1163
+ const yOffset = v.set(0, radius, 0).applyMatrix4(dirMatrix);
1164
+ const yTime = (camera.position.y + yOffset.y) / lightDir.y;
1165
+ camera.near = 0.1;
1166
+ camera.far = yTime;
1167
+ camera.updateProjectionMatrix();
1168
+ camera.updateMatrixWorld();
1169
+ // Now find size of ground plane
1170
+ const groundProjectedCoords = worldVerts.map((v) => v.add(lightDir.clone().multiplyScalar(-v.y / lightDir.y)));
1171
+ const centerPos = groundProjectedCoords
1172
+ .reduce((a, b) => a.add(b), v.set(0, 0, 0))
1173
+ .divideScalar(groundProjectedCoords.length);
1174
+ const maxSize = 2 *
1175
+ groundProjectedCoords
1176
+ .map((v) => Math.hypot(v.x - centerPos.x, v.z - centerPos.z))
1177
+ .reduce((a, b) => Math.max(a, b));
1178
+ plane.scale.setScalar(maxSize);
1179
+ plane.position.copy(centerPos);
1180
+ // if (debug) helper.current?.update();
1181
+ // Inject uniforms
1182
+ normalMaterialB.viewMatrix.value = normalMaterial.viewMatrix.value =
1183
+ camera.matrixWorldInverse;
1184
+ const dirLightNearPlane = lpF.setFromProjectionMatrix(lpM.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse)).planes[4];
1185
+ causticsMaterial.cameraMatrixWorld = camera.matrixWorld;
1186
+ causticsMaterial.cameraProjectionMatrixInv = camera.projectionMatrixInverse;
1187
+ causticsMaterial.lightDir = lightDirInv;
1188
+ causticsMaterial.lightPlaneNormal = dirLightNearPlane.normal;
1189
+ causticsMaterial.lightPlaneConstant = dirLightNearPlane.constant;
1190
+ causticsMaterial.near = camera.near;
1191
+ causticsMaterial.far = camera.far;
1192
+ causticsMaterial.resolution = resolution;
1193
+ causticsMaterial.size = radius;
1194
+ causticsMaterial.intensity = intensity;
1195
+ causticsMaterial.worldRadius = worldRadius;
1196
+ // Switch the scene on
1197
+ scene.visible = true;
1198
+ // Render front face normals
1199
+ gl.setRenderTarget(normalTarget);
1200
+ gl.clear();
1201
+ scene.overrideMaterial = normalMaterial;
1202
+ gl.render(scene, camera);
1203
+ // Render back face normals, if enabled
1204
+ gl.setRenderTarget(normalTargetB);
1205
+ gl.clear();
1206
+ if (backside) {
1207
+ scene.overrideMaterial = normalMaterialB;
1208
+ gl.render(scene, camera);
1209
+ }
1210
+ // Remove the override material
1211
+ scene.overrideMaterial = null;
1212
+ // Render front face caustics
1213
+ causticsMaterial.ior = ior;
1214
+ // @ts-ignore
1215
+ plane.material.lightProjMatrix = camera.projectionMatrix;
1216
+ // @ts-ignore
1217
+ plane.material.lightViewMatrix = camera.matrixWorldInverse;
1218
+ causticsMaterial.normalTexture = normalTarget.texture;
1219
+ causticsMaterial.depthTexture = normalTarget.depthTexture;
1220
+ gl.setRenderTarget(causticsTarget);
1221
+ gl.clear();
1222
+ causticsQuad.render(gl);
1223
+ // Render back face caustics, if enabled
1224
+ causticsMaterial.ior = backsideIOR;
1225
+ causticsMaterial.normalTexture = normalTargetB.texture;
1226
+ causticsMaterial.depthTexture = normalTargetB.depthTexture;
1227
+ gl.setRenderTarget(causticsTargetB);
1228
+ gl.clear();
1229
+ if (backside)
1230
+ causticsQuad.render(gl);
1231
+ // Reset render target
1232
+ gl.setRenderTarget(null);
1233
+ // Switch the scene off if caustics is all that's wanted
1234
+ if (causticsOnly)
1235
+ scene.visible = false;
1236
+ }
1237
+ });
1238
+ }
1239
+ });
1240
+ }
1241
+ }
1242
+ NgtsCaustics.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsCaustics, deps: null, target: i0.ɵɵFactoryTarget.Component });
1243
+ NgtsCaustics.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsCaustics, isStandalone: true, selector: "ngts-caustics", inputs: { causticsRef: "causticsRef", frames: "frames", debug: "debug", causticsOnly: "causticsOnly", backside: "backside", ior: "ior", backsideIOR: "backsideIOR", worldRadius: "worldRadius", intensity: "intensity", color: "color", resolution: "resolution", lightSource: "lightSource" }, usesInheritance: true, ngImport: i0, template: `
1244
+ <ngt-group [ref]="causticsRef" ngtCompound>
1245
+ <ngt-scene [ref]="sceneRef">
1246
+ <ngt-orthographic-camera [ref]="cameraRef" [up]="[0, 1, 0]" />
1247
+ <ng-content />
1248
+ </ngt-scene>
1249
+ <ngt-mesh [renderOrder]="2" [ref]="planeRef" [rotation]="[-Math.PI / 2, 0, 0]">
1250
+ <ngt-plane-geometry />
1251
+ <ngt-caustics-projection-material
1252
+ *ngIf="causticsTargetFbo.nativeElement && causticsTargetBFbo.nativeElement"
1253
+ [transparent]="true"
1254
+ [color]="get('color')"
1255
+ [causticsTexture]="causticsTargetFbo.nativeElement.texture"
1256
+ [causticsTextureB]="causticsTargetBFbo.nativeElement.texture"
1257
+ [blending]="CustomBlending"
1258
+ [blendSrc]="OneFactor"
1259
+ [blendDst]="SrcAlphaFactor"
1260
+ [depthWrite]="false"
1261
+ />
1262
+
1263
+ <ngts-edges *ngIf="get('debug')" [withChildren]="true">
1264
+ <ngt-line-basic-material color="#ffff00" [toneMapped]="false" />
1265
+ </ngts-edges>
1266
+ </ngt-mesh>
1267
+ </ngt-group>
1268
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtsEdges, selector: "ngts-edges", inputs: ["edgesRef", "threshold", "color", "geometry", "userData", "withChildren"] }] });
1269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsCaustics, decorators: [{
1270
+ type: Component,
1271
+ args: [{
1272
+ selector: 'ngts-caustics',
1273
+ standalone: true,
1274
+ template: `
1275
+ <ngt-group [ref]="causticsRef" ngtCompound>
1276
+ <ngt-scene [ref]="sceneRef">
1277
+ <ngt-orthographic-camera [ref]="cameraRef" [up]="[0, 1, 0]" />
1278
+ <ng-content />
1279
+ </ngt-scene>
1280
+ <ngt-mesh [renderOrder]="2" [ref]="planeRef" [rotation]="[-Math.PI / 2, 0, 0]">
1281
+ <ngt-plane-geometry />
1282
+ <ngt-caustics-projection-material
1283
+ *ngIf="causticsTargetFbo.nativeElement && causticsTargetBFbo.nativeElement"
1284
+ [transparent]="true"
1285
+ [color]="get('color')"
1286
+ [causticsTexture]="causticsTargetFbo.nativeElement.texture"
1287
+ [causticsTextureB]="causticsTargetBFbo.nativeElement.texture"
1288
+ [blending]="CustomBlending"
1289
+ [blendSrc]="OneFactor"
1290
+ [blendDst]="SrcAlphaFactor"
1291
+ [depthWrite]="false"
1292
+ />
1293
+
1294
+ <ngts-edges *ngIf="get('debug')" [withChildren]="true">
1295
+ <ngt-line-basic-material color="#ffff00" [toneMapped]="false" />
1296
+ </ngts-edges>
1297
+ </ngt-mesh>
1298
+ </ngt-group>
1299
+ `,
1300
+ imports: [NgIf, NgtsEdges],
1301
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
1302
+ }]
1303
+ }], propDecorators: { causticsRef: [{
1304
+ type: Input
1305
+ }], frames: [{
1306
+ type: Input
1307
+ }], debug: [{
1308
+ type: Input
1309
+ }], causticsOnly: [{
1310
+ type: Input
1311
+ }], backside: [{
1312
+ type: Input
1313
+ }], ior: [{
1314
+ type: Input
1315
+ }], backsideIOR: [{
1316
+ type: Input
1317
+ }], worldRadius: [{
1318
+ type: Input
1319
+ }], intensity: [{
1320
+ type: Input
1321
+ }], color: [{
1322
+ type: Input
1323
+ }], resolution: [{
1324
+ type: Input
1325
+ }], lightSource: [{
1326
+ type: Input
1327
+ }] } });
1328
+
975
1329
  extend({ Group });
976
1330
  class NgtsCenter extends NgtRxStore {
977
1331
  constructor() {
@@ -1055,8 +1409,8 @@ class NgtsCenter extends NgtRxStore {
1055
1409
  });
1056
1410
  }
1057
1411
  }
1058
- NgtsCenter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsCenter, deps: null, target: i0.ɵɵFactoryTarget.Component });
1059
- NgtsCenter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsCenter, isStandalone: true, selector: "ngts-center", inputs: { centerRef: "centerRef", top: "top", right: "right", bottom: "bottom", left: "left", front: "front", back: "back", disableX: "disableX", disableY: "disableY", disableZ: "disableZ", disabled: "disabled", precise: "precise" }, outputs: { centered: "centered" }, usesInheritance: true, ngImport: i0, template: `
1412
+ NgtsCenter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsCenter, deps: null, target: i0.ɵɵFactoryTarget.Component });
1413
+ NgtsCenter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsCenter, isStandalone: true, selector: "ngts-center", inputs: { centerRef: "centerRef", top: "top", right: "right", bottom: "bottom", left: "left", front: "front", back: "back", disableX: "disableX", disableY: "disableY", disableZ: "disableZ", disabled: "disabled", precise: "precise" }, outputs: { centered: "centered" }, usesInheritance: true, ngImport: i0, template: `
1060
1414
  <ngt-group ngtCompound [ref]="centerRef">
1061
1415
  <ngt-group [ref]="outerRef">
1062
1416
  <ngt-group [ref]="innerRef">
@@ -1065,7 +1419,7 @@ NgtsCenter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
1065
1419
  </ngt-group>
1066
1420
  </ngt-group>
1067
1421
  `, isInline: true });
1068
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsCenter, decorators: [{
1422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsCenter, decorators: [{
1069
1423
  type: Component,
1070
1424
  args: [{
1071
1425
  selector: 'ngts-center',
@@ -1174,8 +1528,8 @@ class NgtsCloud extends NgtRxStore {
1174
1528
  });
1175
1529
  }
1176
1530
  }
1177
- NgtsCloud.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsCloud, deps: null, target: i0.ɵɵFactoryTarget.Component });
1178
- NgtsCloud.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsCloud, isStandalone: true, selector: "ngts-cloud", inputs: { groupRef: "groupRef", opacity: "opacity", speed: "speed", width: "width", depth: "depth", segments: "segments", texture: "texture", color: "color", depthTest: "depthTest" }, usesInheritance: true, ngImport: i0, template: `
1531
+ NgtsCloud.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsCloud, deps: null, target: i0.ɵɵFactoryTarget.Component });
1532
+ NgtsCloud.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsCloud, isStandalone: true, selector: "ngts-cloud", inputs: { groupRef: "groupRef", opacity: "opacity", speed: "speed", width: "width", depth: "depth", segments: "segments", texture: "texture", color: "color", depthTest: "depthTest" }, usesInheritance: true, ngImport: i0, template: `
1179
1533
  <ngt-group ngtCompound [ref]="groupRef">
1180
1534
  <ngt-group
1181
1535
  [position]="[0, 0, (get('segments') / 2) * get('depth')]"
@@ -1204,7 +1558,7 @@ NgtsCloud.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
1204
1558
  </ngt-group>
1205
1559
  </ngt-group>
1206
1560
  `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }, { kind: "component", type: NgtsBillboard, selector: "ngts-billboard", inputs: ["billboardRef", "follow", "lockX", "lockY", "lockZ"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsCloud, decorators: [{
1561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsCloud, decorators: [{
1208
1562
  type: Component,
1209
1563
  args: [{
1210
1564
  selector: 'ngts-cloud',
@@ -1397,8 +1751,8 @@ class NgtsContactShadows extends NgtRxStore {
1397
1751
  blurPlane.visible = false;
1398
1752
  }
1399
1753
  }
1400
- NgtsContactShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsContactShadows, deps: [], target: i0.ɵɵFactoryTarget.Component });
1401
- NgtsContactShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsContactShadows, isStandalone: true, selector: "ngts-contact-shadows", inputs: { contactShadowsRef: "contactShadowsRef", opacity: "opacity", width: "width", height: "height", blur: "blur", far: "far", smooth: "smooth", resolution: "resolution", frames: "frames", scale: "scale", color: "color", depthWrite: "depthWrite", renderOrder: "renderOrder" }, usesInheritance: true, ngImport: i0, template: `
1754
+ NgtsContactShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsContactShadows, deps: [], target: i0.ɵɵFactoryTarget.Component });
1755
+ NgtsContactShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsContactShadows, isStandalone: true, selector: "ngts-contact-shadows", inputs: { contactShadowsRef: "contactShadowsRef", opacity: "opacity", width: "width", height: "height", blur: "blur", far: "far", smooth: "smooth", resolution: "resolution", frames: "frames", scale: "scale", color: "color", depthWrite: "depthWrite", renderOrder: "renderOrder" }, usesInheritance: true, ngImport: i0, template: `
1402
1756
  <ngt-group ngtCompound [ref]="contactShadowsRef" [rotation]="[Math.PI / 2, 0, 0]">
1403
1757
  <ng-container *ngIf="contactShadows$ | ngtPush : null as contactShadows">
1404
1758
  <ngt-mesh
@@ -1420,7 +1774,7 @@ NgtsContactShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
1420
1774
  </ng-container>
1421
1775
  </ngt-group>
1422
1776
  `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
1423
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsContactShadows, decorators: [{
1777
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsContactShadows, decorators: [{
1424
1778
  type: Component,
1425
1779
  args: [{
1426
1780
  selector: 'ngts-contact-shadows',
@@ -1539,9 +1893,9 @@ class NgtsEnvironmentInputs extends NgtRxStore {
1539
1893
  this.set({ encoding });
1540
1894
  }
1541
1895
  }
1542
- NgtsEnvironmentInputs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentInputs, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1543
- NgtsEnvironmentInputs.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: NgtsEnvironmentInputs, inputs: { frames: "frames", near: "near", far: "far", resolution: "resolution", background: "background", blur: "blur", map: "map", files: "files", path: "path", preset: "preset", scene: "scene", extensions: "extensions", ground: "ground", encoding: "encoding" }, usesInheritance: true, ngImport: i0 });
1544
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentInputs, decorators: [{
1896
+ NgtsEnvironmentInputs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentInputs, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1897
+ NgtsEnvironmentInputs.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsEnvironmentInputs, inputs: { frames: "frames", near: "near", far: "far", resolution: "resolution", background: "background", blur: "blur", map: "map", files: "files", path: "path", preset: "preset", scene: "scene", extensions: "extensions", ground: "ground", encoding: "encoding" }, usesInheritance: true, ngImport: i0 });
1898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentInputs, decorators: [{
1545
1899
  type: Directive
1546
1900
  }], propDecorators: { frames: [{
1547
1901
  type: Input
@@ -1664,9 +2018,9 @@ class NgtsEnvironmentCube extends NgtsEnvironmentInputs {
1664
2018
  });
1665
2019
  }
1666
2020
  }
1667
- NgtsEnvironmentCube.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentCube, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1668
- NgtsEnvironmentCube.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: NgtsEnvironmentCube, isStandalone: true, selector: "ngts-environment-cube", usesInheritance: true, ngImport: i0 });
1669
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentCube, decorators: [{
2021
+ NgtsEnvironmentCube.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentCube, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2022
+ NgtsEnvironmentCube.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsEnvironmentCube, isStandalone: true, selector: "ngts-environment-cube", usesInheritance: true, ngImport: i0 });
2023
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentCube, decorators: [{
1670
2024
  type: Directive,
1671
2025
  args: [{
1672
2026
  selector: 'ngts-environment-cube',
@@ -1696,9 +2050,9 @@ class NgtsEnvironmentMap extends NgtsEnvironmentInputs {
1696
2050
  });
1697
2051
  }
1698
2052
  }
1699
- NgtsEnvironmentMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentMap, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1700
- NgtsEnvironmentMap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: NgtsEnvironmentMap, isStandalone: true, selector: "ngts-environment-map", usesInheritance: true, ngImport: i0 });
1701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentMap, decorators: [{
2053
+ NgtsEnvironmentMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentMap, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2054
+ NgtsEnvironmentMap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsEnvironmentMap, isStandalone: true, selector: "ngts-environment-map", usesInheritance: true, ngImport: i0 });
2055
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentMap, decorators: [{
1702
2056
  type: Directive,
1703
2057
  args: [{
1704
2058
  selector: 'ngts-environment-map',
@@ -1720,8 +2074,8 @@ class NgtsEnvironmentGround extends NgtsEnvironmentInputs {
1720
2074
  this.connect('groundScale', this.select(['ground'], ({ ground }) => { var _a; return (_a = ground === null || ground === void 0 ? void 0 : ground.scale) !== null && _a !== void 0 ? _a : 1000; }));
1721
2075
  }
1722
2076
  }
1723
- NgtsEnvironmentGround.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentGround, deps: null, target: i0.ɵɵFactoryTarget.Component });
1724
- NgtsEnvironmentGround.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsEnvironmentGround, isStandalone: true, selector: "ngts-environment-ground", usesInheritance: true, ngImport: i0, template: `
2077
+ NgtsEnvironmentGround.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentGround, deps: null, target: i0.ɵɵFactoryTarget.Component });
2078
+ NgtsEnvironmentGround.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsEnvironmentGround, isStandalone: true, selector: "ngts-environment-ground", usesInheritance: true, ngImport: i0, template: `
1725
2079
  <ngts-environment-map
1726
2080
  [background]="get('background')"
1727
2081
  [blur]="get('blur')"
@@ -1737,7 +2091,7 @@ NgtsEnvironmentGround.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
1737
2091
  />
1738
2092
  </ng-container>
1739
2093
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1740
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentGround, decorators: [{
2094
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentGround, decorators: [{
1741
2095
  type: Component,
1742
2096
  args: [{
1743
2097
  selector: 'ngts-environment-ground',
@@ -1811,8 +2165,8 @@ class NgtsEnvironmentPortal extends NgtsEnvironmentInputs {
1811
2165
  }
1812
2166
  }
1813
2167
  }
1814
- NgtsEnvironmentPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentPortal, deps: [], target: i0.ɵɵFactoryTarget.Component });
1815
- NgtsEnvironmentPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsEnvironmentPortal, isStandalone: true, selector: "ngts-environment-portal", usesInheritance: true, ngImport: i0, template: `
2168
+ NgtsEnvironmentPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentPortal, deps: [], target: i0.ɵɵFactoryTarget.Component });
2169
+ NgtsEnvironmentPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsEnvironmentPortal, isStandalone: true, selector: "ngts-environment-portal", usesInheritance: true, ngImport: i0, template: `
1816
2170
  <ngt-portal [container]="virtualSceneRef">
1817
2171
  <ng-template ngtPortalContent>
1818
2172
  <ng-content />
@@ -1832,7 +2186,7 @@ NgtsEnvironmentPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
1832
2186
  </ng-template>
1833
2187
  </ngt-portal>
1834
2188
  `, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "state", "autoRender", "autoRenderPriority"], outputs: ["beforeRender"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[ngtPortalContent]" }, { kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
1835
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
2189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
1836
2190
  type: Component,
1837
2191
  args: [{
1838
2192
  selector: 'ngts-environment-portal',
@@ -1864,16 +2218,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
1864
2218
 
1865
2219
  class NgtsEnvironmentContent {
1866
2220
  }
1867
- NgtsEnvironmentContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1868
- NgtsEnvironmentContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: NgtsEnvironmentContent, isStandalone: true, selector: "ng-template[ngtsEnvironmentContent]", ngImport: i0 });
1869
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironmentContent, decorators: [{
2221
+ NgtsEnvironmentContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2222
+ NgtsEnvironmentContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsEnvironmentContent, isStandalone: true, selector: "ng-template[ngtsEnvironmentContent]", ngImport: i0 });
2223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironmentContent, decorators: [{
1870
2224
  type: Directive,
1871
2225
  args: [{ selector: 'ng-template[ngtsEnvironmentContent]', standalone: true }]
1872
2226
  }] });
1873
2227
  class NgtsEnvironment extends NgtsEnvironmentInputs {
1874
2228
  }
1875
- NgtsEnvironment.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironment, deps: null, target: i0.ɵɵFactoryTarget.Component });
1876
- NgtsEnvironment.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsEnvironment, isStandalone: true, selector: "ngts-environment", queries: [{ propertyName: "content", first: true, predicate: NgtsEnvironmentContent, descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: `
2229
+ NgtsEnvironment.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironment, deps: null, target: i0.ɵɵFactoryTarget.Component });
2230
+ NgtsEnvironment.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsEnvironment, isStandalone: true, selector: "ngts-environment", queries: [{ propertyName: "content", first: true, predicate: NgtsEnvironmentContent, descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: `
1877
2231
  <ngts-environment-ground
1878
2232
  *ngIf="get('ground'); else noGround"
1879
2233
  [ground]="get('ground')"
@@ -1935,7 +2289,7 @@ NgtsEnvironment.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
1935
2289
  </ng-template>
1936
2290
  </ng-template>
1937
2291
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map" }, { kind: "component", type: NgtsEnvironmentGround, selector: "ngts-environment-ground" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube" }, { kind: "component", type: NgtsEnvironmentPortal, selector: "ngts-environment-portal" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
1938
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsEnvironment, decorators: [{
2292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEnvironment, decorators: [{
1939
2293
  type: Component,
1940
2294
  args: [{
1941
2295
  selector: 'ngts-environment',
@@ -2055,15 +2409,15 @@ class NgtsFloat extends NgtRxStore {
2055
2409
  this.floatRef.nativeElement.position.y = yPosition * floatIntensity;
2056
2410
  }
2057
2411
  }
2058
- NgtsFloat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component });
2059
- NgtsFloat.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { floatRef: "floatRef", speed: "speed", rotationIntensity: "rotationIntensity", floatIntensity: "floatIntensity", floatingRange: "floatingRange" }, usesInheritance: true, ngImport: i0, template: `
2412
+ NgtsFloat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component });
2413
+ NgtsFloat.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { floatRef: "floatRef", speed: "speed", rotationIntensity: "rotationIntensity", floatIntensity: "floatIntensity", floatingRange: "floatingRange" }, usesInheritance: true, ngImport: i0, template: `
2060
2414
  <ngt-group ngtCompound>
2061
2415
  <ngt-group [ref]="floatRef">
2062
2416
  <ng-content />
2063
2417
  </ngt-group>
2064
2418
  </ngt-group>
2065
2419
  `, isInline: true });
2066
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsFloat, decorators: [{
2420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsFloat, decorators: [{
2067
2421
  type: Component,
2068
2422
  args: [{
2069
2423
  selector: 'ngts-float',
@@ -2145,8 +2499,8 @@ class NgtsSky extends NgtRxStore {
2145
2499
  this.connect('scale', this.select(['distance'], ({ distance }) => new Vector3().setScalar(distance)));
2146
2500
  }
2147
2501
  }
2148
- NgtsSky.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSky, deps: null, target: i0.ɵɵFactoryTarget.Component });
2149
- NgtsSky.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsSky, isStandalone: true, selector: "ngts-sky", inputs: { skyRef: "skyRef", distance: "distance", sunPosition: "sunPosition", inclination: "inclination", azimuth: "azimuth", mieCoefficient: "mieCoefficient", mieDirectionalG: "mieDirectionalG", rayleigh: "rayleigh", turbidity: "turbidity" }, usesInheritance: true, ngImport: i0, template: `
2502
+ NgtsSky.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSky, deps: null, target: i0.ɵɵFactoryTarget.Component });
2503
+ NgtsSky.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsSky, isStandalone: true, selector: "ngts-sky", inputs: { skyRef: "skyRef", distance: "distance", sunPosition: "sunPosition", inclination: "inclination", azimuth: "azimuth", mieCoefficient: "mieCoefficient", mieDirectionalG: "mieDirectionalG", rayleigh: "rayleigh", turbidity: "turbidity" }, usesInheritance: true, ngImport: i0, template: `
2150
2504
  <ngt-primitive ngtCompound *args="[sky]" [ref]="skyRef" [scale]="get('scale')">
2151
2505
  <ngt-value [rawValue]="get('mieCoefficient')" attach="material.uniforms.mieCoefficient.value" />
2152
2506
  <ngt-value [rawValue]="get('mieDirectionalG')" attach="material.uniforms.mieDirectionalG.value" />
@@ -2155,7 +2509,7 @@ NgtsSky.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
2155
2509
  <ngt-value [rawValue]="get('turbidity')" attach="material.uniforms.turbidity.value" />
2156
2510
  </ngt-primitive>
2157
2511
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
2158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSky, decorators: [{
2512
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSky, decorators: [{
2159
2513
  type: Component,
2160
2514
  args: [{
2161
2515
  selector: 'ngts-sky',
@@ -2342,8 +2696,8 @@ class NgtsSparkles extends NgtRxStore {
2342
2696
  return this.select(key).pipe(startWith(this.get(key) || undefined), withLatestFrom(this.select('count')), map(([value, count]) => usePropAsIsOrAsAttribute(options.countValue(value, count), options.keyValue(value, count), options === null || options === void 0 ? void 0 : options.setDefault)));
2343
2697
  }
2344
2698
  }
2345
- NgtsSparkles.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSparkles, deps: [], target: i0.ɵɵFactoryTarget.Component });
2346
- NgtsSparkles.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsSparkles, isStandalone: true, selector: "ngts-sparkles", inputs: { pointsRef: "pointsRef", count: "count", speed: "speed", opacity: "opacity", color: "color", size: "size", scale: "scale", noise: "noise" }, usesInheritance: true, ngImport: i0, template: `
2699
+ NgtsSparkles.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSparkles, deps: [], target: i0.ɵɵFactoryTarget.Component });
2700
+ NgtsSparkles.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsSparkles, isStandalone: true, selector: "ngts-sparkles", inputs: { pointsRef: "pointsRef", count: "count", speed: "speed", opacity: "opacity", color: "color", size: "size", scale: "scale", noise: "noise" }, usesInheritance: true, ngImport: i0, template: `
2347
2701
  <ngt-points ngtCompount [ref]="pointsRef">
2348
2702
  <ngt-buffer-geometry>
2349
2703
  <ngt-buffer-attribute *args="[get('positions'), 3]" attach="attributes.position" />
@@ -2356,7 +2710,7 @@ NgtsSparkles.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2356
2710
  <ngt-sparkles-material [ref]="materialRef" [transparent]="true" [depthWrite]="false" [pixelRatio]="dpr" />
2357
2711
  </ngt-points>
2358
2712
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
2359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSparkles, decorators: [{
2713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSparkles, decorators: [{
2360
2714
  type: Component,
2361
2715
  args: [{
2362
2716
  selector: 'ngts-sparkles',
@@ -2427,9 +2781,9 @@ class NgtsSpotLightInput extends NgtRxStore {
2427
2781
  this.set({ debug });
2428
2782
  }
2429
2783
  }
2430
- NgtsSpotLightInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLightInput, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2431
- NgtsSpotLightInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: NgtsSpotLightInput, inputs: { depthBuffer: "depthBuffer", angle: "angle", distance: "distance", attenuation: "attenuation", anglePower: "anglePower", radiusTop: "radiusTop", radiusBottom: "radiusBottom", opacity: "opacity", color: "color", debug: "debug" }, usesInheritance: true, ngImport: i0 });
2432
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLightInput, decorators: [{
2784
+ NgtsSpotLightInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLightInput, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2785
+ NgtsSpotLightInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsSpotLightInput, inputs: { depthBuffer: "depthBuffer", angle: "angle", distance: "distance", attenuation: "attenuation", anglePower: "anglePower", radiusTop: "radiusTop", radiusBottom: "radiusBottom", opacity: "opacity", color: "color", debug: "debug" }, usesInheritance: true, ngImport: i0 });
2786
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLightInput, decorators: [{
2433
2787
  type: Directive
2434
2788
  }], propDecorators: { depthBuffer: [{
2435
2789
  type: Input
@@ -2491,8 +2845,8 @@ class NgtsVolumetricMesh extends NgtsSpotLightInput {
2491
2845
  });
2492
2846
  }
2493
2847
  }
2494
- NgtsVolumetricMesh.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsVolumetricMesh, deps: [], target: i0.ɵɵFactoryTarget.Component });
2495
- NgtsVolumetricMesh.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsVolumetricMesh, isStandalone: true, selector: "ngts-volumetric-mesh", usesInheritance: true, ngImport: i0, template: `
2848
+ NgtsVolumetricMesh.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsVolumetricMesh, deps: [], target: i0.ɵɵFactoryTarget.Component });
2849
+ NgtsVolumetricMesh.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsVolumetricMesh, isStandalone: true, selector: "ngts-volumetric-mesh", usesInheritance: true, ngImport: i0, template: `
2496
2850
  <ngt-mesh [ref]="mesh" [geometry]="get('geometry')" [raycast]="nullRaycast">
2497
2851
  <ngt-primitive *args="[material]" attach="material">
2498
2852
  <ngt-value [rawValue]="get('opacity')" attach="uniforms.opacity.value" />
@@ -2506,7 +2860,7 @@ NgtsVolumetricMesh.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
2506
2860
  </ngt-primitive>
2507
2861
  </ngt-mesh>
2508
2862
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
2509
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsVolumetricMesh, decorators: [{
2863
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsVolumetricMesh, decorators: [{
2510
2864
  type: Component,
2511
2865
  args: [{
2512
2866
  selector: 'ngts-volumetric-mesh',
@@ -2563,8 +2917,8 @@ class NgtsSpotLight extends NgtsSpotLightInput {
2563
2917
  });
2564
2918
  }
2565
2919
  }
2566
- NgtsSpotLight.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLight, deps: null, target: i0.ɵɵFactoryTarget.Component });
2567
- NgtsSpotLight.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsSpotLight, isStandalone: true, selector: "ngts-spot-light", inputs: { spotLightRef: "spotLightRef", volumetric: "volumetric" }, providers: [{ provide: NGTS_SPOT_LIGHT_API, useFactory: spotLightApiFactory, deps: [NgtsSpotLight] }], usesInheritance: true, ngImport: i0, template: `
2920
+ NgtsSpotLight.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLight, deps: null, target: i0.ɵɵFactoryTarget.Component });
2921
+ NgtsSpotLight.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsSpotLight, isStandalone: true, selector: "ngts-spot-light", inputs: { spotLightRef: "spotLightRef", volumetric: "volumetric" }, providers: [{ provide: NGTS_SPOT_LIGHT_API, useFactory: spotLightApiFactory, deps: [NgtsSpotLight] }], usesInheritance: true, ngImport: i0, template: `
2568
2922
  <ngt-group>
2569
2923
  <ng-container *ngIf="get('debug') && spotLightRef.nativeElement">
2570
2924
  <ngt-spot-light-helper *args="[spotLightRef.nativeElement]" />
@@ -2594,7 +2948,7 @@ NgtsSpotLight.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2594
2948
  <ng-content />
2595
2949
  </ngt-group>
2596
2950
  `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "component", type: NgtsVolumetricMesh, selector: "ngts-volumetric-mesh" }] });
2597
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLight, decorators: [{
2951
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLight, decorators: [{
2598
2952
  type: Component,
2599
2953
  args: [{
2600
2954
  selector: 'ngts-spot-light',
@@ -2666,9 +3020,9 @@ class NgtsSpotLightShadowMeshInput extends NgtRxStore {
2666
3020
  this.set({ height });
2667
3021
  }
2668
3022
  }
2669
- NgtsSpotLightShadowMeshInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLightShadowMeshInput, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2670
- NgtsSpotLightShadowMeshInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: NgtsSpotLightShadowMeshInput, inputs: { distance: "distance", alphaTest: "alphaTest", scale: "scale", map: "map", shader: "shader", width: "width", height: "height" }, usesInheritance: true, ngImport: i0 });
2671
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLightShadowMeshInput, decorators: [{
3023
+ NgtsSpotLightShadowMeshInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLightShadowMeshInput, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3024
+ NgtsSpotLightShadowMeshInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsSpotLightShadowMeshInput, inputs: { distance: "distance", alphaTest: "alphaTest", scale: "scale", map: "map", shader: "shader", width: "width", height: "height" }, usesInheritance: true, ngImport: i0 });
3025
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLightShadowMeshInput, decorators: [{
2672
3026
  type: Directive
2673
3027
  }], propDecorators: { distance: [{
2674
3028
  type: Input
@@ -2751,8 +3105,8 @@ class NgtsSpotLightShadowNoShader extends NgtsSpotLightShadowMeshInput {
2751
3105
  commonEffect(this);
2752
3106
  }
2753
3107
  }
2754
- NgtsSpotLightShadowNoShader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLightShadowNoShader, deps: null, target: i0.ɵɵFactoryTarget.Component });
2755
- NgtsSpotLightShadowNoShader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsSpotLightShadowNoShader, isStandalone: true, selector: "ngts-spot-light-shadow-no-shader", usesInheritance: true, ngImport: i0, template: `
3108
+ NgtsSpotLightShadowNoShader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLightShadowNoShader, deps: null, target: i0.ɵɵFactoryTarget.Component });
3109
+ NgtsSpotLightShadowNoShader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsSpotLightShadowNoShader, isStandalone: true, selector: "ngts-spot-light-shadow-no-shader", usesInheritance: true, ngImport: i0, template: `
2756
3110
  <ngt-mesh [ref]="mesh" [scale]="get('scale')" [castShadow]="true">
2757
3111
  <ngt-plane-geometry />
2758
3112
  <ngt-mesh-basic-material
@@ -2766,7 +3120,7 @@ NgtsSpotLightShadowNoShader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
2766
3120
  </ngt-mesh-basic-material>
2767
3121
  </ngt-mesh>
2768
3122
  `, isInline: true, dependencies: [{ kind: "pipe", type: NgtPush, name: "ngtPush" }] });
2769
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLightShadowNoShader, decorators: [{
3123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLightShadowNoShader, decorators: [{
2770
3124
  type: Component,
2771
3125
  args: [{
2772
3126
  selector: 'ngts-spot-light-shadow-no-shader',
@@ -2862,8 +3216,8 @@ class NgtsSpotLightShadowShader extends NgtsSpotLightShadowMeshInput {
2862
3216
  commonEffect(this);
2863
3217
  }
2864
3218
  }
2865
- NgtsSpotLightShadowShader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLightShadowShader, deps: [], target: i0.ɵɵFactoryTarget.Component });
2866
- NgtsSpotLightShadowShader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsSpotLightShadowShader, isStandalone: true, selector: "ngts-spot-light-shadow-shader", usesInheritance: true, ngImport: i0, template: `
3219
+ NgtsSpotLightShadowShader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLightShadowShader, deps: [], target: i0.ɵɵFactoryTarget.Component });
3220
+ NgtsSpotLightShadowShader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsSpotLightShadowShader, isStandalone: true, selector: "ngts-spot-light-shadow-shader", usesInheritance: true, ngImport: i0, template: `
2867
3221
  <ngt-mesh [ref]="mesh" [scale]="get('scale')" [castShadow]="true">
2868
3222
  <ngt-plane-geometry />
2869
3223
  <ngt-mesh-basic-material
@@ -2879,7 +3233,7 @@ NgtsSpotLightShadowShader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
2879
3233
  </ngt-mesh-basic-material>
2880
3234
  </ngt-mesh>
2881
3235
  `, isInline: true, dependencies: [{ kind: "pipe", type: NgtPush, name: "ngtPush" }] });
2882
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLightShadowShader, decorators: [{
3236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLightShadowShader, decorators: [{
2883
3237
  type: Component,
2884
3238
  args: [{
2885
3239
  selector: 'ngts-spot-light-shadow-shader',
@@ -2907,8 +3261,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
2907
3261
 
2908
3262
  class NgtsSpotLightShadow extends NgtsSpotLightShadowMeshInput {
2909
3263
  }
2910
- NgtsSpotLightShadow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLightShadow, deps: null, target: i0.ɵɵFactoryTarget.Component });
2911
- NgtsSpotLightShadow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsSpotLightShadow, isStandalone: true, selector: "ngts-spot-light-shadow", usesInheritance: true, ngImport: i0, template: `
3264
+ NgtsSpotLightShadow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLightShadow, deps: null, target: i0.ɵɵFactoryTarget.Component });
3265
+ NgtsSpotLightShadow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsSpotLightShadow, isStandalone: true, selector: "ngts-spot-light-shadow", usesInheritance: true, ngImport: i0, template: `
2912
3266
  <ngts-spot-light-shadow-shader
2913
3267
  *ngIf="get('shader'); else noShader"
2914
3268
  [distance]="get('distance')"
@@ -2930,7 +3284,7 @@ NgtsSpotLightShadow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
2930
3284
  />
2931
3285
  </ng-template>
2932
3286
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsSpotLightShadowShader, selector: "ngts-spot-light-shadow-shader" }, { kind: "component", type: NgtsSpotLightShadowNoShader, selector: "ngts-spot-light-shadow-no-shader" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2933
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsSpotLightShadow, decorators: [{
3287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsSpotLightShadow, decorators: [{
2934
3288
  type: Component,
2935
3289
  args: [{
2936
3290
  selector: 'ngts-spot-light-shadow',
@@ -2991,9 +3345,9 @@ class NgtsStageRefit {
2991
3345
  }
2992
3346
  }
2993
3347
  }
2994
- NgtsStageRefit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsStageRefit, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2995
- NgtsStageRefit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: "radius", adjustCamera: "adjustCamera" }, usesOnChanges: true, ngImport: i0 });
2996
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsStageRefit, decorators: [{
3348
+ NgtsStageRefit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsStageRefit, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3349
+ NgtsStageRefit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: "radius", adjustCamera: "adjustCamera" }, usesOnChanges: true, ngImport: i0 });
3350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsStageRefit, decorators: [{
2997
3351
  type: Directive,
2998
3352
  args: [{ selector: 'ngts-stage-refit', standalone: true }]
2999
3353
  }], propDecorators: { radius: [{
@@ -3071,8 +3425,8 @@ class NgtsStage extends NgtRxStore {
3071
3425
  this.centered.emit(props);
3072
3426
  }
3073
3427
  }
3074
- NgtsStage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsStage, deps: null, target: i0.ɵɵFactoryTarget.Component });
3075
- NgtsStage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsStage, isStandalone: true, selector: "ngts-stage", inputs: { preset: "preset", shadows: "shadows", adjustCamera: "adjustCamera", environment: "environment", intensity: "intensity", center: "center" }, outputs: { centered: "centered" }, usesInheritance: true, ngImport: i0, template: `
3428
+ NgtsStage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsStage, deps: null, target: i0.ɵɵFactoryTarget.Component });
3429
+ NgtsStage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsStage, isStandalone: true, selector: "ngts-stage", inputs: { preset: "preset", shadows: "shadows", adjustCamera: "adjustCamera", environment: "environment", intensity: "intensity", center: "center" }, outputs: { centered: "centered" }, usesInheritance: true, ngImport: i0, template: `
3076
3430
  <ngt-ambient-light [intensity]="get('intensity')! / 3" />
3077
3431
  <ngt-spot-light
3078
3432
  [penumbra]="1"
@@ -3173,7 +3527,7 @@ NgtsStage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
3173
3527
  [encoding]="get('environmentInfo').encoding"
3174
3528
  />
3175
3529
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "component", type: NgtsBounds, selector: "ngts-bounds", inputs: ["boundsRef", "damping", "fit", "clip", "observe", "margin", "eps"], outputs: ["fitted"] }, { kind: "directive", type: NgtsStageRefit, selector: "ngts-stage-refit", inputs: ["radius", "adjustCamera"] }, { kind: "component", type: NgtsCenter, selector: "ngts-center", inputs: ["centerRef", "top", "right", "bottom", "left", "front", "back", "disableX", "disableY", "disableZ", "disabled", "precise"], outputs: ["centered"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtsContactShadows, selector: "ngts-contact-shadows", inputs: ["contactShadowsRef", "opacity", "width", "height", "blur", "far", "smooth", "resolution", "frames", "scale", "color", "depthWrite", "renderOrder"] }, { kind: "component", type: NgtsAccumulativeShadows, selector: "ngts-accumulative-shadows", inputs: ["frames", "blend", "limit", "scale", "temporal", "opacity", "alphaTest", "color", "colorBlend", "resolution", "toneMapped"] }, { kind: "component", type: NgtsRandomizedLights, selector: "ngts-randomized-lights", inputs: ["lightsRef", "frames", "position", "radius", "amount", "intensity", "ambient", "castShadow", "bias", "mapSize", "size", "near", "far"] }, { kind: "component", type: NgtsEnvironment, selector: "ngts-environment" }] });
3176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsStage, decorators: [{
3530
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsStage, decorators: [{
3177
3531
  type: Component,
3178
3532
  args: [{
3179
3533
  selector: 'ngts-stage',
@@ -3409,8 +3763,8 @@ class NgtsStars extends NgtRxStore {
3409
3763
  this.material.uniforms['time'].value = clock.getElapsedTime() * this.get('speed');
3410
3764
  }
3411
3765
  }
3412
- NgtsStars.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component });
3413
- NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgtsStars, isStandalone: true, selector: "ngts-stars", inputs: { starsRef: "starsRef", radius: "radius", depth: "depth", count: "count", factor: "factor", saturation: "saturation", fade: "fade", speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
3766
+ NgtsStars.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component });
3767
+ NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsStars, isStandalone: true, selector: "ngts-stars", inputs: { starsRef: "starsRef", radius: "radius", depth: "depth", count: "count", factor: "factor", saturation: "saturation", fade: "fade", speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
3414
3768
  <ngt-points [ref]="starsRef">
3415
3769
  <ngt-buffer-geometry>
3416
3770
  <ngt-buffer-attribute attach="attributes.position" *args="[get('bufferAttributes').positions, 3]" />
@@ -3429,7 +3783,7 @@ NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
3429
3783
  </ngt-primitive>
3430
3784
  </ngt-points>
3431
3785
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
3432
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgtsStars, decorators: [{
3786
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsStars, decorators: [{
3433
3787
  type: Component,
3434
3788
  args: [{
3435
3789
  selector: 'ngts-stars',
@@ -3478,5 +3832,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
3478
3832
  * Generated bundle index. Do not edit.
3479
3833
  */
3480
3834
 
3481
- export { NGTS_BOUNDS_API, NGTS_SPOT_LIGHT_API, NgtsAccumulativeShadows, NgtsBounds, NgtsCameraShake, NgtsCenter, NgtsCloud, NgtsContactShadows, NgtsEnvironment, NgtsEnvironmentContent, NgtsFloat, NgtsRandomizedLights, NgtsSky, NgtsSparkles, NgtsSpotLight, NgtsSpotLightShadow, NgtsStage, NgtsStageRefit, NgtsStars, calcPosFromAngles, ngtsEnvironmentPresetsObj };
3835
+ export { NGTS_BOUNDS_API, NGTS_SPOT_LIGHT_API, NgtsAccumulativeShadows, NgtsBounds, NgtsCameraShake, NgtsCaustics, NgtsCenter, NgtsCloud, NgtsContactShadows, NgtsEnvironment, NgtsEnvironmentContent, NgtsFloat, NgtsRandomizedLights, NgtsSky, NgtsSparkles, NgtsSpotLight, NgtsSpotLightShadow, NgtsStage, NgtsStageRefit, NgtsStars, calcPosFromAngles, ngtsEnvironmentPresetsObj };
3482
3836
  //# sourceMappingURL=angular-three-soba-staging.mjs.map