angular-three-soba 4.0.0-next.9 → 4.0.0-next.91

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 (51) hide show
  1. package/abstractions/README.md +1 -1
  2. package/abstractions/lib/catmull-rom-line.d.ts +16 -15
  3. package/abstractions/lib/edges.d.ts +17 -15
  4. package/abstractions/lib/text-3d.d.ts +1 -1
  5. package/abstractions/lib/text.d.ts +5 -1
  6. package/cameras/lib/camera-content.d.ts +1 -2
  7. package/cameras/lib/cube-camera.d.ts +2 -2
  8. package/cameras/lib/orthographic-camera.d.ts +6 -5
  9. package/cameras/lib/perspective-camera.d.ts +2 -5
  10. package/controls/README.md +28 -28
  11. package/controls/index.d.ts +1 -0
  12. package/controls/lib/camera-controls.d.ts +1 -1
  13. package/controls/lib/orbit-controls.d.ts +11 -6
  14. package/controls/lib/trackball-controls.d.ts +27 -0
  15. package/fesm2022/angular-three-soba-abstractions.mjs +87 -47
  16. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  17. package/fesm2022/angular-three-soba-cameras.mjs +61 -37
  18. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  19. package/fesm2022/angular-three-soba-controls.mjs +128 -36
  20. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  21. package/fesm2022/angular-three-soba-gizmos.mjs +124 -86
  22. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -1
  23. package/fesm2022/angular-three-soba-loaders.mjs +3 -3
  24. package/fesm2022/angular-three-soba-materials.mjs +82 -86
  25. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  26. package/fesm2022/angular-three-soba-misc.mjs +55 -48
  27. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  28. package/fesm2022/angular-three-soba-performances.mjs +152 -35
  29. package/fesm2022/angular-three-soba-performances.mjs.map +1 -1
  30. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  31. package/fesm2022/angular-three-soba-staging.mjs +183 -144
  32. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  33. package/fesm2022/angular-three-soba-stats.mjs +3 -3
  34. package/gizmos/lib/gizmo-helper/gizmo-helper.d.ts +4 -3
  35. package/loaders/README.md +39 -39
  36. package/materials/lib/mesh-transmission-material.d.ts +4 -4
  37. package/misc/README.md +16 -16
  38. package/misc/lib/deprecated.d.ts +0 -6
  39. package/misc/lib/depth-buffer.d.ts +1 -1
  40. package/misc/lib/fbo.d.ts +1 -3
  41. package/misc/lib/html/html-content.d.ts +2 -2
  42. package/misc/lib/html/html.d.ts +4 -4
  43. package/package.json +6 -6
  44. package/performances/index.d.ts +1 -0
  45. package/performances/lib/adaptive-dpr.d.ts +1 -1
  46. package/performances/lib/bvh.d.ts +49 -0
  47. package/shaders/lib/mesh-refraction-material.d.ts +2 -2
  48. package/staging/lib/caustics.d.ts +3 -3
  49. package/staging/lib/environment/inject-environment.d.ts +1 -2
  50. package/staging/lib/render-texture.d.ts +5 -4
  51. package/staging/lib/stage.d.ts +12 -11
@@ -44,10 +44,10 @@ class NgtsStats {
44
44
  });
45
45
  });
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsStats, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.4", type: NgtsStats, isStandalone: true, selector: "ngt-canvas[stats]", inputs: { options: { classPropertyName: "options", publicName: "stats", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsStats, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.1", type: NgtsStats, isStandalone: true, selector: "ngt-canvas[stats]", inputs: { options: { classPropertyName: "options", publicName: "stats", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsStats, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsStats, decorators: [{
51
51
  type: Directive,
52
52
  args: [{ selector: 'ngt-canvas[stats]' }]
53
53
  }], ctorParameters: () => [] });
@@ -15,7 +15,7 @@ export interface NgtsGizmoHelperOptions {
15
15
  renderPriority: number;
16
16
  autoClear?: boolean;
17
17
  }
18
- export declare class NgtsGizmoHelper {
18
+ export declare class NgtsGizmoHelperImpl {
19
19
  options: import("@angular/core").InputSignalWithTransform<NgtsGizmoHelperOptions, "" | Partial<NgtsGizmoHelperOptions>>;
20
20
  update: import("@angular/core").OutputEmitterRef<void>;
21
21
  protected renderPriority: import("@angular/core").Signal<number>;
@@ -37,6 +37,7 @@ export declare class NgtsGizmoHelper {
37
37
  private updateDefaultUpEffect;
38
38
  private isOrbitControls;
39
39
  private isCameraControls;
40
- static ɵfac: i0.ɵɵFactoryDeclaration<NgtsGizmoHelper, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtsGizmoHelper, "ngts-gizmo-helper", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "update": "update"; }, ["content"], never, true, never>;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsGizmoHelperImpl, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsGizmoHelperImpl, "ngts-gizmo-helper", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "update": "update"; }, ["content"], never, true, never>;
42
42
  }
