angular-three-soba 4.0.0-next.52 → 4.0.0-next.54
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/cameras/lib/cube-camera.d.ts +1 -1
- package/cameras/lib/orthographic-camera.d.ts +5 -3
- package/cameras/lib/perspective-camera.d.ts +1 -3
- package/fesm2022/angular-three-soba-cameras.mjs +17 -14
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/materials/lib/custom-shader-material.d.ts +2 -2
- package/materials/lib/mesh-transmission-material.d.ts +1 -1
- package/package.json +8 -8
|
@@ -26,7 +26,7 @@ export interface NgtsCubeCameraOptions extends Partial<NgtThreeElements['ngt-gro
|
|
|
26
26
|
}
|
|
27
27
|
export declare class NgtsCubeCamera {
|
|
28
28
|
options: import("@angular/core").InputSignalWithTransform<NgtsCubeCameraOptions, "" | Partial<NgtsCubeCameraOptions>>;
|
|
29
|
-
protected parameters: import("@angular/core").Signal<Omit<NgtsCubeCameraOptions, "
|
|
29
|
+
protected parameters: import("@angular/core").Signal<Omit<NgtsCubeCameraOptions, "near" | "far" | "envMap" | "frames" | "resolution" | "fog">>;
|
|
30
30
|
private cubeCamera;
|
|
31
31
|
protected camera: import("@angular/core").Signal<THREE.CubeCamera>;
|
|
32
32
|
protected texture: import("@angular/core").Signal<THREE.CubeTexture>;
|
|
@@ -16,14 +16,16 @@ export interface NgtsOrthographicCameraOptions extends Partial<NgtThreeElements[
|
|
|
16
16
|
}
|
|
17
17
|
export declare class NgtsOrthographicCamera {
|
|
18
18
|
options: import("@angular/core").InputSignalWithTransform<NgtsOrthographicCameraOptions, "" | Partial<NgtsOrthographicCameraOptions>>;
|
|
19
|
-
protected parameters: import("@angular/core").Signal<Omit<NgtsOrthographicCameraOptions, "
|
|
19
|
+
protected parameters: import("@angular/core").Signal<Omit<NgtsOrthographicCameraOptions, "left" | "right" | "top" | "bottom" | "envMap" | "makeDefault" | "frames" | "resolution">>;
|
|
20
20
|
protected content: import("@angular/core").Signal<TemplateRef<any> | undefined>;
|
|
21
21
|
protected cameraContent: import("@angular/core").Signal<TemplateRef<any> | undefined>;
|
|
22
22
|
cameraRef: import("@angular/core").Signal<ElementRef<THREE.OrthographicCamera>>;
|
|
23
23
|
groupRef: import("@angular/core").Signal<ElementRef<THREE.Group<THREE.Object3DEventMap>>>;
|
|
24
24
|
private store;
|
|
25
|
-
private
|
|
26
|
-
private
|
|
25
|
+
private _left;
|
|
26
|
+
private _right;
|
|
27
|
+
private _top;
|
|
28
|
+
private _bottom;
|
|
27
29
|
protected left: import("@angular/core").Signal<number>;
|
|
28
30
|
protected right: import("@angular/core").Signal<number>;
|
|
29
31
|
protected top: import("@angular/core").Signal<number>;
|
|
@@ -16,14 +16,12 @@ export interface NgtsPerspectiveCameraOptions extends Partial<NgtThreeElements['
|
|
|
16
16
|
}
|
|
17
17
|
export declare class NgtsPerspectiveCamera {
|
|
18
18
|
options: import("@angular/core").InputSignalWithTransform<NgtsPerspectiveCameraOptions, "" | Partial<NgtsPerspectiveCameraOptions>>;
|
|
19
|
-
protected parameters: import("@angular/core").Signal<Omit<NgtsPerspectiveCameraOptions, "
|
|
19
|
+
protected parameters: import("@angular/core").Signal<Omit<NgtsPerspectiveCameraOptions, "envMap" | "makeDefault" | "frames" | "resolution">>;
|
|
20
20
|
protected content: import("@angular/core").Signal<TemplateRef<any> | undefined>;
|
|
21
21
|
protected cameraContent: import("@angular/core").Signal<TemplateRef<any> | undefined>;
|
|
22
22
|
cameraRef: import("@angular/core").Signal<ElementRef<THREE.PerspectiveCamera>>;
|
|
23
23
|
groupRef: import("@angular/core").Signal<ElementRef<THREE.Group<THREE.Object3DEventMap>>>;
|
|
24
24
|
private store;
|
|
25
|
-
private camera;
|
|
26
|
-
private size;
|
|
27
25
|
private manual;
|
|
28
26
|
private makeDefault;
|
|
29
27
|
private resolution;
|
|
@@ -134,7 +134,6 @@ class NgtsOrthographicCamera {
|
|
|
134
134
|
this.parameters = omit(this.options, [
|
|
135
135
|
'envMap',
|
|
136
136
|
'makeDefault',
|
|
137
|
-
'manual',
|
|
138
137
|
'frames',
|
|
139
138
|
'resolution',
|
|
140
139
|
'left',
|
|
@@ -147,12 +146,14 @@ class NgtsOrthographicCamera {
|
|
|
147
146
|
this.cameraRef = viewChild.required('camera');
|
|
148
147
|
this.groupRef = viewChild.required('group');
|
|
149
148
|
this.store = injectStore();
|
|
150
|
-
this.
|
|
151
|
-
this.
|
|
152
|
-
this.
|
|
153
|
-
this.
|
|
154
|
-
this.
|
|
155
|
-
this.
|
|
149
|
+
this._left = pick(this.options, 'left');
|
|
150
|
+
this._right = pick(this.options, 'right');
|
|
151
|
+
this._top = pick(this.options, 'top');
|
|
152
|
+
this._bottom = pick(this.options, 'bottom');
|
|
153
|
+
this.left = computed(() => this._left() ?? this.store.size.width() / -2);
|
|
154
|
+
this.right = computed(() => this._right() ?? this.store.size.width() / 2);
|
|
155
|
+
this.top = computed(() => this._top() ?? this.store.size.height() / 2);
|
|
156
|
+
this.bottom = computed(() => this._bottom() ?? this.store.size.height() / -2);
|
|
156
157
|
this.manual = pick(this.options, 'manual');
|
|
157
158
|
this.makeDefault = pick(this.options, 'makeDefault');
|
|
158
159
|
this.resolution = pick(this.options, 'resolution');
|
|
@@ -173,7 +174,7 @@ class NgtsOrthographicCamera {
|
|
|
173
174
|
const makeDefault = this.makeDefault();
|
|
174
175
|
if (!makeDefault)
|
|
175
176
|
return;
|
|
176
|
-
const oldCam =
|
|
177
|
+
const oldCam = this.store.snapshot.camera;
|
|
177
178
|
this.store.update({ camera: this.cameraRef().nativeElement });
|
|
178
179
|
onCleanup(() => this.store.update(() => ({ camera: oldCam })));
|
|
179
180
|
});
|
|
@@ -259,14 +260,12 @@ const defaultOptions = {
|
|
|
259
260
|
class NgtsPerspectiveCamera {
|
|
260
261
|
constructor() {
|
|
261
262
|
this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
|
|
262
|
-
this.parameters = omit(this.options, ['envMap', 'makeDefault', '
|
|
263
|
+
this.parameters = omit(this.options, ['envMap', 'makeDefault', 'frames', 'resolution']);
|
|
263
264
|
this.content = contentChild(TemplateRef);
|
|
264
265
|
this.cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });
|
|
265
266
|
this.cameraRef = viewChild.required('camera');
|
|
266
267
|
this.groupRef = viewChild.required('group');
|
|
267
268
|
this.store = injectStore();
|
|
268
|
-
this.camera = this.store.camera;
|
|
269
|
-
this.size = this.store.size;
|
|
270
269
|
this.manual = pick(this.options, 'manual');
|
|
271
270
|
this.makeDefault = pick(this.options, 'makeDefault');
|
|
272
271
|
this.resolution = pick(this.options, 'resolution');
|
|
@@ -280,15 +279,19 @@ class NgtsPerspectiveCamera {
|
|
|
280
279
|
const manual = this.manual();
|
|
281
280
|
if (manual)
|
|
282
281
|
return;
|
|
283
|
-
const [camera,
|
|
284
|
-
|
|
282
|
+
const [camera, width, height] = [
|
|
283
|
+
this.cameraRef().nativeElement,
|
|
284
|
+
this.store.size.width(),
|
|
285
|
+
this.store.size.height(),
|
|
286
|
+
];
|
|
287
|
+
camera.aspect = width / height;
|
|
285
288
|
camera.updateProjectionMatrix();
|
|
286
289
|
});
|
|
287
290
|
effect((onCleanup) => {
|
|
288
291
|
const makeDefault = this.makeDefault();
|
|
289
292
|
if (!makeDefault)
|
|
290
293
|
return;
|
|
291
|
-
const oldCam =
|
|
294
|
+
const oldCam = this.store.snapshot.camera;
|
|
292
295
|
this.store.update({ camera: this.cameraRef().nativeElement });
|
|
293
296
|
onCleanup(() => this.store.update(() => ({ camera: oldCam })));
|
|
294
297
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three-soba-cameras.mjs","sources":["../../../../libs/soba/cameras/src/lib/camera-content.ts","../../../../libs/soba/cameras/src/lib/cube-camera.ts","../../../../libs/soba/cameras/src/lib/orthographic-camera.ts","../../../../libs/soba/cameras/src/lib/perspective-camera.ts","../../../../libs/soba/cameras/src/angular-three-soba-cameras.ts"],"sourcesContent":["import { Directive, Signal } from '@angular/core';\nimport * as THREE from 'three';\n\n@Directive({ selector: 'ng-template[cameraContent]' })\nexport class NgtsCameraContent {\n\tstatic ngTemplateContextGuard(_: NgtsCameraContent, ctx: unknown): ctx is { $implicit: Signal<THREE.Texture> } {\n\t\treturn true;\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\teffect,\n\tElementRef,\n\tInjector,\n\tinput,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { extend, injectBeforeRender, injectStore, merge, NgtArgs, NgtThreeElements, omit, pick } from 'angular-three';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface CubeCameraOptions {\n\t/** Resolution of the FBO, 256 */\n\tresolution?: number;\n\t/** Camera near, 0.1 */\n\tnear?: number;\n\t/** Camera far, 1000 */\n\tfar?: number;\n\t/** Custom environment map that is temporarily set as the scenes background */\n\tenvMap?: THREE.Texture;\n\t/** Custom fog that is temporarily set as the scenes fog */\n\tfog?: THREE.Fog | THREE.FogExp2;\n}\n\nexport function injectCubeCamera(options: () => CubeCameraOptions, { injector }: { injector?: Injector } = {}) {\n\treturn assertInjector(injectCubeCamera, injector, () => {\n\t\tconst store = injectStore();\n\n\t\t// backfill the options with default values\n\t\tconst mergedOptions = merge(options, { resolution: 256, near: 0.1, far: 1000 }, 'backfill');\n\t\tconst resolution = pick(mergedOptions, 'resolution');\n\t\tconst near = pick(mergedOptions, 'near');\n\t\tconst far = pick(mergedOptions, 'far');\n\n\t\tconst fbo = computed(() => {\n\t\t\tconst fbo = new THREE.WebGLCubeRenderTarget(resolution());\n\t\t\tfbo.texture.type = THREE.HalfFloatType;\n\t\t\treturn fbo;\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst _fbo = fbo();\n\t\t\tonCleanup(() => _fbo.dispose());\n\t\t});\n\n\t\tconst cubeCamera = computed(() => new THREE.CubeCamera(near()!, far()!, fbo()));\n\t\tconst update = () => {\n\t\t\tconst [scene, gl, camera, { envMap, fog }] = [\n\t\t\t\tstore.scene(),\n\t\t\t\tstore.gl(),\n\t\t\t\tcubeCamera(),\n\t\t\t\tuntracked(mergedOptions),\n\t\t\t];\n\t\t\tlet originalFog: THREE.Fog | THREE.FogExp2;\n\t\t\tlet originalBackground: THREE.Texture;\n\n\t\t\toriginalFog = scene.fog as THREE.Fog | THREE.FogExp2;\n\t\t\toriginalBackground = scene.background as THREE.Texture;\n\t\t\tscene.background = envMap || originalBackground;\n\t\t\tscene.fog = fog || originalFog;\n\t\t\tcamera.update(gl, scene);\n\t\t\tscene.fog = originalFog;\n\t\t\tscene.background = originalBackground;\n\t\t};\n\n\t\treturn { fbo, camera: cubeCamera, update };\n\t});\n}\n\nexport interface NgtsCubeCameraOptions extends Partial<NgtThreeElements['ngt-group']>, CubeCameraOptions {\n\tframes: number;\n}\n\nconst defaultOptions: NgtsCubeCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tnear: 0.1,\n\tfar: 1000,\n};\n\n@Component({\n\tselector: 'ngts-cube-camera',\n\ttemplate: `\n\t\t<ngt-group [parameters]=\"parameters()\">\n\t\t\t<ngt-primitive *args=\"[camera()]\" />\n\t\t\t<ngt-group #group>\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t\t/>\n\t\t\t</ngt-group>\n\t\t</ngt-group>\n\t`,\n\timports: [NgtArgs, NgTemplateOutlet],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsCubeCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, ['fog', 'near', 'far', 'envMap', 'resolution', 'frames']);\n\n\tprivate cubeCamera = injectCubeCamera(pick(this.options, ['near', 'far', 'envMap', 'fog', 'resolution']));\n\n\tprotected camera = this.cubeCamera.camera;\n\tprotected texture = pick(this.cubeCamera.fbo, 'texture');\n\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tconstructor() {\n\t\textend({ Group });\n\n\t\tlet count = 0;\n\t\tinjectBeforeRender(() => {\n\t\t\tconst group = this.groupRef().nativeElement;\n\t\t\tif (!group) return;\n\n\t\t\tconst frames = this.options().frames;\n\t\t\tif (frames === Infinity || count < frames) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tthis.cubeCamera.update();\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tTemplateRef,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tinput,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { NgtThreeElements, extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';\nimport { injectFBO } from 'angular-three-soba/misc';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group, OrthographicCamera } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface NgtsOrthographicCameraOptions extends Partial<NgtThreeElements['ngt-orthographic-camera']> {\n\t/** Registers the camera as the system default, fiber will start rendering with it */\n\tmakeDefault?: boolean;\n\t/** Making it manual will stop responsiveness and you have to calculate aspect ratio yourself. */\n\tmanual?: boolean;\n\t/** Number of frames to render, Infinity */\n\tframes: number;\n\t/** Resolution of the FBO, 256 */\n\tresolution: number;\n\t/** Optional environment map for functional use */\n\tenvMap?: THREE.Texture;\n}\n\nconst defaultOptions: NgtsOrthographicCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tmakeDefault: false,\n\tmanual: false,\n};\n\n@Component({\n\tselector: 'ngts-orthographic-camera',\n\ttemplate: `\n\t\t<ngt-orthographic-camera\n\t\t\t#camera\n\t\t\t[left]=\"left()\"\n\t\t\t[right]=\"right()\"\n\t\t\t[top]=\"top()\"\n\t\t\t[bottom]=\"bottom()\"\n\t\t\t[parameters]=\"parameters()\"\n\t\t>\n\t\t\t<ng-container [ngTemplateOutlet]=\"content() ?? null\" />\n\t\t</ngt-orthographic-camera>\n\n\t\t<ngt-group #group>\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t/>\n\t\t</ngt-group>\n\t`,\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrthographicCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, [\n\t\t'envMap',\n\t\t'makeDefault',\n\t\t'manual',\n\t\t'frames',\n\t\t'resolution',\n\t\t'left',\n\t\t'top',\n\t\t'bottom',\n\t\t'right',\n\t]);\n\n\tprotected content = contentChild(TemplateRef);\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tcameraRef = viewChild.required<ElementRef<THREE.OrthographicCamera>>('camera');\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\n\tprivate store = injectStore();\n\n\tprivate camera = this.store.camera;\n\tprivate size = this.store.size;\n\n\tprotected left = computed(() => this.options().left ?? this.size().width / -2);\n\tprotected right = computed(() => this.options().right ?? this.size().width / 2);\n\tprotected top = computed(() => this.options().top ?? this.size().height / 2);\n\tprotected bottom = computed(() => this.options().bottom ?? this.size().height / -2);\n\n\tprivate manual = pick(this.options, 'manual');\n\tprivate makeDefault = pick(this.options, 'makeDefault');\n\tprivate resolution = pick(this.options, 'resolution');\n\n\tprivate fbo = injectFBO(() => ({ width: this.resolution() }));\n\tprotected texture = pick(this.fbo, 'texture');\n\n\tconstructor() {\n\t\textend({ OrthographicCamera, Group });\n\n\t\teffect(() => {\n\t\t\tthis.cameraRef().nativeElement.updateProjectionMatrix();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst manual = this.manual();\n\t\t\tif (manual) return;\n\n\t\t\tconst camera = this.cameraRef().nativeElement;\n\t\t\tcamera.updateProjectionMatrix();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst makeDefault = this.makeDefault();\n\t\t\tif (!makeDefault) return;\n\n\t\t\tconst oldCam = untracked(this.camera);\n\t\t\tthis.store.update({ camera: this.cameraRef().nativeElement });\n\t\t\tonCleanup(() => this.store.update(() => ({ camera: oldCam })));\n\t\t});\n\n\t\tlet count = 0;\n\t\tlet oldEnvMap: THREE.Color | THREE.Texture | null = null;\n\t\tinjectBeforeRender(({ gl, scene }) => {\n\t\t\tconst [{ frames, envMap }, group, camera, fbo] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.groupRef().nativeElement,\n\t\t\t\tthis.cameraRef().nativeElement,\n\t\t\t\tthis.fbo(),\n\t\t\t];\n\t\t\tif (this.cameraContent() && group && camera && fbo && (frames === Infinity || count < frames)) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tgl.setRenderTarget(fbo);\n\t\t\t\toldEnvMap = scene.background;\n\t\t\t\tif (envMap) scene.background = envMap;\n\t\t\t\tgl.render(scene, camera);\n\t\t\t\tscene.background = oldEnvMap;\n\t\t\t\tgl.setRenderTarget(null);\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tTemplateRef,\n\tcontentChild,\n\teffect,\n\tinput,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { NgtThreeElements, extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';\nimport { injectFBO } from 'angular-three-soba/misc';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group, PerspectiveCamera } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface NgtsPerspectiveCameraOptions extends Partial<NgtThreeElements['ngt-perspective-camera']> {\n\t/** Registers the camera as the system default, fiber will start rendering with it */\n\tmakeDefault?: boolean;\n\t/** Making it manual will stop responsiveness and you have to calculate aspect ratio yourself. */\n\tmanual?: boolean;\n\t/** Number of frames to render, Infinity */\n\tframes: number;\n\t/** Resolution of the FBO, 256 */\n\tresolution: number;\n\t/** Optional environment map for functional use */\n\tenvMap?: THREE.Texture;\n}\n\nconst defaultOptions: NgtsPerspectiveCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tmakeDefault: false,\n\tmanual: false,\n};\n\n@Component({\n\tselector: 'ngts-perspective-camera',\n\ttemplate: `\n\t\t<ngt-perspective-camera #camera [parameters]=\"parameters()\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"content() ?? null\" />\n\t\t</ngt-perspective-camera>\n\n\t\t<ngt-group #group>\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t/>\n\t\t</ngt-group>\n\t`,\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsPerspectiveCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, ['envMap', 'makeDefault', 'manual', 'frames', 'resolution']);\n\n\tprotected content = contentChild(TemplateRef);\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tcameraRef = viewChild.required<ElementRef<THREE.PerspectiveCamera>>('camera');\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\n\tprivate store = injectStore();\n\n\tprivate camera = this.store.camera;\n\tprivate size = this.store.size;\n\n\tprivate manual = pick(this.options, 'manual');\n\tprivate makeDefault = pick(this.options, 'makeDefault');\n\tprivate resolution = pick(this.options, 'resolution');\n\tprivate fbo = injectFBO(() => ({ width: this.resolution() }));\n\tprotected texture = pick(this.fbo, 'texture');\n\n\tconstructor() {\n\t\textend({ PerspectiveCamera, Group });\n\n\t\teffect(() => {\n\t\t\tthis.cameraRef().nativeElement.updateProjectionMatrix();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst manual = this.manual();\n\t\t\tif (manual) return;\n\t\t\tconst [camera, size] = [this.cameraRef().nativeElement, this.size()];\n\t\t\tcamera.aspect = size.width / size.height;\n\t\t\tcamera.updateProjectionMatrix();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst makeDefault = this.makeDefault();\n\t\t\tif (!makeDefault) return;\n\n\t\t\tconst oldCam = untracked(this.camera);\n\t\t\tthis.store.update({ camera: this.cameraRef().nativeElement });\n\t\t\tonCleanup(() => this.store.update(() => ({ camera: oldCam })));\n\t\t});\n\n\t\tlet count = 0;\n\t\tlet oldEnvMap: THREE.Color | THREE.Texture | null = null;\n\t\tinjectBeforeRender(({ gl, scene }) => {\n\t\t\tconst [{ frames, envMap }, group, camera, fbo] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.groupRef().nativeElement,\n\t\t\t\tthis.cameraRef().nativeElement,\n\t\t\t\tthis.fbo(),\n\t\t\t];\n\t\t\tif (this.cameraContent() && group && camera && fbo && (frames === Infinity || count < frames)) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tgl.setRenderTarget(fbo);\n\t\t\t\toldEnvMap = scene.background;\n\t\t\t\tif (envMap) scene.background = envMap;\n\t\t\t\tgl.render(scene, camera);\n\t\t\t\tscene.background = oldEnvMap;\n\t\t\t\tgl.setRenderTarget(null);\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["defaultOptions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-three-soba-cameras.mjs","sources":["../../../../libs/soba/cameras/src/lib/camera-content.ts","../../../../libs/soba/cameras/src/lib/cube-camera.ts","../../../../libs/soba/cameras/src/lib/orthographic-camera.ts","../../../../libs/soba/cameras/src/lib/perspective-camera.ts","../../../../libs/soba/cameras/src/angular-three-soba-cameras.ts"],"sourcesContent":["import { Directive, Signal } from '@angular/core';\nimport * as THREE from 'three';\n\n@Directive({ selector: 'ng-template[cameraContent]' })\nexport class NgtsCameraContent {\n\tstatic ngTemplateContextGuard(_: NgtsCameraContent, ctx: unknown): ctx is { $implicit: Signal<THREE.Texture> } {\n\t\treturn true;\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\teffect,\n\tElementRef,\n\tInjector,\n\tinput,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { extend, injectBeforeRender, injectStore, merge, NgtArgs, NgtThreeElements, omit, pick } from 'angular-three';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface CubeCameraOptions {\n\t/** Resolution of the FBO, 256 */\n\tresolution?: number;\n\t/** Camera near, 0.1 */\n\tnear?: number;\n\t/** Camera far, 1000 */\n\tfar?: number;\n\t/** Custom environment map that is temporarily set as the scenes background */\n\tenvMap?: THREE.Texture;\n\t/** Custom fog that is temporarily set as the scenes fog */\n\tfog?: THREE.Fog | THREE.FogExp2;\n}\n\nexport function injectCubeCamera(options: () => CubeCameraOptions, { injector }: { injector?: Injector } = {}) {\n\treturn assertInjector(injectCubeCamera, injector, () => {\n\t\tconst store = injectStore();\n\n\t\t// backfill the options with default values\n\t\tconst mergedOptions = merge(options, { resolution: 256, near: 0.1, far: 1000 }, 'backfill');\n\t\tconst resolution = pick(mergedOptions, 'resolution');\n\t\tconst near = pick(mergedOptions, 'near');\n\t\tconst far = pick(mergedOptions, 'far');\n\n\t\tconst fbo = computed(() => {\n\t\t\tconst fbo = new THREE.WebGLCubeRenderTarget(resolution());\n\t\t\tfbo.texture.type = THREE.HalfFloatType;\n\t\t\treturn fbo;\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst _fbo = fbo();\n\t\t\tonCleanup(() => _fbo.dispose());\n\t\t});\n\n\t\tconst cubeCamera = computed(() => new THREE.CubeCamera(near()!, far()!, fbo()));\n\t\tconst update = () => {\n\t\t\tconst [scene, gl, camera, { envMap, fog }] = [\n\t\t\t\tstore.scene(),\n\t\t\t\tstore.gl(),\n\t\t\t\tcubeCamera(),\n\t\t\t\tuntracked(mergedOptions),\n\t\t\t];\n\t\t\tlet originalFog: THREE.Fog | THREE.FogExp2;\n\t\t\tlet originalBackground: THREE.Texture;\n\n\t\t\toriginalFog = scene.fog as THREE.Fog | THREE.FogExp2;\n\t\t\toriginalBackground = scene.background as THREE.Texture;\n\t\t\tscene.background = envMap || originalBackground;\n\t\t\tscene.fog = fog || originalFog;\n\t\t\tcamera.update(gl, scene);\n\t\t\tscene.fog = originalFog;\n\t\t\tscene.background = originalBackground;\n\t\t};\n\n\t\treturn { fbo, camera: cubeCamera, update };\n\t});\n}\n\nexport interface NgtsCubeCameraOptions extends Partial<NgtThreeElements['ngt-group']>, CubeCameraOptions {\n\tframes: number;\n}\n\nconst defaultOptions: NgtsCubeCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tnear: 0.1,\n\tfar: 1000,\n};\n\n@Component({\n\tselector: 'ngts-cube-camera',\n\ttemplate: `\n\t\t<ngt-group [parameters]=\"parameters()\">\n\t\t\t<ngt-primitive *args=\"[camera()]\" />\n\t\t\t<ngt-group #group>\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t\t/>\n\t\t\t</ngt-group>\n\t\t</ngt-group>\n\t`,\n\timports: [NgtArgs, NgTemplateOutlet],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsCubeCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, ['fog', 'near', 'far', 'envMap', 'resolution', 'frames']);\n\n\tprivate cubeCamera = injectCubeCamera(pick(this.options, ['near', 'far', 'envMap', 'fog', 'resolution']));\n\n\tprotected camera = this.cubeCamera.camera;\n\tprotected texture = pick(this.cubeCamera.fbo, 'texture');\n\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tconstructor() {\n\t\textend({ Group });\n\n\t\tlet count = 0;\n\t\tinjectBeforeRender(() => {\n\t\t\tconst group = this.groupRef().nativeElement;\n\t\t\tif (!group) return;\n\n\t\t\tconst frames = this.options().frames;\n\t\t\tif (frames === Infinity || count < frames) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tthis.cubeCamera.update();\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tTemplateRef,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport { NgtThreeElements, extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';\nimport { injectFBO } from 'angular-three-soba/misc';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group, OrthographicCamera } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface NgtsOrthographicCameraOptions extends Partial<NgtThreeElements['ngt-orthographic-camera']> {\n\t/** Registers the camera as the system default, fiber will start rendering with it */\n\tmakeDefault?: boolean;\n\t/** Making it manual will stop responsiveness and you have to calculate aspect ratio yourself. */\n\tmanual?: boolean;\n\t/** Number of frames to render, Infinity */\n\tframes: number;\n\t/** Resolution of the FBO, 256 */\n\tresolution: number;\n\t/** Optional environment map for functional use */\n\tenvMap?: THREE.Texture;\n}\n\nconst defaultOptions: NgtsOrthographicCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tmakeDefault: false,\n\tmanual: false,\n};\n\n@Component({\n\tselector: 'ngts-orthographic-camera',\n\ttemplate: `\n\t\t<ngt-orthographic-camera\n\t\t\t#camera\n\t\t\t[left]=\"left()\"\n\t\t\t[right]=\"right()\"\n\t\t\t[top]=\"top()\"\n\t\t\t[bottom]=\"bottom()\"\n\t\t\t[parameters]=\"parameters()\"\n\t\t>\n\t\t\t<ng-container [ngTemplateOutlet]=\"content() ?? null\" />\n\t\t</ngt-orthographic-camera>\n\n\t\t<ngt-group #group>\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t/>\n\t\t</ngt-group>\n\t`,\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrthographicCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, [\n\t\t'envMap',\n\t\t'makeDefault',\n\t\t'frames',\n\t\t'resolution',\n\t\t'left',\n\t\t'top',\n\t\t'bottom',\n\t\t'right',\n\t]);\n\n\tprotected content = contentChild(TemplateRef);\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tcameraRef = viewChild.required<ElementRef<THREE.OrthographicCamera>>('camera');\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\n\tprivate store = injectStore();\n\n\tprivate _left = pick(this.options, 'left');\n\tprivate _right = pick(this.options, 'right');\n\tprivate _top = pick(this.options, 'top');\n\tprivate _bottom = pick(this.options, 'bottom');\n\n\tprotected left = computed(() => this._left() ?? this.store.size.width() / -2);\n\tprotected right = computed(() => this._right() ?? this.store.size.width() / 2);\n\tprotected top = computed(() => this._top() ?? this.store.size.height() / 2);\n\tprotected bottom = computed(() => this._bottom() ?? this.store.size.height() / -2);\n\n\tprivate manual = pick(this.options, 'manual');\n\tprivate makeDefault = pick(this.options, 'makeDefault');\n\tprivate resolution = pick(this.options, 'resolution');\n\n\tprivate fbo = injectFBO(() => ({ width: this.resolution() }));\n\tprotected texture = pick(this.fbo, 'texture');\n\n\tconstructor() {\n\t\textend({ OrthographicCamera, Group });\n\n\t\teffect(() => {\n\t\t\tthis.cameraRef().nativeElement.updateProjectionMatrix();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst manual = this.manual();\n\t\t\tif (manual) return;\n\n\t\t\tconst camera = this.cameraRef().nativeElement;\n\t\t\tcamera.updateProjectionMatrix();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst makeDefault = this.makeDefault();\n\t\t\tif (!makeDefault) return;\n\n\t\t\tconst oldCam = this.store.snapshot.camera;\n\t\t\tthis.store.update({ camera: this.cameraRef().nativeElement });\n\t\t\tonCleanup(() => this.store.update(() => ({ camera: oldCam })));\n\t\t});\n\n\t\tlet count = 0;\n\t\tlet oldEnvMap: THREE.Color | THREE.Texture | null = null;\n\t\tinjectBeforeRender(({ gl, scene }) => {\n\t\t\tconst [{ frames, envMap }, group, camera, fbo] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.groupRef().nativeElement,\n\t\t\t\tthis.cameraRef().nativeElement,\n\t\t\t\tthis.fbo(),\n\t\t\t];\n\t\t\tif (this.cameraContent() && group && camera && fbo && (frames === Infinity || count < frames)) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tgl.setRenderTarget(fbo);\n\t\t\t\toldEnvMap = scene.background;\n\t\t\t\tif (envMap) scene.background = envMap;\n\t\t\t\tgl.render(scene, camera);\n\t\t\t\tscene.background = oldEnvMap;\n\t\t\t\tgl.setRenderTarget(null);\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tTemplateRef,\n\tcontentChild,\n\teffect,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport { NgtThreeElements, extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';\nimport { injectFBO } from 'angular-three-soba/misc';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group, PerspectiveCamera } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface NgtsPerspectiveCameraOptions extends Partial<NgtThreeElements['ngt-perspective-camera']> {\n\t/** Registers the camera as the system default, fiber will start rendering with it */\n\tmakeDefault?: boolean;\n\t/** Making it manual will stop responsiveness and you have to calculate aspect ratio yourself. */\n\tmanual?: boolean;\n\t/** Number of frames to render, Infinity */\n\tframes: number;\n\t/** Resolution of the FBO, 256 */\n\tresolution: number;\n\t/** Optional environment map for functional use */\n\tenvMap?: THREE.Texture;\n}\n\nconst defaultOptions: NgtsPerspectiveCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tmakeDefault: false,\n\tmanual: false,\n};\n\n@Component({\n\tselector: 'ngts-perspective-camera',\n\ttemplate: `\n\t\t<ngt-perspective-camera #camera [parameters]=\"parameters()\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"content() ?? null\" />\n\t\t</ngt-perspective-camera>\n\n\t\t<ngt-group #group>\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t/>\n\t\t</ngt-group>\n\t`,\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsPerspectiveCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, ['envMap', 'makeDefault', 'frames', 'resolution']);\n\n\tprotected content = contentChild(TemplateRef);\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tcameraRef = viewChild.required<ElementRef<THREE.PerspectiveCamera>>('camera');\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\n\tprivate store = injectStore();\n\n\tprivate manual = pick(this.options, 'manual');\n\tprivate makeDefault = pick(this.options, 'makeDefault');\n\tprivate resolution = pick(this.options, 'resolution');\n\tprivate fbo = injectFBO(() => ({ width: this.resolution() }));\n\tprotected texture = pick(this.fbo, 'texture');\n\n\tconstructor() {\n\t\textend({ PerspectiveCamera, Group });\n\n\t\teffect(() => {\n\t\t\tthis.cameraRef().nativeElement.updateProjectionMatrix();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst manual = this.manual();\n\t\t\tif (manual) return;\n\t\t\tconst [camera, width, height] = [\n\t\t\t\tthis.cameraRef().nativeElement,\n\t\t\t\tthis.store.size.width(),\n\t\t\t\tthis.store.size.height(),\n\t\t\t];\n\t\t\tcamera.aspect = width / height;\n\t\t\tcamera.updateProjectionMatrix();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst makeDefault = this.makeDefault();\n\t\t\tif (!makeDefault) return;\n\n\t\t\tconst oldCam = this.store.snapshot.camera;\n\t\t\tthis.store.update({ camera: this.cameraRef().nativeElement });\n\t\t\tonCleanup(() => this.store.update(() => ({ camera: oldCam })));\n\t\t});\n\n\t\tlet count = 0;\n\t\tlet oldEnvMap: THREE.Color | THREE.Texture | null = null;\n\t\tinjectBeforeRender(({ gl, scene }) => {\n\t\t\tconst [{ frames, envMap }, group, camera, fbo] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.groupRef().nativeElement,\n\t\t\t\tthis.cameraRef().nativeElement,\n\t\t\t\tthis.fbo(),\n\t\t\t];\n\t\t\tif (this.cameraContent() && group && camera && fbo && (frames === Infinity || count < frames)) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tgl.setRenderTarget(fbo);\n\t\t\t\toldEnvMap = scene.background;\n\t\t\t\tif (envMap) scene.background = envMap;\n\t\t\t\tgl.render(scene, camera);\n\t\t\t\tscene.background = oldEnvMap;\n\t\t\t\tgl.setRenderTarget(null);\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["defaultOptions"],"mappings":"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"}
|
|
@@ -4,10 +4,10 @@ import * as THREE from 'three';
|
|
|
4
4
|
import CustomShaderMaterial from 'three-custom-shader-material/vanilla';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class NgtsCustomShaderMaterial {
|
|
7
|
-
baseMaterial: import("@angular/core").InputSignal<
|
|
7
|
+
baseMaterial: import("@angular/core").InputSignal<THREE.Material | typeof THREE.Material | ElementRef<THREE.Material>>;
|
|
8
8
|
attach: import("@angular/core").InputSignal<NgtAttachable>;
|
|
9
9
|
options: import("@angular/core").InputSignal<Omit<any, "baseMaterial">>;
|
|
10
|
-
parameters: import("@angular/core").Signal<Omit<Omit<any, "baseMaterial">, "
|
|
10
|
+
parameters: import("@angular/core").Signal<Omit<Omit<any, "baseMaterial">, "fragmentShader" | "vertexShader" | "uniforms" | "cacheKey">>;
|
|
11
11
|
private base;
|
|
12
12
|
private fragmentShader;
|
|
13
13
|
private vertexShader;
|
|
@@ -29,7 +29,7 @@ export type NgtsMeshTransmissionMaterialOptions = Partial<NgtThreeElements['ngt-
|
|
|
29
29
|
export declare class NgtsMeshTransmissionMaterial {
|
|
30
30
|
attach: import("@angular/core").InputSignal<NgtAttachable>;
|
|
31
31
|
options: import("@angular/core").InputSignalWithTransform<NgtsMeshTransmissionMaterialOptions, "" | Partial<NgtsMeshTransmissionMaterialOptions>>;
|
|
32
|
-
protected parameters: import("@angular/core").Signal<Omit<NgtsMeshTransmissionMaterialOptions, "thickness" | "anisotropy" | "transmission" | "side" | "
|
|
32
|
+
protected parameters: import("@angular/core").Signal<Omit<NgtsMeshTransmissionMaterialOptions, "thickness" | "anisotropy" | "transmission" | "side" | "resolution" | "background" | "buffer" | "anisotropicBlur" | "samples" | "transmissionSampler" | "backside" | "backsideThickness" | "backsideEnvMapIntensity" | "backsideResolution">>;
|
|
33
33
|
private resolution;
|
|
34
34
|
private backsideResolution;
|
|
35
35
|
private samples;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "angular-three-soba",
|
|
3
|
-
"version": "4.0.0-next.
|
|
3
|
+
"version": "4.0.0-next.54",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -35,6 +35,10 @@
|
|
|
35
35
|
"types": "./abstractions/index.d.ts",
|
|
36
36
|
"default": "./fesm2022/angular-three-soba-abstractions.mjs"
|
|
37
37
|
},
|
|
38
|
+
"./controls": {
|
|
39
|
+
"types": "./controls/index.d.ts",
|
|
40
|
+
"default": "./fesm2022/angular-three-soba-controls.mjs"
|
|
41
|
+
},
|
|
38
42
|
"./cameras": {
|
|
39
43
|
"types": "./cameras/index.d.ts",
|
|
40
44
|
"default": "./fesm2022/angular-three-soba-cameras.mjs"
|
|
@@ -43,18 +47,14 @@
|
|
|
43
47
|
"types": "./gizmos/index.d.ts",
|
|
44
48
|
"default": "./fesm2022/angular-three-soba-gizmos.mjs"
|
|
45
49
|
},
|
|
46
|
-
"./
|
|
47
|
-
"types": "./
|
|
48
|
-
"default": "./fesm2022/angular-three-soba-
|
|
50
|
+
"./loaders": {
|
|
51
|
+
"types": "./loaders/index.d.ts",
|
|
52
|
+
"default": "./fesm2022/angular-three-soba-loaders.mjs"
|
|
49
53
|
},
|
|
50
54
|
"./materials": {
|
|
51
55
|
"types": "./materials/index.d.ts",
|
|
52
56
|
"default": "./fesm2022/angular-three-soba-materials.mjs"
|
|
53
57
|
},
|
|
54
|
-
"./loaders": {
|
|
55
|
-
"types": "./loaders/index.d.ts",
|
|
56
|
-
"default": "./fesm2022/angular-three-soba-loaders.mjs"
|
|
57
|
-
},
|
|
58
58
|
"./misc": {
|
|
59
59
|
"types": "./misc/index.d.ts",
|
|
60
60
|
"default": "./fesm2022/angular-three-soba-misc.mjs"
|