angular-three-soba 1.0.0
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/README.md +7 -0
- package/controls/README.md +3 -0
- package/controls/index.d.ts +1 -0
- package/controls/lib/orbit-controls/orbit-controls.d.ts +27 -0
- package/esm2020/angular-three-soba.mjs +5 -0
- package/esm2020/controls/angular-three-soba-controls.mjs +5 -0
- package/esm2020/controls/index.mjs +2 -0
- package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +146 -0
- package/esm2020/index.mjs +2 -0
- package/esm2020/loaders/angular-three-soba-loaders.mjs +5 -0
- package/esm2020/loaders/index.mjs +2 -0
- package/esm2020/loaders/lib/gltf-loader/gltf-loader.mjs +32 -0
- package/fesm2015/angular-three-soba-controls.mjs +153 -0
- package/fesm2015/angular-three-soba-controls.mjs.map +1 -0
- package/fesm2015/angular-three-soba-loaders.mjs +38 -0
- package/fesm2015/angular-three-soba-loaders.mjs.map +1 -0
- package/fesm2015/angular-three-soba.mjs +6 -0
- package/fesm2015/angular-three-soba.mjs.map +1 -0
- package/fesm2020/angular-three-soba-controls.mjs +153 -0
- package/fesm2020/angular-three-soba-controls.mjs.map +1 -0
- package/fesm2020/angular-three-soba-loaders.mjs +38 -0
- package/fesm2020/angular-three-soba-loaders.mjs.map +1 -0
- package/fesm2020/angular-three-soba.mjs +6 -0
- package/fesm2020/angular-three-soba.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/loaders/README.md +3 -0
- package/loaders/index.d.ts +1 -0
- package/loaders/lib/gltf-loader/gltf-loader.d.ts +8 -0
- package/package.json +73 -0
- package/plugin/README.md +11 -0
- package/plugin/generators.json +6 -0
- package/plugin/package.json +10 -0
- package/plugin/src/generators/init/compat.d.ts +2 -0
- package/plugin/src/generators/init/compat.js +6 -0
- package/plugin/src/generators/init/compat.js.map +1 -0
- package/plugin/src/generators/init/init.d.ts +4 -0
- package/plugin/src/generators/init/init.js +26 -0
- package/plugin/src/generators/init/init.js.map +1 -0
- package/plugin/src/generators/init/schema.json +6 -0
- package/plugin/src/index.d.ts +1 -0
- package/plugin/src/index.js +6 -0
- package/plugin/src/index.js.map +1 -0
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib/orbit-controls/orbit-controls';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { NgtRxStore } from 'angular-three';
|
|
3
|
+
import { OrbitControls } from 'three-stdlib';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class NgtsOrbitControls extends NgtRxStore implements OnInit {
|
|
6
|
+
controlsRef: import("angular-three").NgtInjectedRef<OrbitControls>;
|
|
7
|
+
set camera(camera: THREE.Camera);
|
|
8
|
+
set domElement(domElement: HTMLElement);
|
|
9
|
+
set makeDefault(makeDefault: boolean);
|
|
10
|
+
set regress(regress: boolean);
|
|
11
|
+
set target(target: THREE.Vector3 | Parameters<THREE.Vector3['set']>);
|
|
12
|
+
set enableDamping(enableDamping: boolean);
|
|
13
|
+
change: EventEmitter<import("three").Event>;
|
|
14
|
+
start: EventEmitter<import("three").Event>;
|
|
15
|
+
end: EventEmitter<import("three").Event>;
|
|
16
|
+
private readonly store;
|
|
17
|
+
readonly enableDamping$: import("rxjs").Observable<any>;
|
|
18
|
+
constructor();
|
|
19
|
+
initialize(): void;
|
|
20
|
+
ngOnInit(): void;
|
|
21
|
+
private setControls;
|
|
22
|
+
private connectElement;
|
|
23
|
+
private makeControlsDefault;
|
|
24
|
+
private setEvents;
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtsOrbitControls, never>;
|
|
26
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtsOrbitControls, "ngts-orbit-controls", never, { "controlsRef": "controlsRef"; "camera": "camera"; "domElement": "domElement"; "makeDefault": "makeDefault"; "regress": "regress"; "target": "target"; "enableDamping": "enableDamping"; }, { "change": "change"; "start": "start"; "end": "end"; }, never, never, true, never>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvc3JjL2FuZ3VsYXItdGhyZWUtc29iYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLWNvbnRyb2xzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvY29udHJvbHMvc3JjL2FuZ3VsYXItdGhyZWUtc29iYS1jb250cm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './lib/orbit-controls/orbit-controls';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jb250cm9scy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzJztcbiJdfQ==
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
2
|
+
import { injectBeforeRender, injectNgtRef, NgtArgs, NgtPush, NgtRxStore, NgtStore } from 'angular-three';
|
|
3
|
+
import { combineLatest, map } from 'rxjs';
|
|
4
|
+
import { OrbitControls } from 'three-stdlib';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class NgtsOrbitControls extends NgtRxStore {
|
|
7
|
+
set camera(camera) {
|
|
8
|
+
this.set({ camera });
|
|
9
|
+
}
|
|
10
|
+
set domElement(domElement) {
|
|
11
|
+
this.set({ domElement });
|
|
12
|
+
}
|
|
13
|
+
set makeDefault(makeDefault) {
|
|
14
|
+
this.set({ makeDefault });
|
|
15
|
+
}
|
|
16
|
+
set regress(regress) {
|
|
17
|
+
this.set({ regress });
|
|
18
|
+
}
|
|
19
|
+
set target(target) {
|
|
20
|
+
this.set({ target });
|
|
21
|
+
}
|
|
22
|
+
set enableDamping(enableDamping) {
|
|
23
|
+
this.set({ enableDamping });
|
|
24
|
+
}
|
|
25
|
+
constructor() {
|
|
26
|
+
super();
|
|
27
|
+
this.controlsRef = injectNgtRef();
|
|
28
|
+
this.change = new EventEmitter();
|
|
29
|
+
this.start = new EventEmitter();
|
|
30
|
+
this.end = new EventEmitter();
|
|
31
|
+
this.store = inject(NgtStore);
|
|
32
|
+
this.enableDamping$ = this.select('enableDamping');
|
|
33
|
+
injectBeforeRender(() => {
|
|
34
|
+
const controls = this.controlsRef.nativeElement;
|
|
35
|
+
if (controls && controls.enabled) {
|
|
36
|
+
controls.update();
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
initialize() {
|
|
41
|
+
super.initialize();
|
|
42
|
+
this.set({ enableDamping: true, regress: false });
|
|
43
|
+
}
|
|
44
|
+
ngOnInit() {
|
|
45
|
+
this.setControls();
|
|
46
|
+
this.connectElement();
|
|
47
|
+
this.makeControlsDefault();
|
|
48
|
+
this.setEvents();
|
|
49
|
+
this.connect('args', this.controlsRef.$.pipe(map((controls) => [controls])));
|
|
50
|
+
}
|
|
51
|
+
setControls() {
|
|
52
|
+
this.hold(combineLatest([this.store.select('camera'), this.select('camera')]), ([defaultCamera, camera]) => {
|
|
53
|
+
const controlsCamera = camera || defaultCamera;
|
|
54
|
+
if (!this.controlsRef.nativeElement || this.controlsRef.nativeElement.object !== controlsCamera) {
|
|
55
|
+
this.controlsRef.nativeElement = new OrbitControls(controlsCamera);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
connectElement() {
|
|
60
|
+
this.hold(combineLatest([
|
|
61
|
+
this.store.select('gl', 'domElement'),
|
|
62
|
+
this.store.select('invalidate'),
|
|
63
|
+
this.select('regress'),
|
|
64
|
+
this.controlsRef.$,
|
|
65
|
+
]), ([glDom, , , controls]) => {
|
|
66
|
+
const { events } = this.store.get();
|
|
67
|
+
const domElement = this.get('domElement') || events.connected || glDom;
|
|
68
|
+
controls.connect(domElement);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
makeControlsDefault() {
|
|
72
|
+
this.effect(combineLatest([this.controlsRef.$, this.select('makeDefault')]), ([controls, makeDefault]) => {
|
|
73
|
+
if (makeDefault) {
|
|
74
|
+
const oldControls = this.store.get('controls');
|
|
75
|
+
this.store.set({ controls });
|
|
76
|
+
return () => {
|
|
77
|
+
this.store.set({ controls: oldControls });
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
setEvents() {
|
|
83
|
+
this.effect(this.controlsRef.$, (controls) => {
|
|
84
|
+
const { invalidate, performance } = this.store.get();
|
|
85
|
+
const regress = this.get('regress');
|
|
86
|
+
const changeCallback = (e) => {
|
|
87
|
+
invalidate();
|
|
88
|
+
if (regress)
|
|
89
|
+
performance.regress();
|
|
90
|
+
if (this.change.observed)
|
|
91
|
+
this.change.emit(e);
|
|
92
|
+
};
|
|
93
|
+
const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;
|
|
94
|
+
const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;
|
|
95
|
+
controls.addEventListener('change', changeCallback);
|
|
96
|
+
if (startCallback)
|
|
97
|
+
controls.addEventListener('start', startCallback);
|
|
98
|
+
if (endCallback)
|
|
99
|
+
controls.addEventListener('end', endCallback);
|
|
100
|
+
return () => {
|
|
101
|
+
controls.removeEventListener('change', changeCallback);
|
|
102
|
+
if (startCallback)
|
|
103
|
+
controls.removeEventListener('start', startCallback);
|
|
104
|
+
if (endCallback)
|
|
105
|
+
controls.removeEventListener('end', endCallback);
|
|
106
|
+
};
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
NgtsOrbitControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
111
|
+
NgtsOrbitControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", camera: "camera", domElement: "domElement", makeDefault: "makeDefault", regress: "regress", target: "target", enableDamping: "enableDamping" }, outputs: { change: "change", start: "start", end: "end" }, usesInheritance: true, ngImport: i0, template: `
|
|
112
|
+
<ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
|
|
113
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] });
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsOrbitControls, decorators: [{
|
|
115
|
+
type: Component,
|
|
116
|
+
args: [{
|
|
117
|
+
selector: 'ngts-orbit-controls',
|
|
118
|
+
standalone: true,
|
|
119
|
+
template: `
|
|
120
|
+
<ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
|
|
121
|
+
`,
|
|
122
|
+
imports: [NgtArgs, NgtPush],
|
|
123
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
124
|
+
}]
|
|
125
|
+
}], ctorParameters: function () { return []; }, propDecorators: { controlsRef: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], camera: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], domElement: [{
|
|
130
|
+
type: Input
|
|
131
|
+
}], makeDefault: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}], regress: [{
|
|
134
|
+
type: Input
|
|
135
|
+
}], target: [{
|
|
136
|
+
type: Input
|
|
137
|
+
}], enableDamping: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], change: [{
|
|
140
|
+
type: Output
|
|
141
|
+
}], start: [{
|
|
142
|
+
type: Output
|
|
143
|
+
}], end: [{
|
|
144
|
+
type: Output
|
|
145
|
+
}] } });
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jb250cm9scy9zcmMvbGliL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBVzdDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxVQUFVO0lBRzdDLElBQWEsTUFBTSxDQUFDLE1BQW9CO1FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxVQUF1QjtRQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxXQUFXLENBQUMsV0FBb0I7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLE9BQWdCO1FBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUF3RDtRQUN4RSxJQUFJLENBQUMsR0FBRyxD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VkFOaEI7O0tBRVQsNERBQ1MsT0FBTyxnRUFBRSxPQUFPOzJGQUdqQixpQkFBaUI7a0JBVDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7S0FFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO29CQUMzQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7MEVBRVksV0FBVztzQkFBbkIsS0FBSztnQkFFTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sYUFBYTtzQkFBekIsS0FBSztnQkFJSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLEdBQUc7c0JBQVosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFB1c2gsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9yYml0Q29udHJvbHMgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtb3JiaXQtY29udHJvbHMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJnZXQoJ2FyZ3MnKVwiIG5ndENvbXBvdW5kIFtlbmFibGVEYW1waW5nXT1cImVuYWJsZURhbXBpbmckIHwgbmd0UHVzaFwiIC8+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJncywgTmd0UHVzaF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzT3JiaXRDb250cm9scyBleHRlbmRzIE5ndFJ4U3RvcmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGNvbnRyb2xzUmVmID0gaW5qZWN0Tmd0UmVmPE9yYml0Q29udHJvbHM+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgY2FtZXJhKGNhbWVyYTogVEhSRUUuQ2FtZXJhKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY2FtZXJhIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkb21FbGVtZW50KGRvbUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZG9tRWxlbWVudCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWFrZURlZmF1bHQobWFrZURlZmF1bHQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBtYWtlRGVmYXVsdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcmVncmVzcyhyZWdyZXNzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmVncmVzcyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdGFyZ2V0KHRhcmdldDogVEhSRUUuVmVjdG9yMyB8IFBhcmFtZXRlcnM8VEhSRUUuVmVjdG9yM1snc2V0J10+KSB7XG4gICAgICAgIHRoaXMuc2V0KHsgdGFyZ2V0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBlbmFibGVEYW1waW5nKGVuYWJsZURhbXBpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBlbmFibGVEYW1waW5nIH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBzdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIHJlYWRvbmx5IGVuYWJsZURhbXBpbmckID0gdGhpcy5zZWxlY3QoJ2VuYWJsZURhbXBpbmcnKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBpbmplY3RCZWZvcmVSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoY29udHJvbHMgJiYgY29udHJvbHMuZW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgZW5hYmxlRGFtcGluZzogdHJ1ZSwgcmVncmVzczogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0Q29udHJvbHMoKTtcbiAgICAgICAgdGhpcy5jb25uZWN0RWxlbWVudCgpO1xuICAgICAgICB0aGlzLm1ha2VDb250cm9sc0RlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5zZXRFdmVudHMoKTtcbiAgICAgICAgdGhpcy5jb25uZWN0KCdhcmdzJywgdGhpcy5jb250cm9sc1JlZi4kLnBpcGUobWFwKChjb250cm9scykgPT4gW2NvbnRyb2xzXSkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENvbnRyb2xzKCkge1xuICAgICAgICB0aGlzLmhvbGQoY29tYmluZUxhdGVzdChbdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpLCB0aGlzLnNlbGVjdCgnY2FtZXJhJyldKSwgKFtkZWZhdWx0Q2FtZXJhLCBjYW1lcmFdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sc0NhbWVyYSA9IGNhbWVyYSB8fCBkZWZhdWx0Q2FtZXJhO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQgfHwgdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50Lm9iamVjdCAhPT0gY29udHJvbHNDYW1lcmEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQgPSBuZXcgT3JiaXRDb250cm9scyhjb250cm9sc0NhbWVyYSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29ubmVjdEVsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMuaG9sZChcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcsICdkb21FbGVtZW50JyksXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgncmVncmVzcycpLFxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbHNSZWYuJCxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKFtnbERvbSwgLCAsIGNvbnRyb2xzXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXZlbnRzIH0gPSB0aGlzLnN0b3JlLmdldCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldCgnZG9tRWxlbWVudCcpIHx8IGV2ZW50cy5jb25uZWN0ZWQgfHwgZ2xEb207XG4gICAgICAgICAgICAgICAgY29udHJvbHMuY29ubmVjdChkb21FbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1ha2VDb250cm9sc0RlZmF1bHQoKSB7XG4gICAgICAgIHRoaXMuZWZmZWN0KGNvbWJpbmVMYXRlc3QoW3RoaXMuY29udHJvbHNSZWYuJCwgdGhpcy5zZWxlY3QoJ21ha2VEZWZhdWx0JyldKSwgKFtjb250cm9scywgbWFrZURlZmF1bHRdKSA9PiB7XG4gICAgICAgICAgICBpZiAobWFrZURlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvbGRDb250cm9scyA9IHRoaXMuc3RvcmUuZ2V0KCdjb250cm9scycpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0KHsgY29udHJvbHMgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXQoeyBjb250cm9sczogb2xkQ29udHJvbHMgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRFdmVudHMoKSB7XG4gICAgICAgIHRoaXMuZWZmZWN0KHRoaXMuY29udHJvbHNSZWYuJCwgKGNvbnRyb2xzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGludmFsaWRhdGUsIHBlcmZvcm1hbmNlIH0gPSB0aGlzLnN0b3JlLmdldCgpO1xuICAgICAgICAgICAgY29uc3QgcmVncmVzcyA9IHRoaXMuZ2V0KCdyZWdyZXNzJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUNhbGxiYWNrOiAoZTogVEhSRUUuRXZlbnQpID0+IHZvaWQgPSAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGludmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICBpZiAocmVncmVzcykgcGVyZm9ybWFuY2UucmVncmVzcygpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoYW5nZS5vYnNlcnZlZCkgdGhpcy5jaGFuZ2UuZW1pdChlKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0Q2FsbGJhY2sgPSB0aGlzLnN0YXJ0Lm9ic2VydmVkID8gdGhpcy5zdGFydC5lbWl0LmJpbmQodGhpcy5zdGFydCkgOiBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW5kQ2FsbGJhY2sgPSB0aGlzLmVuZC5vYnNlcnZlZCA/IHRoaXMuZW5kLmVtaXQuYmluZCh0aGlzLmVuZCkgOiBudWxsO1xuXG4gICAgICAgICAgICBjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG4gICAgICAgICAgICBpZiAoc3RhcnRDYWxsYmFjaykgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydENhbGxiYWNrKTtcbiAgICAgICAgICAgIGlmIChlbmRDYWxsYmFjaykgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kQ2FsbGJhY2spO1xuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZUNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRDYWxsYmFjaykgY29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydENhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kQ2FsbGJhY2spIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZCcsIGVuZENhbGxiYWNrKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export default void 0;
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHZvaWQgMDtcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLWxvYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9sb2FkZXJzL3NyYy9hbmd1bGFyLXRocmVlLXNvYmEtbG9hZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './lib/gltf-loader/gltf-loader';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9sb2FkZXJzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXInO1xuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { injectNgtLoader } from 'angular-three';
|
|
2
|
+
import { take } from 'rxjs';
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
import { MeshoptDecoder } from 'three-stdlib';
|
|
5
|
+
import { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';
|
|
6
|
+
import { GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';
|
|
7
|
+
let dracoLoader = null;
|
|
8
|
+
function _extensions(useDraco, useMeshOpt, extensions) {
|
|
9
|
+
return (loader) => {
|
|
10
|
+
if (extensions) {
|
|
11
|
+
extensions(loader);
|
|
12
|
+
}
|
|
13
|
+
if (useDraco) {
|
|
14
|
+
if (!dracoLoader) {
|
|
15
|
+
dracoLoader = new DRACOLoader();
|
|
16
|
+
}
|
|
17
|
+
dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/');
|
|
18
|
+
loader.setDRACOLoader(dracoLoader);
|
|
19
|
+
}
|
|
20
|
+
if (useMeshOpt) {
|
|
21
|
+
loader.setMeshoptDecoder(typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function injectGLTFLoader(path, useDraco = true, useMeshOpt = true, extensions) {
|
|
26
|
+
return injectNgtLoader(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
|
|
27
|
+
}
|
|
28
|
+
injectGLTFLoader.preload = (path, useDraco = true, useMeshOpt = true, extensions) => {
|
|
29
|
+
injectGLTFLoader(path, useDraco, useMeshOpt, extensions).pipe(take(1)).subscribe();
|
|
30
|
+
};
|
|
31
|
+
export const injectNgtsGLTFLoader = injectGLTFLoader;
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9sb2FkZXJzL3NyYy9saWIvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBa0MsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxhQUFhO0FBQ2IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0QsT0FBTyxFQUFRLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLElBQUksV0FBVyxHQUF1QixJQUFJLENBQUM7QUFFM0MsU0FBUyxXQUFXLENBQUMsUUFBMEIsRUFBRSxVQUFtQixFQUFFLFVBQXlDO0lBQzNHLE9BQU8sQ0FBQyxNQUFvQixFQUFFLEVBQUU7UUFDNUIsSUFBSSxVQUFVLEVBQUU7WUFDWixVQUFVLENBQUMsTUFBb0IsQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNkLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO2FBQ25DO1lBRUQsV0FBVyxDQUFDLGNBQWMsQ0FDdEIsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHlEQUF5RCxDQUN0RyxDQUFDO1lBQ0QsTUFBcUIsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEQ7UUFFRCxJQUFJLFVBQVUsRUFBRTtZQUNYLE1BQXFCLENBQUMsaUJBQWlCLENBQ3BDLE9BQU8sY0FBYyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FDM0UsQ0FBQztTQUNMO0lBQ0wsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQWlCRCxTQUFTLGdCQUFnQixDQUNyQixJQUFpQyxFQUNqQyxXQUE2QixJQUFJLEVBQ2pDLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFVBQXlDO0lBRXpDLE9BQU8sZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBRTNGLENBQUM7QUFDTixDQUFDO0FBRUEsZ0JBQW1DLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsVUFBVSxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRTtJQUNwRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDdkYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3ROZ3RMb2FkZXIsIE5ndExvYWRlclJlc3VsdHMsIE5ndE9iamVjdE1hcCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgTWVzaG9wdERlY29kZXIgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuaW1wb3J0IHsgRFJBQ09Mb2FkZXIgfSBmcm9tICd0aHJlZS1zdGRsaWIvbG9hZGVycy9EUkFDT0xvYWRlcic7XG5pbXBvcnQgeyBHTFRGLCBHTFRGTG9hZGVyIH0gZnJvbSAndGhyZWUtc3RkbGliL2xvYWRlcnMvR0xURkxvYWRlcic7XG5cbmxldCBkcmFjb0xvYWRlcjogRFJBQ09Mb2FkZXIgfCBudWxsID0gbnVsbDtcblxuZnVuY3Rpb24gX2V4dGVuc2lvbnModXNlRHJhY286IGJvb2xlYW4gfCBzdHJpbmcsIHVzZU1lc2hPcHQ6IGJvb2xlYW4sIGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkKSB7XG4gICAgcmV0dXJuIChsb2FkZXI6IFRIUkVFLkxvYWRlcikgPT4ge1xuICAgICAgICBpZiAoZXh0ZW5zaW9ucykge1xuICAgICAgICAgICAgZXh0ZW5zaW9ucyhsb2FkZXIgYXMgR0xURkxvYWRlcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXNlRHJhY28pIHtcbiAgICAgICAgICAgIGlmICghZHJhY29Mb2FkZXIpIHtcbiAgICAgICAgICAgICAgICBkcmFjb0xvYWRlciA9IG5ldyBEUkFDT0xvYWRlcigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkcmFjb0xvYWRlci5zZXREZWNvZGVyUGF0aChcbiAgICAgICAgICAgICAgICB0eXBlb2YgdXNlRHJhY28gPT09ICdzdHJpbmcnID8gdXNlRHJhY28gOiAnaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vZHJhY28vdmVyc2lvbmVkL2RlY29kZXJzLzEuNC4zLydcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAobG9hZGVyIGFzIEdMVEZMb2FkZXIpLnNldERSQUNPTG9hZGVyKGRyYWNvTG9hZGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1c2VNZXNoT3B0KSB7XG4gICAgICAgICAgICAobG9hZGVyIGFzIEdMVEZMb2FkZXIpLnNldE1lc2hvcHREZWNvZGVyKFxuICAgICAgICAgICAgICAgIHR5cGVvZiBNZXNob3B0RGVjb2RlciA9PT0gJ2Z1bmN0aW9uJyA/IE1lc2hvcHREZWNvZGVyKCkgOiBNZXNob3B0RGVjb2RlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0dMVEZMb2FkZXIge1xuICAgIDxUSW5wdXQgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuICAgICAgICBwYXRoOiBUSW5wdXQgfCBPYnNlcnZhYmxlPFRJbnB1dD4sXG4gICAgICAgIHVzZURyYWNvPzogYm9vbGVhbiB8IHN0cmluZyxcbiAgICAgICAgdXNlTWVzaE9wdD86IGJvb2xlYW4sXG4gICAgICAgIGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkXG4gICAgKTogT2JzZXJ2YWJsZTxOZ3RMb2FkZXJSZXN1bHRzPFRJbnB1dCwgR0xURiAmIE5ndE9iamVjdE1hcD4+O1xuICAgIHByZWxvYWQ6IDxUSW5wdXQgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuICAgICAgICBwYXRoOiBUSW5wdXQgfCBPYnNlcnZhYmxlPFRJbnB1dD4sXG4gICAgICAgIHVzZURyYWNvPzogYm9vbGVhbiB8IHN0cmluZyxcbiAgICAgICAgdXNlTWVzaE9wdD86IGJvb2xlYW4sXG4gICAgICAgIGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkXG4gICAgKSA9PiB2b2lkO1xufVxuXG5mdW5jdGlvbiBpbmplY3RHTFRGTG9hZGVyPFRJbnB1dCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG4gICAgcGF0aDogVElucHV0IHwgT2JzZXJ2YWJsZTxUSW5wdXQ+LFxuICAgIHVzZURyYWNvOiBib29sZWFuIHwgc3RyaW5nID0gdHJ1ZSxcbiAgICB1c2VNZXNoT3B0ID0gdHJ1ZSxcbiAgICBleHRlbnNpb25zPzogKGxvYWRlcjogR0xURkxvYWRlcikgPT4gdm9pZFxuKTogT2JzZXJ2YWJsZTxOZ3RMb2FkZXJSZXN1bHRzPFRJbnB1dCwgR0xURiAmIE5ndE9iamVjdE1hcD4+IHtcbiAgICByZXR1cm4gaW5qZWN0Tmd0TG9hZGVyKCgpID0+IEdMVEZMb2FkZXIsIHBhdGgsIF9leHRlbnNpb25zKHVzZURyYWNvLCB1c2VNZXNoT3B0LCBleHRlbnNpb25zKSkgYXMgT2JzZXJ2YWJsZTxcbiAgICAgICAgTmd0TG9hZGVyUmVzdWx0czxUSW5wdXQsIEdMVEYgJiBOZ3RPYmplY3RNYXA+XG4gICAgPjtcbn1cblxuKGluamVjdEdMVEZMb2FkZXIgYXMgTmd0c0dMVEZMb2FkZXIpLnByZWxvYWQgPSAocGF0aCwgdXNlRHJhY28gPSB0cnVlLCB1c2VNZXNoT3B0ID0gdHJ1ZSwgZXh0ZW5zaW9ucykgPT4ge1xuICAgIGluamVjdEdMVEZMb2FkZXIocGF0aCwgdXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5qZWN0Tmd0c0dMVEZMb2FkZXIgPSBpbmplY3RHTFRGTG9hZGVyIGFzIE5ndHNHTFRGTG9hZGVyO1xuIl19
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, inject, Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output } from '@angular/core';
|
|
3
|
+
import { NgtRxStore, injectNgtRef, NgtStore, injectBeforeRender, NgtArgs, NgtPush } from 'angular-three';
|
|
4
|
+
import { map, combineLatest } from 'rxjs';
|
|
5
|
+
import { OrbitControls } from 'three-stdlib';
|
|
6
|
+
|
|
7
|
+
class NgtsOrbitControls extends NgtRxStore {
|
|
8
|
+
set camera(camera) {
|
|
9
|
+
this.set({ camera });
|
|
10
|
+
}
|
|
11
|
+
set domElement(domElement) {
|
|
12
|
+
this.set({ domElement });
|
|
13
|
+
}
|
|
14
|
+
set makeDefault(makeDefault) {
|
|
15
|
+
this.set({ makeDefault });
|
|
16
|
+
}
|
|
17
|
+
set regress(regress) {
|
|
18
|
+
this.set({ regress });
|
|
19
|
+
}
|
|
20
|
+
set target(target) {
|
|
21
|
+
this.set({ target });
|
|
22
|
+
}
|
|
23
|
+
set enableDamping(enableDamping) {
|
|
24
|
+
this.set({ enableDamping });
|
|
25
|
+
}
|
|
26
|
+
constructor() {
|
|
27
|
+
super();
|
|
28
|
+
this.controlsRef = injectNgtRef();
|
|
29
|
+
this.change = new EventEmitter();
|
|
30
|
+
this.start = new EventEmitter();
|
|
31
|
+
this.end = new EventEmitter();
|
|
32
|
+
this.store = inject(NgtStore);
|
|
33
|
+
this.enableDamping$ = this.select('enableDamping');
|
|
34
|
+
injectBeforeRender(() => {
|
|
35
|
+
const controls = this.controlsRef.nativeElement;
|
|
36
|
+
if (controls && controls.enabled) {
|
|
37
|
+
controls.update();
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
initialize() {
|
|
42
|
+
super.initialize();
|
|
43
|
+
this.set({ enableDamping: true, regress: false });
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
this.setControls();
|
|
47
|
+
this.connectElement();
|
|
48
|
+
this.makeControlsDefault();
|
|
49
|
+
this.setEvents();
|
|
50
|
+
this.connect('args', this.controlsRef.$.pipe(map((controls) => [controls])));
|
|
51
|
+
}
|
|
52
|
+
setControls() {
|
|
53
|
+
this.hold(combineLatest([this.store.select('camera'), this.select('camera')]), ([defaultCamera, camera]) => {
|
|
54
|
+
const controlsCamera = camera || defaultCamera;
|
|
55
|
+
if (!this.controlsRef.nativeElement || this.controlsRef.nativeElement.object !== controlsCamera) {
|
|
56
|
+
this.controlsRef.nativeElement = new OrbitControls(controlsCamera);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
connectElement() {
|
|
61
|
+
this.hold(combineLatest([
|
|
62
|
+
this.store.select('gl', 'domElement'),
|
|
63
|
+
this.store.select('invalidate'),
|
|
64
|
+
this.select('regress'),
|
|
65
|
+
this.controlsRef.$,
|
|
66
|
+
]), ([glDom, , , controls]) => {
|
|
67
|
+
const { events } = this.store.get();
|
|
68
|
+
const domElement = this.get('domElement') || events.connected || glDom;
|
|
69
|
+
controls.connect(domElement);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
makeControlsDefault() {
|
|
73
|
+
this.effect(combineLatest([this.controlsRef.$, this.select('makeDefault')]), ([controls, makeDefault]) => {
|
|
74
|
+
if (makeDefault) {
|
|
75
|
+
const oldControls = this.store.get('controls');
|
|
76
|
+
this.store.set({ controls });
|
|
77
|
+
return () => {
|
|
78
|
+
this.store.set({ controls: oldControls });
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
setEvents() {
|
|
84
|
+
this.effect(this.controlsRef.$, (controls) => {
|
|
85
|
+
const { invalidate, performance } = this.store.get();
|
|
86
|
+
const regress = this.get('regress');
|
|
87
|
+
const changeCallback = (e) => {
|
|
88
|
+
invalidate();
|
|
89
|
+
if (regress)
|
|
90
|
+
performance.regress();
|
|
91
|
+
if (this.change.observed)
|
|
92
|
+
this.change.emit(e);
|
|
93
|
+
};
|
|
94
|
+
const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;
|
|
95
|
+
const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;
|
|
96
|
+
controls.addEventListener('change', changeCallback);
|
|
97
|
+
if (startCallback)
|
|
98
|
+
controls.addEventListener('start', startCallback);
|
|
99
|
+
if (endCallback)
|
|
100
|
+
controls.addEventListener('end', endCallback);
|
|
101
|
+
return () => {
|
|
102
|
+
controls.removeEventListener('change', changeCallback);
|
|
103
|
+
if (startCallback)
|
|
104
|
+
controls.removeEventListener('start', startCallback);
|
|
105
|
+
if (endCallback)
|
|
106
|
+
controls.removeEventListener('end', endCallback);
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
NgtsOrbitControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
NgtsOrbitControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", camera: "camera", domElement: "domElement", makeDefault: "makeDefault", regress: "regress", target: "target", enableDamping: "enableDamping" }, outputs: { change: "change", start: "start", end: "end" }, usesInheritance: true, ngImport: i0, template: `
|
|
113
|
+
<ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
|
|
114
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] });
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsOrbitControls, decorators: [{
|
|
116
|
+
type: Component,
|
|
117
|
+
args: [{
|
|
118
|
+
selector: 'ngts-orbit-controls',
|
|
119
|
+
standalone: true,
|
|
120
|
+
template: `
|
|
121
|
+
<ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
|
|
122
|
+
`,
|
|
123
|
+
imports: [NgtArgs, NgtPush],
|
|
124
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
125
|
+
}]
|
|
126
|
+
}], ctorParameters: function () { return []; }, propDecorators: { controlsRef: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], camera: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], domElement: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], makeDefault: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], regress: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], target: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], enableDamping: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], change: [{
|
|
141
|
+
type: Output
|
|
142
|
+
}], start: [{
|
|
143
|
+
type: Output
|
|
144
|
+
}], end: [{
|
|
145
|
+
type: Output
|
|
146
|
+
}] } });
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Generated bundle index. Do not edit.
|
|
150
|
+
*/
|
|
151
|
+
|
|
152
|
+
export { NgtsOrbitControls };
|
|
153
|
+
//# sourceMappingURL=angular-three-soba-controls.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-three-soba-controls.mjs","sources":["../../../../libs/angular-three-soba/controls/src/lib/orbit-controls/orbit-controls.ts","../../../../libs/angular-three-soba/controls/src/angular-three-soba-controls.ts"],"sourcesContent":["import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { injectBeforeRender, injectNgtRef, NgtArgs, NgtPush, NgtRxStore, NgtStore } from 'angular-three';\nimport { combineLatest, map } from 'rxjs';\nimport { OrbitControls } from 'three-stdlib';\n\n@Component({\n selector: 'ngts-orbit-controls',\n standalone: true,\n template: `\n <ngt-primitive *args=\"get('args')\" ngtCompound [enableDamping]=\"enableDamping$ | ngtPush\" />\n `,\n imports: [NgtArgs, NgtPush],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrbitControls extends NgtRxStore implements OnInit {\n @Input() controlsRef = injectNgtRef<OrbitControls>();\n\n @Input() set camera(camera: THREE.Camera) {\n this.set({ camera });\n }\n\n @Input() set domElement(domElement: HTMLElement) {\n this.set({ domElement });\n }\n\n @Input() set makeDefault(makeDefault: boolean) {\n this.set({ makeDefault });\n }\n\n @Input() set regress(regress: boolean) {\n this.set({ regress });\n }\n\n @Input() set target(target: THREE.Vector3 | Parameters<THREE.Vector3['set']>) {\n this.set({ target });\n }\n\n @Input() set enableDamping(enableDamping: boolean) {\n this.set({ enableDamping });\n }\n\n @Output() change = new EventEmitter<THREE.Event>();\n @Output() start = new EventEmitter<THREE.Event>();\n @Output() end = new EventEmitter<THREE.Event>();\n\n private readonly store = inject(NgtStore);\n\n readonly enableDamping$ = this.select('enableDamping');\n\n constructor() {\n super();\n injectBeforeRender(() => {\n const controls = this.controlsRef.nativeElement;\n if (controls && controls.enabled) {\n controls.update();\n }\n });\n }\n\n override initialize(): void {\n super.initialize();\n this.set({ enableDamping: true, regress: false });\n }\n\n ngOnInit() {\n this.setControls();\n this.connectElement();\n this.makeControlsDefault();\n this.setEvents();\n this.connect('args', this.controlsRef.$.pipe(map((controls) => [controls])));\n }\n\n private setControls() {\n this.hold(combineLatest([this.store.select('camera'), this.select('camera')]), ([defaultCamera, camera]) => {\n const controlsCamera = camera || defaultCamera;\n if (!this.controlsRef.nativeElement || this.controlsRef.nativeElement.object !== controlsCamera) {\n this.controlsRef.nativeElement = new OrbitControls(controlsCamera);\n }\n });\n }\n\n private connectElement() {\n this.hold(\n combineLatest([\n this.store.select('gl', 'domElement'),\n this.store.select('invalidate'),\n this.select('regress'),\n this.controlsRef.$,\n ]),\n ([glDom, , , controls]) => {\n const { events } = this.store.get();\n const domElement = this.get('domElement') || events.connected || glDom;\n controls.connect(domElement);\n }\n );\n }\n\n private makeControlsDefault() {\n this.effect(combineLatest([this.controlsRef.$, this.select('makeDefault')]), ([controls, makeDefault]) => {\n if (makeDefault) {\n const oldControls = this.store.get('controls');\n this.store.set({ controls });\n return () => {\n this.store.set({ controls: oldControls });\n };\n }\n });\n }\n\n private setEvents() {\n this.effect(this.controlsRef.$, (controls) => {\n const { invalidate, performance } = this.store.get();\n const regress = this.get('regress');\n\n const changeCallback: (e: THREE.Event) => void = (e) => {\n invalidate();\n if (regress) performance.regress();\n if (this.change.observed) this.change.emit(e);\n };\n\n const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;\n const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;\n\n controls.addEventListener('change', changeCallback);\n if (startCallback) controls.addEventListener('start', startCallback);\n if (endCallback) controls.addEventListener('end', endCallback);\n\n return () => {\n controls.removeEventListener('change', changeCallback);\n if (startCallback) controls.removeEventListener('start', startCallback);\n if (endCallback) controls.removeEventListener('end', endCallback);\n };\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { injectNgtLoader } from 'angular-three';
|
|
2
|
+
import { take } from 'rxjs';
|
|
3
|
+
import { MeshoptDecoder } from 'three-stdlib';
|
|
4
|
+
import { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';
|
|
5
|
+
import { GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';
|
|
6
|
+
|
|
7
|
+
let dracoLoader = null;
|
|
8
|
+
function _extensions(useDraco, useMeshOpt, extensions) {
|
|
9
|
+
return (loader) => {
|
|
10
|
+
if (extensions) {
|
|
11
|
+
extensions(loader);
|
|
12
|
+
}
|
|
13
|
+
if (useDraco) {
|
|
14
|
+
if (!dracoLoader) {
|
|
15
|
+
dracoLoader = new DRACOLoader();
|
|
16
|
+
}
|
|
17
|
+
dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/');
|
|
18
|
+
loader.setDRACOLoader(dracoLoader);
|
|
19
|
+
}
|
|
20
|
+
if (useMeshOpt) {
|
|
21
|
+
loader.setMeshoptDecoder(typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function injectGLTFLoader(path, useDraco = true, useMeshOpt = true, extensions) {
|
|
26
|
+
return injectNgtLoader(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
|
|
27
|
+
}
|
|
28
|
+
injectGLTFLoader.preload = (path, useDraco = true, useMeshOpt = true, extensions) => {
|
|
29
|
+
injectGLTFLoader(path, useDraco, useMeshOpt, extensions).pipe(take(1)).subscribe();
|
|
30
|
+
};
|
|
31
|
+
const injectNgtsGLTFLoader = injectGLTFLoader;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Generated bundle index. Do not edit.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
export { injectNgtsGLTFLoader };
|
|
38
|
+
//# sourceMappingURL=angular-three-soba-loaders.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-three-soba-loaders.mjs","sources":["../../../../libs/angular-three-soba/loaders/src/lib/gltf-loader/gltf-loader.ts","../../../../libs/angular-three-soba/loaders/src/angular-three-soba-loaders.ts"],"sourcesContent":["import { injectNgtLoader, NgtLoaderResults, NgtObjectMap } from 'angular-three';\nimport { Observable, take } from 'rxjs';\n// @ts-ignore\nimport { MeshoptDecoder } from 'three-stdlib';\nimport { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';\nimport { GLTF, GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';\n\nlet dracoLoader: DRACOLoader | null = null;\n\nfunction _extensions(useDraco: boolean | string, useMeshOpt: boolean, extensions?: (loader: GLTFLoader) => void) {\n return (loader: THREE.Loader) => {\n if (extensions) {\n extensions(loader as GLTFLoader);\n }\n\n if (useDraco) {\n if (!dracoLoader) {\n dracoLoader = new DRACOLoader();\n }\n\n dracoLoader.setDecoderPath(\n typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/'\n );\n (loader as GLTFLoader).setDRACOLoader(dracoLoader);\n }\n\n if (useMeshOpt) {\n (loader as GLTFLoader).setMeshoptDecoder(\n typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder\n );\n }\n };\n}\n\nexport interface NgtsGLTFLoader {\n <TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco?: boolean | string,\n useMeshOpt?: boolean,\n extensions?: (loader: GLTFLoader) => void\n ): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>>;\n preload: <TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco?: boolean | string,\n useMeshOpt?: boolean,\n extensions?: (loader: GLTFLoader) => void\n ) => void;\n}\n\nfunction injectGLTFLoader<TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco: boolean | string = true,\n useMeshOpt = true,\n extensions?: (loader: GLTFLoader) => void\n): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>> {\n return injectNgtLoader(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions)) as Observable<\n NgtLoaderResults<TInput, GLTF & NgtObjectMap>\n >;\n}\n\n(injectGLTFLoader as NgtsGLTFLoader).preload = (path, useDraco = true, useMeshOpt = true, extensions) => {\n injectGLTFLoader(path, useDraco, useMeshOpt, extensions).pipe(take(1)).subscribe();\n};\n\nexport const injectNgtsGLTFLoader = injectGLTFLoader as NgtsGLTFLoader;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAOA,IAAI,WAAW,GAAuB,IAAI,CAAC;AAE3C,SAAS,WAAW,CAAC,QAA0B,EAAE,UAAmB,EAAE,UAAyC,EAAA;IAC3G,OAAO,CAAC,MAAoB,KAAI;AAC5B,QAAA,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,MAAoB,CAAC,CAAC;AACpC,SAAA;AAED,QAAA,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,WAAW,EAAE;AACd,gBAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACnC,aAAA;AAED,YAAA,WAAW,CAAC,cAAc,CACtB,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,yDAAyD,CACtG,CAAC;AACD,YAAA,MAAqB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACtD,SAAA;AAED,QAAA,IAAI,UAAU,EAAE;AACX,YAAA,MAAqB,CAAC,iBAAiB,CACpC,OAAO,cAAc,KAAK,UAAU,GAAG,cAAc,EAAE,GAAG,cAAc,CAC3E,CAAC;AACL,SAAA;AACL,KAAC,CAAC;AACN,CAAC;AAiBD,SAAS,gBAAgB,CACrB,IAAiC,EACjC,QAAA,GAA6B,IAAI,EACjC,UAAU,GAAG,IAAI,EACjB,UAAyC,EAAA;AAEzC,IAAA,OAAO,eAAe,CAAC,MAAM,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAE3F,CAAC;AACN,CAAC;AAEA,gBAAmC,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,KAAI;IACpG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACvF,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAG;;AChEpC;;AAEG;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-three-soba.mjs","sources":["../../../../libs/angular-three-soba/src/index.ts","../../../../libs/angular-three-soba/src/angular-three-soba.ts"],"sourcesContent":["export default void 0;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA,YAAe,KAAK,CAAC;;ACArB;;AAEG"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, inject, Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output } from '@angular/core';
|
|
3
|
+
import { NgtRxStore, injectNgtRef, NgtStore, injectBeforeRender, NgtArgs, NgtPush } from 'angular-three';
|
|
4
|
+
import { map, combineLatest } from 'rxjs';
|
|
5
|
+
import { OrbitControls } from 'three-stdlib';
|
|
6
|
+
|
|
7
|
+
class NgtsOrbitControls extends NgtRxStore {
|
|
8
|
+
set camera(camera) {
|
|
9
|
+
this.set({ camera });
|
|
10
|
+
}
|
|
11
|
+
set domElement(domElement) {
|
|
12
|
+
this.set({ domElement });
|
|
13
|
+
}
|
|
14
|
+
set makeDefault(makeDefault) {
|
|
15
|
+
this.set({ makeDefault });
|
|
16
|
+
}
|
|
17
|
+
set regress(regress) {
|
|
18
|
+
this.set({ regress });
|
|
19
|
+
}
|
|
20
|
+
set target(target) {
|
|
21
|
+
this.set({ target });
|
|
22
|
+
}
|
|
23
|
+
set enableDamping(enableDamping) {
|
|
24
|
+
this.set({ enableDamping });
|
|
25
|
+
}
|
|
26
|
+
constructor() {
|
|
27
|
+
super();
|
|
28
|
+
this.controlsRef = injectNgtRef();
|
|
29
|
+
this.change = new EventEmitter();
|
|
30
|
+
this.start = new EventEmitter();
|
|
31
|
+
this.end = new EventEmitter();
|
|
32
|
+
this.store = inject(NgtStore);
|
|
33
|
+
this.enableDamping$ = this.select('enableDamping');
|
|
34
|
+
injectBeforeRender(() => {
|
|
35
|
+
const controls = this.controlsRef.nativeElement;
|
|
36
|
+
if (controls && controls.enabled) {
|
|
37
|
+
controls.update();
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
initialize() {
|
|
42
|
+
super.initialize();
|
|
43
|
+
this.set({ enableDamping: true, regress: false });
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
this.setControls();
|
|
47
|
+
this.connectElement();
|
|
48
|
+
this.makeControlsDefault();
|
|
49
|
+
this.setEvents();
|
|
50
|
+
this.connect('args', this.controlsRef.$.pipe(map((controls) => [controls])));
|
|
51
|
+
}
|
|
52
|
+
setControls() {
|
|
53
|
+
this.hold(combineLatest([this.store.select('camera'), this.select('camera')]), ([defaultCamera, camera]) => {
|
|
54
|
+
const controlsCamera = camera || defaultCamera;
|
|
55
|
+
if (!this.controlsRef.nativeElement || this.controlsRef.nativeElement.object !== controlsCamera) {
|
|
56
|
+
this.controlsRef.nativeElement = new OrbitControls(controlsCamera);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
connectElement() {
|
|
61
|
+
this.hold(combineLatest([
|
|
62
|
+
this.store.select('gl', 'domElement'),
|
|
63
|
+
this.store.select('invalidate'),
|
|
64
|
+
this.select('regress'),
|
|
65
|
+
this.controlsRef.$,
|
|
66
|
+
]), ([glDom, , , controls]) => {
|
|
67
|
+
const { events } = this.store.get();
|
|
68
|
+
const domElement = this.get('domElement') || events.connected || glDom;
|
|
69
|
+
controls.connect(domElement);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
makeControlsDefault() {
|
|
73
|
+
this.effect(combineLatest([this.controlsRef.$, this.select('makeDefault')]), ([controls, makeDefault]) => {
|
|
74
|
+
if (makeDefault) {
|
|
75
|
+
const oldControls = this.store.get('controls');
|
|
76
|
+
this.store.set({ controls });
|
|
77
|
+
return () => {
|
|
78
|
+
this.store.set({ controls: oldControls });
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
setEvents() {
|
|
84
|
+
this.effect(this.controlsRef.$, (controls) => {
|
|
85
|
+
const { invalidate, performance } = this.store.get();
|
|
86
|
+
const regress = this.get('regress');
|
|
87
|
+
const changeCallback = (e) => {
|
|
88
|
+
invalidate();
|
|
89
|
+
if (regress)
|
|
90
|
+
performance.regress();
|
|
91
|
+
if (this.change.observed)
|
|
92
|
+
this.change.emit(e);
|
|
93
|
+
};
|
|
94
|
+
const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;
|
|
95
|
+
const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;
|
|
96
|
+
controls.addEventListener('change', changeCallback);
|
|
97
|
+
if (startCallback)
|
|
98
|
+
controls.addEventListener('start', startCallback);
|
|
99
|
+
if (endCallback)
|
|
100
|
+
controls.addEventListener('end', endCallback);
|
|
101
|
+
return () => {
|
|
102
|
+
controls.removeEventListener('change', changeCallback);
|
|
103
|
+
if (startCallback)
|
|
104
|
+
controls.removeEventListener('start', startCallback);
|
|
105
|
+
if (endCallback)
|
|
106
|
+
controls.removeEventListener('end', endCallback);
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
NgtsOrbitControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
NgtsOrbitControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", camera: "camera", domElement: "domElement", makeDefault: "makeDefault", regress: "regress", target: "target", enableDamping: "enableDamping" }, outputs: { change: "change", start: "start", end: "end" }, usesInheritance: true, ngImport: i0, template: `
|
|
113
|
+
<ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
|
|
114
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] });
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsOrbitControls, decorators: [{
|
|
116
|
+
type: Component,
|
|
117
|
+
args: [{
|
|
118
|
+
selector: 'ngts-orbit-controls',
|
|
119
|
+
standalone: true,
|
|
120
|
+
template: `
|
|
121
|
+
<ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
|
|
122
|
+
`,
|
|
123
|
+
imports: [NgtArgs, NgtPush],
|
|
124
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
125
|
+
}]
|
|
126
|
+
}], ctorParameters: function () { return []; }, propDecorators: { controlsRef: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], camera: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], domElement: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], makeDefault: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], regress: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], target: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], enableDamping: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], change: [{
|
|
141
|
+
type: Output
|
|
142
|
+
}], start: [{
|
|
143
|
+
type: Output
|
|
144
|
+
}], end: [{
|
|
145
|
+
type: Output
|
|
146
|
+
}] } });
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Generated bundle index. Do not edit.
|
|
150
|
+
*/
|
|
151
|
+
|
|
152
|
+
export { NgtsOrbitControls };
|
|
153
|
+
//# sourceMappingURL=angular-three-soba-controls.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-three-soba-controls.mjs","sources":["../../../../libs/angular-three-soba/controls/src/lib/orbit-controls/orbit-controls.ts","../../../../libs/angular-three-soba/controls/src/angular-three-soba-controls.ts"],"sourcesContent":["import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { injectBeforeRender, injectNgtRef, NgtArgs, NgtPush, NgtRxStore, NgtStore } from 'angular-three';\nimport { combineLatest, map } from 'rxjs';\nimport { OrbitControls } from 'three-stdlib';\n\n@Component({\n selector: 'ngts-orbit-controls',\n standalone: true,\n template: `\n <ngt-primitive *args=\"get('args')\" ngtCompound [enableDamping]=\"enableDamping$ | ngtPush\" />\n `,\n imports: [NgtArgs, NgtPush],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrbitControls extends NgtRxStore implements OnInit {\n @Input() controlsRef = injectNgtRef<OrbitControls>();\n\n @Input() set camera(camera: THREE.Camera) {\n this.set({ camera });\n }\n\n @Input() set domElement(domElement: HTMLElement) {\n this.set({ domElement });\n }\n\n @Input() set makeDefault(makeDefault: boolean) {\n this.set({ makeDefault });\n }\n\n @Input() set regress(regress: boolean) {\n this.set({ regress });\n }\n\n @Input() set target(target: THREE.Vector3 | Parameters<THREE.Vector3['set']>) {\n this.set({ target });\n }\n\n @Input() set enableDamping(enableDamping: boolean) {\n this.set({ enableDamping });\n }\n\n @Output() change = new EventEmitter<THREE.Event>();\n @Output() start = new EventEmitter<THREE.Event>();\n @Output() end = new EventEmitter<THREE.Event>();\n\n private readonly store = inject(NgtStore);\n\n readonly enableDamping$ = this.select('enableDamping');\n\n constructor() {\n super();\n injectBeforeRender(() => {\n const controls = this.controlsRef.nativeElement;\n if (controls && controls.enabled) {\n controls.update();\n }\n });\n }\n\n override initialize(): void {\n super.initialize();\n this.set({ enableDamping: true, regress: false });\n }\n\n ngOnInit() {\n this.setControls();\n this.connectElement();\n this.makeControlsDefault();\n this.setEvents();\n this.connect('args', this.controlsRef.$.pipe(map((controls) => [controls])));\n }\n\n private setControls() {\n this.hold(combineLatest([this.store.select('camera'), this.select('camera')]), ([defaultCamera, camera]) => {\n const controlsCamera = camera || defaultCamera;\n if (!this.controlsRef.nativeElement || this.controlsRef.nativeElement.object !== controlsCamera) {\n this.controlsRef.nativeElement = new OrbitControls(controlsCamera);\n }\n });\n }\n\n private connectElement() {\n this.hold(\n combineLatest([\n this.store.select('gl', 'domElement'),\n this.store.select('invalidate'),\n this.select('regress'),\n this.controlsRef.$,\n ]),\n ([glDom, , , controls]) => {\n const { events } = this.store.get();\n const domElement = this.get('domElement') || events.connected || glDom;\n controls.connect(domElement);\n }\n );\n }\n\n private makeControlsDefault() {\n this.effect(combineLatest([this.controlsRef.$, this.select('makeDefault')]), ([controls, makeDefault]) => {\n if (makeDefault) {\n const oldControls = this.store.get('controls');\n this.store.set({ controls });\n return () => {\n this.store.set({ controls: oldControls });\n };\n }\n });\n }\n\n private setEvents() {\n this.effect(this.controlsRef.$, (controls) => {\n const { invalidate, performance } = this.store.get();\n const regress = this.get('regress');\n\n const changeCallback: (e: THREE.Event) => void = (e) => {\n invalidate();\n if (regress) performance.regress();\n if (this.change.observed) this.change.emit(e);\n };\n\n const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;\n const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;\n\n controls.addEventListener('change', changeCallback);\n if (startCallback) controls.addEventListener('start', startCallback);\n if (endCallback) controls.addEventListener('end', endCallback);\n\n return () => {\n controls.removeEventListener('change', changeCallback);\n if (startCallback) controls.removeEventListener('start', startCallback);\n if (endCallback) controls.removeEventListener('end', endCallback);\n };\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { injectNgtLoader } from 'angular-three';
|
|
2
|
+
import { take } from 'rxjs';
|
|
3
|
+
import { MeshoptDecoder } from 'three-stdlib';
|
|
4
|
+
import { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';
|
|
5
|
+
import { GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';
|
|
6
|
+
|
|
7
|
+
let dracoLoader = null;
|
|
8
|
+
function _extensions(useDraco, useMeshOpt, extensions) {
|
|
9
|
+
return (loader) => {
|
|
10
|
+
if (extensions) {
|
|
11
|
+
extensions(loader);
|
|
12
|
+
}
|
|
13
|
+
if (useDraco) {
|
|
14
|
+
if (!dracoLoader) {
|
|
15
|
+
dracoLoader = new DRACOLoader();
|
|
16
|
+
}
|
|
17
|
+
dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/');
|
|
18
|
+
loader.setDRACOLoader(dracoLoader);
|
|
19
|
+
}
|
|
20
|
+
if (useMeshOpt) {
|
|
21
|
+
loader.setMeshoptDecoder(typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function injectGLTFLoader(path, useDraco = true, useMeshOpt = true, extensions) {
|
|
26
|
+
return injectNgtLoader(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
|
|
27
|
+
}
|
|
28
|
+
injectGLTFLoader.preload = (path, useDraco = true, useMeshOpt = true, extensions) => {
|
|
29
|
+
injectGLTFLoader(path, useDraco, useMeshOpt, extensions).pipe(take(1)).subscribe();
|
|
30
|
+
};
|
|
31
|
+
const injectNgtsGLTFLoader = injectGLTFLoader;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Generated bundle index. Do not edit.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
export { injectNgtsGLTFLoader };
|
|
38
|
+
//# sourceMappingURL=angular-three-soba-loaders.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-three-soba-loaders.mjs","sources":["../../../../libs/angular-three-soba/loaders/src/lib/gltf-loader/gltf-loader.ts","../../../../libs/angular-three-soba/loaders/src/angular-three-soba-loaders.ts"],"sourcesContent":["import { injectNgtLoader, NgtLoaderResults, NgtObjectMap } from 'angular-three';\nimport { Observable, take } from 'rxjs';\n// @ts-ignore\nimport { MeshoptDecoder } from 'three-stdlib';\nimport { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';\nimport { GLTF, GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';\n\nlet dracoLoader: DRACOLoader | null = null;\n\nfunction _extensions(useDraco: boolean | string, useMeshOpt: boolean, extensions?: (loader: GLTFLoader) => void) {\n return (loader: THREE.Loader) => {\n if (extensions) {\n extensions(loader as GLTFLoader);\n }\n\n if (useDraco) {\n if (!dracoLoader) {\n dracoLoader = new DRACOLoader();\n }\n\n dracoLoader.setDecoderPath(\n typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/'\n );\n (loader as GLTFLoader).setDRACOLoader(dracoLoader);\n }\n\n if (useMeshOpt) {\n (loader as GLTFLoader).setMeshoptDecoder(\n typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder\n );\n }\n };\n}\n\nexport interface NgtsGLTFLoader {\n <TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco?: boolean | string,\n useMeshOpt?: boolean,\n extensions?: (loader: GLTFLoader) => void\n ): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>>;\n preload: <TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco?: boolean | string,\n useMeshOpt?: boolean,\n extensions?: (loader: GLTFLoader) => void\n ) => void;\n}\n\nfunction injectGLTFLoader<TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco: boolean | string = true,\n useMeshOpt = true,\n extensions?: (loader: GLTFLoader) => void\n): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>> {\n return injectNgtLoader(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions)) as Observable<\n NgtLoaderResults<TInput, GLTF & NgtObjectMap>\n >;\n}\n\n(injectGLTFLoader as NgtsGLTFLoader).preload = (path, useDraco = true, useMeshOpt = true, extensions) => {\n injectGLTFLoader(path, useDraco, useMeshOpt, extensions).pipe(take(1)).subscribe();\n};\n\nexport const injectNgtsGLTFLoader = injectGLTFLoader as NgtsGLTFLoader;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAOA,IAAI,WAAW,GAAuB,IAAI,CAAC;AAE3C,SAAS,WAAW,CAAC,QAA0B,EAAE,UAAmB,EAAE,UAAyC,EAAA;IAC3G,OAAO,CAAC,MAAoB,KAAI;AAC5B,QAAA,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,MAAoB,CAAC,CAAC;AACpC,SAAA;AAED,QAAA,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,WAAW,EAAE;AACd,gBAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACnC,aAAA;AAED,YAAA,WAAW,CAAC,cAAc,CACtB,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,yDAAyD,CACtG,CAAC;AACD,YAAA,MAAqB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACtD,SAAA;AAED,QAAA,IAAI,UAAU,EAAE;AACX,YAAA,MAAqB,CAAC,iBAAiB,CACpC,OAAO,cAAc,KAAK,UAAU,GAAG,cAAc,EAAE,GAAG,cAAc,CAC3E,CAAC;AACL,SAAA;AACL,KAAC,CAAC;AACN,CAAC;AAiBD,SAAS,gBAAgB,CACrB,IAAiC,EACjC,QAAA,GAA6B,IAAI,EACjC,UAAU,GAAG,IAAI,EACjB,UAAyC,EAAA;AAEzC,IAAA,OAAO,eAAe,CAAC,MAAM,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAE3F,CAAC;AACN,CAAC;AAEA,gBAAmC,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,KAAI;IACpG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACvF,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAG;;AChEpC;;AAEG;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-three-soba.mjs","sources":["../../../../libs/angular-three-soba/src/index.ts","../../../../libs/angular-three-soba/src/angular-three-soba.ts"],"sourcesContent":["export default void 0;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA,YAAe,KAAK,CAAC;;ACArB;;AAEG"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib/gltf-loader/gltf-loader';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { NgtLoaderResults, NgtObjectMap } from 'angular-three';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { GLTF, GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';
|
|
4
|
+
export interface NgtsGLTFLoader {
|
|
5
|
+
<TInput extends string | string[] | Record<string, string>>(path: TInput | Observable<TInput>, useDraco?: boolean | string, useMeshOpt?: boolean, extensions?: (loader: GLTFLoader) => void): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>>;
|
|
6
|
+
preload: <TInput extends string | string[] | Record<string, string>>(path: TInput | Observable<TInput>, useDraco?: boolean | string, useMeshOpt?: boolean, extensions?: (loader: GLTFLoader) => void) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const injectNgtsGLTFLoader: NgtsGLTFLoader;
|
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "angular-three-soba",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/angular-threejs/soba"
|
|
10
|
+
},
|
|
11
|
+
"author": {
|
|
12
|
+
"name": "Chau Tran",
|
|
13
|
+
"email": "nartc7789@gmail.com",
|
|
14
|
+
"url": "https://nartc.me"
|
|
15
|
+
},
|
|
16
|
+
"description": "Utilities for Angular Three",
|
|
17
|
+
"keywords": [
|
|
18
|
+
"angular",
|
|
19
|
+
"threejs",
|
|
20
|
+
"renderer"
|
|
21
|
+
],
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"@angular/common": "^15.1.0",
|
|
25
|
+
"@angular/core": "^15.1.0",
|
|
26
|
+
"angular-three": "^1.0.0",
|
|
27
|
+
"three-stdlib": "^2.0.0",
|
|
28
|
+
"troika-three-text": "^0.47.0",
|
|
29
|
+
"rxjs": "7.8.0"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@nrwl/devkit": "^15.0.0",
|
|
33
|
+
"tslib": "^2.3.0"
|
|
34
|
+
},
|
|
35
|
+
"sideEffects": false,
|
|
36
|
+
"generators": "./plugin/generators.json",
|
|
37
|
+
"schematics": "./plugin/generators.json",
|
|
38
|
+
"module": "fesm2015/angular-three-soba.mjs",
|
|
39
|
+
"es2020": "fesm2020/angular-three-soba.mjs",
|
|
40
|
+
"esm2020": "esm2020/angular-three-soba.mjs",
|
|
41
|
+
"fesm2020": "fesm2020/angular-three-soba.mjs",
|
|
42
|
+
"fesm2015": "fesm2015/angular-three-soba.mjs",
|
|
43
|
+
"typings": "index.d.ts",
|
|
44
|
+
"exports": {
|
|
45
|
+
"./package.json": {
|
|
46
|
+
"default": "./package.json"
|
|
47
|
+
},
|
|
48
|
+
".": {
|
|
49
|
+
"types": "./index.d.ts",
|
|
50
|
+
"esm2020": "./esm2020/angular-three-soba.mjs",
|
|
51
|
+
"es2020": "./fesm2020/angular-three-soba.mjs",
|
|
52
|
+
"es2015": "./fesm2015/angular-three-soba.mjs",
|
|
53
|
+
"node": "./fesm2015/angular-three-soba.mjs",
|
|
54
|
+
"default": "./fesm2020/angular-three-soba.mjs"
|
|
55
|
+
},
|
|
56
|
+
"./controls": {
|
|
57
|
+
"types": "./controls/index.d.ts",
|
|
58
|
+
"esm2020": "./esm2020/controls/angular-three-soba-controls.mjs",
|
|
59
|
+
"es2020": "./fesm2020/angular-three-soba-controls.mjs",
|
|
60
|
+
"es2015": "./fesm2015/angular-three-soba-controls.mjs",
|
|
61
|
+
"node": "./fesm2015/angular-three-soba-controls.mjs",
|
|
62
|
+
"default": "./fesm2020/angular-three-soba-controls.mjs"
|
|
63
|
+
},
|
|
64
|
+
"./loaders": {
|
|
65
|
+
"types": "./loaders/index.d.ts",
|
|
66
|
+
"esm2020": "./esm2020/loaders/angular-three-soba-loaders.mjs",
|
|
67
|
+
"es2020": "./fesm2020/angular-three-soba-loaders.mjs",
|
|
68
|
+
"es2015": "./fesm2015/angular-three-soba-loaders.mjs",
|
|
69
|
+
"node": "./fesm2015/angular-three-soba-loaders.mjs",
|
|
70
|
+
"default": "./fesm2020/angular-three-soba-loaders.mjs"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
package/plugin/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/init/compat.ts"],"names":[],"mappings":";;AAAA,yCAAkD;AAClD,iCAA0B;AAE1B,kBAAe,IAAA,2BAAkB,EAAC,cAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.THREE_STDLIB_VERSION = exports.ANGULAR_THREE_SOBA_VERSION = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
6
|
+
exports.ANGULAR_THREE_SOBA_VERSION = '^1.0.0';
|
|
7
|
+
exports.THREE_STDLIB_VERSION = '^2.0.0';
|
|
8
|
+
function default_1(tree) {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
11
|
+
devkit_1.logger.log('Initializing Angular Three...');
|
|
12
|
+
const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
|
|
13
|
+
const version = ((_a = packageJson['dependencies']) === null || _a === void 0 ? void 0 : _a['angular-three-soba']) ||
|
|
14
|
+
((_b = packageJson['devDependencies']) === null || _b === void 0 ? void 0 : _b['angular-three-soba']) ||
|
|
15
|
+
exports.ANGULAR_THREE_SOBA_VERSION;
|
|
16
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, {
|
|
17
|
+
'angular-three-soba': version,
|
|
18
|
+
'three-stdlib': exports.THREE_STDLIB_VERSION,
|
|
19
|
+
}, {});
|
|
20
|
+
return () => {
|
|
21
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
exports.default = default_1;
|
|
26
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/init/init.ts"],"names":[],"mappings":";;;;AAAA,yCAAyG;AAE5F,QAAA,0BAA0B,GAAG,QAAQ,CAAC;AACtC,QAAA,oBAAoB,GAAG,QAAQ,CAAC;AAE7C,mBAA+B,IAAU;;;QACrC,eAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE5C,MAAM,WAAW,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAEnD,MAAM,OAAO,GACT,CAAA,MAAA,WAAW,CAAC,cAAc,CAAC,0CAAG,oBAAoB,CAAC;aACnD,MAAA,WAAW,CAAC,iBAAiB,CAAC,0CAAG,oBAAoB,CAAC,CAAA;YACtD,kCAA0B,CAAC;QAE/B,IAAA,qCAA4B,EACxB,IAAI,EACJ;YACI,oBAAoB,EAAE,OAAO;YAC7B,cAAc,EAAE,4BAAoB;SACvC,EACD,EAAE,CACL,CAAC;QAEF,OAAO,GAAG,EAAE;YACR,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC;;CACL;AAtBD,4BAsBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as initGenerator } from './generators/init/init';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initGenerator = void 0;
|
|
4
|
+
var init_1 = require("./generators/init/init");
|
|
5
|
+
Object.defineProperty(exports, "initGenerator", { enumerable: true, get: function () { return init_1.default; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/plugin/src/index.ts"],"names":[],"mappings":";;;AAAA,+CAAkE;AAAzD,qGAAA,OAAO,OAAiB"}
|