43
+ export declare const NgtsGizmoHelper: readonly [typeof NgtsGizmoHelperImpl, typeof NgtsGizmoHelperContent];
package/loaders/README.md CHANGED
@@ -35,34 +35,34 @@ The function also has static methods for preloading and setting the decoder path
35
35
 
36
36
  ```ts
37
37
  @Component({
38
- selector: 'app-suzi',
39
- template: `
40
- <ngt-primitive *args="[scene()]" [rotation]="[-0.63, 0, 0]" [scale]="2" [position]="[0, -1.175, 0]" />
41
- `,
42
- imports: [NgtArgs],
43
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
44
- changeDetection: ChangeDetectionStrategy.OnPush,
38
+ selector: 'app-suzi',
39
+ template: `
40
+ <ngt-primitive *args="[scene()]" [rotation]="[-0.63, 0, 0]" [scale]="2" [position]="[0, -1.175, 0]" />
41
+ `,
42
+ imports: [NgtArgs],
43
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
44
+ changeDetection: ChangeDetectionStrategy.OnPush,
45
45
  })
46
46
  class Suzi {
47
- gltf = injectGLTF(() => './suzanne-high-poly.gltf');
47
+ gltf = injectGLTF(() => './suzanne-high-poly.gltf');
48
48
 
49
- scene = computed(() => {
50
- const gltf = this.gltf();
51
- if (!gltf) return null;
52
- const { scene, materials } = gltf;
53
- scene.traverse((obj) => (obj as any).isMesh && (obj.receiveShadow = obj.castShadow = true));
49
+ scene = computed(() => {
50
+ const gltf = this.gltf();
51
+ if (!gltf) return null;
52
+ const { scene, materials } = gltf;
53
+ scene.traverse((obj) => (obj as any).isMesh && (obj.receiveShadow = obj.castShadow = true));
54
54
 
55
- const material = materials['default'] as MeshStandardMaterial;
55
+ const material = materials['default'] as MeshStandardMaterial;
56
56
 
57
- material.color.set('orange');
58
- material.roughness = 0;
59
- material.normalMap = new CanvasTexture(new FlakesTexture(), UVMapping, RepeatWrapping, RepeatWrapping);
60
- material.normalMap.flipY = false;
61
- material.normalMap.repeat.set(40, 40);
62
- material.normalScale.set(0.05, 0.05);
57
+ material.color.set('orange');
58
+ material.roughness = 0;
59
+ material.normalMap = new CanvasTexture(new FlakesTexture(), UVMapping, RepeatWrapping, RepeatWrapping);
60
+ material.normalMap.flipY = false;
61
+ material.normalMap.repeat.set(40, 40);
62
+ material.normalScale.set(0.05, 0.05);
63
63
 
64
- return scene;
65
- });
64
+ return scene;
65
+ });
66
66
  }
67
67
  ```
68
68
 
@@ -76,19 +76,19 @@ The function also has a static method for preloading textures:
76
76
 
77
77
  ```ts
78
78
  @Component({
79
- template: `
80
- <ngt-mesh>
81
- <ngt-mesh-physical-material [normalMap]="normalMap()" [roughnessMap]="roughnessMap()" />
82
- </ngt-mesh>
83
- `,
79
+ template: `
80
+ <ngt-mesh>
81
+ <ngt-mesh-physical-material [normalMap]="normalMap()" [roughnessMap]="roughnessMap()" />
82
+ </ngt-mesh>
83
+ `,
84
84
  })
85
85
  export class MyCmp {
86
- private textures = injectTexture(() => ({
87
- roughnessMap: 'roughness_floor.jpeg',
88
- normalMap: 'NORM.jpg',
89
- }));
90
- roughnessMap = computed(() => this.textures()?.roughnessMap || null);
91
- normalMap = computed(() => this.textures()?.normalMap || null);
86
+ private textures = injectTexture(() => ({
87
+ roughnessMap: 'roughness_floor.jpeg',
88
+ normalMap: 'NORM.jpg',
89
+ }));
90
+ roughnessMap = computed(() => this.textures()?.roughnessMap || null);
91
+ normalMap = computed(() => this.textures()?.normalMap || null);
92
92
  }
93
93
  ```
94
94
 
