angular-three-soba 3.1.0 → 3.2.1

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 (39) hide show
  1. package/abstractions/lib/catmull-rom-line.d.ts +1 -1
  2. package/abstractions/lib/edges.d.ts +1 -1
  3. package/abstractions/lib/line.d.ts +2 -2
  4. package/abstractions/lib/quadratic-bezier-line.d.ts +1 -1
  5. package/abstractions/lib/text.d.ts +1 -1
  6. package/controls/README.md +28 -29
  7. package/fesm2022/angular-three-soba-abstractions.mjs +1 -3
  8. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  9. package/fesm2022/angular-three-soba-cameras.mjs +1 -1
  10. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  11. package/fesm2022/angular-three-soba-controls.mjs +1 -3
  12. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  13. package/fesm2022/angular-three-soba-gizmos.mjs +4 -17
  14. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -1
  15. package/fesm2022/angular-three-soba-loaders.mjs +20 -30
  16. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  17. package/fesm2022/angular-three-soba-materials.mjs +2 -2
  18. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  19. package/fesm2022/angular-three-soba-misc.mjs +9 -17
  20. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  21. package/fesm2022/angular-three-soba-performances.mjs +2 -8
  22. package/fesm2022/angular-three-soba-performances.mjs.map +1 -1
  23. package/fesm2022/angular-three-soba-staging.mjs +45 -61
  24. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  25. package/fesm2022/angular-three-soba-stats.mjs +1 -4
  26. package/fesm2022/angular-three-soba-stats.mjs.map +1 -1
  27. package/loaders/README.md +39 -40
  28. package/materials/lib/mesh-portal-material.d.ts +1 -1
  29. package/materials/lib/mesh-refraction-material.d.ts +3 -3
  30. package/misc/lib/computed-attribute.d.ts +2 -2
  31. package/misc/lib/decal.d.ts +1 -1
  32. package/misc/lib/html/html.d.ts +2 -2
  33. package/package.json +5 -5
  34. package/performances/lib/instances/instances.d.ts +7 -7
  35. package/performances/lib/points/points.d.ts +16 -16
  36. package/performances/lib/segments/segments.d.ts +1 -1
  37. package/staging/lib/sky.d.ts +1 -1
  38. package/staging/lib/spot-light.d.ts +1 -1
  39. package/staging/lib/stage.d.ts +5 -5
@@ -50,10 +50,7 @@ class NgtsStats {
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgtsStats, decorators: [{
52
52
  type: Directive,
53
- args: [{
54
- selector: 'ngt-canvas[stats]',
55
- standalone: true,
56
- }]
53
+ args: [{ selector: 'ngt-canvas[stats]' }]
57
54
  }], ctorParameters: () => [] });
58
55
 
