angular-three-soba 2.0.0 → 2.2.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 (72) hide show
  1. package/abstractions/lib/catmull-rom-line.d.ts +148 -148
  2. package/abstractions/lib/edges.d.ts +166 -166
  3. package/abstractions/lib/grid.d.ts +30 -30
  4. package/abstractions/lib/line.d.ts +2 -2
  5. package/abstractions/lib/prism-geometry.d.ts +4 -4
  6. package/abstractions/lib/rounded-box.d.ts +1 -1
  7. package/abstractions/lib/text-3d.d.ts +37 -37
  8. package/abstractions/lib/text.d.ts +2 -2
  9. package/cameras/lib/cube-camera.d.ts +1 -1
  10. package/cameras/lib/orthographic-camera.d.ts +1 -1
  11. package/cameras/lib/perspective-camera.d.ts +1 -1
  12. package/controls/index.d.ts +9 -1
  13. package/controls/lib/camera-controls.d.ts +1 -1
  14. package/controls/lib/orbit-controls.d.ts +1 -1
  15. package/esm2022/controls/index.mjs +6 -2
  16. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
  17. package/esm2022/gizmos/index.mjs +6 -0
  18. package/esm2022/gizmos/lib/gizmo-helper/gizmo-helper.mjs +187 -0
  19. package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewcube.mjs +304 -0
  20. package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewport.mjs +332 -0
  21. package/esm2022/gizmos/lib/pivot-controls/axis-arrow.mjs +263 -0
  22. package/esm2022/gizmos/lib/pivot-controls/axis-rotator.mjs +264 -0
  23. package/esm2022/gizmos/lib/pivot-controls/pivot-controls.mjs +340 -0
  24. package/esm2022/gizmos/lib/pivot-controls/plane-slider.mjs +266 -0
  25. package/esm2022/gizmos/lib/pivot-controls/scaling-sphere.mjs +232 -0
  26. package/esm2022/gizmos/lib/transform-controls.mjs +177 -0
  27. package/esm2022/staging/index.mjs +2 -1
  28. package/esm2022/staging/lib/mask.mjs +78 -0
  29. package/fesm2022/angular-three-soba-controls.mjs +14 -1337
  30. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  31. package/fesm2022/angular-three-soba-gizmos.mjs +2319 -0
  32. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
  33. package/fesm2022/angular-three-soba-staging.mjs +92 -21
  34. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  35. package/gizmos/README.md +3 -0
  36. package/gizmos/index.d.ts +5 -0
  37. package/gizmos/lib/gizmo-helper/gizmo-helper.d.ts +45 -0
  38. package/gizmos/lib/gizmo-helper/gizmo-viewcube.d.ts +74 -0
  39. package/gizmos/lib/gizmo-helper/gizmo-viewport.d.ts +64 -0
  40. package/{controls → gizmos}/lib/pivot-controls/pivot-controls.d.ts +1 -1
  41. package/gizmos/lib/transform-controls.d.ts +50 -0
  42. package/materials/lib/custom-shader-material.d.ts +3 -3
  43. package/materials/lib/mesh-refraction-material.d.ts +3 -3
  44. package/materials/lib/mesh-transmission-material.d.ts +1 -1
  45. package/misc/lib/computed-attribute.d.ts +5 -5
  46. package/misc/lib/decal.d.ts +1 -1
  47. package/misc/lib/html/html.d.ts +1 -1
  48. package/misc/lib/sampler.d.ts +1 -1
  49. package/package.json +18 -12
  50. package/performances/lib/instances/instances.d.ts +9 -9
  51. package/performances/lib/points/points.d.ts +20 -20
  52. package/performances/lib/segments/segments.d.ts +4 -4
  53. package/shaders/lib/mesh-refraction-material.d.ts +2 -2
  54. package/staging/index.d.ts +1 -0
  55. package/staging/lib/caustics.d.ts +1 -1
  56. package/staging/lib/center.d.ts +2 -2
  57. package/staging/lib/contact-shadows.d.ts +1 -1
  58. package/staging/lib/lightformer.d.ts +1 -1
  59. package/staging/lib/mask.d.ts +30 -0
  60. package/staging/lib/render-texture.d.ts +1 -1
  61. package/staging/lib/sky.d.ts +1 -1
  62. package/staging/lib/spot-light.d.ts +2 -2
  63. package/staging/lib/stage.d.ts +6 -6
  64. package/esm2022/controls/lib/pivot-controls/axis-arrow.mjs +0 -263
  65. package/esm2022/controls/lib/pivot-controls/axis-rotator.mjs +0 -264
  66. package/esm2022/controls/lib/pivot-controls/pivot-controls.mjs +0 -340
  67. package/esm2022/controls/lib/pivot-controls/plane-slider.mjs +0 -266
  68. package/esm2022/controls/lib/pivot-controls/scaling-sphere.mjs +0 -232
  69. /package/{controls → gizmos}/lib/pivot-controls/axis-arrow.d.ts +0 -0
  70. /package/{controls → gizmos}/lib/pivot-controls/axis-rotator.d.ts +0 -0
  71. /package/{controls → gizmos}/lib/pivot-controls/plane-slider.d.ts +0 -0
  72. /package/{controls → gizmos}/lib/pivot-controls/scaling-sphere.d.ts +0 -0
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, viewChild, computed, afterNextRender, inject, DestroyRef, untracked, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, signal, Directive, output, effect, Injector, contentChild, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { input, viewChild, computed, afterNextRender, inject, DestroyRef, untracked, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, signal, Directive, output, effect, Injector, contentChild, TemplateRef, numberAttribute, ViewContainerRef } from '@angular/core';
3
3
  import { omit, injectStore, pick, extend, getLocalState, injectBeforeRender, checkUpdate, NgtArgs, vector3, is, resolveRef, applyProps, injectLoader, prepare, NgtPortal, NgtPortalContent } from 'angular-three';