@@ -96,12 +96,12 @@ export class MyCmp {
96
96
 
97
97
  ```ts
98
98
  function injectProgress(injector?: Injector): Signal<{
99
- errors: string[];
100
- active: boolean;
101
- progress: number;
102
- item: string;
103
- loaded: number;
104
- total: number;
99
+ errors: string[];
100
+ active: boolean;
101
+ progress: number;
102
+ item: string;
103
+ loaded: number;
104
+ total: number;
105
105
  }>;
106
106
  ```
107
107
 
@@ -3,7 +3,7 @@ import { NgtAttachable, NgtThreeElements } from 'angular-three';
3
3
  import { MeshTransmissionMaterial } from 'angular-three-soba/vanilla-exports';
4
4
  import * as THREE from 'three';
5
5
  import * as i0 from "@angular/core";
6
- export type MeshTransmissionMaterialOptions = ConstructorParameters<typeof MeshTransmissionMaterial>[0];
6
+ export type MeshTransmissionMaterialOptions = Exclude<ConstructorParameters<typeof MeshTransmissionMaterial>[0], undefined>;
7
7
  export type NgtsMeshTransmissionMaterialOptions = Partial<NgtThreeElements['ngt-mesh-physical-material']> & Omit<MeshTransmissionMaterialOptions, 'buffer' | 'anisotropicBlur' | 'samples' | 'transmissionSampler'> & {
8
8
  anisotropicBlur?: number;
9
9
  buffer?: THREE.Texture;
@@ -24,7 +24,7 @@ export type NgtsMeshTransmissionMaterialOptions = Partial<NgtThreeElements['ngt-
24
24
  /** Refraction samples, default: 6 */
25
25
  samples: number;
26
26
  /** Buffer scene background (can be a texture, a cubetexture or a color), default: null */
27
- background?: THREE.Texture | THREE.Color;
27
+ background?: THREE.Texture | THREE.Color | null;
28
28
  };
29
29
  export declare class NgtsMeshTransmissionMaterial {
30
30
  attach: import("@angular/core").InputSignal<NgtAttachable>;
@@ -41,8 +41,8 @@ export declare class NgtsMeshTransmissionMaterial {
41
41
  private backsideThickness;
42
42
  private backsideEnvMapIntensity;
43
43
  protected transmissionSampler: import("@angular/core").Signal<boolean>;
44
- protected transmission: import("@angular/core").Signal<Readonly<number | undefined>>;
45
- protected thickness: import("@angular/core").Signal<Readonly<number | undefined>>;
44
+ protected transmission: import("@angular/core").Signal<number | undefined>;
45
+ protected thickness: import("@angular/core").Signal<number | undefined>;
46
46
  protected side: import("@angular/core").Signal<0 | 1 | 2 | undefined>;
47
47
  materialRef: import("@angular/core").Signal<ElementRef<MeshTransmissionMaterial & {
48
48
  samples?: number | undefined;
package/misc/README.md CHANGED
@@ -48,21 +48,21 @@ The `params` object includes the following properties:
48
48
  - `width`: The width of the FBO in pixels. Or it can also be the `settings` object.
49
49
  - `height`: The height of the FBO in pixels.
50
50
  - `settings`: An object containing the settings for the FBO.
51
- - `samples`: The number of samples for multisample anti-aliasing (MSAA). Set to 0 to disable MSAA.
52
- - `depth`: If set, the scene depth will be rendered into buffer.depthTexture. (Default: false)
53
- - `wrapS`: The wrapping mode for the s-coordinate of the FBO texture.
54
- - `wrapT`: The wrapping mode for the t-coordinate of the FBO texture.
55
- - `magFilter`: The magnification filter for the FBO texture.
56
- - `minFilter`: The minification filter for the FBO texture.
57
- - `format`: The internal format of the color buffer.
58
- - `type`: The data type of the color buffer.
59
- - `anisotropy`: The level of anisotropic filtering for the FBO texture.
60
- - `depthBuffer`: Whether to include a depth buffer. (Default: true)
61
- - `stencilBuffer`: Whether to include a stencil buffer. (Default: false)
62
- - `generateMipmaps`: Whether to generate mipmaps for the FBO texture. (Default: true)
63
- - `depthTexture`: A DepthTexture instance to use for the depth buffer.
64
- - `encoding`: The encoding of the FBO texture.
65
- - `colorSpace`: The color space of the FBO texture.
51
+ - `samples`: The number of samples for multisample anti-aliasing (MSAA). Set to 0 to disable MSAA.
52
+ - `depth`: If set, the scene depth will be rendered into buffer.depthTexture. (Default: false)
53
+ - `wrapS`: The wrapping mode for the s-coordinate of the FBO texture.
54
+ - `wrapT`: The wrapping mode for the t-coordinate of the FBO texture.
55
+ - `magFilter`: The magnification filter for the FBO texture.
56
+ - `minFilter`: The minification filter for the FBO texture.
57
+ - `format`: The internal format of the color buffer.
58
+ - `type`: The data type of the color buffer.
59
+ - `anisotropy`: The level of anisotropic filtering for the FBO texture.
60
+ - `depthBuffer`: Whether to include a depth buffer. (Default: true)
61
+ - `stencilBuffer`: Whether to include a stencil buffer. (Default: false)
62
+ - `generateMipmaps`: Whether to generate mipmaps for the FBO texture. (Default: true)
63
+ - `depthTexture`: A DepthTexture instance to use for the depth buffer.
64
+ - `encoding`: The encoding of the FBO texture.
65
+ - `colorSpace`: The color space of the FBO texture.
66
66
 
67
67
  ### NgtsFBO
68
68
 
@@ -78,7 +78,7 @@ A directive that allows you to render a part of your scene into an FBO using an
78
78
 
79
79
  <ngt-mesh>
80
80
  <ngt-box-geometry *args="[3, 3, 3]" />
81
- <ngt-mesh-standard-material [map]="target().texture" />
81
+ <ngt-mesh-standard-material [map]="target.texture" />
82
82
  </ngt-mesh>
83
83
  </ng-template>
84
84
  ```
@@ -6,9 +6,3 @@ export declare const setUpdateRange: (attribute: THREE.BufferAttribute, updateRa
6
6
  offset: number;
7
7
  count: number;
8
8
  }) => void;
9
- export declare const LinearEncoding = 3000;
10
- export declare const sRGBEncoding = 3001;
11
- /**
12
- * NOTE: TextureEncoding was deprecated in r152, and removed in r162.
13
- */
14
- export type TextureEncoding = typeof LinearEncoding | typeof sRGBEncoding;
@@ -5,4 +5,4 @@ export declare function injectDepthBuffer(params?: () => {
5
5
  frames?: number;
6
6
  }, { injector }?: {
7
7
  injector?: Injector;
8
- }): import("@angular/core").Signal<THREE.DepthTexture | null>;
8
+ }): THREE.DepthTexture | null;
package/misc/lib/fbo.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { Injector } from '@angular/core';
2
2
  import * as THREE from 'three';
3
- import { TextureEncoding } from './deprecated';
4
3
  import * as i0 from "@angular/core";
5
4
  interface FBOSettings {
6
5
  /** Defines the count of MSAA samples. Can only be used with WebGL 2. Default: 0 */
@@ -18,7 +17,6 @@ interface FBOSettings {
18
17
  stencilBuffer?: boolean | undefined;
19
18
  generateMipmaps?: boolean | undefined;
20
19
  depthTexture?: THREE.DepthTexture | undefined;
21
- encoding?: TextureEncoding | undefined;
22
20
  colorSpace?: THREE.ColorSpace | undefined;
23
21
  }
24
22
  export interface NgtsFBOParams {
@@ -28,7 +26,7 @@ export interface NgtsFBOParams {
28
26
  }
29
27
  export declare function injectFBO(params?: () => NgtsFBOParams, { injector }?: {
30
28
  injector?: Injector;
31
- }): import("@angular/core").Signal<THREE.WebGLRenderTarget<THREE.Texture>>;
29
+ }): THREE.WebGLRenderTarget<THREE.Texture>;
32
30
  export declare class NgtsFBO {
33
31
  fbo: import("@angular/core").InputSignal<{
34
32
  width: NgtsFBOParams["width"];
@@ -1,6 +1,6 @@
1
1
  import { ElementRef } from '@angular/core';
2
2
  import { NgtHTML } from 'angular-three';
3
- import { NgtsHTML } from './html';
3
+ import { NgtsHTMLImpl } from './html';
4
4
  import { CalculatePosition } from './utils';
5
5
  import * as i0 from "@angular/core";
6
6
  type PointerEventsProperties = 'auto' | 'none' | 'visiblePainted' | 'visibleFill' | 'visibleStroke' | 'visible' | 'painted' | 'fill' | 'stroke' | 'all' | 'inherit';
@@ -24,7 +24,7 @@ export declare class NgtsHTMLContent extends NgtHTML {
24
24
  transformOuterRef: import("@angular/core").Signal<ElementRef<HTMLDivElement> | undefined>;
25
25
  transformInnerRef: import("@angular/core").Signal<ElementRef<HTMLDivElement> | undefined>;
26
26
  containerRef: import("@angular/core").Signal<ElementRef<HTMLDivElement> | undefined>;
27
- protected html: NgtsHTML;
27
+ protected html: NgtsHTMLImpl;
28
28
  private host;
29
29
  private store;
30
30
  protected size: import("angular-three").DeepSignal<import("angular-three").NgtSize>;
@@ -9,7 +9,7 @@ export interface NgtsHTMLOptions extends Partial<NgtThreeElements['ngt-group']>
9
9
  castShadow: boolean;
10
10
  receiveShadow: boolean;
11
11
  }
12
- export declare class NgtsHTML {
12
+ export declare class NgtsHTMLImpl {
13
13
  options: import("@angular/core").InputSignalWithTransform<NgtsHTMLOptions, "" | Partial<NgtsHTMLOptions>>;
14
14
  protected parameters: import("@angular/core").Signal<Omit<NgtsHTMLOptions, "castShadow" | "receiveShadow" | "transform" | "occlude">>;
15
15
  groupRef: import("@angular/core").Signal<ElementRef<THREE.Group<THREE.Object3DEventMap>>>;
@@ -25,7 +25,7 @@ export declare class NgtsHTML {
25
25
  protected fragmentShader: import("@angular/core").Signal<string>;
26
26
  constructor();
27
27
  protected readonly DoubleSide: 2;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<NgtsHTML, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtsHTML, "ngts-html", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, ["[data-occlusion-geometry]", "[data-occlusion-material]", "*"], true, never>;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsHTMLImpl, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsHTMLImpl, "ngts-html", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, ["[data-occlusion-geometry]", "[data-occlusion-material]", "*"], true, never>;
30
30
  }
31
- export declare const NgtsHTMLDeclarations: readonly [typeof NgtsHTML, typeof NgtsHTMLContent];
31
+ export declare const NgtsHTML: readonly [typeof NgtsHTMLImpl, typeof NgtsHTMLContent];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-three-soba",
3
- "version": "4.0.0-next.9",
3
+ "version": "4.0.0-next.91",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -35,6 +35,10 @@
35
35
  "types": "./abstractions/index.d.ts",
36
36
  "default": "./fesm2022/angular-three-soba-abstractions.mjs"
37
37
  },
38
+ "./cameras": {
39
+ "types": "./cameras/index.d.ts",
40
+ "default": "./fesm2022/angular-three-soba-cameras.mjs"
41
+ },
38
42
  "./controls": {
39
43
  "types": "./controls/index.d.ts",
40
44
  "default": "./fesm2022/angular-three-soba-controls.mjs"
@@ -47,10 +51,6 @@
47
51
  "types": "./loaders/index.d.ts",
48
52
  "default": "./fesm2022/angular-three-soba-loaders.mjs"
49
53
  },
50
- "./cameras": {
51
- "types": "./cameras/index.d.ts",
52
- "default": "./fesm2022/angular-three-soba-cameras.mjs"
53
- },
54
54
  "./materials": {
55
55
  "types": "./materials/index.d.ts",
56
56
  "default": "./fesm2022/angular-three-soba-materials.mjs"
@@ -90,7 +90,7 @@
90
90
  "maath": ">=0.10.0 <0.11.0",
91
91
  "meshline": "^3.1.0",
92
92
  "stats-gl": ">=2.0.0",
93
- "three": ">=0.148.0 <0.174.0",
93
+ "three": ">=0.156.0 <0.175.0",
94
94
  "three-custom-shader-material": ">=5.5.0 <6.4.0",
95
95
  "three-mesh-bvh": ">=0.5.0 <0.10.0",
96
96
  "three-stdlib": "^2.0.0",
@@ -1,5 +1,6 @@
1
1
  export * from './lib/adaptive-dpr';
2
2
  export * from './lib/adaptive-events';
3
+ export * from './lib/bvh';
3
4
  export * from './lib/detailed';
4
5
  export * from './lib/instances/instances';
5
6
  export * from './lib/points/points';
@@ -1,6 +1,6 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class NgtsAdaptiveDpr {
3
- pixelated: import("@angular/core").InputSignal<boolean>;
3
+ pixelated: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
4
4
  constructor();
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtsAdaptiveDpr, never>;
6
6
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgtsAdaptiveDpr, "ngts-adaptive-dpr", never, { "pixelated": { "alias": "pixelated"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -0,0 +1,49 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { NgtThreeElements } from 'angular-three';
3
+ import * as THREE from 'three';
4
+ import { SplitStrategy } from 'three-mesh-bvh';
5
+ import * as i0 from "@angular/core";
6
+ export type NgtsBVHOptions = Partial<NgtThreeElements['ngt-group']> & {
7
+ /**Enabled, default: true */
8
+ enabled: boolean;
9
+ /** Use .raycastFirst to retrieve hits which is generally faster, default: false */
10
+ firstHitOnly: boolean;
11
+ /** Split strategy, default: SAH (slowest to construct, fastest runtime, least memory) */
12
+ strategy: SplitStrategy;
13
+ /** Print out warnings encountered during tree construction, default: false */
14
+ verbose: boolean;
15
+ /** If true then the bounding box for the geometry is set once the BVH has been constructed, default: true */
16
+ setBoundingBox: boolean;
17
+ /** The maximum depth to allow the tree to build to, default: 40 */
18
+ maxDepth: number;
19
+ /** The number of triangles to aim for in a leaf node, default: 10 */
20
+ maxLeafTris: number;
21
+ /** If false then an index buffer is created if it does not exist and is rearranged */
22
+ /** to hold the bvh structure. If false then a separate buffer is created to store the */
23
+ /** structure and the index buffer (or lack thereof) is retained. This can be used */
24
+ /** when the existing index layout is important or groups are being used so a */
25
+ /** single BVH hierarchy can be created to improve performance. */
26
+ /** default: false */
27
+ /** Note: This setting is experimental */
28
+ indirect?: boolean;
29
+ };
30
+ export declare class NgtsBVH {
31
+ options: import("@angular/core").InputSignalWithTransform<NgtsBVHOptions, "" | Partial<NgtsBVHOptions>>;
32
+ protected parameters: import("@angular/core").Signal<Omit<NgtsBVHOptions, "indirect" | "enabled" | "firstHitOnly" | "strategy" | "verbose" | "setBoundingBox" | "maxDepth" | "maxLeafTris">>;
33
+ groupRef: import("@angular/core").Signal<ElementRef<THREE.Group<THREE.Object3DEventMap>>>;
34
+ private store;
35
+ private enabled;
36
+ private firstHitOnly;
37
+ private strategy;
38
+ private verbose;
39
+ private setBoundingBox;
40
+ private maxDepth;
41
+ private maxLeafTris;
42
+ private indirect;
43
+ private reset;
44
+ private retryMap;
45
+ private MAX_RETRIES;
46
+ constructor();
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsBVH, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsBVH, "ngts-bvh", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
49
+ }
@@ -1,8 +1,8 @@
1
1
  import * as THREE from 'three';
2
2
  export declare const MeshRefractionMaterial: (new (parameters?: (THREE.ShaderMaterialParameters & Partial<{
3
- [name: string]: number | boolean | any[] | THREE.CubeTexture | THREE.Texture | Int32Array<ArrayBufferLike> | Float32Array<ArrayBufferLike> | THREE.Matrix4 | THREE.Matrix3 | THREE.Quaternion | THREE.Vector4 | THREE.Vector3 | THREE.Vector2 | THREE.Color | null;
3
+ [name: string]: number | boolean | any[] | THREE.Color | THREE.CubeTexture | THREE.Texture | Int32Array<ArrayBufferLike> | Float32Array<ArrayBufferLike> | THREE.Matrix4 | THREE.Matrix3 | THREE.Quaternion | THREE.Vector4 | THREE.Vector3 | THREE.Vector2 | null;
4
4
  }>) | undefined) => THREE.ShaderMaterial & {
5
- [name: string]: number | boolean | any[] | THREE.CubeTexture | THREE.Texture | Int32Array<ArrayBufferLike> | Float32Array<ArrayBufferLike> | THREE.Matrix4 | THREE.Matrix3 | THREE.Quaternion | THREE.Vector4 | THREE.Vector3 | THREE.Vector2 | THREE.Color | null;
5
+ [name: string]: number | boolean | any[] | THREE.Color | THREE.CubeTexture | THREE.Texture | Int32Array<ArrayBufferLike> | Float32Array<ArrayBufferLike> | THREE.Matrix4 | THREE.Matrix3 | THREE.Quaternion | THREE.Vector4 | THREE.Vector3 | THREE.Vector2 | null;
6
6
  }) & {
7
7
  key: string;
8
8
  };
@@ -24,7 +24,7 @@ export interface NgtsCausticsOptions extends Partial<NgtThreeElements['ngt-group
24
24
  /** Buffer resolution, default: 2048 */
25
25
  resolution: number;
26
26
  /** Camera position, it will point towards the contents bounds center, default: [5, 5, 5] */
27
- lightSource: [x: number, y: number, z: number] | ElementRef<THREE.Object3D> | THREE.Object3D;
27
+ lightSource: [x: number, y: number, z: number] | ElementRef<THREE.Object3D | NgtThreeElements['ngt-object3D']> | THREE.Object3D | NgtThreeElements['ngt-object3D'];
28
28
  }
29
29
  export declare class NgtsCaustics {
30
30
  protected readonly Math: Math;
@@ -44,8 +44,8 @@ export declare class NgtsCaustics {
44
44
  private normalTarget;
45
45
  private normalTargetB;
46
46
  private causticsTargetParams;
47
- causticsTarget: import("@angular/core").Signal<THREE.WebGLRenderTarget<THREE.Texture>>;
48
- causticsTargetB: import("@angular/core").Signal<THREE.WebGLRenderTarget<THREE.Texture>>;
47
+ protected causticsTarget: THREE.WebGLRenderTarget<THREE.Texture>;
48
+ protected causticsTargetB: THREE.WebGLRenderTarget<THREE.Texture>;
49
49
  private cameraHelper;
50
50
  constructor();
51
51
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtsCaustics, never>;
@@ -1,5 +1,4 @@
1
1
  import { Injector } from '@angular/core';
2
- import { TextureEncoding } from 'angular-three-soba/misc';
3
2
  import * as THREE from 'three';
4
3
  export declare const ENVIRONMENT_PRESETS: {
5
4
  apartment: string;
@@ -19,7 +18,7 @@ export interface NgtsInjectEnvironmentOptions {
19
18
  path: string;
20
19
  preset?: NgtsEnvironmentPresets;
21
20
  extensions?: (loader: THREE.Loader) => void;
22
- encoding?: TextureEncoding;
21
+ colorSpace?: THREE.ColorSpace;
23
22
  }
24
23
  export declare function injectEnvironment(options?: () => Partial<NgtsInjectEnvironmentOptions>, { injector }?: {
25
24
  injector?: Injector;
@@ -41,7 +41,7 @@ export declare class NgtsRenderTextureContent {
41
41
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtsRenderTextureContent, never>;
42
42
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgtsRenderTextureContent, "ng-template[renderTextureContent]", never, {}, {}, never, never, true, never>;
43
43
  }
44
- export declare class NgtsRenderTexture {
44
+ export declare class NgtsRenderTextureImpl {
45
45
  attach: import("@angular/core").InputSignal<NgtAttachable>;
46
46
  options: import("@angular/core").InputSignalWithTransform<NgtsRenderTextureOptions, "" | Partial<NgtsRenderTextureOptions>>;
47
47
  protected parameters: import("@angular/core").Signal<Omit<NgtsRenderTextureOptions, "width" | "height" | "frames" | "depthBuffer" | "stencilBuffer" | "generateMipmaps" | "samples" | "renderPriority" | "eventPriority" | "compute">>;
@@ -57,12 +57,13 @@ export declare class NgtsRenderTexture {
57
57
  private fboParams;
58
58
  protected renderPriority: import("@angular/core").Signal<number>;
59
59
  protected frames: import("@angular/core").Signal<number>;
60
- protected fbo: import("@angular/core").Signal<THREE.WebGLRenderTarget<THREE.Texture>>;
60
+ protected fbo: THREE.WebGLRenderTarget<THREE.Texture>;
61
61
  protected virtualScene: THREE.Scene;
62
62
  protected eventPriority: import("@angular/core").Signal<number>;
63
63
  protected compute: import("@angular/core").Signal<NgtComputeFunction>;
64
64
  private uvCompute;
65
65
  constructor();
66
- static ɵfac: i0.ɵɵFactoryDeclaration<NgtsRenderTexture, never>;
67
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtsRenderTexture, "ngts-render-texture", never, { "attach": { "alias": "attach"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, ["content"], never, true, never>;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsRenderTextureImpl, never>;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsRenderTextureImpl, "ngts-render-texture", never, { "attach": { "alias": "attach"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, ["content"], never, true, never>;
68
68
  }
69
+ export declare const NgtsRenderTexture: readonly [typeof NgtsRenderTextureImpl, typeof NgtsRenderTextureContent];
@@ -83,14 +83,14 @@ export declare class NgtsStage {
83
83
  protected environmentOptions: import("@angular/core").Signal<Partial<NgtsEnvironmentOptions>>;
84
84
  protected boundsOptions: import("@angular/core").Signal<{
85
85
  raycast?: ((raycaster: import("three").Raycaster, intersects: import("three").Intersection[]) => void) | Readonly<((raycaster: import("three").Raycaster, intersects: import("three").Intersection[]) => void) | null | undefined>;
86
- isGroup?: Readonly<true | undefined>;
87
- isObject3D?: Readonly<true | undefined>;
88
- id?: Readonly<number | undefined>;
89
- uuid?: Readonly<string | undefined>;
90
- name?: Readonly<string | undefined>;
91
- type?: Readonly<string | undefined>;
92
- parent?: import("three").Object3D<import("three").Object3DEventMap> | Readonly<import("three").Object3D<import("three").Object3DEventMap> | null | undefined>;
93
- children?: import("three").Object3D<import("three").Object3DEventMap>[] | Readonly<import("three").Object3D<import("three").Object3DEventMap>[] | undefined>;
86
+ id?: number | undefined;
87
+ uuid?: string | undefined;
88
+ name?: string | undefined;
89
+ type?: string | undefined;
90
+ parent?: import("three").Object3D<import("three").Object3DEventMap> | Readonly<import("three").Object3D<import("three").Object3DEventMap> | null> | undefined;
91
+ children?: import("three").Object3D<import("three").Object3DEventMap>[] | undefined;
92
+ isGroup?: true | undefined;
93
+ isObject3D?: true | undefined;
94
94
  up?: import("three").Vector3 | [x: number, y: number, z: number] | Readonly<number | import("three").Vector3 | [x: number, y: number, z: number] | undefined>;
95
95
  position?: import("three").Vector3 | [x: number, y: number, z: number] | Readonly<number | import("three").Vector3 | [x: number, y: number, z: number] | undefined>;
96
96
  rotation?: import("three").Euler | [x: number, y: number, z: number, order?: import("three").EulerOrder | undefined] | Readonly<number | import("three").Euler | [x: number, y: number, z: number, order?: import("three").EulerOrder | undefined] | undefined>;
@@ -163,12 +163,13 @@ export declare class NgtsStage {
163
163
  toJSON?: ((meta?: import("three").JSONMeta) => import("three").Object3DJSON) | Readonly<((meta?: import("three").JSONMeta) => import("three").Object3DJSON) | undefined>;
164
164
  clone?: ((recursive?: boolean) => Group<import("three").Object3DEventMap>) | Readonly<((recursive?: boolean) => Group<import("three").Object3DEventMap>) | undefined>;
165
165
  copy?: ((object: import("three").Object3D, recursive?: boolean) => Group<import("three").Object3DEventMap>) | Readonly<((object: import("three").Object3D, recursive?: boolean) => Group<import("three").Object3DEventMap>) | undefined>;
166
- addEventListener?: (((<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Group<import("three").Object3DEventMap>>) => void) | Readonly<(<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Group<import("three").Object3DEventMap>>) => void) | undefined>) & (<TEventKey extends keyof import("angular-three").NgtEventHandlers | "added" | "removed" | "childadded" | "childremoved" | keyof import("angular-three").NgtNodeEventMap<Group<import("three").Object3DEventMap>>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<typeof Group, Group<import("three").Object3DEventMap>>, ev: import("angular-three").NgtAllObject3DEventsMap<Group<import("three").Object3DEventMap>>[TEventKey]) => any) => void)) | undefined;
166
+ addEventListener?: (((<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Group<import("three").Object3DEventMap>>) => void) | Readonly<(<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Group<import("three").Object3DEventMap>>) => void) | undefined>) & (<TEventKey extends keyof import("angular-three").NgtEventHandlers | "added" | "removed" | "childadded" | "childremoved" | "change" | keyof import("angular-three").NgtNodeEventMap<Group<import("three").Object3DEventMap>>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<typeof Group, Group<import("three").Object3DEventMap>>, ev: import("angular-three").NgtAllObject3DEventsMap<Group<import("three").Object3DEventMap>>[TEventKey]) => any) => void)) | undefined;
167
167
  hasEventListener?: (<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Group<import("three").Object3DEventMap>>) => boolean) | Readonly<(<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Group<import("three").Object3DEventMap>>) => boolean) | undefined>;
168
- removeEventListener?: (((<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Group<import("three").Object3DEventMap>>) => void) | Readonly<(<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Group<import("three").Object3DEventMap>>) => void) | undefined>) & (<TEventKey extends keyof import("angular-three").NgtEventHandlers | "added" | "removed" | "childadded" | "childremoved" | keyof import("angular-three").NgtNodeEventMap<Group<import("three").Object3DEventMap>>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<typeof Group, Group<import("three").Object3DEventMap>>, ev: import("angular-three").NgtAllObject3DEventsMap<Group<import("three").Object3DEventMap>>[TEventKey]) => any) => void)) | undefined;
168
+ removeEventListener?: (((<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Group<import("three").Object3DEventMap>>) => void) | Readonly<(<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, Group<import("three").Object3DEventMap>>) => void) | undefined>) & (<TEventKey extends keyof import("angular-three").NgtEventHandlers | "added" | "removed" | "childadded" | "childremoved" | "change" | keyof import("angular-three").NgtNodeEventMap<Group<import("three").Object3DEventMap>>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<typeof Group, Group<import("three").Object3DEventMap>>, ev: import("angular-three").NgtAllObject3DEventsMap<Group<import("three").Object3DEventMap>>[TEventKey]) => any) => void)) | undefined;
169
169
  dispatchEvent?: (<T extends keyof import("three").Object3DEventMap>(event: import("three").BaseEvent<T> & import("three").Object3DEventMap[T]) => void) | Readonly<(<T extends keyof import("three").Object3DEventMap>(event: import("three").BaseEvent<T> & import("three").Object3DEventMap[T]) => void) | undefined>;
170
170
  dispose?: (() => void) | Readonly<(() => void) | null | undefined>;
171
- __ngt_args__?: [] | readonly [] | undefined;
171
+ parameters?: Partial<Group<import("three").Object3DEventMap>> | Readonly<Partial<Group<import("three").Object3DEventMap>>> | undefined;
172
+ __ngt_args__?: [] | Readonly<[] | undefined>;
172
173
  fit: boolean;
173
174
  clip: boolean;
174
175
  margin: number;