59
56
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-stats.mjs","sources":["../../../../libs/soba/stats/src/lib/stats.ts","../../../../libs/soba/stats/src/angular-three-soba-stats.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { computed, Directive, effect, ElementRef, inject, input, untracked } from '@angular/core';\nimport { addAfterEffect, injectStore, omit, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport Stats from 'stats-gl';\n\nexport type NgtsStatsOptions = Partial<Stats> & {\n\tshowPanel?: number;\n\tdomClass: string;\n\tparent: ElementRef<HTMLElement> | HTMLElement | null | undefined;\n};\n\nconst defaultOptions: NgtsStatsOptions = {\n\tdomClass: '',\n\tparent: null,\n};\n\n@Directive({\n\tselector: 'ngt-canvas[stats]',\n\tstandalone: true,\n})\nexport class NgtsStats {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions), alias: 'stats' });\n\n\tconstructor() {\n\t\tconst statsOptions = omit(this.options, ['parent', 'domClass']);\n\t\tconst parent = pick(this.options, 'parent');\n\t\tconst domClass = pick(this.options, 'domClass');\n\n\t\tconst document = inject(DOCUMENT);\n\t\tconst store = injectStore();\n\t\tconst gl = store.select('gl');\n\n\t\tconst stats = computed(() => {\n\t\t\tconst _gl = gl();\n\t\t\tif (!_gl) return null;\n\n\t\t\tconst stats = new Stats({ ...untracked(statsOptions) });\n\t\t\tvoid stats.init(_gl);\n\t\t\treturn stats;\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst _stats = stats();\n\t\t\tif (!_stats) return;\n\n\t\t\tconst [_parent, _domClass] = [resolveRef(parent()), domClass()];\n\t\t\tconst target = _parent ?? document.body;\n\t\t\ttarget.appendChild(_stats.dom);\n\t\t\tconst classList = _domClass.split(' ').filter(Boolean);\n\t\t\tif (classList.length) _stats.dom.classList.add(...classList);\n\t\t\tconst end = addAfterEffect(() => _stats.update());\n\n\t\t\tonCleanup(() => {\n\t\t\t\tif (classList.length) _stats.dom.classList.remove(...classList);\n\t\t\t\ttarget.removeChild(_stats.dom);\n\t\t\t\tend();\n\t\t\t});\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-soba-stats.mjs","sources":["../../../../libs/soba/stats/src/lib/stats.ts","../../../../libs/soba/stats/src/angular-three-soba-stats.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { computed, Directive, effect, ElementRef, inject, input, untracked } from '@angular/core';\nimport { addAfterEffect, injectStore, omit, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport Stats from 'stats-gl';\n\nexport type NgtsStatsOptions = Partial<Stats> & {\n\tshowPanel?: number;\n\tdomClass: string;\n\tparent: ElementRef<HTMLElement> | HTMLElement | null | undefined;\n};\n\nconst defaultOptions: NgtsStatsOptions = {\n\tdomClass: '',\n\tparent: null,\n};\n\n@Directive({ selector: 'ngt-canvas[stats]' })\nexport class NgtsStats {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions), alias: 'stats' });\n\n\tconstructor() {\n\t\tconst statsOptions = omit(this.options, ['parent', 'domClass']);\n\t\tconst parent = pick(this.options, 'parent');\n\t\tconst domClass = pick(this.options, 'domClass');\n\n\t\tconst document = inject(DOCUMENT);\n\t\tconst store = injectStore();\n\t\tconst gl = store.select('gl');\n\n\t\tconst stats = computed(() => {\n\t\t\tconst _gl = gl();\n\t\t\tif (!_gl) return null;\n\n\t\t\tconst stats = new Stats({ ...untracked(statsOptions) });\n\t\t\tvoid stats.init(_gl);\n\t\t\treturn stats;\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst _stats = stats();\n\t\t\tif (!_stats) return;\n\n\t\t\tconst [_parent, _domClass] = [resolveRef(parent()), domClass()];\n\t\t\tconst target = _parent ?? document.body;\n\t\t\ttarget.appendChild(_stats.dom);\n\t\t\tconst classList = _domClass.split(' ').filter(Boolean);\n\t\t\tif (classList.length) _stats.dom.classList.add(...classList);\n\t\t\tconst end = addAfterEffect(() => _stats.update());\n\n\t\t\tonCleanup(() => {\n\t\t\t\tif (classList.length) _stats.dom.classList.remove(...classList);\n\t\t\t\ttarget.removeChild(_stats.dom);\n\t\t\t\tend();\n\t\t\t});\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/loaders/README.md CHANGED
@@ -35,35 +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
- standalone: true,
40
- template: `
41
- <ngt-primitive *args="[scene()]" [rotation]="[-0.63, 0, 0]" [scale]="2" [position]="[0, -1.175, 0]" />
42
- `,
43
- imports: [NgtArgs],
44
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
45
- 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,
46
45
  })
47
46
  class Suzi {
48
- gltf = injectGLTF(() => './suzanne-high-poly.gltf');
47
+ gltf = injectGLTF(() => './suzanne-high-poly.gltf');
49
48
 
50
- scene = computed(() => {
51
- const gltf = this.gltf();
52
- if (!gltf) return null;
53
- const { scene, materials } = gltf;
54
- 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));
55
54
 
56
- const material = materials['default'] as MeshStandardMaterial;
55
+ const material = materials['default'] as MeshStandardMaterial;
57
56
 
58
- material.color.set('orange');
59
- material.roughness = 0;
60
- material.normalMap = new CanvasTexture(new FlakesTexture(), UVMapping, RepeatWrapping, RepeatWrapping);
61
- material.normalMap.flipY = false;
62
- material.normalMap.repeat.set(40, 40);
63
- 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);
64
63
 
65
- return scene;
66
- });
64
+ return scene;
65
+ });
67
66
  }
68
67
  ```
69
68
 
@@ -77,19 +76,19 @@ The function also has a static method for preloading textures:
77
76
 
78
77
  ```ts
