angular-three-soba 4.2.0 → 4.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.
package/package.json CHANGED
@@ -1,142 +1,142 @@
1
1
  {
2
- "name": "angular-three-soba",
3
- "version": "4.2.0",
4
- "publishConfig": {
5
- "access": "public"
6
- },
7
- "repository": {
8
- "type": "git",
9
- "url": "https://github.com/angular-threejs/angular-three/tree/main/libs/soba"
10
- },
11
- "author": {
12
- "name": "Chau Tran",
13
- "email": "nartc7789@gmail.com",
14
- "url": "https://nartc.me"
15
- },
16
- "description": "Utilities for Angular Three",
17
- "keywords": [
18
- "angular",
19
- "threejs",
20
- "renderer",
21
- "utilities",
22
- "shaders"
23
- ],
24
- "license": "MIT",
25
- "exports": {
26
- "./assets/*": "./assets/*",
27
- "./package.json": {
28
- "default": "./package.json"
29
- },
30
- ".": {
31
- "types": "./types/angular-three-soba.d.ts",
32
- "default": "./fesm2022/angular-three-soba.mjs"
33
- },
34
- "./abstractions": {
35
- "types": "./types/angular-three-soba-abstractions.d.ts",
36
- "default": "./fesm2022/angular-three-soba-abstractions.mjs"
37
- },
38
- "./cameras": {
39
- "types": "./types/angular-three-soba-cameras.d.ts",
40
- "default": "./fesm2022/angular-three-soba-cameras.mjs"
41
- },
42
- "./controls": {
43
- "types": "./types/angular-three-soba-controls.d.ts",
44
- "default": "./fesm2022/angular-three-soba-controls.mjs"
45
- },
46
- "./gizmos": {
47
- "types": "./types/angular-three-soba-gizmos.d.ts",
48
- "default": "./fesm2022/angular-three-soba-gizmos.mjs"
49
- },
50
- "./loaders": {
51
- "types": "./types/angular-three-soba-loaders.d.ts",
52
- "default": "./fesm2022/angular-three-soba-loaders.mjs"
53
- },
54
- "./materials": {
55
- "types": "./types/angular-three-soba-materials.d.ts",
56
- "default": "./fesm2022/angular-three-soba-materials.mjs"
57
- },
58
- "./misc": {
59
- "types": "./types/angular-three-soba-misc.d.ts",
60
- "default": "./fesm2022/angular-three-soba-misc.mjs"
61
- },
62
- "./performances": {
63
- "types": "./types/angular-three-soba-performances.d.ts",
64
- "default": "./fesm2022/angular-three-soba-performances.mjs"
65
- },
66
- "./shaders": {
67
- "types": "./types/angular-three-soba-shaders.d.ts",
68
- "default": "./fesm2022/angular-three-soba-shaders.mjs"
69
- },
70
- "./staging": {
71
- "types": "./types/angular-three-soba-staging.d.ts",
72
- "default": "./fesm2022/angular-three-soba-staging.mjs"
73
- },
74
- "./stats": {
75
- "types": "./types/angular-three-soba-stats.d.ts",
76
- "default": "./fesm2022/angular-three-soba-stats.mjs"
77
- },
78
- "./vanilla-exports": {
79
- "types": "./types/angular-three-soba-vanilla-exports.d.ts",
80
- "default": "./fesm2022/angular-three-soba-vanilla-exports.mjs"
81
- }
82
- },
83
- "peerDependencies": {
84
- "@angular/common": ">=20.0.0 <22.0.0",
85
- "@angular/core": ">=20.0.0 <22.0.0",
86
- "@monogrid/gainmap-js": "^3.0.0",
87
- "@pmndrs/vanilla": "^1.24.0",
88
- "camera-controls": "^2.8.0",
89
- "hls.js": ">=1.5.0",
90
- "maath": ">=0.10.0 <0.11.0",
91
- "meshline": "^3.1.0",
92
- "stats-gl": ">=2.0.0",
93
- "three": ">=0.157.0 <0.183.0",
94
- "three-custom-shader-material": ">=5.5.0 <6.5.0",
95
- "three-mesh-bvh": ">=0.5.0 <0.10.0",
96
- "three-stdlib": "^2.0.0",
97
- "troika-three-text": ">=0.47.0 <0.53.0"
98
- },
99
- "peerDependenciesMeta": {
100
- "@monogrid/gainmap-js": {
101
- "optional": true
102
- },
103
- "@pmndrs/vanilla": {
104
- "optional": true
105
- },
106
- "hls.js": {
107
- "optional": true
108
- },
109
- "troika-three-text": {
110
- "optional": true
111
- },
112
- "three-custom-shader-material": {
113
- "optional": true
114
- },
115
- "three-mesh-bvh": {
116
- "optional": true
117
- },
118
- "maath": {
119
- "optional": true
120
- },
121
- "meshline": {
122
- "optional": true
123
- },
124
- "camera-controls": {
125
- "optional": true
126
- },
127
- "stats-gl": {
128
- "optional": true
129
- }
130
- },
131
- "dependencies": {
132
- "tslib": "^2.3.0"
133
- },
134
- "sideEffects": false,
135
- "web-types": [
136
- "../../node_modules/angular-three/web-types.json",
137
- "../../node_modules/angular-three-soba/web-types.json",
138
- "./web-types.json"
139
- ],
140
- "module": "fesm2022/angular-three-soba.mjs",
141
- "typings": "types/angular-three-soba.d.ts"
2
+ "name": "angular-three-soba",
3
+ "version": "4.2.1",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/angular-threejs/angular-three/tree/main/libs/soba"
10
+ },
11
+ "author": {
12
+ "name": "Chau Tran",
13
+ "email": "nartc7789@gmail.com",
14
+ "url": "https://nartc.me"
15
+ },
16
+ "description": "Utilities for Angular Three",
17
+ "keywords": [
18
+ "angular",
19
+ "threejs",
20
+ "renderer",
21
+ "utilities",
22
+ "shaders"
23
+ ],
24
+ "license": "MIT",
25
+ "exports": {
26
+ "./assets/*": "./assets/*",
27
+ "./package.json": {
28
+ "default": "./package.json"
29
+ },
30
+ ".": {
31
+ "types": "./types/angular-three-soba.d.ts",
32
+ "default": "./fesm2022/angular-three-soba.mjs"
33
+ },
34
+ "./abstractions": {
35
+ "types": "./types/angular-three-soba-abstractions.d.ts",
36
+ "default": "./fesm2022/angular-three-soba-abstractions.mjs"
37
+ },
38
+ "./cameras": {
39
+ "types": "./types/angular-three-soba-cameras.d.ts",
40
+ "default": "./fesm2022/angular-three-soba-cameras.mjs"
41
+ },
42
+ "./controls": {
43
+ "types": "./types/angular-three-soba-controls.d.ts",
44
+ "default": "./fesm2022/angular-three-soba-controls.mjs"
45
+ },
46
+ "./gizmos": {
47
+ "types": "./types/angular-three-soba-gizmos.d.ts",
48
+ "default": "./fesm2022/angular-three-soba-gizmos.mjs"
49
+ },
50
+ "./loaders": {
51
+ "types": "./types/angular-three-soba-loaders.d.ts",
52
+ "default": "./fesm2022/angular-three-soba-loaders.mjs"
53
+ },
54
+ "./materials": {
55
+ "types": "./types/angular-three-soba-materials.d.ts",
56
+ "default": "./fesm2022/angular-three-soba-materials.mjs"
57
+ },
58
+ "./misc": {
59
+ "types": "./types/angular-three-soba-misc.d.ts",
60
+ "default": "./fesm2022/angular-three-soba-misc.mjs"
61
+ },
62
+ "./performances": {
63
+ "types": "./types/angular-three-soba-performances.d.ts",
64
+ "default": "./fesm2022/angular-three-soba-performances.mjs"
65
+ },
66
+ "./shaders": {
67
+ "types": "./types/angular-three-soba-shaders.d.ts",
68
+ "default": "./fesm2022/angular-three-soba-shaders.mjs"
69
+ },
70
+ "./staging": {
71
+ "types": "./types/angular-three-soba-staging.d.ts",
72
+ "default": "./fesm2022/angular-three-soba-staging.mjs"
73
+ },
74
+ "./stats": {
75
+ "types": "./types/angular-three-soba-stats.d.ts",
76
+ "default": "./fesm2022/angular-three-soba-stats.mjs"
77
+ },
78
+ "./vanilla-exports": {
79
+ "types": "./types/angular-three-soba-vanilla-exports.d.ts",
80
+ "default": "./fesm2022/angular-three-soba-vanilla-exports.mjs"
81
+ }
82
+ },
83
+ "peerDependencies": {
84
+ "@angular/common": ">=20.0.0 <22.0.0",
85
+ "@angular/core": ">=20.0.0 <22.0.0",
86
+ "@monogrid/gainmap-js": "^3.0.0",
87
+ "@pmndrs/vanilla": "^1.24.0",
88
+ "camera-controls": "^2.8.0",
89
+ "hls.js": ">=1.5.0",
90
+ "maath": ">=0.10.0 <0.11.0",
91
+ "meshline": "^3.1.0",
92
+ "stats-gl": ">=2.0.0",
93
+ "three": ">=0.157.0 <0.183.0",
94
+ "three-custom-shader-material": ">=5.5.0 <6.5.0",
95
+ "three-mesh-bvh": ">=0.5.0 <0.10.0",
96
+ "three-stdlib": "^2.0.0",
97
+ "troika-three-text": ">=0.47.0 <0.53.0"
98
+ },
99
+ "peerDependenciesMeta": {
100
+ "@monogrid/gainmap-js": {
101
+ "optional": true
102
+ },
103
+ "@pmndrs/vanilla": {
104
+ "optional": true
105
+ },
106
+ "hls.js": {
107
+ "optional": true
108
+ },
109
+ "troika-three-text": {
110
+ "optional": true
111
+ },
112
+ "three-custom-shader-material": {
113
+ "optional": true
114
+ },
115
+ "three-mesh-bvh": {
116
+ "optional": true
117
+ },
118
+ "maath": {
119
+ "optional": true
120
+ },
121
+ "meshline": {
122
+ "optional": true
123
+ },
124
+ "camera-controls": {
125
+ "optional": true
126
+ },
127
+ "stats-gl": {
128
+ "optional": true
129
+ }
130
+ },
131
+ "dependencies": {
132
+ "tslib": "^2.3.0"
133
+ },
134
+ "sideEffects": false,
135
+ "web-types": [
136
+ "../../node_modules/angular-three/web-types.json",
137
+ "../../node_modules/angular-three-soba/web-types.json",
138
+ "./web-types.json"
139
+ ],
140
+ "module": "fesm2022/angular-three-soba.mjs",
141
+ "typings": "types/angular-three-soba.d.ts"
142
142
  }