4
4
  import { ProgressiveLightMap, SoftShadowMaterial, CausticsProjectionMaterial, createCausticsUpdate, SpotLightMaterial } from 'angular-three-soba/vanilla-exports';
5
5
  import { injectAutoEffect } from 'ngxtension/auto-effect';
6
6
  import { mergeInputs } from 'ngxtension/inject-inputs';
7
- import { Group, Mesh, PlaneGeometry, Box3, Vector3, Quaternion, Matrix4, LinearFilter, UnsignedByteType, LinearMipmapLinearFilter, FloatType, CustomBlending, OneFactor, SrcAlphaFactor, CameraHelper, Scene, LineBasicMaterial, OrthographicCamera, Sphere, Color, MeshDepthMaterial, ShaderMaterial, MeshBasicMaterial, WebGLRenderTarget, CubeTextureLoader, CubeTexture, CubeReflectionMapping, EquirectangularReflectionMapping, WebGLCubeRenderTarget, HalfFloatType, CubeCamera, MathUtils, DoubleSide, RingGeometry, RepeatWrapping, Vector2, DirectionalLight, Object3D, CylinderGeometry, RGBAFormat, SpotLightHelper, SpotLight, AmbientLight, PointLight } from 'three';
7
+ import { Group, Mesh, PlaneGeometry, Box3, Vector3, Quaternion, Matrix4, LinearFilter, UnsignedByteType, LinearMipmapLinearFilter, FloatType, CustomBlending, OneFactor, SrcAlphaFactor, CameraHelper, Scene, LineBasicMaterial, OrthographicCamera, Sphere, Color, MeshDepthMaterial, ShaderMaterial, MeshBasicMaterial, WebGLRenderTarget, CubeTextureLoader, CubeTexture, CubeReflectionMapping, EquirectangularReflectionMapping, WebGLCubeRenderTarget, HalfFloatType, CubeCamera, MathUtils, DoubleSide, RingGeometry, AlwaysStencilFunc, ReplaceStencilOp, NotEqualStencilFunc, EqualStencilFunc, KeepStencilOp, RepeatWrapping, Vector2, DirectionalLight, Object3D, CylinderGeometry, RGBAFormat, SpotLightHelper, SpotLight, AmbientLight, PointLight } from 'three';
8
8
  import { SimplexNoise, HorizontalBlurShader, VerticalBlurShader, RGBELoader, EXRLoader, GroundProjectedEnv, Sky, FullScreenQuad } from 'three-stdlib';
9
9
  import { injectHelper, NgtsEdges, NgtsHelper } from 'angular-three-soba/abstractions';
10
10
  import { injectFBO, sRGBEncoding, LinearEncoding, getVersion } from 'angular-three-soba/misc';