79
78
  @Component({
80
- template: `
81
- <ngt-mesh>
82
- <ngt-mesh-physical-material [normalMap]="normalMap()" [roughnessMap]="roughnessMap()" />
83
- </ngt-mesh>
84
- `,
79
+ template: `
80
+ <ngt-mesh>
81
+ <ngt-mesh-physical-material [normalMap]="normalMap()" [roughnessMap]="roughnessMap()" />
82
+ </ngt-mesh>
83
+ `,
85
84
  })
86
85
  export class MyCmp {
87
- private textures = injectTexture(() => ({
88
- roughnessMap: 'roughness_floor.jpeg',
89
- normalMap: 'NORM.jpg',
90
- }));
91
- roughnessMap = computed(() => this.textures()?.roughnessMap || null);
92
- 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);
93
92
  }
94
93
  ```
95
94
 
@@ -97,12 +96,12 @@ export class MyCmp {
97
96
 
98
97
  ```ts
99
98
  function injectProgress(injector?: Injector): Signal<{
100
- errors: string[];
101
- active: boolean;
102
- progress: number;
103
- item: string;
104
- loaded: number;
105
- total: number;
99
+ errors: string[];
100
+ active: boolean;
101
+ progress: number;
102
+ item: string;
103
+ loaded: number;
104
+ total: number;
106
105
  }>;
