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
@@ -1,15 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, effect, untracked, inject, DestroyRef, Directive, viewChild, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, computed } from '@angular/core';
3
- import { injectStore, omit, pick, extend, getInstanceState, injectBeforeRender, resolveRef, checkUpdate, vector3, NgtArgs } from 'angular-three';
2
+ import { input, booleanAttribute, effect, untracked, inject, DestroyRef, Directive, viewChild, signal, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, computed } from '@angular/core';
3
+ import { injectStore, omit, pick, extend, is, getInstanceState, injectBeforeRender, resolveRef, checkUpdate, vector3, NgtArgs } from 'angular-three';
4
4
  import { mergeInputs } from 'ngxtension/inject-inputs';
5
5
  import * as THREE from 'three';
6
- import { LOD, InstancedMesh, InstancedBufferAttribute, Points, BufferAttribute, BufferGeometry } from 'three';
6
+ import { Group, LOD, InstancedMesh, InstancedBufferAttribute, Points, BufferAttribute, BufferGeometry } from 'three';
7
+ import { SAH, acceleratedRaycast, computeBoundsTree, disposeBoundsTree } from 'three-mesh-bvh';
7
8
  import { setUpdateRange } from 'angular-three-soba/misc';
8
9
  import { Line2, LineMaterial, LineSegmentsGeometry } from 'three-stdlib';
9
10
 
10
11
  class NgtsAdaptiveDpr {
11
12
  constructor() {
12
- this.pixelated = input(false);
13
+ this.pixelated = input(false, { transform: booleanAttribute });
13
14
  const store = injectStore();
14
15
  effect(() => {
15
16
  const [current, pixelated, domElement, setDpr, initialDpr] = [
@@ -37,10 +38,10 @@ class NgtsAdaptiveDpr {
37
38
  domElement.style.imageRendering = 'auto';
38
39
  });
39
40
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsAdaptiveDpr, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.4", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: { classPropertyName: "pixelated", publicName: "pixelated", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsAdaptiveDpr, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
42
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.1", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: { classPropertyName: "pixelated", publicName: "pixelated", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
42
43
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
44
45
  type: Directive,
45
46
  args: [{ selector: 'ngts-adaptive-dpr' }]
46
47
  }], ctorParameters: () => [] });
@@ -57,14 +58,130 @@ class NgtsAdaptiveEvents {
57
58
  store.snapshot.setEvents({ enabled: currentEnabled });
58
59
  });
59
60
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsAdaptiveEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
61
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.4", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", ngImport: i0 }); }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsAdaptiveEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
62
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", ngImport: i0 }); }
62
63
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
64
65
  type: Directive,
65
66
  args: [{ selector: 'ngts-adaptive-events' }]
66
67
  }], ctorParameters: () => [] });
67
68
 