@@ -16,6 +16,7 @@ npm install three-mesh-bvh
16
16
  - [NgtsAdaptiveEvents](#ngtsadaptiveevents)
17
17
  - [NgtsBVH](#ngtsbvh)
18
18
  - [NgtsDetailed](#ngtsdetailed)
19
+ - [NgtsLOD](#ngtslod)
19
20
  - [NgtsInstances](#ngtsinstances)
20
21
  - [NgtsSegments](#ngtssegments)
21
22
  - [NgtsPoints](#ngtspoints)
@@ -94,6 +95,52 @@ Implements Level of Detail (LOD) rendering. Automatically switches between diffe
94
95
  </ngts-detailed>
95
96
  ```
96
97
 
98
+ ## NgtsLOD
99
+
100
+ Implements Level of Detail (LOD) rendering. Automatically switches between different detail levels of child objects based on camera distance.
101
+
102
+ Unlike `NgtsDetailed`, this is an implementation based on Angular and angular-three APIs rather than Three's LOD class.
103
+ The component adds and remove objects from the scene graph rather than hiding them with `visible = false`.
104
+ This solves a number of issues such as avoid raycasting over hidden objects.
105
+
106
+ Usage:
107
+
108
+ ```html
109
+ <ngt-group lod [maxDistance]="10000">
110
+ <ngt-mesh *lodLevel />
111
+ <ngt-mesh *lodLevel="{distance: 100, hysteresis: 0.1}" />
112
+ <ngt-mesh *lodLevel="{distance: 1000}" />
113
+ </ngt-group>
114
+ ```
115
+
116
+ The `[lod]` directive (`NgtsLODImpl`) supports the following optional input:
117
+
118
+ | Property | Description | Default Value |
119
+ | ------------- | ----------------------------------------------------------------------------- | ------------- |
120
+ | `maxDistance` | Distance beyond which nothing is displayed (equivalent to a last empty level) | `undefined` |
121
+
122
+ The `[lodLevel]` directive (`NgtsLODLevel`) supports the following object inputs:
123
+
124
+ | Property | Description | Default Value |
125
+ | ------------ | ---------------------------------------------------- | ------------- |
126
+ | `distance` | Distance threshold above which to display the object | `0` |
127
+ | `hysteresis` | Prevents rapid switching near distance thresholds | `0` |
128
+
129
+ This directive may also be used with the following shorthand syntax:
130
+
131
+ ```html
132
+ <ngt-group lod>
133
+ <ng-template lodLevel>
134
+ <ngt-mesh />
135
+ <ngt-mesh />
136
+ </ng-template>
137
+ <ng-template [lodLevel]="{distance: 100}">
138
+ <ngt-mesh />
139
+ <ngt-mesh />
140
+ </ng-template>
141
+ </ngt-group>
142
+ ```
143
+
97
144
  ## NgtsInstances
98
145
 
99
146
  Efficiently renders many instances of the same geometry and material using a single draw call via `THREE.InstancedMesh`.
@@ -121,7 +121,7 @@ declare class NgtsLine {
121
121
  * Configuration options for the line appearance and behavior.
122
122
  */
123
123
  options: _angular_core.InputSignalWithTransform<NgtsLineOptions, "" | Partial<NgtsLineOptions>>;
124
- protected parameters: _angular_core.Signal<Omit<NgtsLineOptions, "vertexColors" | "color" | "dashed" | "linewidth" | "segments" | "lineWidth">>;
124
+ protected parameters: _angular_core.Signal<Omit<NgtsLineOptions, "vertexColors" | "color" | "dashed" | "linewidth" | "lineWidth" | "segments">>;
125
125
  /**
126
126
  * Reference to the underlying Line2 or LineSegments2 Three.js object.
127
127
  */
@@ -218,19 +218,6 @@ declare class NgtsCatmullRomLine {
218
218
  type?: string | undefined;
219
219
  parent?: THREE.Object3D<THREE.Object3DEventMap> | Readonly<THREE.Object3D<THREE.Object3DEventMap> | null> | undefined;
220
220
  children?: THREE.Object3D<THREE.Object3DEventMap>[] | undefined;
221
- isMesh?: true | undefined;
222
- geometry?: three_stdlib.LineGeometry | Readonly<three_stdlib.LineGeometry | undefined>;
223
- material?: three_stdlib.LineMaterial | Readonly<three_stdlib.LineMaterial | undefined>;
224
- morphTargetInfluences?: number[] | Readonly<number[] | undefined>;
225
- morphTargetDictionary?: {
226
- [key: string]: number;
227
- } | Readonly<{
228
- [key: string]: number;
229
- } | undefined>;
230
- count?: Readonly<number | undefined>;
231
- updateMorphTargets?: (() => void) | Readonly<(() => void) | undefined>;
232
- getVertexPosition?: ((index: number, target: THREE.Vector3) => THREE.Vector3) | Readonly<((index: number, target: THREE.Vector3) => THREE.Vector3) | undefined>;
233
- toJSON?: ((((meta?: THREE.JSONMeta) => THREE.MeshJSON) | Readonly<(meta?: THREE.JSONMeta) => THREE.MeshJSON>) & (((meta?: THREE.JSONMeta) => THREE.ShaderMaterialJSON) | Readonly<(meta?: THREE.JSONMeta) => THREE.ShaderMaterialJSON>)) | undefined;
234
221
  isObject3D?: true | undefined;
235
222
  up?: THREE.Vector3 | [x: number, y: number, z: number] | Readonly<number | THREE.Vector3 | [x: number, y: number, z: number] | undefined>;
236
223
  position?: THREE.Vector3 | [x: number, y: number, z: number] | Readonly<number | THREE.Vector3 | [x: number, y: number, z: number] | undefined>;
@@ -301,6 +288,7 @@ declare class NgtsCatmullRomLine {
301
288
  updateMatrix?: (() => void) | Readonly<(() => void) | undefined>;
302
289
  updateMatrixWorld?: ((force?: boolean) => void) | Readonly<((force?: boolean) => void) | undefined>;
303
290
  updateWorldMatrix?: ((updateParents: boolean, updateChildren: boolean) => void) | Readonly<((updateParents: boolean, updateChildren: boolean) => void) | undefined>;
291
+ toJSON?: ((((meta?: THREE.JSONMeta) => THREE.MeshJSON) | Readonly<(meta?: THREE.JSONMeta) => THREE.MeshJSON>) & (((meta?: THREE.JSONMeta) => THREE.ShaderMaterialJSON) | Readonly<(meta?: THREE.JSONMeta) => THREE.ShaderMaterialJSON>)) | undefined;
304
292
  clone?: ((((recursive?: boolean) => three_stdlib.Line2) | Readonly<(recursive?: boolean) => three_stdlib.Line2>) & ((() => three_stdlib.LineMaterial) | Readonly<() => three_stdlib.LineMaterial>)) | undefined;
305
293
  copy?: ((((object: THREE.Object3D, recursive?: boolean) => three_stdlib.Line2) | Readonly<(object: THREE.Object3D, recursive?: boolean) => three_stdlib.Line2>) & (((source: THREE.Material) => three_stdlib.LineMaterial) | Readonly<(source: THREE.Material) => three_stdlib.LineMaterial>)) | undefined;
306
294
  addEventListener?: ((((<T extends keyof THREE.Object3DEventMap>(type: T, listener: THREE.EventListener<THREE.Object3DEventMap[T], T, three_stdlib.Line2>) => void) | Readonly<(<T extends keyof THREE.Object3DEventMap>(type: T, listener: THREE.EventListener<THREE.Object3DEventMap[T], T, three_stdlib.Line2>) => void) | undefined>) & (<TEventKey extends keyof angular_three.NgtEventHandlers | "added" | "removed" | "childadded" | "childremoved" | "change" | keyof angular_three.NgtNodeEventMap<three_stdlib.Line2>>(type: TEventKey, listener: (this: angular_three.NgtNodeElement<typeof three_stdlib.Line2, three_stdlib.Line2>, ev: angular_three.NgtAllObject3DEventsMap<three_stdlib.Line2>[TEventKey]) => any) => void)) & (((<T extends "dispose">(type: T, listener: THREE.EventListener<{
@@ -324,13 +312,8 @@ declare class NgtsCatmullRomLine {
324
312
  dispose: {};
325
313
  }[T]) => void)>)) | undefined;
326
314
  dispose?: (((() => void) | Readonly<() => void> | null) & (((() => void) & (() => void)) | Readonly<(() => void) & (() => void)>)) | undefined;
327
- isMaterial?: Readonly<boolean | undefined>;
328
- version?: Readonly<number | undefined>;
329
- defines?: Record<string, unknown> | Readonly<Record<string, unknown> | undefined>;
330
- onBeforeCompile?: ((parameters: THREE.WebGLProgramParametersWithUniforms, renderer: THREE.WebGLRenderer) => void) | Readonly<((parameters: THREE.WebGLProgramParametersWithUniforms, renderer: THREE.WebGLRenderer) => void) | undefined>;
331
- customProgramCacheKey?: (() => string) | Readonly<(() => string) | undefined>;
332
- setValues?: ((values?: THREE.ShaderMaterialParameters) => void) | Readonly<((values?: THREE.ShaderMaterialParameters) => void) | undefined>;
333
- needsUpdate?: Readonly<boolean | undefined>;
315
+ parameters?: ((Partial<three_stdlib.Line2> | Readonly<Partial<three_stdlib.Line2>>) & (Partial<three_stdlib.LineMaterial> | Readonly<Partial<three_stdlib.LineMaterial>>)) | undefined;
316
+ color?: THREE.ColorRepresentation | undefined;
334
317
  blending?: 0 | 1 | 2 | 3 | 4 | 5 | undefined;
335
318
  side?: 0 | 1 | 2 | undefined;
336
319
  opacity?: number | undefined;
@@ -371,8 +354,6 @@ declare class NgtsCatmullRomLine {
371
354
  allowOverride?: boolean | undefined;
372
355
  toneMapped?: boolean | undefined;
373
356
  alphaTest?: number | undefined;
374
- parameters?: ((Partial<three_stdlib.Line2> | Readonly<Partial<three_stdlib.Line2>>) & (Partial<three_stdlib.LineMaterial> | Readonly<Partial<three_stdlib.LineMaterial>>)) | undefined;
375
- color?: THREE.ColorRepresentation | undefined;
376
357
  dashed?: boolean | undefined | undefined;
377
358
  dashScale?: number | undefined | undefined;
378
359
  dashSize?: number | undefined | undefined;
@@ -382,11 +363,30 @@ declare class NgtsCatmullRomLine {
382
363
  resolution?: (THREE.Vector2 & (number | THREE.Vector2 | [x: number, y: number] | Readonly<THREE.Vector2> | readonly [x: number, y: number])) | undefined;
383
364
  wireframe?: boolean | undefined | undefined;
384
365
  worldUnits?: boolean | undefined | undefined;
366
+ geometry?: three_stdlib.LineGeometry | Readonly<three_stdlib.LineGeometry | undefined>;
367
+ material?: three_stdlib.LineMaterial | Readonly<three_stdlib.LineMaterial | undefined>;
385
368
  isLine2?: true | undefined;
386
369
  isLineSegments2?: true | undefined;
387
370
  computeLineDistances?: (() => three_stdlib.Line2) | Readonly<(() => three_stdlib.Line2) | undefined>;
371
+ isMesh?: true | undefined;
372
+ morphTargetInfluences?: number[] | Readonly<number[] | undefined>;
373
+ morphTargetDictionary?: {
374
+ [key: string]: number;
375
+ } | Readonly<{
376
+ [key: string]: number;
377
+ } | undefined>;
378
+ count?: Readonly<number | undefined>;
379
+ updateMorphTargets?: (() => void) | Readonly<(() => void) | undefined>;
380
+ getVertexPosition?: ((index: number, target: THREE.Vector3) => THREE.Vector3) | Readonly<((index: number, target: THREE.Vector3) => THREE.Vector3) | undefined>;
388
381
  isLineMaterial?: true | undefined;
389
382
  isShaderMaterial?: Readonly<boolean | undefined>;
383
+ setValues?: ((values?: THREE.ShaderMaterialParameters) => void) | Readonly<((values?: THREE.ShaderMaterialParameters) => void) | undefined>;
384
+ defines?: Record<string, unknown> | Readonly<Record<string, unknown> | undefined>;
385
+ isMaterial?: Readonly<boolean | undefined>;
386
+ version?: Readonly<number | undefined>;
387
+ onBeforeCompile?: ((parameters: THREE.WebGLProgramParametersWithUniforms, renderer: THREE.WebGLRenderer) => void) | Readonly<((parameters: THREE.WebGLProgramParametersWithUniforms, renderer: THREE.WebGLRenderer) => void) | undefined>;
388
+ customProgramCacheKey?: (() => string) | Readonly<(() => string) | undefined>;
389
+ needsUpdate?: Readonly<boolean | undefined>;
390
390
  uniforms?: {
391
391
  [uniform: string]: THREE.IUniform<any>;
392
392
  } | Readonly<{
@@ -514,18 +514,6 @@ declare class NgtsEdges {
514
514
  type?: string | undefined;
515
515
  parent?: THREE.Object3D<THREE.Object3DEventMap> | Readonly<THREE.Object3D<THREE.Object3DEventMap> | null> | undefined;
516
516
  children?: THREE.Object3D<THREE.Object3DEventMap>[] | undefined;
517
- isMesh?: true | undefined;
518
- material?: ((THREE.Material | THREE.Material[] | Readonly<THREE.Material> | readonly THREE.Material[]) & (three_stdlib.LineMaterial | Readonly<three_stdlib.LineMaterial>)) | undefined;
519
- morphTargetInfluences?: number[] | Readonly<number[] | undefined>;
520
- morphTargetDictionary?: {
521
- [key: string]: number;
522
- } | Readonly<{
523
- [key: string]: number;
524
- } | undefined>;
525
- count?: Readonly<number | undefined>;
526
- updateMorphTargets?: (() => void) | Readonly<(() => void) | undefined>;
527
- getVertexPosition?: ((index: number, target: THREE.Vector3) => THREE.Vector3) | Readonly<((index: number, target: THREE.Vector3) => THREE.Vector3) | undefined>;
528
- toJSON?: ((((meta?: THREE.JSONMeta) => THREE.MeshJSON) | Readonly<(meta?: THREE.JSONMeta) => THREE.MeshJSON>) & (((meta?: THREE.JSONMeta) => THREE.ShaderMaterialJSON) | Readonly<(meta?: THREE.JSONMeta) => THREE.ShaderMaterialJSON>)) | undefined;
529
517
  isObject3D?: true | undefined;
530
518
  up?: THREE.Vector3 | [x: number, y: number, z: number] | Readonly<number | THREE.Vector3 | [x: number, y: number, z: number] | undefined>;
531
519
  position?: THREE.Vector3 | [x: number, y: number, z: number] | Readonly<number | THREE.Vector3 | [x: number, y: number, z: number] | undefined>;
@@ -596,6 +584,7 @@ declare class NgtsEdges {
596
584
  updateMatrix?: (() => void) | Readonly<(() => void) | undefined>;
597
585
  updateMatrixWorld?: ((force?: boolean) => void) | Readonly<((force?: boolean) => void) | undefined>;
598
586
  updateWorldMatrix?: ((updateParents: boolean, updateChildren: boolean) => void) | Readonly<((updateParents: boolean, updateChildren: boolean) => void) | undefined>;
587
+ toJSON?: ((((meta?: THREE.JSONMeta) => THREE.MeshJSON) | Readonly<(meta?: THREE.JSONMeta) => THREE.MeshJSON>) & (((meta?: THREE.JSONMeta) => THREE.ShaderMaterialJSON) | Readonly<(meta?: THREE.JSONMeta) => THREE.ShaderMaterialJSON>)) | undefined;
599
588
  clone?: ((((recursive?: boolean) => THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>) | Readonly<(recursive?: boolean) => THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>) & ((((recursive?: boolean) => three_stdlib.Line2) | Readonly<(recursive?: boolean) => three_stdlib.Line2>) & ((() => three_stdlib.LineMaterial) | Readonly<() => three_stdlib.LineMaterial>))) | undefined;
600
589
  copy?: ((((object: THREE.Object3D, recursive?: boolean) => THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>) | Readonly<(object: THREE.Object3D, recursive?: boolean) => THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>) & ((((object: THREE.Object3D, recursive?: boolean) => three_stdlib.Line2) | Readonly<(object: THREE.Object3D, recursive?: boolean) => three_stdlib.Line2>) & (((source: THREE.Material) => three_stdlib.LineMaterial) | Readonly<(source: THREE.Material) => three_stdlib.LineMaterial>))) | undefined;
601
590
  addEventListener?: ((((<T extends keyof THREE.Object3DEventMap>(type: T, listener: THREE.EventListener<THREE.Object3DEventMap[T], T, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>) => void) | Readonly<(<T extends keyof THREE.Object3DEventMap>(type: T, listener: THREE.EventListener<THREE.Object3DEventMap[T], T, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>) => void) | undefined>) & (<TEventKey extends keyof angular_three.NgtEventHandlers | "added" | "removed" | "childadded" | "childremoved" | "change" | keyof angular_three.NgtNodeEventMap<THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>>(type: TEventKey, listener: (this: angular_three.NgtNodeElement<typeof THREE.Mesh, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>, ev: angular_three.NgtAllObject3DEventsMap<THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>[TEventKey]) => any) => void)) & ((((<T extends keyof THREE.Object3DEventMap>(type: T, listener: THREE.EventListener<THREE.Object3DEventMap[T], T, three_stdlib.Line2>) => void) | Readonly<(<T extends keyof THREE.Object3DEventMap>(type: T, listener: THREE.EventListener<THREE.Object3DEventMap[T], T, three_stdlib.Line2>) => void) | undefined>) & (<TEventKey extends keyof angular_three.NgtEventHandlers | "added" | "removed" | "childadded" | "childremoved" | "change" | keyof angular_three.NgtNodeEventMap<three_stdlib.Line2>>(type: TEventKey, listener: (this: angular_three.NgtNodeElement<typeof three_stdlib.Line2, three_stdlib.Line2>, ev: angular_three.NgtAllObject3DEventsMap<three_stdlib.Line2>[TEventKey]) => any) => void)) & (((<T extends "dispose">(type: T, listener: THREE.EventListener<{
@@ -619,13 +608,9 @@ declare class NgtsEdges {
619
608
  dispose: {};
620
609
  }[T]) => void)>)) | undefined;
621
610
  dispose?: (((() => void) | Readonly<() => void> | null) & (((() => void) & (() => void)) | Readonly<(() => void) & (() => void)>)) | undefined;
622
- isMaterial?: Readonly<boolean | undefined>;
623
- version?: Readonly<number | undefined>;
624
- defines?: Record<string, unknown> | Readonly<Record<string, unknown> | undefined>;
625
- onBeforeCompile?: ((parameters: THREE.WebGLProgramParametersWithUniforms, renderer: THREE.WebGLRenderer) => void) | Readonly<((parameters: THREE.WebGLProgramParametersWithUniforms, renderer: THREE.WebGLRenderer) => void) | undefined>;
626
- customProgramCacheKey?: (() => string) | Readonly<(() => string) | undefined>;
627
- setValues?: ((values?: THREE.ShaderMaterialParameters) => void) | Readonly<((values?: THREE.ShaderMaterialParameters) => void) | undefined>;
628
- needsUpdate?: Readonly<boolean | undefined>;
611
+ parameters?: ((Partial<THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>> | Readonly<Partial<THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>>) & ((Partial<three_stdlib.Line2> | Readonly<Partial<three_stdlib.Line2>>) & (Partial<three_stdlib.LineMaterial> | Readonly<Partial<three_stdlib.LineMaterial>>))) | undefined;
612
+ __ngt_args__?: (([geometry?: THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap> | undefined, material?: THREE.Material | THREE.Material[] | undefined] | readonly [geometry?: THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap> | undefined, material?: THREE.Material | THREE.Material[] | undefined]) & (([geometry?: three_stdlib.LineGeometry | undefined, material?: three_stdlib.LineMaterial | undefined] | readonly [geometry?: three_stdlib.LineGeometry | undefined, material?: three_stdlib.LineMaterial | undefined]) & ([parameters?: LineMaterialParameters | undefined] | readonly [parameters?: LineMaterialParameters | undefined]))) | undefined;
613
+ color?: THREE.ColorRepresentation | undefined;
629
614
  blending?: 0 | 1 | 2 | 3 | 4 | 5 | undefined;
630
615
  side?: 0 | 1 | 2 | undefined;
631
616
  opacity?: number | undefined;
@@ -666,9 +651,6 @@ declare class NgtsEdges {
666
651
  allowOverride?: boolean | undefined;
667
652
  toneMapped?: boolean | undefined;
668
653
  alphaTest?: number | undefined;
669
- parameters?: ((Partial<THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>> | Readonly<Partial<THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>>) & ((Partial<three_stdlib.Line2> | Readonly<Partial<three_stdlib.Line2>>) & (Partial<three_stdlib.LineMaterial> | Readonly<Partial<three_stdlib.LineMaterial>>))) | undefined;
670
- __ngt_args__?: (([geometry?: THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap> | undefined, material?: THREE.Material | THREE.Material[] | undefined] | readonly [geometry?: THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap> | undefined, material?: THREE.Material | THREE.Material[] | undefined]) & (([geometry?: three_stdlib.LineGeometry | undefined, material?: three_stdlib.LineMaterial | undefined] | readonly [geometry?: three_stdlib.LineGeometry | undefined, material?: three_stdlib.LineMaterial | undefined]) & ([parameters?: LineMaterialParameters | undefined] | readonly [parameters?: LineMaterialParameters | undefined]))) | undefined;
671
- color?: THREE.ColorRepresentation | undefined;
672
654
  dashed?: boolean | undefined | undefined;
673
655
  dashScale?: number | undefined | undefined;
674
656
  dashSize?: number | undefined | undefined;
@@ -678,11 +660,29 @@ declare class NgtsEdges {
678
660
  resolution?: (THREE.Vector2 & (number | THREE.Vector2 | [x: number, y: number] | Readonly<THREE.Vector2> | readonly [x: number, y: number])) | undefined;
679
661
  wireframe?: boolean | undefined | undefined;
680
662
  worldUnits?: boolean | undefined | undefined;
663
+ material?: ((THREE.Material | THREE.Material[] | Readonly<THREE.Material> | readonly THREE.Material[]) & (three_stdlib.LineMaterial | Readonly<three_stdlib.LineMaterial>)) | undefined;
681
664
  isLine2?: true | undefined;
682
665
  isLineSegments2?: true | undefined;
683
666
  computeLineDistances?: (() => three_stdlib.Line2) | Readonly<(() => three_stdlib.Line2) | undefined>;
667
+ isMesh?: true | undefined;
668
+ morphTargetInfluences?: number[] | Readonly<number[] | undefined>;
669
+ morphTargetDictionary?: {
670
+ [key: string]: number;
671
+ } | Readonly<{
672
+ [key: string]: number;
673
+ } | undefined>;
674
+ count?: Readonly<number | undefined>;
675
+ updateMorphTargets?: (() => void) | Readonly<(() => void) | undefined>;
676
+ getVertexPosition?: ((index: number, target: THREE.Vector3) => THREE.Vector3) | Readonly<((index: number, target: THREE.Vector3) => THREE.Vector3) | undefined>;
684
677
  isLineMaterial?: true | undefined;
685
678
  isShaderMaterial?: Readonly<boolean | undefined>;
679
+ setValues?: ((values?: THREE.ShaderMaterialParameters) => void) | Readonly<((values?: THREE.ShaderMaterialParameters) => void) | undefined>;
680
+ defines?: Record<string, unknown> | Readonly<Record<string, unknown> | undefined>;
681
+ isMaterial?: Readonly<boolean | undefined>;
682
+ version?: Readonly<number | undefined>;
683
+ onBeforeCompile?: ((parameters: THREE.WebGLProgramParametersWithUniforms, renderer: THREE.WebGLRenderer) => void) | Readonly<((parameters: THREE.WebGLProgramParametersWithUniforms, renderer: THREE.WebGLRenderer) => void) | undefined>;
684
+ customProgramCacheKey?: (() => string) | Readonly<(() => string) | undefined>;
685
+ needsUpdate?: Readonly<boolean | undefined>;
686
686
  uniforms?: {
687
687
  [uniform: string]: THREE.IUniform<any>;
688
688
  } | Readonly<{
@@ -972,13 +972,13 @@ declare class NgtsPrismGeometry {
972
972
  * @default 1
973
973
  */
974
974
  height: number;
975
+ curveSegments?: number | undefined | undefined;
976
+ steps?: number | undefined | undefined;
975
977
  bevelEnabled?: boolean | undefined | undefined;
976
- bevelOffset?: number | undefined | undefined;
977
- bevelSize?: number | undefined | undefined;
978
978
  bevelThickness?: number | undefined | undefined;
979
- curveSegments?: number | undefined | undefined;
979
+ bevelSize?: number | undefined | undefined;
980
+ bevelOffset?: number | undefined | undefined;
980
981
  bevelSegments?: number | undefined | undefined;
981
- steps?: number | undefined | undefined;
982
982
  extrudePath?: THREE.Curve<THREE.Vector3> | undefined;
983
983
  UVGenerator?: THREE.UVGenerator | undefined;
984
984
  }>;
@@ -1142,7 +1142,7 @@ declare class NgtsRoundedBox {
1142
1142
  * Configuration options for the rounded box dimensions and appearance.
1143
1143
  */
1144
1144
  options: _angular_core.InputSignalWithTransform<NgtsRoundedBoxOptions, "" | Partial<NgtsRoundedBoxOptions>>;
1145
- protected parameters: _angular_core.Signal<Omit<NgtsRoundedBoxOptions, "height" | "bevelSegments" | "width" | "depth" | "radius" | "smoothness" | "steps" | "creaseAngle">>;
1145
+ protected parameters: _angular_core.Signal<Omit<NgtsRoundedBoxOptions, "width" | "height" | "depth" | "steps" | "bevelSegments" | "radius" | "smoothness" | "creaseAngle">>;
1146
1146
  private width;
1147
1147
  private height;
1148
1148
  private depth;
@@ -1425,7 +1425,7 @@ declare class NgtsText3D {
1425
1425
  * Configuration options for the 3D text appearance.
1426
1426
  */
1427
1427
  options: _angular_core.InputSignalWithTransform<Partial<NgtThreeElement<typeof THREE.Mesh>> & NgtsText3DOptions, "" | Partial<Partial<NgtThreeElement<typeof THREE.Mesh>> & NgtsText3DOptions>>;
1428
- protected parameters: _angular_core.Signal<Omit<Partial<NgtThreeElement<typeof THREE.Mesh>> & NgtsText3DOptions, "bevelEnabled" | "bevelOffset" | "bevelSize" | "bevelThickness" | "curveSegments" | "height" | "size" | "lineHeight" | "letterSpacing" | "bevelSegments" | "smooth">>;
1428
+ protected parameters: _angular_core.Signal<Omit<Partial<NgtThreeElement<typeof THREE.Mesh>> & NgtsText3DOptions, "size" | "height" | "curveSegments" | "bevelEnabled" | "bevelThickness" | "bevelSize" | "bevelOffset" | "bevelSegments" | "lineHeight" | "letterSpacing" | "smooth">>;
1429
1429
  /**
1430
1430
  * Reference to the underlying Mesh Three.js object.
1431
1431
  */
@@ -1435,16 +1435,16 @@ declare class NgtsText3D {
1435
1435
  private smooth;
1436
1436
  private textOptions;
1437
1437
  protected textArgs: _angular_core.Signal<(string | {
1438
+ size?: number | undefined;
1439
+ height?: number | undefined;
1440
+ curveSegments?: number | undefined;
1438
1441
  bevelEnabled?: boolean | undefined;
1439
- bevelOffset?: number | undefined;
1440
- bevelSize?: number | undefined;
1441
1442
  bevelThickness?: number | undefined;
1442
- curveSegments?: number | undefined;
1443
- height?: number | undefined;
1444
- size?: number | undefined;
1443
+ bevelSize?: number | undefined;
1444
+ bevelOffset?: number | undefined;
1445
+ bevelSegments: number;
1445
1446
  lineHeight?: number | undefined;
1446
1447
  letterSpacing?: number | undefined;
1447
- bevelSegments: number;
1448
1448
  font: three_stdlib.Font;
1449
1449
  })[] | null>;
1450
1450
  constructor();
@@ -141,7 +141,7 @@ type NgtsCubeCameraOptions = Partial<NgtThreeElements['ngt-group']> & CubeCamera
141
141
  */
142
142
  declare class NgtsCubeCamera {
143
143
  options: _angular_core.InputSignalWithTransform<NgtsCubeCameraOptions, "" | Partial<NgtsCubeCameraOptions>>;
144
- protected parameters: _angular_core.Signal<Omit<NgtsCubeCameraOptions, "near" | "far" | "envMap" | "frames" | "resolution" | "fog">>;
144
+ protected parameters: _angular_core.Signal<Omit<NgtsCubeCameraOptions, "resolution" | "near" | "far" | "envMap" | "fog" | "frames">>;
145
145
  private cubeCamera;
146
146
  protected camera: _angular_core.Signal<THREE.CubeCamera>;
147
147
  protected texture: _angular_core.Signal<THREE.CubeTexture<unknown>>;
@@ -217,7 +217,7 @@ interface NgtsOrthographicCameraOptions extends Partial<NgtThreeElements['ngt-or
217
217
  */
218
218
  declare class NgtsOrthographicCamera {
219
219
  options: _angular_core.InputSignalWithTransform<NgtsOrthographicCameraOptions, "" | Partial<NgtsOrthographicCameraOptions>>;
220
- protected parameters: _angular_core.Signal<Omit<NgtsOrthographicCameraOptions, "envMap" | "makeDefault" | "frames" | "resolution" | "left" | "right" | "top" | "bottom">>;
220
+ protected parameters: _angular_core.Signal<Omit<NgtsOrthographicCameraOptions, "resolution" | "envMap" | "frames" | "left" | "right" | "top" | "bottom" | "makeDefault">>;
221
221
  protected content: _angular_core.Signal<TemplateRef<any> | undefined>;
222
222
  protected cameraContent: _angular_core.Signal<TemplateRef<any> | undefined>;
223
223
  /**
@@ -310,7 +310,7 @@ interface NgtsPerspectiveCameraOptions extends Partial<NgtThreeElements['ngt-per
310
310
  */
311
311
  declare class NgtsPerspectiveCamera {
312
312
  options: _angular_core.InputSignalWithTransform<NgtsPerspectiveCameraOptions, "" | Partial<NgtsPerspectiveCameraOptions>>;
313
- protected parameters: _angular_core.Signal<Omit<NgtsPerspectiveCameraOptions, "envMap" | "makeDefault" | "frames" | "resolution">>;
313
+ protected parameters: _angular_core.Signal<Omit<NgtsPerspectiveCameraOptions, "resolution" | "envMap" | "frames" | "makeDefault">>;
314
314
  protected content: _angular_core.Signal<TemplateRef<any> | undefined>;
315
315
  protected cameraContent: _angular_core.Signal<TemplateRef<any> | undefined>;
316
316
  /**