@@ -13,7 +13,7 @@ import { HDRJPGLoader, GainMapLoader } from '@monogrid/gainmap-js';
13
13
  import { assertInjector } from 'ngxtension/assert-injector';
14
14
  import { injectTexture } from 'angular-three-soba/loaders';
15
15
 
16
- const defaultOptions$d = {
16
+ const defaultOptions$e = {
17
17
  temporal: false,
18
18
  frames: 40,
19
19
  limit: Infinity,
@@ -30,7 +30,7 @@ class NgtsAccumulativeShadows {
30
30
  constructor() {
31
31
  this.nullTraversal = () => null;
32
32
  this.Math = Math;
33
- this.options = input(defaultOptions$d, { transform: mergeInputs(defaultOptions$d) });
33
+ this.options = input(defaultOptions$e, { transform: mergeInputs(defaultOptions$e) });
34
34
  this.parameters = omit(this.options, [
35
35
  'temporal',
36
36
  'frames',
@@ -191,14 +191,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
191
191
  function easeInExpo(x) {
192
192
  return x === 0 ? 0 : Math.pow(2, 10 * x - 10);
193
193
  }
194
- const defaultOptions$c = {
194
+ const defaultOptions$d = {
195
195
  floor: 0.25,
196
196
  segments: 20,
197
197
  };
198
198
  class NgtsBackdrop {
199
199
  constructor() {
200
200
  this.Math = Math;
201
- this.options = input(defaultOptions$c, { transform: mergeInputs(defaultOptions$c) });
201
+ this.options = input(defaultOptions$d, { transform: mergeInputs(defaultOptions$d) });
202
202
  this.parameters = omit(this.options, ['floor', 'segments', 'receiveShadow']);
203
203
  this.groupRef = viewChild.required('group');
204
204
  this.planeRef = viewChild('plane');
@@ -322,7 +322,7 @@ function interpolateFuncDefault(t) {
322
322
  // Imitates the previously used THREE.MathUtils.damp
323
323
  return 1 - Math.exp(-5 * t) + 0.007 * t;
324
324
  }
325
- const defaultOptions$b = {
325
+ const defaultOptions$c = {
326
326
  maxDuration: 1.0,
327
327
  margin: 1.2,
328
328
  interpolateFunc: interpolateFuncDefault,
@@ -332,7 +332,7 @@ const defaultOptions$b = {
332
332
  };
333
333
  class NgtsBounds {
334
334
  constructor() {
335
- this.options = input(defaultOptions$b, { transform: mergeInputs(defaultOptions$b) });
335
+ this.options = input(defaultOptions$c, { transform: mergeInputs(defaultOptions$c) });
336
336
  this.groupRef = viewChild.required('group');
337
337
  this.store = injectStore();
338
338
  this.camera = this.store.select('camera');
@@ -589,7 +589,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
589
589
  }]
590
590
  }], ctorParameters: () => [] });
591
591
 
592
- const defaultOptions$a = {
592
+ const defaultOptions$b = {
593
593
  intensity: 1,
594
594
  decayRate: 0.65,
595
595
  maxYaw: 0.1,
@@ -607,7 +607,7 @@ class NgtsCameraShake {
607
607
  this.intensityOption = Math.min(1, Math.max(0, val));
608
608
  }
609
609
  constructor() {
610
- this.options = input(defaultOptions$a, { transform: mergeInputs(defaultOptions$a) });
610
+ this.options = input(defaultOptions$b, { transform: mergeInputs(defaultOptions$b) });
611
611
  this.autoEffect = injectAutoEffect();
612
612
  this.store = injectStore();
613
613
  this.camera = this.store.select('camera');
@@ -664,7 +664,7 @@ const CAUSTIC_OPTIONS = {
664
664
  type: FloatType,
665
665
  generateMipmaps: true,
666
666
  };
667
- const defaultOptions$9 = {
667
+ const defaultOptions$a = {
668
668
  frames: 1,
669
669
  debug: false,
670
670
  causticsOnly: false,
@@ -683,7 +683,7 @@ class NgtsCaustics {
683
683
  this.CustomBlending = CustomBlending;
684
684
  this.OneFactor = OneFactor;
685
685
  this.SrcAlphaFactor = SrcAlphaFactor;
686
- this.options = input(defaultOptions$9, { transform: mergeInputs(defaultOptions$9) });
686
+ this.options = input(defaultOptions$a, { transform: mergeInputs(defaultOptions$a) });
687
687
  this.parameters = omit(this.options, [
688
688
  'frames',
689
689
  'debug',
@@ -831,13 +831,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
831
831
  }]
832
832
  }], ctorParameters: () => [] });
833
833
 
834
- const defaultOptions$8 = {
834
+ const defaultOptions$9 = {
835
835
  precise: true,
836
836
  cacheKey: 0,
837
837
  };
838
838
  class NgtsCenter {
839
839
  constructor() {
840
- this.options = input(defaultOptions$8, { transform: mergeInputs(defaultOptions$8) });
840
+ this.options = input(defaultOptions$9, { transform: mergeInputs(defaultOptions$9) });
841
841
  this.parameters = omit(this.options, [
842
842
  'top',
843
843
  'right',
@@ -943,7 +943,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
943
943
  }]
944
944
  }], ctorParameters: () => [] });
945
945
 
946
- const defaultOptions$7 = {
946
+ const defaultOptions$8 = {
947
947
  scale: 10,
948
948
  frames: Infinity,
949
949
  opacity: 1,
@@ -960,7 +960,7 @@ const defaultOptions$7 = {
960
960
  class NgtsContactShadows {
961
961
  constructor() {
962
962
  this.Math = Math;
963
- this.options = input(defaultOptions$7, { transform: mergeInputs(defaultOptions$7) });
963
+ this.options = input(defaultOptions$8, { transform: mergeInputs(defaultOptions$8) });
964
964
  this.parameters = omit(this.options, [
965
965
  'scale',
966
966
  'frames',
@@ -1621,7 +1621,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
1621
1621
  }]
1622
1622
  }] });
1623
1623
 
1624
- const defaultOptions$6 = {
1624
+ const defaultOptions$7 = {
1625
1625
  enabled: true,
1626
1626
  speed: 1,
1627
1627
  rotationIntensity: 1,
@@ -1631,7 +1631,7 @@ const defaultOptions$6 = {
1631
1631
  };
1632
1632
  class NgtsFloat {
1633
1633
  constructor() {
1634
- this.options = input(defaultOptions$6, { transform: mergeInputs(defaultOptions$6) });
1634
+ this.options = input(defaultOptions$7, { transform: mergeInputs(defaultOptions$7) });
1635
1635
  this.parameters = omit(this.options, [
1636
1636
  'enabled',
1637
1637
  'speed',
@@ -1686,7 +1686,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
1686
1686
  }]
1687
1687
  }], ctorParameters: () => [] });
1688
1688
 
1689
- const defaultOptions$5 = {
1689
+ const defaultOptions$6 = {
1690
1690
  toneMapped: false,
1691
1691
  color: 'white',
1692
1692
  form: 'rect',
@@ -1696,7 +1696,7 @@ const defaultOptions$5 = {
1696
1696
  class NgtsLightformer {
1697
1697
  constructor() {
1698
1698
  this.side = DoubleSide;
1699
- this.options = input(defaultOptions$5, { transform: mergeInputs(defaultOptions$5) });
1699
+ this.options = input(defaultOptions$6, { transform: mergeInputs(defaultOptions$6) });
1700
1700
  this.parameters = omit(this.options, ['map', 'toneMapped', 'color', 'form', 'scale', 'intensity', 'target']);
1701
1701
  this.intensity = pick(this.options, 'intensity');
1702
1702
  this.color = pick(this.options, 'color');
@@ -1787,6 +1787,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
1787
1787
  }]
1788
1788
  }], ctorParameters: () => [] });
1789
1789
 
1790
+ const defaultOptions$5 = {
1791
+ colorWrite: false,
1792
+ depthWrite: false,
1793
+ };
1794
+ class NgtsMask {
1795
+ constructor() {
1796
+ this.id = input(1, { transform: numberAttribute });
1797
+ this.options = input(defaultOptions$5, { transform: mergeInputs(defaultOptions$5) });
1798
+ this.parameters = omit(this.options, ['colorWrite', 'depthWrite']);
1799
+ this.meshRef = viewChild.required('mesh');
1800
+ this.colorWrite = pick(this.options, 'colorWrite');
1801
+ this.depthWrite = pick(this.options, 'depthWrite');
1802
+ this.spread = computed(() => {
1803
+ const [id, colorWrite, depthWrite] = [this.id(), this.colorWrite(), this.depthWrite()];
1804
+ return {
1805
+ colorWrite,
1806
+ depthWrite,
1807
+ stencilWrite: true,
1808
+ stencilRef: id,
1809
+ stencilFunc: AlwaysStencilFunc,
1810
+ stencilFail: ReplaceStencilOp,
1811
+ stencilZFail: ReplaceStencilOp,
1812
+ stencilZPass: ReplaceStencilOp,
1813
+ };
1814
+ });
1815
+ extend({ Mesh });
1816
+ const autoEffect = injectAutoEffect();
1817
+ afterNextRender(() => {
1818
+ autoEffect(() => {
1819
+ const [mesh, spread] = [this.meshRef().nativeElement, this.spread()];
1820
+ Object.assign(mesh.material, spread);
1821
+ });
1822
+ });
1823
+ }
1824
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsMask, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1825
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsMask, isStandalone: true, selector: "ngts-mask", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
1826
+ <ngt-mesh #mesh [renderOrder]="-id()" [parameters]="parameters()">
1827
+ <ng-content />
1828
+ </ngt-mesh>
1829
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1830
+ }
1831
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsMask, decorators: [{
1832
+ type: Component,
1833
+ args: [{
1834
+ selector: 'ngts-mask',
1835
+ standalone: true,
1836
+ template: `
1837
+ <ngt-mesh #mesh [renderOrder]="-id()" [parameters]="parameters()">
1838
+ <ng-content />
1839
+ </ngt-mesh>
1840
+ `,
1841
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
1842
+ changeDetection: ChangeDetectionStrategy.OnPush,
1843
+ }]
1844
+ }], ctorParameters: () => [] });
1845
+ function injectMask(id, inverse = () => false, { injector } = {}) {
1846
+ return assertInjector(injectMask, injector, () => {
1847
+ return computed(() => {
1848
+ const [_id, _inverse] = [id(), inverse()];
1849
+ return {
1850
+ stencilWrite: true,
1851
+ stencilRef: _id,
1852
+ stencilFunc: _inverse ? NotEqualStencilFunc : EqualStencilFunc,
1853
+ stencilFail: KeepStencilOp,
1854
+ stencilZFail: KeepStencilOp,
1855
+ stencilZPass: KeepStencilOp,
1856
+ };
1857
+ });
1858
+ });
1859
+ }
1860
+
1790
1861
  function getFormatString(format) {
1791
1862
  switch (format) {
1792
1863
  case 64:
@@ -2982,5 +3053,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
2982
3053
  * Generated bundle index. Do not edit.
2983
3054
  */
2984
3055
 
2985
- export { ENVIRONMENT_PRESETS, NgtsAccumulativeShadows, NgtsBBAnchor, NgtsBackdrop, NgtsBounds, NgtsCameraShake, NgtsCaustics, NgtsCenter, NgtsContactShadows, NgtsEnvironment, NgtsEnvironmentCube, NgtsEnvironmentGround, NgtsEnvironmentMap, NgtsEnvironmentPortal, NgtsFloat, NgtsLightformer, NgtsMatcapTexture, NgtsNormalTexture, NgtsRandomizedLights, NgtsRenderTexture, NgtsRenderTextureContainer, NgtsRenderTextureContent, NgtsSky, NgtsSpotLight, NgtsSpotLightShadow, NgtsStage, NgtsStageRefit, calcPosFromAngles, injectEnvironment, injectMatcapTexture, injectNormalTexture };
3056
+ export { ENVIRONMENT_PRESETS, NgtsAccumulativeShadows, NgtsBBAnchor, NgtsBackdrop, NgtsBounds, NgtsCameraShake, NgtsCaustics, NgtsCenter, NgtsContactShadows, NgtsEnvironment, NgtsEnvironmentCube, NgtsEnvironmentGround, NgtsEnvironmentMap, NgtsEnvironmentPortal, NgtsFloat, NgtsLightformer, NgtsMask, NgtsMatcapTexture, NgtsNormalTexture, NgtsRandomizedLights, NgtsRenderTexture, NgtsRenderTextureContainer, NgtsRenderTextureContent, NgtsSky, NgtsSpotLight, NgtsSpotLightShadow, NgtsStage, NgtsStageRefit, calcPosFromAngles, injectEnvironment, injectMask, injectMatcapTexture, injectNormalTexture };
2986
3057
  //# sourceMappingURL=angular-three-soba-staging.mjs.map