107
106
  ```
108
107
 
@@ -131,7 +131,7 @@ export interface NgtsMeshPortalMaterialOptions extends Partial<NgtShaderMaterial
131
131
  export declare class NgtsMeshPortalMaterial {
132
132
  attach: import("@angular/core").InputSignal<NgtAttachable>;
133
133
  options: import("@angular/core").InputSignalWithTransform<NgtsMeshPortalMaterialOptions, "" | Partial<NgtsMeshPortalMaterialOptions>>;
134
- parameters: import("@angular/core").Signal<Omit<NgtsMeshPortalMaterialOptions, "resolution" | "blur" | "worldUnits" | "eventPriority" | "renderPriority" | "events">>;
134
+ parameters: import("@angular/core").Signal<Omit<NgtsMeshPortalMaterialOptions, "resolution" | "blur" | "events" | "worldUnits" | "eventPriority" | "renderPriority">>;
135
135
  blur: import("@angular/core").Signal<number>;
136
136
  eventPriority: import("@angular/core").Signal<number>;
137
137
  renderPriority: import("@angular/core").Signal<number>;
@@ -20,11 +20,11 @@ export declare class NgtsMeshRefractionMaterial {
20
20
  envMap: import("@angular/core").InputSignal<Texture | CubeTexture>;
21
21
  attach: import("@angular/core").InputSignal<NgtAttachable>;
22
22
  options: import("@angular/core").InputSignalWithTransform<NgtsMeshRefractionMaterialOptions, "" | Partial<NgtsMeshRefractionMaterialOptions>>;
23
- parameters: import("@angular/core").Signal<Omit<NgtsMeshRefractionMaterialOptions, "fastChroma" | "aberrationStrength">>;
23
+ parameters: import("@angular/core").Signal<Omit<NgtsMeshRefractionMaterialOptions, "aberrationStrength" | "fastChroma">>;
24
24
  private fastChroma;
25
25
  aberrationStrength: import("@angular/core").Signal<number>;
26
26
  materialRef: import("@angular/core").Signal<ElementRef<import("three").ShaderMaterial & {
27
- [name: string]: number | boolean | any[] | import("three").Color | Texture | import("three").Vector2 | import("three").Vector3 | import("three").Quaternion | import("three").Matrix4 | import("three").Matrix3 | import("three").Vector4 | CubeTexture | Int32Array | Float32Array | null;
27
+ [name: string]: number | boolean | any[] | import("three").Color | Texture | import("three").Vector3 | import("three").Quaternion | import("three").Matrix4 | import("three").Matrix3 | import("three").Vector2 | import("three").Vector4 | CubeTexture | Int32Array | Float32Array | null;
28
28
  }> | undefined>;
29
29
  private store;
30
30
  private size;
@@ -34,7 +34,7 @@ export declare class NgtsMeshRefractionMaterial {
34
34
  }>;
35
35
  private defineKeys;
36
36
  material: import("@angular/core").Signal<import("three").ShaderMaterial & {
37
- [name: string]: number | boolean | any[] | import("three").Color | Texture | import("three").Vector2 | import("three").Vector3 | import("three").Quaternion | import("three").Matrix4 | import("three").Matrix3 | import("three").Vector4 | CubeTexture | Int32Array | Float32Array | null;
37
+ [name: string]: number | boolean | any[] | import("three").Color | Texture | import("three").Vector3 | import("three").Quaternion | import("three").Matrix4 | import("three").Matrix3 | import("three").Vector2 | import("three").Vector4 | CubeTexture | Int32Array | Float32Array | null;
38
38
  }>;
39
39
  constructor();
40
40
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtsMeshRefractionMaterial, never>;
@@ -6,6 +6,8 @@ export declare class NgtsComputedAttribute {
6
6
  name: import("@angular/core").InputSignal<string>;
7
7
  options: import("@angular/core").InputSignal<Partial<import("angular-three").NgtExtendedColors<import("angular-three").NgtOverwrite<Partial<{
8
8
  name: string;
9
+ clone: () => BufferAttribute;
10
+ toJSON: () => import("three").BufferAttributeJSON;
9
11
  array: import("three").TypedArray;
10
12
  itemSize: number;
11
13
  usage: import("three").Usage;
@@ -24,7 +26,6 @@ export declare class NgtsComputedAttribute {
24
26
  setUsage: (usage: import("three").Usage) => BufferAttribute;
25
27
  addUpdateRange: (start: number, count: number) => void;
26
28
  clearUpdateRanges: () => void;
27
- clone: () => BufferAttribute;
28
29
  copy: (source: BufferAttribute) => BufferAttribute;
29
30
  copyAt: (index1: number, attribute: BufferAttribute, index2: number) => BufferAttribute;
30
31
  copyArray: (array: ArrayLike<number>) => BufferAttribute;
@@ -46,7 +47,6 @@ export declare class NgtsComputedAttribute {
46
47
  setXY: (index: number, x: number, y: number) => BufferAttribute;
47
48
  setXYZ: (index: number, x: number, y: number, z: number) => BufferAttribute;
48
49
  setXYZW: (index: number, x: number, y: number, z: number, w: number) => BufferAttribute;
49
- toJSON: () => import("three").BufferAttributeJSON;
50
50
  }>, import("angular-three").NgtNodeElement<BufferAttribute, typeof BufferAttribute>>>>>;
51
51
  bufferAttribute: BufferAttribute;
52
52
  attributeRef: import("@angular/core").Signal<ElementRef<BufferAttribute> | undefined>;
@@ -11,7 +11,7 @@ export interface NgtsDecalOptions extends Partial<NgtMesh> {
11
11
  export declare class NgtsDecal {
12
12
  mesh: import("@angular/core").InputSignal<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap> | ElementRef<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>> | null | undefined>;
13
13
  options: import("@angular/core").InputSignalWithTransform<NgtsDecalOptions, "" | Partial<NgtsDecalOptions>>;
14
- parameters: import("@angular/core").Signal<Omit<NgtsDecalOptions, "position" | "scale" | "rotation" | "map" | "polygonOffsetFactor" | "depthTest" | "debug">>;
14
+ parameters: import("@angular/core").Signal<Omit<NgtsDecalOptions, "position" | "scale" | "rotation" | "polygonOffsetFactor" | "depthTest" | "debug" | "map">>;
15
15
  meshRef: import("@angular/core").Signal<ElementRef<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>>;
16
16
  helperRef: import("@angular/core").Signal<ElementRef<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>> | undefined>;
17
17
  protected map: import("@angular/core").Signal<Texture | null | undefined>;
@@ -10,11 +10,11 @@ export interface NgtsHTMLOptions extends Partial<NgtGroup> {
10
10
  }
11
11
  export declare class NgtsHTML {
12
12
  options: import("@angular/core").InputSignalWithTransform<NgtsHTMLOptions, "" | Partial<NgtsHTMLOptions>>;
13
- parameters: import("@angular/core").Signal<Omit<NgtsHTMLOptions, "transform" | "castShadow" | "receiveShadow" | "occlude">>;
13
+ parameters: import("@angular/core").Signal<Omit<NgtsHTMLOptions, "castShadow" | "receiveShadow" | "transform" | "occlude">>;
14
14
  groupRef: import("@angular/core").Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
15
15
  occlusionMeshRef: import("@angular/core").Signal<ElementRef<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>> | undefined>;
16
16
  occlusionGeometryRef: import("@angular/core").Signal<ElementRef<PlaneGeometry> | undefined>;
17
- occlude: import("@angular/core").Signal<boolean | "raycast" | ElementRef<Object3D<import("three").Object3DEventMap>>[] | Object3D<import("three").Object3DEventMap>[] | "blending">;
17
+ occlude: import("@angular/core").Signal<boolean | "raycast" | Object3D<import("three").Object3DEventMap>[] | ElementRef<Object3D<import("three").Object3DEventMap>>[] | "blending">;
18
18
  transform: import("@angular/core").Signal<boolean>;
19
19
  castShadow: import("@angular/core").Signal<boolean>;
20
20
  receiveShadow: import("@angular/core").Signal<boolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-three-soba",
3
- "version": "3.1.0",
3
+ "version": "3.2.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -47,6 +47,10 @@
47
47
  "types": "./index.d.ts",
48
48
  "default": "./fesm2022/angular-three-soba.mjs"
49
49
  },
50
+ "./cameras": {
51
+ "types": "./cameras/index.d.ts",
52
+ "default": "./fesm2022/angular-three-soba-cameras.mjs"
53
+ },
50
54
  "./abstractions": {
51
55
  "types": "./abstractions/index.d.ts",
52
56
  "default": "./fesm2022/angular-three-soba-abstractions.mjs"
@@ -55,10 +59,6 @@
55
59
  "types": "./controls/index.d.ts",
56
60
  "default": "./fesm2022/angular-three-soba-controls.mjs"
57
61
  },
58
- "./cameras": {
59
- "types": "./cameras/index.d.ts",
60
- "default": "./fesm2022/angular-three-soba-cameras.mjs"
61
- },
62
62
  "./gizmos": {
63
63
  "types": "./gizmos/index.d.ts",
64
64
  "default": "./fesm2022/angular-three-soba-gizmos.mjs"
@@ -9,15 +9,12 @@ export declare class NgtsInstance {
9
9
  removeEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<PositionMesh>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<PositionMesh, typeof PositionMesh>, ev: import("angular-three").NgtNodeEventMap<PositionMesh>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
10
10
  attach: string | string[] | import("angular-three").NgtAttachFunction;
11
11
  __ngt_args__: [];
12
- color?: import("three").ColorRepresentation | undefined;
13
- instance?: ElementRef<InstancedMesh> | InstancedMesh | null | undefined;
14
- readonly geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined;
15
- readonly isGroup?: true | undefined;
12
+ readonly type?: string | undefined;
13
+ toJSON?: ((meta?: import("three").JSONMeta) => import("three").Object3DJSON) | undefined;
16
14
  readonly isObject3D?: true | undefined;
17
15
  readonly id?: number | undefined;
18
16
  uuid?: string | undefined;
19
17
  name?: string | undefined;
20
- readonly type?: string | undefined;
21
18
  parent?: import("three").Object3D<import("three").Object3DEventMap> | null | undefined;
22
19
  children?: import("three").Object3D<import("three").Object3DEventMap>[] | undefined;
23
20
  readonly modelViewMatrix?: Matrix4 | undefined;
@@ -78,11 +75,14 @@ export declare class NgtsInstance {
78
75
  updateMatrix?: (() => void) | undefined;
79
76
  updateMatrixWorld?: ((force?: boolean) => void) | undefined;
80
77
  updateWorldMatrix?: ((updateParents: boolean, updateChildren: boolean) => void) | undefined;
81
- toJSON?: ((meta?: import("three").JSONMeta) => import("three").Object3DJSON) | undefined;
82
78
  clone?: ((recursive?: boolean) => PositionMesh) | undefined;
83
79
  copy?: ((object: import("three").Object3D, recursive?: boolean) => PositionMesh) | undefined;
84
80
  hasEventListener?: (<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, PositionMesh>) => boolean) | undefined;
85
81
  dispatchEvent?: (<T extends keyof import("three").Object3DEventMap>(event: import("three").BaseEvent<T> & import("three").Object3DEventMap[T]) => void) | undefined;
82
+ color?: import("three").ColorRepresentation | undefined;
83
+ instance?: ElementRef<InstancedMesh> | InstancedMesh | null | undefined;
84
+ readonly geometry?: import("three").BufferGeometry<import("three").NormalBufferAttributes> | undefined;
85
+ readonly isGroup?: true | undefined;
86
86
  position: import("angular-three").NgtVector3;
87
87
  up: import("angular-three").NgtVector3;
88
88
  scale: import("angular-three").NgtVector3;
@@ -107,7 +107,7 @@ export interface NgtsInstancesOptions extends Partial<NgtInstancedMesh> {
107
107
  export declare class NgtsInstances {
108
108
  protected readonly DynamicDrawUsage: 35048;
109
109
  options: import("@angular/core").InputSignalWithTransform<NgtsInstancesOptions, "" | Partial<NgtsInstancesOptions>>;
110
- protected parameters: import("@angular/core").Signal<Omit<NgtsInstancesOptions, "limit" | "frames" | "range">>;
110
+ protected parameters: import("@angular/core").Signal<Omit<NgtsInstancesOptions, "frames" | "range" | "limit">>;
111
111
  instancedMeshRef: import("@angular/core").Signal<ElementRef<InstancedMesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").InstancedMeshEventMap>>>;
112
112
  private limit;
113
113
  protected buffers: import("@angular/core").Signal<{
@@ -5,19 +5,17 @@ import { PositionPoint } from './position-point';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class NgtsPoint {
7
7
  options: import("@angular/core").InputSignal<Partial<{
8
+ size?: number | undefined;
8
9
  addEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<PositionPoint>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<PositionPoint, typeof PositionPoint>, ev: import("angular-three").NgtNodeEventMap<PositionPoint>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
9
10
  removeEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<PositionPoint>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<PositionPoint, typeof PositionPoint>, ev: import("angular-three").NgtNodeEventMap<PositionPoint>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
10
11
  attach: string | string[] | import("angular-three").NgtAttachFunction;
11
12
  __ngt_args__: [];
12
- color?: import("three").ColorRepresentation | undefined;
13
- instance?: ElementRef<Points> | Points | null | undefined;
14
- readonly geometry?: BufferGeometry<import("three").NormalBufferAttributes> | undefined;
15
- readonly isGroup?: true | undefined;
13
+ readonly type?: string | undefined;
14
+ toJSON?: ((meta?: import("three").JSONMeta) => import("three").Object3DJSON) | undefined;
16
15
  readonly isObject3D?: true | undefined;
17
16
  readonly id?: number | undefined;
18
17
  uuid?: string | undefined;
19
18
  name?: string | undefined;
20
- readonly type?: string | undefined;
21
19
  parent?: import("three").Object3D<import("three").Object3DEventMap> | null | undefined;
22
20
  children?: import("three").Object3D<import("three").Object3DEventMap>[] | undefined;
23
21
  readonly modelViewMatrix?: Matrix4 | undefined;
@@ -78,12 +76,14 @@ export declare class NgtsPoint {
78
76
  updateMatrix?: (() => void) | undefined;
79
77
  updateMatrixWorld?: ((force?: boolean) => void) | undefined;
80
78
  updateWorldMatrix?: ((updateParents: boolean, updateChildren: boolean) => void) | undefined;
81
- toJSON?: ((meta?: import("three").JSONMeta) => import("three").Object3DJSON) | undefined;
82
79
  clone?: ((recursive?: boolean) => PositionPoint) | undefined;
83
80
  copy?: ((object: import("three").Object3D, recursive?: boolean) => PositionPoint) | undefined;
84
81
  hasEventListener?: (<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, PositionPoint>) => boolean) | undefined;
85
82
  dispatchEvent?: (<T extends keyof import("three").Object3DEventMap>(event: import("three").BaseEvent<T> & import("three").Object3DEventMap[T]) => void) | undefined;
86
- size?: number | undefined;
83
+ color?: import("three").ColorRepresentation | undefined;
84
+ instance?: ElementRef<Points> | Points | null | undefined;
85
+ readonly geometry?: BufferGeometry<import("three").NormalBufferAttributes> | undefined;
86
+ readonly isGroup?: true | undefined;
87
87
  position: import("angular-three").NgtVector3;
88
88
  up: import("angular-three").NgtVector3;
89
89
  scale: import("angular-three").NgtVector3;
@@ -104,21 +104,19 @@ export declare class NgtsPointsBuffer {
104
104
  positions: import("@angular/core").InputSignal<Float32Array>;
105
105
  colors: import("@angular/core").InputSignal<Float32Array | undefined>;
106
106
  sizes: import("@angular/core").InputSignal<Float32Array | undefined>;
107
- stride: import("@angular/core").InputSignal<3 | 2>;
107
+ stride: import("@angular/core").InputSignal<2 | 3>;
108
108
  options: import("@angular/core").InputSignal<Partial<{
109
+ size?: number | undefined;
109
110
  addEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<PositionPoint>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<PositionPoint, typeof PositionPoint>, ev: import("angular-three").NgtNodeEventMap<PositionPoint>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
110
111
  removeEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<PositionPoint>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<PositionPoint, typeof PositionPoint>, ev: import("angular-three").NgtNodeEventMap<PositionPoint>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
111
112
  attach: string | string[] | import("angular-three").NgtAttachFunction;
112
113
  __ngt_args__: [];
113
- color?: import("three").ColorRepresentation | undefined;
114
- instance?: ElementRef<Points> | Points | null | undefined;
115
- readonly geometry?: BufferGeometry<import("three").NormalBufferAttributes> | undefined;
116
- readonly isGroup?: true | undefined;
114
+ readonly type?: string | undefined;
115
+ toJSON?: ((meta?: import("three").JSONMeta) => import("three").Object3DJSON) | undefined;
117
116
  readonly isObject3D?: true | undefined;
118
117
  readonly id?: number | undefined;
119
118
  uuid?: string | undefined;
120
119
  name?: string | undefined;
121
- readonly type?: string | undefined;
122
120
  parent?: import("three").Object3D<import("three").Object3DEventMap> | null | undefined;
123
121
  children?: import("three").Object3D<import("three").Object3DEventMap>[] | undefined;
124
122
  readonly modelViewMatrix?: Matrix4 | undefined;
@@ -179,12 +177,14 @@ export declare class NgtsPointsBuffer {
179
177
  updateMatrix?: (() => void) | undefined;
180
178
  updateMatrixWorld?: ((force?: boolean) => void) | undefined;
181
179
  updateWorldMatrix?: ((updateParents: boolean, updateChildren: boolean) => void) | undefined;
182
- toJSON?: ((meta?: import("three").JSONMeta) => import("three").Object3DJSON) | undefined;
183
180
  clone?: ((recursive?: boolean) => PositionPoint) | undefined;
184
181
  copy?: ((object: import("three").Object3D, recursive?: boolean) => PositionPoint) | undefined;
185
182
  hasEventListener?: (<T extends keyof import("three").Object3DEventMap>(type: T, listener: import("three").EventListener<import("three").Object3DEventMap[T], T, PositionPoint>) => boolean) | undefined;
186
183
  dispatchEvent?: (<T extends keyof import("three").Object3DEventMap>(event: import("three").BaseEvent<T> & import("three").Object3DEventMap[T]) => void) | undefined;
187
- size?: number | undefined;
184
+ color?: import("three").ColorRepresentation | undefined;
185
+ instance?: ElementRef<Points> | Points | null | undefined;
186
+ readonly geometry?: BufferGeometry<import("three").NormalBufferAttributes> | undefined;
187
+ readonly isGroup?: true | undefined;
188
188
  position: import("angular-three").NgtVector3;
189
189
  up: import("angular-three").NgtVector3;
190
190
  scale: import("angular-three").NgtVector3;
@@ -207,7 +207,7 @@ export interface NgtsPointsInstancesOptions extends Partial<NgtPoints> {
207
207
  }
208
208
  export declare class NgtsPointsInstances {
209
209
  options: import("@angular/core").InputSignalWithTransform<NgtsPointsInstancesOptions, "" | Partial<NgtsPointsInstancesOptions>>;
210
- parameters: import("@angular/core").Signal<Omit<NgtsPointsInstancesOptions, "limit" | "range">>;
210
+ parameters: import("@angular/core").Signal<Omit<NgtsPointsInstancesOptions, "range" | "limit">>;
211
211
  pointsRef: import("@angular/core").Signal<ElementRef<Points<BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>>;
212
212
  private limit;
213
213
  buffers: import("@angular/core").Signal<{
@@ -32,10 +32,10 @@ export declare class NgtsSegments {
32
32
  geometry: LineSegmentsGeometry;
33
33
  resolution: Vector2;
34
34
  materialParameters: import("@angular/core").Signal<{
35
- color?: number | undefined;
36
35
  name?: string | undefined;
37
36
  visible?: boolean | undefined;
38
37
  userData?: Record<string, any> | undefined;
38
+ color?: number | undefined;
39
39
  alphaToCoverage?: boolean | undefined;
40
40
  dashed?: boolean | undefined;
41
41
  dashScale?: number | undefined;
@@ -15,7 +15,7 @@ export interface NgtsSkyOptions extends Partial<Omit<NgtMesh, 'scale'>> {
15
15
  }
16
16
  export declare class NgtsSky {
17
17
  options: import("@angular/core").InputSignalWithTransform<NgtsSkyOptions, "" | Partial<NgtsSkyOptions>>;
18
- parameters: import("@angular/core").Signal<Omit<NgtsSkyOptions, "distance" | "inclination" | "azimuth" | "sunPosition" | "turbidity" | "mieCoefficient" | "mieDirectionalG">>;
18
+ parameters: import("@angular/core").Signal<Omit<NgtsSkyOptions, "distance" | "inclination" | "azimuth" | "mieCoefficient" | "mieDirectionalG" | "turbidity" | "sunPosition">>;
19
19
  distance: import("@angular/core").Signal<number>;
20
20
  turbidity: import("@angular/core").Signal<number>;
21
21
  mieCoefficient: import("@angular/core").Signal<number>;
@@ -104,7 +104,7 @@ export declare class NgtsSpotLightShadow {
104
104
  export declare class NgtsSpotLight {
105
105
  protected readonly SpotLightHelper: typeof SpotLightHelper;
106
106
  options: import("@angular/core").InputSignalWithTransform<NgtsSpotLightOptions, "" | Partial<NgtsSpotLightOptions>>;
107
- parameters: import("@angular/core").Signal<Omit<NgtsSpotLightOptions, "opacity" | "color" | "distance" | "debug" | "depthBuffer" | "volumetric" | "angle" | "attenuation" | "anglePower" | "radiusTop" | "radiusBottom">>;
107
+ parameters: import("@angular/core").Signal<Omit<NgtsSpotLightOptions, "opacity" | "color" | "distance" | "debug" | "depthBuffer" | "angle" | "attenuation" | "anglePower" | "radiusTop" | "radiusBottom" | "volumetric">>;
108
108
  volumetricOptions: import("@angular/core").Signal<Pick<NgtsSpotLightOptions, "opacity" | "color" | "distance" | "debug" | "depthBuffer" | "angle" | "attenuation" | "anglePower" | "radiusTop" | "radiusBottom">>;
109
109
  spotLight: import("@angular/core").Signal<ElementRef<SpotLight>>;
110
110
  debug: import("@angular/core").Signal<boolean | undefined>;
@@ -55,14 +55,11 @@ export declare class NgtsStage {
55
55
  intensity: import("@angular/core").Signal<number>;
56
56
  shadows: import("@angular/core").Signal<boolean | "contact" | "accumulative" | NgtsStageShadowsOptions>;
57
57
  environment: import("@angular/core").Signal<"apartment" | "city" | "dawn" | "forest" | "lobby" | "night" | "park" | "studio" | "sunset" | "warehouse" | Partial<NgtsEnvironmentOptions> | null>;
58
- preset: import("@angular/core").Signal<"rembrandt" | "portrait" | "upfront" | "soft" | {
58
+ preset: import("@angular/core").Signal<{
59
59
  main: [x: number, y: number, z: number];
60
60
  fill: [x: number, y: number, z: number];
61
- }>;
61
+ } | "rembrandt" | "portrait" | "upfront" | "soft">;
62
62
  config: import("@angular/core").Signal<{
63
- main: [x: number, y: number, z: number];
64
- fill: [x: number, y: number, z: number];
65
- } | {
66
63
  readonly main: readonly [1, 2, 1];
67
64
  readonly fill: readonly [-2, -0.5, -2];
68
65
  } | {
@@ -74,6 +71,9 @@ export declare class NgtsStage {
74
71
  } | {
75
72
  readonly main: readonly [-2, 4, 4];
76
73
  readonly fill: readonly [-1, 0.5, -1.5];
74
+ } | {
75
+ main: [x: number, y: number, z: number];
76
+ fill: [x: number, y: number, z: number];
77
77
  }>;
78
78
  shadowBias: import("@angular/core").Signal<number>;
79
79
  normalBias: import("@angular/core").Signal<number>;