angular-three-soba 4.2.0 → 4.2.2
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/fesm2022/angular-three-soba-abstractions.mjs +98 -98
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +26 -26
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2022/angular-three-soba-controls.mjs +32 -32
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-gizmos.mjs +119 -119
- package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -1
- package/fesm2022/angular-three-soba-loaders.mjs +6 -6
- package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-materials.mjs +75 -75
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +85 -76
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-performances.mjs +164 -60
- package/fesm2022/angular-three-soba-performances.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +257 -257
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2022/angular-three-soba-stats.mjs +5 -5
- package/fesm2022/angular-three-soba-stats.mjs.map +1 -1
- package/package.json +141 -140
- package/performances/README.md +47 -0
- package/types/angular-three-soba-abstractions.d.ts +57 -57
- package/types/angular-three-soba-cameras.d.ts +3 -3
- package/types/angular-three-soba-controls.d.ts +4 -4
- package/types/angular-three-soba-gizmos.d.ts +4 -4
- package/types/angular-three-soba-materials.d.ts +4 -4
- package/types/angular-three-soba-misc.d.ts +16 -5
- package/types/angular-three-soba-performances.d.ts +55 -9
- package/types/angular-three-soba-staging.d.ts +13 -13
|
@@ -48,7 +48,7 @@ function animations(animationsFactory, object, { injector } = {}) {
|
|
|
48
48
|
const actions = {};
|
|
49
49
|
const clips = [];
|
|
50
50
|
const names = [];
|
|
51
|
-
const actualObject = computed(() => isSignal(object) || typeof object === 'function' ? resolveRef(object()) : resolveRef(object), ...(ngDevMode ? [{ debugName: "actualObject" }] : []));
|
|
51
|
+
const actualObject = computed(() => isSignal(object) || typeof object === 'function' ? resolveRef(object()) : resolveRef(object), ...(ngDevMode ? [{ debugName: "actualObject" }] : /* istanbul ignore next */ []));
|
|
52
52
|
const isReady = computed(() => {
|
|
53
53
|
const obj = actualObject();
|
|
54
54
|
if (!obj)
|
|
@@ -77,7 +77,7 @@ function animations(animationsFactory, object, { injector } = {}) {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
return true;
|
|
80
|
-
}, ...(ngDevMode ? [{ debugName: "isReady" }] : []));
|
|
80
|
+
}, ...(ngDevMode ? [{ debugName: "isReady" }] : /* istanbul ignore next */ []));
|
|
81
81
|
inject(DestroyRef).onDestroy(() => {
|
|
82
82
|
const obj = actualObject();
|
|
83
83
|
// clear cached
|
|
@@ -136,10 +136,10 @@ class NgtsBakeShadows {
|
|
|
136
136
|
});
|
|
137
137
|
});
|
|
138
138
|
}
|
|
139
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
140
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.
|
|
139
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsBakeShadows, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
140
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NgtsBakeShadows, isStandalone: true, selector: "ngts-bake-shadows", ngImport: i0 }); }
|
|
141
141
|
}
|
|
142
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsBakeShadows, decorators: [{
|
|
143
143
|
type: Directive,
|
|
144
144
|
args: [{ selector: 'ngts-bake-shadows' }]
|
|
145
145
|
}], ctorParameters: () => [] });
|
|
@@ -179,17 +179,17 @@ class NgtsComputedAttribute {
|
|
|
179
179
|
* Function that computes the BufferAttribute from the parent geometry.
|
|
180
180
|
* Called whenever the geometry or compute function changes.
|
|
181
181
|
*/
|
|
182
|
-
this.compute = input.required(...(ngDevMode ? [{ debugName: "compute" }] : []));
|
|
182
|
+
this.compute = input.required(...(ngDevMode ? [{ debugName: "compute" }] : /* istanbul ignore next */ []));
|
|
183
183
|
/**
|
|
184
184
|
* The attribute name to attach to the geometry (e.g., 'uv2', 'customData').
|
|
185
185
|
*/
|
|
186
|
-
this.name = input.required(...(ngDevMode ? [{ debugName: "name" }] : []));
|
|
186
|
+
this.name = input.required(...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
187
187
|
/**
|
|
188
188
|
* Additional options to pass to the underlying buffer attribute.
|
|
189
189
|
*/
|
|
190
|
-
this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
190
|
+
this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
191
191
|
this.bufferAttribute = new THREE.BufferAttribute(new Float32Array(0), 1);
|
|
192
|
-
this.attributeRef = viewChild('attribute', ...(ngDevMode ? [{ debugName: "attributeRef" }] : []));
|
|
192
|
+
this.attributeRef = viewChild('attribute', ...(ngDevMode ? [{ debugName: "attributeRef" }] : /* istanbul ignore next */ []));
|
|
193
193
|
effect(() => {
|
|
194
194
|
const bufferAttribute = this.attributeRef()?.nativeElement;
|
|
195
195
|
if (!bufferAttribute)
|
|
@@ -202,14 +202,14 @@ class NgtsComputedAttribute {
|
|
|
202
202
|
bufferAttribute.copy(attribute);
|
|
203
203
|
});
|
|
204
204
|
}
|
|
205
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
206
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.
|
|
205
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsComputedAttribute, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
206
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsComputedAttribute, isStandalone: true, selector: "ngts-computed-attribute", inputs: { compute: { classPropertyName: "compute", publicName: "compute", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "attributeRef", first: true, predicate: ["attribute"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
207
207
|
<ngt-primitive #attribute *args="[bufferAttribute]" [attach]="['attributes', name()]" [parameters]="options()">
|
|
208
208
|
<ng-content />
|
|
209
209
|
</ngt-primitive>
|
|
210
210
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
211
211
|
}
|
|
212
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsComputedAttribute, decorators: [{
|
|
213
213
|
type: Component,
|
|
214
214
|
args: [{
|
|
215
215
|
selector: 'ngts-computed-attribute',
|
|
@@ -281,11 +281,11 @@ class NgtsDecal {
|
|
|
281
281
|
* Optional external mesh to project the decal onto.
|
|
282
282
|
* If not provided, uses the parent mesh in the scene graph.
|
|
283
283
|
*/
|
|
284
|
-
this.mesh = input(...(ngDevMode ? [undefined, { debugName: "mesh" }] : []));
|
|
284
|
+
this.mesh = input(...(ngDevMode ? [undefined, { debugName: "mesh" }] : /* istanbul ignore next */ []));
|
|
285
285
|
/**
|
|
286
286
|
* Decal configuration options including position, scale, rotation, and material properties.
|
|
287
287
|
*/
|
|
288
|
-
this.options = input(defaultOptions$2, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$2) });
|
|
288
|
+
this.options = input(defaultOptions$2, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$2) });
|
|
289
289
|
this.parameters = omit(this.options, [
|
|
290
290
|
'debug',
|
|
291
291
|
'map',
|
|
@@ -296,7 +296,7 @@ class NgtsDecal {
|
|
|
296
296
|
'rotation',
|
|
297
297
|
]);
|
|
298
298
|
this.meshRef = viewChild.required('mesh');
|
|
299
|
-
this.helperRef = viewChild('helper', ...(ngDevMode ? [{ debugName: "helperRef" }] : []));
|
|
299
|
+
this.helperRef = viewChild('helper', ...(ngDevMode ? [{ debugName: "helperRef" }] : /* istanbul ignore next */ []));
|
|
300
300
|
this.map = pick(this.options, 'map');
|
|
301
301
|
this.depthTest = pick(this.options, 'depthTest');
|
|
302
302
|
this.polygonOffsetFactor = pick(this.options, 'polygonOffsetFactor');
|
|
@@ -393,8 +393,8 @@ class NgtsDecal {
|
|
|
393
393
|
});
|
|
394
394
|
});
|
|
395
395
|
}
|
|
396
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
397
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
396
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsDecal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
397
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsDecal, isStandalone: true, selector: "ngts-decal", inputs: { mesh: { classPropertyName: "mesh", publicName: "mesh", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "helperRef", first: true, predicate: ["helper"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
398
398
|
<ngt-mesh #mesh [parameters]="parameters()">
|
|
399
399
|
<ngt-value [rawValue]="true" attach="material.transparent" />
|
|
400
400
|
<ngt-value [rawValue]="true" attach="material.polygonOffset" />
|
|
@@ -416,7 +416,7 @@ class NgtsDecal {
|
|
|
416
416
|
</ngt-mesh>
|
|
417
417
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
418
418
|
}
|
|
419
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
419
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsDecal, decorators: [{
|
|
420
420
|
type: Component,
|
|
421
421
|
args: [{
|
|
422
422
|
selector: 'ngts-decal',
|
|
@@ -515,11 +515,11 @@ function fbo(params = () => ({}), { injector } = {}) {
|
|
|
515
515
|
const width = computed(() => {
|
|
516
516
|
const { width } = params();
|
|
517
517
|
return typeof width === 'number' ? width : store.size.width() * store.viewport.dpr();
|
|
518
|
-
}, ...(ngDevMode ? [{ debugName: "width" }] : []));
|
|
518
|
+
}, ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
|
|
519
519
|
const height = computed(() => {
|
|
520
520
|
const { height } = params();
|
|
521
521
|
return typeof height === 'number' ? height : store.size.height() * store.viewport.dpr();
|
|
522
|
-
}, ...(ngDevMode ? [{ debugName: "height" }] : []));
|
|
522
|
+
}, ...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
|
|
523
523
|
const settings = computed(() => {
|
|
524
524
|
const { width, settings } = params();
|
|
525
525
|
const _settings = (typeof width === 'number' ? settings : width) || {};
|
|
@@ -527,7 +527,7 @@ function fbo(params = () => ({}), { injector } = {}) {
|
|
|
527
527
|
_settings.samples = 0;
|
|
528
528
|
}
|
|
529
529
|
return _settings;
|
|
530
|
-
}, ...(ngDevMode ? [{ debugName: "settings" }] : []));
|
|
530
|
+
}, ...(ngDevMode ? [{ debugName: "settings" }] : /* istanbul ignore next */ []));
|
|
531
531
|
const target = (() => {
|
|
532
532
|
const [{ samples = 0, depth, ...targetSettings }, _width, _height] = [
|
|
533
533
|
untracked(settings),
|
|
@@ -583,7 +583,7 @@ class NgtsFBO {
|
|
|
583
583
|
/**
|
|
584
584
|
* FBO configuration including width, height, and RenderTargetOptions.
|
|
585
585
|
*/
|
|
586
|
-
this.fbo = input({}, ...(ngDevMode ? [{ debugName: "fbo" }] : []));
|
|
586
|
+
this.fbo = input({}, ...(ngDevMode ? [{ debugName: "fbo" }] : /* istanbul ignore next */ []));
|
|
587
587
|
this.template = inject(TemplateRef);
|
|
588
588
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
589
589
|
const fboTarget = fbo(() => {
|
|
@@ -603,10 +603,10 @@ class NgtsFBO {
|
|
|
603
603
|
static ngTemplateContextGuard(_, ctx) {
|
|
604
604
|
return true;
|
|
605
605
|
}
|
|
606
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
607
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
606
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsFBO, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
607
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsFBO, isStandalone: true, selector: "ng-template[fbo]", inputs: { fbo: { classPropertyName: "fbo", publicName: "fbo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
608
608
|
}
|
|
609
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
609
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsFBO, decorators: [{
|
|
610
610
|
type: Directive,
|
|
611
611
|
args: [{ selector: 'ng-template[fbo]' }]
|
|
612
612
|
}], ctorParameters: () => [], propDecorators: { fbo: [{ type: i0.Input, args: [{ isSignal: true, alias: "fbo", required: false }] }] } });
|
|
@@ -637,17 +637,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
|
|
|
637
637
|
*/
|
|
638
638
|
function depthBuffer(params = () => ({}), { injector } = {}) {
|
|
639
639
|
return assertInjector(depthBuffer, injector, () => {
|
|
640
|
-
const size = computed(() => params().size || 256, ...(ngDevMode ? [{ debugName: "size" }] : []));
|
|
641
|
-
const frames = computed(() => params().frames || Infinity, ...(ngDevMode ? [{ debugName: "frames" }] : []));
|
|
640
|
+
const size = computed(() => params().size || 256, ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
641
|
+
const frames = computed(() => params().frames || Infinity, ...(ngDevMode ? [{ debugName: "frames" }] : /* istanbul ignore next */ []));
|
|
642
642
|
const store = injectStore();
|
|
643
|
-
const w = computed(() => size() || store.size.width() * store.viewport.dpr(), ...(ngDevMode ? [{ debugName: "w" }] : []));
|
|
644
|
-
const h = computed(() => size() || store.size.height() * store.viewport.dpr(), ...(ngDevMode ? [{ debugName: "h" }] : []));
|
|
643
|
+
const w = computed(() => size() || store.size.width() * store.viewport.dpr(), ...(ngDevMode ? [{ debugName: "w" }] : /* istanbul ignore next */ []));
|
|
644
|
+
const h = computed(() => size() || store.size.height() * store.viewport.dpr(), ...(ngDevMode ? [{ debugName: "h" }] : /* istanbul ignore next */ []));
|
|
645
645
|
const depthConfig = computed(() => {
|
|
646
646
|
const depthTexture = new THREE.DepthTexture(w(), h());
|
|
647
647
|
depthTexture.format = THREE.DepthFormat;
|
|
648
648
|
depthTexture.type = THREE.UnsignedShortType;
|
|
649
649
|
return { depthTexture };
|
|
650
|
-
}, ...(ngDevMode ? [{ debugName: "depthConfig" }] : []));
|
|
650
|
+
}, ...(ngDevMode ? [{ debugName: "depthConfig" }] : /* istanbul ignore next */ []));
|
|
651
651
|
const depthFBO = fbo(() => ({ width: w(), height: h(), settings: depthConfig() }));
|
|
652
652
|
let count = 0;
|
|
653
653
|
beforeRender(({ gl, scene, camera }) => {
|
|
@@ -767,17 +767,26 @@ function objectScale(el, camera) {
|
|
|
767
767
|
* @param el - The object to calculate z-index for
|
|
768
768
|
* @param camera - The camera reference (must be Perspective or Orthographic)
|
|
769
769
|
* @param zIndexRange - `[max, min]` range to map distance to
|
|
770
|
+
* @param logarithmicDepth - Computes the z-index logarithmicly to enable a wider camera range
|
|
770
771
|
* @returns Calculated z-index, or `undefined` for unsupported camera types
|
|
771
772
|
*/
|
|
772
|
-
function objectZIndex(el, camera, zIndexRange) {
|
|
773
|
+
function objectZIndex(el, camera, zIndexRange, logarithmicDepth = false) {
|
|
773
774
|
if (is.three(camera, 'isPerspectiveCamera') ||
|
|
774
775
|
is.three(camera, 'isOrthographicCamera')) {
|
|
775
776
|
const objectPos = v1.setFromMatrixPosition(el.matrixWorld);
|
|
776
777
|
const cameraPos = v2.setFromMatrixPosition(camera.matrixWorld);
|
|
777
778
|
const dist = objectPos.distanceTo(cameraPos);
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
779
|
+
if (logarithmicDepth) {
|
|
780
|
+
const safeNear = Math.max(camera.near, 1e-6);
|
|
781
|
+
const safeDist = Math.max(dist, 1e-6);
|
|
782
|
+
const depth = Math.log(safeDist / safeNear) / Math.log(camera.far / safeNear);
|
|
783
|
+
return Math.round(zIndexRange[0] + depth * (zIndexRange[1] - zIndexRange[0]));
|
|
784
|
+
}
|
|
785
|
+
else {
|
|
786
|
+
const A = (zIndexRange[1] - zIndexRange[0]) / (camera.far - camera.near);
|
|
787
|
+
const B = zIndexRange[1] - A * camera.far;
|
|
788
|
+
return Math.round(A * dist + B);
|
|
789
|
+
}
|
|
781
790
|
}
|
|
782
791
|
return undefined;
|
|
783
792
|
}
|
|
@@ -886,7 +895,7 @@ class NgtsHTMLContent extends NgtHTML {
|
|
|
886
895
|
* Content positioning and behavior options.
|
|
887
896
|
* Aliased as `htmlContent` for use with the `[htmlContent]` attribute selector.
|
|
888
897
|
*/
|
|
889
|
-
this.options = input(defaultHtmlContentOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultHtmlContentOptions),
|
|
898
|
+
this.options = input(defaultHtmlContentOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultHtmlContentOptions),
|
|
890
899
|
alias: 'htmlContent' });
|
|
891
900
|
/**
|
|
892
901
|
* Emits when occlusion state changes.
|
|
@@ -898,11 +907,11 @@ class NgtsHTMLContent extends NgtHTML {
|
|
|
898
907
|
*/
|
|
899
908
|
this.occluded = output();
|
|
900
909
|
/** Reference to outer transform container (transform mode only) */
|
|
901
|
-
this.transformOuterRef = viewChild('transformOuter', ...(ngDevMode ? [{ debugName: "transformOuterRef" }] : []));
|
|
910
|
+
this.transformOuterRef = viewChild('transformOuter', ...(ngDevMode ? [{ debugName: "transformOuterRef" }] : /* istanbul ignore next */ []));
|
|
902
911
|
/** Reference to inner transform container (transform mode only) */
|
|
903
|
-
this.transformInnerRef = viewChild('transformInner', ...(ngDevMode ? [{ debugName: "transformInnerRef" }] : []));
|
|
912
|
+
this.transformInnerRef = viewChild('transformInner', ...(ngDevMode ? [{ debugName: "transformInnerRef" }] : /* istanbul ignore next */ []));
|
|
904
913
|
/** Reference to the content container div */
|
|
905
|
-
this.containerRef = viewChild('container', ...(ngDevMode ? [{ debugName: "containerRef" }] : []));
|
|
914
|
+
this.containerRef = viewChild('container', ...(ngDevMode ? [{ debugName: "containerRef" }] : /* istanbul ignore next */ []));
|
|
906
915
|
this.html = inject(NgtsHTMLImpl);
|
|
907
916
|
this.host = inject(ElementRef);
|
|
908
917
|
this.store = injectStore();
|
|
@@ -921,7 +930,7 @@ class NgtsHTMLContent extends NgtHTML {
|
|
|
921
930
|
if (parent)
|
|
922
931
|
return parent;
|
|
923
932
|
return (this.store.events.connected?.() || this.store.gl.domElement.parentNode());
|
|
924
|
-
}, ...(ngDevMode ? [{ debugName: "target" }] : []));
|
|
933
|
+
}, ...(ngDevMode ? [{ debugName: "target" }] : /* istanbul ignore next */ []));
|
|
925
934
|
const renderer = inject(Renderer2);
|
|
926
935
|
let isMeshSizeSet = false;
|
|
927
936
|
effect(() => {
|
|
@@ -987,7 +996,7 @@ class NgtsHTMLContent extends NgtHTML {
|
|
|
987
996
|
let oldZoom = 0;
|
|
988
997
|
let oldPosition = [0, 0];
|
|
989
998
|
beforeRender(({ camera: rootCamera }) => {
|
|
990
|
-
const [hostEl, transformOuterEl, transformInnerEl, group, occlusionMesh, occlusionGeometry, isRaycastOcclusion, { camera, size, viewport, raycaster, scene }, { calculatePosition, eps, zIndexRange, sprite, distanceFactor }, { transform, occlude, scale },] = [
|
|
999
|
+
const [hostEl, transformOuterEl, transformInnerEl, group, occlusionMesh, occlusionGeometry, isRaycastOcclusion, { camera, size, viewport, raycaster, scene }, { calculatePosition, eps, zIndexRange, logarithmicDepth, sprite, distanceFactor }, { transform, occlude, scale },] = [
|
|
991
1000
|
this.host.nativeElement,
|
|
992
1001
|
this.transformOuterRef()?.nativeElement,
|
|
993
1002
|
this.transformInnerRef()?.nativeElement,
|
|
@@ -1058,7 +1067,7 @@ class NgtsHTMLContent extends NgtHTML {
|
|
|
1058
1067
|
? [zIndexRange[0], halfRange]
|
|
1059
1068
|
: [halfRange - 1, 0]
|
|
1060
1069
|
: zIndexRange;
|
|
1061
|
-
renderer.setStyle(hostEl, 'z-index', `${objectZIndex(group, camera, zRange)}`);
|
|
1070
|
+
renderer.setStyle(hostEl, 'z-index', `${objectZIndex(group, camera, zRange, logarithmicDepth)}`);
|
|
1062
1071
|
if (transform) {
|
|
1063
1072
|
const [widthHalf, heightHalf] = [size.width / 2, size.height / 2];
|
|
1064
1073
|
const fov = camera.projectionMatrix.elements[5] * heightHalf;
|
|
@@ -1136,8 +1145,8 @@ class NgtsHTMLContent extends NgtHTML {
|
|
|
1136
1145
|
}
|
|
1137
1146
|
});
|
|
1138
1147
|
}
|
|
1139
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
1140
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
1148
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsHTMLContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1149
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsHTMLContent, isStandalone: true, selector: "div[htmlContent]", inputs: { options: { classPropertyName: "options", publicName: "htmlContent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { occluded: "occluded" }, host: { attributes: { "data-ngts-html-content": "" } }, viewQueries: [{ propertyName: "transformOuterRef", first: true, predicate: ["transformOuter"], descendants: true, isSignal: true }, { propertyName: "transformInnerRef", first: true, predicate: ["transformInner"], descendants: true, isSignal: true }, { propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
1141
1150
|
@if (html.transform()) {
|
|
1142
1151
|
<div
|
|
1143
1152
|
#transformOuter
|
|
@@ -1172,7 +1181,7 @@ class NgtsHTMLContent extends NgtHTML {
|
|
|
1172
1181
|
</ng-template>
|
|
1173
1182
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1174
1183
|
}
|
|
1175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
1184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsHTMLContent, decorators: [{
|
|
1176
1185
|
type: Component,
|
|
1177
1186
|
args: [{
|
|
1178
1187
|
selector: 'div[htmlContent]',
|
|
@@ -1252,14 +1261,14 @@ class NgtsHTMLImpl {
|
|
|
1252
1261
|
/**
|
|
1253
1262
|
* HTML anchor configuration including position, occlusion, and transform settings.
|
|
1254
1263
|
*/
|
|
1255
|
-
this.options = input(defaultHtmlOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultHtmlOptions) });
|
|
1264
|
+
this.options = input(defaultHtmlOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultHtmlOptions) });
|
|
1256
1265
|
this.parameters = omit(this.options, ['occlude', 'castShadow', 'receiveShadow', 'transform']);
|
|
1257
1266
|
/** Reference to the THREE.Group that serves as the 3D anchor point */
|
|
1258
1267
|
this.groupRef = viewChild.required('group');
|
|
1259
1268
|
/** Reference to the occlusion mesh (when using blending occlusion mode) */
|
|
1260
|
-
this.occlusionMeshRef = viewChild('occlusionMesh', ...(ngDevMode ? [{ debugName: "occlusionMeshRef" }] : []));
|
|
1269
|
+
this.occlusionMeshRef = viewChild('occlusionMesh', ...(ngDevMode ? [{ debugName: "occlusionMeshRef" }] : /* istanbul ignore next */ []));
|
|
1261
1270
|
/** Reference to the occlusion geometry */
|
|
1262
|
-
this.occlusionGeometryRef = viewChild('occlusionGeometry', ...(ngDevMode ? [{ debugName: "occlusionGeometryRef" }] : []));
|
|
1271
|
+
this.occlusionGeometryRef = viewChild('occlusionGeometry', ...(ngDevMode ? [{ debugName: "occlusionGeometryRef" }] : /* istanbul ignore next */ []));
|
|
1263
1272
|
this.castShadow = pick(this.options, 'castShadow');
|
|
1264
1273
|
this.receiveShadow = pick(this.options, 'receiveShadow');
|
|
1265
1274
|
/** Current occlusion mode setting */
|
|
@@ -1269,7 +1278,7 @@ class NgtsHTMLImpl {
|
|
|
1269
1278
|
this.isRaycastOcclusion = computed(() => {
|
|
1270
1279
|
const occlude = this.occlude();
|
|
1271
1280
|
return (occlude && occlude !== 'blending') || (Array.isArray(occlude) && occlude.length && is.ref(occlude[0]));
|
|
1272
|
-
}, ...(ngDevMode ? [{ debugName: "isRaycastOcclusion" }] : []));
|
|
1281
|
+
}, ...(ngDevMode ? [{ debugName: "isRaycastOcclusion" }] : /* istanbul ignore next */ []));
|
|
1273
1282
|
this.shaders = computed(() => {
|
|
1274
1283
|
const transform = this.transform();
|
|
1275
1284
|
const vertexShader = !transform
|
|
@@ -1314,14 +1323,14 @@ class NgtsHTMLImpl {
|
|
|
1314
1323
|
}
|
|
1315
1324
|
`;
|
|
1316
1325
|
return { vertexShader, fragmentShader };
|
|
1317
|
-
}, ...(ngDevMode ? [{ debugName: "shaders" }] : []));
|
|
1326
|
+
}, ...(ngDevMode ? [{ debugName: "shaders" }] : /* istanbul ignore next */ []));
|
|
1318
1327
|
this.vertexShader = pick(this.shaders, 'vertexShader');
|
|
1319
1328
|
this.fragmentShader = pick(this.shaders, 'fragmentShader');
|
|
1320
1329
|
this.DoubleSide = THREE.DoubleSide;
|
|
1321
1330
|
extend({ Group, Mesh, PlaneGeometry, ShaderMaterial });
|
|
1322
1331
|
}
|
|
1323
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
1324
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
1332
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsHTMLImpl, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1333
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsHTMLImpl, isStandalone: true, selector: "ngts-html", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "occlusionMeshRef", first: true, predicate: ["occlusionMesh"], descendants: true, isSignal: true }, { propertyName: "occlusionGeometryRef", first: true, predicate: ["occlusionGeometry"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
1325
1334
|
<ngt-group #group [parameters]="parameters()">
|
|
1326
1335
|
@if (occlude() && !isRaycastOcclusion()) {
|
|
1327
1336
|
<ngt-mesh #occlusionMesh [castShadow]="castShadow()" [receiveShadow]="receiveShadow()">
|
|
@@ -1342,7 +1351,7 @@ class NgtsHTMLImpl {
|
|
|
1342
1351
|
<ng-content />
|
|
1343
1352
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1344
1353
|
}
|
|
1345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
1354
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsHTMLImpl, decorators: [{
|
|
1346
1355
|
type: Component,
|
|
1347
1356
|
args: [{
|
|
1348
1357
|
selector: 'ngts-html',
|
|
@@ -1475,14 +1484,14 @@ class NgtsIntersect {
|
|
|
1475
1484
|
* Two-way bound signal indicating frustum intersection state.
|
|
1476
1485
|
* `true` when object is visible, `false` when outside frustum.
|
|
1477
1486
|
*/
|
|
1478
|
-
this.intersect = model(false, ...(ngDevMode ? [{ debugName: "intersect" }] : []));
|
|
1487
|
+
this.intersect = model(false, ...(ngDevMode ? [{ debugName: "intersect" }] : /* istanbul ignore next */ []));
|
|
1479
1488
|
const host = inject(ElementRef);
|
|
1480
1489
|
intersect(() => host, { source: this.intersect });
|
|
1481
1490
|
}
|
|
1482
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
1483
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
1491
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsIntersect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1492
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsIntersect, isStandalone: true, selector: "[intersect]", inputs: { intersect: { classPropertyName: "intersect", publicName: "intersect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { intersect: "intersectChange" }, ngImport: i0 }); }
|
|
1484
1493
|
}
|
|
1485
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
1494
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsIntersect, decorators: [{
|
|
1486
1495
|
type: Directive,
|
|
1487
1496
|
args: [{ selector: '[intersect]' }]
|
|
1488
1497
|
}], ctorParameters: () => [], propDecorators: { intersect: [{ type: i0.Input, args: [{ isSignal: true, alias: "intersect", required: false }] }, { type: i0.Output, args: ["intersectChange"] }] } });
|
|
@@ -1509,28 +1518,28 @@ class NgtsPreload {
|
|
|
1509
1518
|
* When `true`, temporarily makes all invisible objects visible
|
|
1510
1519
|
* during compilation to ensure everything is preloaded.
|
|
1511
1520
|
*/
|
|
1512
|
-
this.all = model(...(ngDevMode ? [undefined, { debugName: "all" }] : []));
|
|
1521
|
+
this.all = model(...(ngDevMode ? [undefined, { debugName: "all" }] : /* istanbul ignore next */ []));
|
|
1513
1522
|
/**
|
|
1514
1523
|
* Custom scene to preload. Defaults to the store's scene.
|
|
1515
1524
|
*/
|
|
1516
|
-
this.scene = model(...(ngDevMode ? [undefined, { debugName: "scene" }] : []));
|
|
1525
|
+
this.scene = model(...(ngDevMode ? [undefined, { debugName: "scene" }] : /* istanbul ignore next */ []));
|
|
1517
1526
|
/**
|
|
1518
1527
|
* Custom camera to use for compilation. Defaults to the store's camera.
|
|
1519
1528
|
*/
|
|
1520
|
-
this.camera = model(...(ngDevMode ? [undefined, { debugName: "camera" }] : []));
|
|
1529
|
+
this.camera = model(...(ngDevMode ? [undefined, { debugName: "camera" }] : /* istanbul ignore next */ []));
|
|
1521
1530
|
this.store = injectStore();
|
|
1522
1531
|
this.trueScene = computed(() => {
|
|
1523
1532
|
const scene = this.scene();
|
|
1524
1533
|
if (scene)
|
|
1525
1534
|
return resolveRef(scene);
|
|
1526
1535
|
return this.store.scene();
|
|
1527
|
-
}, ...(ngDevMode ? [{ debugName: "trueScene" }] : []));
|
|
1536
|
+
}, ...(ngDevMode ? [{ debugName: "trueScene" }] : /* istanbul ignore next */ []));
|
|
1528
1537
|
this.trueCamera = computed(() => {
|
|
1529
1538
|
const camera = this.camera();
|
|
1530
1539
|
if (camera)
|
|
1531
1540
|
return resolveRef(camera);
|
|
1532
1541
|
return this.store.camera();
|
|
1533
|
-
}, ...(ngDevMode ? [{ debugName: "trueCamera" }] : []));
|
|
1542
|
+
}, ...(ngDevMode ? [{ debugName: "trueCamera" }] : /* istanbul ignore next */ []));
|
|
1534
1543
|
effect(() => {
|
|
1535
1544
|
const invisible = [];
|
|
1536
1545
|
const [all, scene, camera, gl] = [this.all(), this.trueScene(), this.trueCamera(), this.store.gl()];
|
|
@@ -1556,10 +1565,10 @@ class NgtsPreload {
|
|
|
1556
1565
|
invisible.forEach((object) => (object.visible = false));
|
|
1557
1566
|
});
|
|
1558
1567
|
}
|
|
1559
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
1560
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
1568
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsPreload, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1569
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsPreload, isStandalone: true, selector: "ngts-preload", inputs: { all: { classPropertyName: "all", publicName: "all", isSignal: true, isRequired: false, transformFunction: null }, scene: { classPropertyName: "scene", publicName: "scene", isSignal: true, isRequired: false, transformFunction: null }, camera: { classPropertyName: "camera", publicName: "camera", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { all: "allChange", scene: "sceneChange", camera: "cameraChange" }, ngImport: i0 }); }
|
|
1561
1570
|
}
|
|
1562
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
1571
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsPreload, decorators: [{
|
|
1563
1572
|
type: Directive,
|
|
1564
1573
|
args: [{ selector: 'ngts-preload' }]
|
|
1565
1574
|
}], ctorParameters: () => [], propDecorators: { all: [{ type: i0.Input, args: [{ isSignal: true, alias: "all", required: false }] }, { type: i0.Output, args: ["allChange"] }], scene: [{ type: i0.Input, args: [{ isSignal: true, alias: "scene", required: false }] }, { type: i0.Output, args: ["sceneChange"] }], camera: [{ type: i0.Input, args: [{ isSignal: true, alias: "camera", required: false }] }, { type: i0.Output, args: ["cameraChange"] }] } });
|
|
@@ -1689,16 +1698,16 @@ class NgtsSampler {
|
|
|
1689
1698
|
* The mesh to sample points from.
|
|
1690
1699
|
* If not provided, uses the first Mesh child of this component.
|
|
1691
1700
|
*/
|
|
1692
|
-
this.mesh = input(null, ...(ngDevMode ? [{ debugName: "mesh" }] : []));
|
|
1701
|
+
this.mesh = input(null, ...(ngDevMode ? [{ debugName: "mesh" }] : /* istanbul ignore next */ []));
|
|
1693
1702
|
/**
|
|
1694
1703
|
* The InstancedMesh to update with sampled transforms.
|
|
1695
1704
|
* If not provided, uses the first InstancedMesh child of this component.
|
|
1696
1705
|
*/
|
|
1697
|
-
this.instances = input(null, ...(ngDevMode ? [{ debugName: "instances" }] : []));
|
|
1706
|
+
this.instances = input(null, ...(ngDevMode ? [{ debugName: "instances" }] : /* istanbul ignore next */ []));
|
|
1698
1707
|
/**
|
|
1699
1708
|
* Sampler configuration including count, weight attribute, and transform function.
|
|
1700
1709
|
*/
|
|
1701
|
-
this.options = input(defaultOptions$1, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$1) });
|
|
1710
|
+
this.options = input(defaultOptions$1, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$1) });
|
|
1702
1711
|
this.parameters = omit(this.options, ['weight', 'transform', 'count']);
|
|
1703
1712
|
this.groupRef = viewChild.required('group');
|
|
1704
1713
|
this.count = pick(this.options, 'count');
|
|
@@ -1715,7 +1724,7 @@ class NgtsSampler {
|
|
|
1715
1724
|
return mesh;
|
|
1716
1725
|
const objects = instanceState.objects();
|
|
1717
1726
|
return objects.find((c) => is.three(c, 'isMesh'));
|
|
1718
|
-
}, ...(ngDevMode ? [{ debugName: "meshToSample" }] : []));
|
|
1727
|
+
}, ...(ngDevMode ? [{ debugName: "meshToSample" }] : /* istanbul ignore next */ []));
|
|
1719
1728
|
const instancedMeshToSample = computed(() => {
|
|
1720
1729
|
const group = this.groupRef().nativeElement;
|
|
1721
1730
|
const instanceState = getInstanceState(group);
|
|
@@ -1726,7 +1735,7 @@ class NgtsSampler {
|
|
|
1726
1735
|
return instances;
|
|
1727
1736
|
const objects = instanceState.objects();
|
|
1728
1737
|
return objects.find((c) => !!Object.getOwnPropertyDescriptor(c, 'instanceMatrix'));
|
|
1729
|
-
}, ...(ngDevMode ? [{ debugName: "instancedMeshToSample" }] : []));
|
|
1738
|
+
}, ...(ngDevMode ? [{ debugName: "instancedMeshToSample" }] : /* istanbul ignore next */ []));
|
|
1730
1739
|
// NOTE: because surfaceSampler returns a computed, we need to consume
|
|
1731
1740
|
// this computed in a Reactive Context (an effect) to ensure the inner logic of
|
|
1732
1741
|
// surfaceSampler is run properly.
|
|
@@ -1738,14 +1747,14 @@ class NgtsSampler {
|
|
|
1738
1747
|
});
|
|
1739
1748
|
effect(sampler);
|
|
1740
1749
|
}
|
|
1741
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
1742
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.
|
|
1750
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSampler, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1751
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsSampler, isStandalone: true, selector: "ngts-sampler", inputs: { mesh: { classPropertyName: "mesh", publicName: "mesh", isSignal: true, isRequired: false, transformFunction: null }, instances: { classPropertyName: "instances", publicName: "instances", isSignal: true, isRequired: false, transformFunction: null }, 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: `
|
|
1743
1752
|
<ngt-group #group [parameters]="parameters()">
|
|
1744
1753
|
<ng-content />
|
|
1745
1754
|
</ngt-group>
|
|
1746
1755
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1747
1756
|
}
|
|
1748
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
1757
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSampler, decorators: [{
|
|
1749
1758
|
type: Component,
|
|
1750
1759
|
args: [{
|
|
1751
1760
|
selector: 'ngts-sampler',
|
|
@@ -2071,7 +2080,7 @@ function reset(gl, scene, camera) {
|
|
|
2071
2080
|
*/
|
|
2072
2081
|
class NgtsSoftShadows {
|
|
2073
2082
|
constructor() {
|
|
2074
|
-
this.options = input(defaultOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions) });
|
|
2083
|
+
this.options = input(defaultOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions) });
|
|
2075
2084
|
const store = injectStore();
|
|
2076
2085
|
effect((onCleanup) => {
|
|
2077
2086
|
const { gl, scene, camera } = store.snapshot;
|
|
@@ -2122,10 +2131,10 @@ class NgtsSoftShadows {
|
|
|
2122
2131
|
});
|
|
2123
2132
|
});
|
|
2124
2133
|
}
|
|
2125
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
2126
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
2134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSoftShadows, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2135
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsSoftShadows, isStandalone: true, selector: "ngts-soft-shadows", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
2127
2136
|
}
|
|
2128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
2137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSoftShadows, decorators: [{
|
|
2129
2138
|
type: Directive,
|
|
2130
2139
|
args: [{ selector: 'ngts-soft-shadows' }]
|
|
2131
2140
|
}], ctorParameters: () => [], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }] } });
|