69
+ const defaultOptions$2 = {
70
+ enabled: true,
71
+ firstHitOnly: false,
72
+ strategy: SAH,
73
+ verbose: false,
74
+ setBoundingBox: true,
75
+ maxDepth: 40,
76
+ maxLeafTris: 10,
77
+ indirect: false,
78
+ };
79
+ class NgtsBVH {
80
+ constructor() {
81
+ this.options = input(defaultOptions$2, { transform: mergeInputs(defaultOptions$2) });
82
+ this.parameters = omit(this.options, [
83
+ 'enabled',
84
+ 'firstHitOnly',
85
+ 'strategy',
86
+ 'verbose',
87
+ 'setBoundingBox',
88
+ 'maxDepth',
89
+ 'maxLeafTris',
90
+ 'indirect',
91
+ ]);
92
+ this.groupRef = viewChild.required('group');
93
+ this.store = injectStore();
94
+ this.enabled = pick(this.options, 'enabled');
95
+ this.firstHitOnly = pick(this.options, 'firstHitOnly');
96
+ this.strategy = pick(this.options, 'strategy');
97
+ this.verbose = pick(this.options, 'verbose');
98
+ this.setBoundingBox = pick(this.options, 'setBoundingBox');
99
+ this.maxDepth = pick(this.options, 'maxDepth');
100
+ this.maxLeafTris = pick(this.options, 'maxLeafTris');
101
+ this.indirect = pick(this.options, 'indirect');
102
+ this.reset = signal(Math.random());
103
+ this.retryMap = new Map();
104
+ this.MAX_RETRIES = 3;
105
+ extend({ Group });
106
+ effect((onCleanup) => {
107
+ const enabled = this.enabled();
108
+ if (!enabled)
109
+ return;
110
+ const group = this.groupRef().nativeElement;
111
+ // track reset
112
+ this.reset();
113
+ // Hijacking the raycast method to do it for individual meshes is not an option as it would
114
+ // This can only safely work if the component is used once, but there is no alternative.
115
+ // cost too much memory ...
116
+ const [firstHitOnly, strategy, verbose, setBoundingBox, maxDepth, maxLeafTris, indirect, raycaster] = [
117
+ untracked(this.firstHitOnly),
118
+ untracked(this.strategy),
119
+ untracked(this.verbose),
120
+ untracked(this.setBoundingBox),
121
+ untracked(this.maxDepth),
122
+ untracked(this.maxLeafTris),
123
+ untracked(this.indirect),
124
+ this.store.snapshot.raycaster,
125
+ ];
126
+ const options = { strategy, verbose, setBoundingBox, maxDepth, maxLeafTris, indirect };
127
+ raycaster.firstHitOnly = firstHitOnly;
128
+ let timeoutId;
129
+ group.traverse((child) => {
130
+ if (is.three(child, 'isMesh') &&
131
+ !child.geometry.boundsTree &&
132
+ child.raycast === THREE.Mesh.prototype.raycast) {
133
+ const geometry = child.geometry;
134
+ const retryCount = this.retryMap.get(child) ?? 0;
135
+ // retry 3 times
136
+ if (!Object.keys(geometry.attributes).length && retryCount <= this.MAX_RETRIES) {
137
+ this.retryMap.set(child, retryCount + 1);
138
+ timeoutId = setTimeout(() => {
139
+ this.reset.set(Math.random());
140
+ });
141
+ return;
142
+ }
143
+ child.raycast = acceleratedRaycast;
144
+ child.geometry.computeBoundsTree = computeBoundsTree;
145
+ child.geometry.disposeBoundsTree = disposeBoundsTree;
146
+ child.geometry.computeBoundsTree(options);
147
+ }
148
+ });
149
+ onCleanup(() => {
150
+ timeoutId && clearTimeout(timeoutId);
151
+ delete raycaster.firstHitOnly;
152
+ group.traverse((child) => {
153
+ if (is.three(child, 'isMesh') && child.geometry.boundsTree) {
154
+ child.geometry.disposeBoundsTree();
155
+ child.raycast = THREE.Mesh.prototype.raycast;
156
+ }
157
+ });
158
+ });
159
+ });
160
+ inject(DestroyRef).onDestroy(() => {
161
+ this.retryMap.clear();
162
+ });
163
+ }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsBVH, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
165
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: NgtsBVH, isStandalone: true, selector: "ngts-bvh", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
166
+ <ngt-group #group [parameters]="parameters()">
167
+ <ng-content />
168
+ </ngt-group>
169
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
170
+ }
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsBVH, decorators: [{
172
+ type: Component,
173
+ args: [{
174
+ selector: 'ngts-bvh',
175
+ template: `
176
+ <ngt-group #group [parameters]="parameters()">
177
+ <ng-content />
178
+ </ngt-group>
179
+ `,
180
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
181
+ changeDetection: ChangeDetectionStrategy.OnPush,
182
+ }]
183
+ }], ctorParameters: () => [] });
184
+
68
185
  const defaultOptions$1 = {
69
186
  hysteresis: 0,
70
187
  };
@@ -91,14 +208,14 @@ class NgtsDetailed {
91
208
  this.lodRef().nativeElement.update(camera);
92
209
  });
93
210
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsDetailed, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed", inputs: { distances: { classPropertyName: "distances", publicName: "distances", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lodRef", first: true, predicate: ["lod"], descendants: true, isSignal: true }], ngImport: i0, template: `
211
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsDetailed, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
212
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed", inputs: { distances: { classPropertyName: "distances", publicName: "distances", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lodRef", first: true, predicate: ["lod"], descendants: true, isSignal: true }], ngImport: i0, template: `
96
213
  <ngt-lOD #lod [parameters]="parameters()">
97
214
  <ng-content />
98
215
  </ngt-lOD>
99
216
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
100
217
  }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsDetailed, decorators: [{
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsDetailed, decorators: [{
102
219
  type: Component,
103
220
  args: [{
104
221
  selector: 'ngts-detailed',
@@ -178,14 +295,14 @@ class NgtsInstance {
178
295
  onCleanup(() => cleanup());
179
296
  });
180
297
  }
181
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsInstance, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
182
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: NgtsInstance, isStandalone: true, selector: "ngts-instance", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "positionMeshRef", first: true, predicate: ["positionMesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
298
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsInstance, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
299
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: NgtsInstance, isStandalone: true, selector: "ngts-instance", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "positionMeshRef", first: true, predicate: ["positionMesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
183
300
  <ngt-position-mesh #positionMesh [instance]="instances.instancedMeshRef()" [parameters]="options()">
184
301
  <ng-content />
185
302
  </ngt-position-mesh>
186
303
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
187
304
  }
188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsInstance, decorators: [{
305
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsInstance, decorators: [{
189
306
  type: Component,
190
307
  args: [{
191
308
  selector: 'ngts-instance',
@@ -267,8 +384,8 @@ class NgtsInstances {
267
384
  this.instances = this.instances.filter((i) => i !== ref);
268
385
  };
269
386
  }
270
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
271
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: NgtsInstances, isStandalone: true, selector: "ngts-instances", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "instancedMeshRef", first: true, predicate: ["instancedMesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
387
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
388
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: NgtsInstances, isStandalone: true, selector: "ngts-instances", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "instancedMeshRef", first: true, predicate: ["instancedMesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
272
389
  <ngt-instanced-mesh
273
390
  #instancedMesh
274
391
  [userData]="{ instances }"
@@ -294,7 +411,7 @@ class NgtsInstances {
294
411
  </ngt-instanced-mesh>
295
412
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
296
413
  }
297
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsInstances, decorators: [{
414
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsInstances, decorators: [{
298
415
  type: Component,
299
416
  args: [{
300
417
  selector: 'ngts-instances',
@@ -390,14 +507,14 @@ class NgtsPoint {
390
507
  onCleanup(() => cleanUp());
391
508
  });
392
509
  }
393
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsPoint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
394
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: NgtsPoint, isStandalone: true, selector: "ngts-point", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "positionPointRef", first: true, predicate: ["positionPoint"], descendants: true, isSignal: true }], ngImport: i0, template: `
510
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsPoint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
511
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: NgtsPoint, isStandalone: true, selector: "ngts-point", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "positionPointRef", first: true, predicate: ["positionPoint"], descendants: true, isSignal: true }], ngImport: i0, template: `
395
512
  <ngt-position-point #positionPoint [parameters]="options()" [instance]="points.pointsRef()">
396
513
  <ng-content />
397
514
  </ngt-position-point>
398
515
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
399
516
  }
400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsPoint, decorators: [{
517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsPoint, decorators: [{
401
518
  type: Component,
402
519
  args: [{
403
520
  selector: 'ngts-point',
@@ -432,8 +549,8 @@ class NgtsPointsBuffer {
432
549
  checkUpdate(attributes['size']);
433
550
  });
434
551
  }
435
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsPointsBuffer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
436
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: NgtsPointsBuffer, isStandalone: true, selector: "ngts-points-buffer", inputs: { positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: false, transformFunction: null }, sizes: { classPropertyName: "sizes", publicName: "sizes", isSignal: true, isRequired: false, transformFunction: null }, stride: { classPropertyName: "stride", publicName: "stride", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pointsRef", first: true, predicate: ["points"], descendants: true, isSignal: true }], ngImport: i0, template: `
552
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsPointsBuffer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
553
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: NgtsPointsBuffer, isStandalone: true, selector: "ngts-points-buffer", inputs: { positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: false, transformFunction: null }, sizes: { classPropertyName: "sizes", publicName: "sizes", isSignal: true, isRequired: false, transformFunction: null }, stride: { classPropertyName: "stride", publicName: "stride", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pointsRef", first: true, predicate: ["points"], descendants: true, isSignal: true }], ngImport: i0, template: `
437
554
  <ngt-points #points [parameters]="options()">
438
555
  <ngt-buffer-geometry>
439
556
  <ngt-buffer-attribute
@@ -466,7 +583,7 @@ class NgtsPointsBuffer {
466
583
  </ngt-points>
467
584
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
468
585
  }
469
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsPointsBuffer, decorators: [{
586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsPointsBuffer, decorators: [{
470
587
  type: Component,
471
588
  args: [{
472
589
  selector: 'ngts-points-buffer',
@@ -563,8 +680,8 @@ class NgtsPointsInstances {
563
680
  this.positionPoints = this.positionPoints.filter((p) => p !== ref);
564
681
  };
565
682
  }
566
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsPointsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
567
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: NgtsPointsInstances, isStandalone: true, selector: "ngts-points-instances", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pointsRef", first: true, predicate: ["points"], descendants: true, isSignal: true }], ngImport: i0, template: `
683
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsPointsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
684
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: NgtsPointsInstances, isStandalone: true, selector: "ngts-points-instances", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pointsRef", first: true, predicate: ["points"], descendants: true, isSignal: true }], ngImport: i0, template: `
568
685
  <ngt-points
569
686
  #points
570
687
  [userData]="{ instances: positionPoints }"
@@ -599,7 +716,7 @@ class NgtsPointsInstances {
599
716
  </ngt-points>
600
717
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
601
718
  }
602
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsPointsInstances, decorators: [{
719
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsPointsInstances, decorators: [{
603
720
  type: Component,
604
721
  args: [{
605
722
  selector: 'ngts-points-instances',
@@ -665,12 +782,12 @@ class NgtsSegment {
665
782
  onCleanup(() => cleanUp());
666
783
  });
667
784
  }
668
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsSegment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
669
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: NgtsSegment, isStandalone: true, selector: "ngts-segment", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: true, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "segmentRef", first: true, predicate: ["segment"], descendants: true, isSignal: true }], ngImport: i0, template: `
785
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsSegment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
786
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: NgtsSegment, isStandalone: true, selector: "ngts-segment", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: true, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "segmentRef", first: true, predicate: ["segment"], descendants: true, isSignal: true }], ngImport: i0, template: `
670
787
  <ngt-segment-object #segment [color]="color()" [start]="normalizedStart()" [end]="normalizedEnd()" />
671
788
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
672
789
  }
673
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsSegment, decorators: [{
790
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsSegment, decorators: [{
674
791
  type: Component,
675
792
  args: [{
676
793
  selector: 'ngts-segment',
@@ -741,8 +858,8 @@ class NgtsSegments {
741
858
  this.segments = this.segments.filter((i) => i !== ref);
742
859
  };
743
860
  }
744
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsSegments, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
745
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: NgtsSegments, isStandalone: true, selector: "ngts-segments", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lineRef", first: true, predicate: ["line"], descendants: true, isSignal: true }], ngImport: i0, template: `
861
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsSegments, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
862
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: NgtsSegments, isStandalone: true, selector: "ngts-segments", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lineRef", first: true, predicate: ["line"], descendants: true, isSignal: true }], ngImport: i0, template: `
746
863
  <ngt-primitive #line *args="[line]">
747
864
  <ngt-primitive *args="[geometry]" attach="geometry" />
748
865
  <ngt-primitive *args="[material]" attach="material" [parameters]="materialParameters()" />
@@ -750,7 +867,7 @@ class NgtsSegments {
750
867
  </ngt-primitive>
751
868
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
752
869
  }
753
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgtsSegments, decorators: [{
870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgtsSegments, decorators: [{
754
871
  type: Component,
755
872
  args: [{
756
873
  selector: 'ngts-segments',
@@ -771,5 +888,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
771
888
  * Generated bundle index. Do not edit.
772
889
  */
773
890
 
774
- export { NgtsAdaptiveDpr, NgtsAdaptiveEvents, NgtsDetailed, NgtsInstance, NgtsInstances, NgtsPoint, NgtsPointsBuffer, NgtsPointsInstances, NgtsSegment, NgtsSegments };
891
+ export { NgtsAdaptiveDpr, NgtsAdaptiveEvents, NgtsBVH, NgtsDetailed, NgtsInstance, NgtsInstances, NgtsPoint, NgtsPointsBuffer, NgtsPointsInstances, NgtsSegment, NgtsSegments };
775
892
  //# sourceMappingURL=angular-three-soba-performances.mjs.map