@quick-threejs/reactive 0.1.25 → 0.1.27
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/dist/app.module-BQotCgts.js +34 -0
- package/dist/{app.module-BeaCiPyy.mjs → app.module-n-JVGlLg.mjs} +2199 -1939
- package/dist/common/blueprints/index.d.ts +2 -0
- package/dist/common/{models/register-props.model.d.ts → blueprints/props.blueprint.d.ts} +31 -8
- package/dist/common/blueprints/proxy.blueprint.d.ts +96 -0
- package/dist/common/index.d.ts +1 -1
- package/dist/common/interfaces/core.interface.d.ts +4 -5
- package/dist/common/interfaces/index.d.ts +2 -3
- package/dist/common/interfaces/loader.interface.d.ts +23 -0
- package/dist/common/interfaces/module.interface.d.ts +1 -1
- package/dist/common/interfaces/{object.interface.d.ts → proxy-event.interface.d.ts} +6 -0
- package/dist/common/tokens/index.d.ts +1 -0
- package/dist/common/tokens/loader.token.d.ts +1 -0
- package/dist/core/app/app.controller.d.ts +2 -2
- package/dist/core/app/app.module.d.ts +6 -4
- package/dist/core/app/{app.module-worker.d.ts → app.util.d.ts} +1 -1
- package/dist/core/app/loader/loader.controller.d.ts +5 -0
- package/dist/core/app/loader/loader.module.d.ts +16 -0
- package/dist/core/app/loader/loader.service.d.ts +8 -0
- package/dist/core/app/renderer/renderer.controller.d.ts +1 -1
- package/dist/core/index.d.ts +0 -1
- package/dist/core/register/loader/loader.controller.d.ts +11 -0
- package/dist/core/register/loader/loader.module.d.ts +31 -0
- package/dist/core/register/loader/loader.service.d.ts +26 -0
- package/dist/core/register/register.controller.d.ts +2 -2
- package/dist/core/register/register.module.d.ts +15 -28
- package/dist/core/register/register.service.d.ts +1 -1
- package/dist/core/register/register.util.d.ts +3 -3
- package/dist/main.js +3 -3
- package/dist/main.mjs +1218 -1286
- package/dist/main.worker.d.ts +1 -1
- package/dist/worker.js +1 -1
- package/dist/worker.mjs +10 -10
- package/package.json +5 -3
- package/dist/app.module-jsu6itlh.js +0 -34
- package/dist/common/interfaces/event.interface.d.ts +0 -6
- package/dist/common/interfaces/resource.interface.d.ts +0 -14
- package/dist/common/models/app-proxy-event-handler.model.d.ts +0 -32
- package/dist/common/models/index.d.ts +0 -7
- package/dist/common/models/launch-app-props.model.d.ts +0 -6
- package/dist/common/models/proxy-event-handler.model.d.ts +0 -19
- package/dist/common/models/proxy-event-observables.model.d.ts +0 -20
- package/dist/common/models/proxy-event-subjects.models.d.ts +0 -19
- package/dist/common/models/register-proxy-event-handler.model.d.ts +0 -17
- package/dist/core/loader/loader.component.d.ts +0 -25
- package/dist/core/loader/loader.controller.d.ts +0 -7
- package/dist/core/loader/loader.module-worker.d.ts +0 -3
- package/dist/core/loader/loader.module.d.ts +0 -33
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { ContainerizedApp } from '../interfaces';
|
|
2
|
-
import { DefaultCameraType } from '../enums/camera.enum';
|
|
3
1
|
import { RegisterModule } from '../../core';
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import { DefaultCameraType } from '../enums';
|
|
3
|
+
import { ContainerizedApp, Module, LoaderSource } from '../interfaces';
|
|
4
|
+
/**
|
|
5
|
+
* @description {@link RegisterModule} initialization properties.
|
|
6
|
+
*/
|
|
7
|
+
export declare class RegisterPropsBlueprint {
|
|
6
8
|
/**
|
|
7
9
|
* @description The app worker logic location.
|
|
8
10
|
*
|
|
@@ -42,7 +44,21 @@ export declare class RegisterPropsModel {
|
|
|
42
44
|
*/
|
|
43
45
|
startTimer?: boolean;
|
|
44
46
|
/**
|
|
45
|
-
*
|
|
47
|
+
* @description Resources to load.
|
|
48
|
+
*
|
|
49
|
+
* @default []
|
|
50
|
+
*/
|
|
51
|
+
loaderDataSources?: LoaderSource[];
|
|
52
|
+
/**
|
|
53
|
+
* @description Will directly load the resources on initialization.
|
|
54
|
+
*
|
|
55
|
+
* @remark __This property depends on {@link RegisterPropsBlueprint.initOnConstruct initOnConstruct}__
|
|
56
|
+
*
|
|
57
|
+
* @default true
|
|
58
|
+
*/
|
|
59
|
+
loadResourcesOnInit?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* @description Enable the debug mode
|
|
46
62
|
*
|
|
47
63
|
* @default undefined
|
|
48
64
|
*/
|
|
@@ -51,7 +67,7 @@ export declare class RegisterPropsModel {
|
|
|
51
67
|
* Define the {@link THREE.AxesHelper} sizes.
|
|
52
68
|
*
|
|
53
69
|
* @remark __Deactivated if the value is `0` or `undefined`__
|
|
54
|
-
* @remark __This property depends on {@link
|
|
70
|
+
* @remark __This property depends on {@link RegisterPropsBlueprint.enableDebug enableDebug}__
|
|
55
71
|
*
|
|
56
72
|
* @default undefined
|
|
57
73
|
*/
|
|
@@ -60,7 +76,7 @@ export declare class RegisterPropsModel {
|
|
|
60
76
|
* Define the {@link THREE.GridHelper} sizes.
|
|
61
77
|
*
|
|
62
78
|
* @remark __Deactivated if the value is `0` or `undefined`__
|
|
63
|
-
* @remark __This property depends on {@link
|
|
79
|
+
* @remark __This property depends on {@link RegisterPropsBlueprint.enableDebug enableDebug}__
|
|
64
80
|
*
|
|
65
81
|
* @default undefined
|
|
66
82
|
*/
|
|
@@ -68,7 +84,7 @@ export declare class RegisterPropsModel {
|
|
|
68
84
|
/**
|
|
69
85
|
* Display a mini perfective camera at the top right corner of the screen.
|
|
70
86
|
*
|
|
71
|
-
* @remark __This property depends on {@link
|
|
87
|
+
* @remark __This property depends on {@link RegisterPropsBlueprint.enableDebug enableDebug}__
|
|
72
88
|
*
|
|
73
89
|
* @default false
|
|
74
90
|
*/
|
|
@@ -80,3 +96,10 @@ export declare class RegisterPropsModel {
|
|
|
80
96
|
*/
|
|
81
97
|
onReady?: (app: ContainerizedApp<RegisterModule>) => unknown;
|
|
82
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* @description {@link AppModule} initialization properties.
|
|
101
|
+
*/
|
|
102
|
+
export declare class LaunchAppProps<M extends Module> {
|
|
103
|
+
/** @description Handler triggered when the app is ready. */
|
|
104
|
+
onReady?: (workerApp: ContainerizedApp<M>) => unknown;
|
|
105
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Observable, Subject } from 'rxjs';
|
|
2
|
+
import { ProxyEvent, ProxyEventHandlersImplementation, ProxyEventObservablesImplementation, ProxyEventSubjectsImplementation } from '../interfaces/proxy-event.interface';
|
|
3
|
+
export declare class ProxyEventSubjectsBlueprint implements ProxyEventSubjectsImplementation {
|
|
4
|
+
contextmenu$$: Subject<MouseEvent & ProxyEvent>;
|
|
5
|
+
resize$$: Subject<UIEvent & ProxyEvent>;
|
|
6
|
+
mousedown$$: Subject<PointerEvent & ProxyEvent>;
|
|
7
|
+
mousemove$$: Subject<PointerEvent & ProxyEvent>;
|
|
8
|
+
mouseup$$: Subject<PointerEvent & ProxyEvent>;
|
|
9
|
+
pointerdown$$: Subject<PointerEvent & ProxyEvent>;
|
|
10
|
+
pointermove$$: Subject<PointerEvent & ProxyEvent>;
|
|
11
|
+
pointercancel$$: Subject<PointerEvent & ProxyEvent>;
|
|
12
|
+
pointerup$$: Subject<PointerEvent & ProxyEvent>;
|
|
13
|
+
touchstart$$: Subject<TouchEvent & ProxyEvent>;
|
|
14
|
+
touchmove$$: Subject<TouchEvent & ProxyEvent>;
|
|
15
|
+
touchend$$: Subject<TouchEvent & ProxyEvent>;
|
|
16
|
+
wheel$$: Subject<WheelEvent & ProxyEvent>;
|
|
17
|
+
keydown$$: Subject<KeyboardEvent & ProxyEvent>;
|
|
18
|
+
}
|
|
19
|
+
export declare class ProxyEventObservablesBlueprint extends ProxyEventSubjectsBlueprint implements ProxyEventObservablesImplementation {
|
|
20
|
+
contextmenu$: Observable<MouseEvent & ProxyEvent>;
|
|
21
|
+
resize$: Observable<UIEvent & ProxyEvent>;
|
|
22
|
+
mousedown$: Observable<PointerEvent & ProxyEvent>;
|
|
23
|
+
mousemove$: Observable<PointerEvent & ProxyEvent>;
|
|
24
|
+
mouseup$: Observable<PointerEvent & ProxyEvent>;
|
|
25
|
+
pointerdown$: Observable<PointerEvent & ProxyEvent>;
|
|
26
|
+
pointermove$: Observable<PointerEvent & ProxyEvent>;
|
|
27
|
+
pointercancel$: Observable<PointerEvent & ProxyEvent>;
|
|
28
|
+
pointerup$: Observable<PointerEvent & ProxyEvent>;
|
|
29
|
+
touchstart$: Observable<TouchEvent & ProxyEvent>;
|
|
30
|
+
touchmove$: Observable<TouchEvent & ProxyEvent>;
|
|
31
|
+
touchend$: Observable<TouchEvent & ProxyEvent>;
|
|
32
|
+
wheel$: Observable<WheelEvent & ProxyEvent>;
|
|
33
|
+
keydown$: Observable<KeyboardEvent & ProxyEvent>;
|
|
34
|
+
}
|
|
35
|
+
export declare class ProxyEventHandlersBlueprint extends ProxyEventObservablesBlueprint implements ProxyEventHandlersImplementation {
|
|
36
|
+
contextmenu: (e: MouseEvent & ProxyEvent) => void;
|
|
37
|
+
resize: (e: UIEvent & ProxyEvent) => void;
|
|
38
|
+
mousedown: (e: PointerEvent & ProxyEvent) => void;
|
|
39
|
+
mousemove: (e: PointerEvent & ProxyEvent) => void;
|
|
40
|
+
mouseup: (e: PointerEvent & ProxyEvent) => void;
|
|
41
|
+
pointerdown: (e: PointerEvent & ProxyEvent) => void;
|
|
42
|
+
pointermove: (e: PointerEvent & ProxyEvent) => void;
|
|
43
|
+
pointercancel: (e: PointerEvent & ProxyEvent) => void;
|
|
44
|
+
pointerup: (e: PointerEvent & ProxyEvent) => void;
|
|
45
|
+
touchstart: (e: TouchEvent & ProxyEvent) => void;
|
|
46
|
+
touchmove: (e: TouchEvent & ProxyEvent) => void;
|
|
47
|
+
touchend: (e: TouchEvent & ProxyEvent) => void;
|
|
48
|
+
wheel: (e: WheelEvent & ProxyEvent) => void;
|
|
49
|
+
keydown: (e: KeyboardEvent & ProxyEvent) => void;
|
|
50
|
+
}
|
|
51
|
+
export declare class AppProxyEventHandlersBlueprint {
|
|
52
|
+
contextmenu$?: () => Observable<MouseEvent & ProxyEvent>;
|
|
53
|
+
resize$?: () => Observable<UIEvent & ProxyEvent>;
|
|
54
|
+
mousedown$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
55
|
+
mousemove$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
56
|
+
mouseup$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
57
|
+
pointerdown$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
58
|
+
pointermove$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
59
|
+
pointercancel$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
60
|
+
pointerup$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
61
|
+
touchstart$?: () => Observable<TouchEvent & ProxyEvent>;
|
|
62
|
+
touchmove$?: () => Observable<TouchEvent & ProxyEvent>;
|
|
63
|
+
touchend$?: () => Observable<TouchEvent & ProxyEvent>;
|
|
64
|
+
wheel$?: () => Observable<WheelEvent & ProxyEvent>;
|
|
65
|
+
keydown$?: () => Observable<KeyboardEvent & ProxyEvent>;
|
|
66
|
+
contextmenu: (e: MouseEvent & ProxyEvent) => void;
|
|
67
|
+
resize: (e: UIEvent & ProxyEvent) => void;
|
|
68
|
+
mousedown: (e: PointerEvent & ProxyEvent) => void;
|
|
69
|
+
mousemove: (e: PointerEvent & ProxyEvent) => void;
|
|
70
|
+
mouseup: (e: PointerEvent & ProxyEvent) => void;
|
|
71
|
+
pointerdown: (e: PointerEvent & ProxyEvent) => void;
|
|
72
|
+
pointermove: (e: PointerEvent & ProxyEvent) => void;
|
|
73
|
+
pointercancel: (e: PointerEvent & ProxyEvent) => void;
|
|
74
|
+
pointerup: (e: PointerEvent & ProxyEvent) => void;
|
|
75
|
+
touchstart: (e: TouchEvent & ProxyEvent) => void;
|
|
76
|
+
touchmove: (e: TouchEvent & ProxyEvent) => void;
|
|
77
|
+
touchend: (e: TouchEvent & ProxyEvent) => void;
|
|
78
|
+
wheel: (e: WheelEvent & ProxyEvent) => void;
|
|
79
|
+
keydown: (e: KeyboardEvent & ProxyEvent) => void;
|
|
80
|
+
}
|
|
81
|
+
export declare class RegisterProxyEventHandlersBlueprint {
|
|
82
|
+
contextmenu$?: () => Observable<Event>;
|
|
83
|
+
resize$?: () => Observable<Event>;
|
|
84
|
+
mousedown$?: () => Observable<Event>;
|
|
85
|
+
mousemove$?: () => Observable<Event>;
|
|
86
|
+
mouseup$?: () => Observable<Event>;
|
|
87
|
+
pointerdown$?: () => Observable<Event>;
|
|
88
|
+
pointermove$?: () => Observable<Event>;
|
|
89
|
+
pointercancel$?: () => Observable<Event>;
|
|
90
|
+
pointerup$?: () => Observable<Event>;
|
|
91
|
+
touchstart$?: () => Observable<Event>;
|
|
92
|
+
touchmove$?: () => Observable<Event>;
|
|
93
|
+
touchend$?: () => Observable<Event>;
|
|
94
|
+
wheel$?: () => Observable<Event>;
|
|
95
|
+
keydown$?: () => Observable<Event>;
|
|
96
|
+
}
|
package/dist/common/index.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface
|
|
1
|
+
import { RegisterPropsBlueprint } from '../blueprints/props.blueprint';
|
|
2
|
+
export interface AppModulePropsMessageEvent extends MessageEvent<Omit<RegisterPropsBlueprint, "canvas" | "location" | "loaderDataSources"> & {
|
|
3
3
|
/**
|
|
4
4
|
* The canvas element based on.
|
|
5
5
|
*
|
|
6
|
-
* @
|
|
6
|
+
* @default `undefined`
|
|
7
7
|
*/
|
|
8
8
|
canvas?: OffscreenCanvas;
|
|
9
|
-
}
|
|
10
|
-
export interface CoreModuleMessageEvent extends MessageEvent<CoreModuleMessageEventData> {
|
|
9
|
+
}> {
|
|
11
10
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from './canvas.interface';
|
|
2
2
|
export * from './core.interface';
|
|
3
|
-
export * from './event.interface';
|
|
4
3
|
export * from './module.interface';
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
4
|
+
export * from './proxy-event.interface';
|
|
5
|
+
export * from './loader.interface';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { JsonSerializable } from 'threads';
|
|
2
|
+
import { CubeTextureLoader, Texture, VideoTexture } from 'three';
|
|
3
|
+
import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
4
|
+
/** @description The sources of the {@link LoaderResource resources} to load. */
|
|
5
|
+
export interface LoaderSource {
|
|
6
|
+
name: string;
|
|
7
|
+
type: "cubeTexture" | "texture" | "gltfModel" | "video" | "audio";
|
|
8
|
+
path: string | string[];
|
|
9
|
+
}
|
|
10
|
+
/** @description Supported loadable resource. */
|
|
11
|
+
export type LoaderResource = GLTF | Texture | CubeTextureLoader | VideoTexture | AudioBuffer;
|
|
12
|
+
/** @description Represent a loaded resource. */
|
|
13
|
+
export interface LoadedResourcePayload {
|
|
14
|
+
source: LoaderSource;
|
|
15
|
+
resource?: LoaderResource;
|
|
16
|
+
/** @description The number of loaded resources. */
|
|
17
|
+
loadedCount: number;
|
|
18
|
+
/** @description The number of resources to load. */
|
|
19
|
+
toLoadCount: number;
|
|
20
|
+
}
|
|
21
|
+
export interface SerializedLoadedResourcePayload extends Omit<LoadedResourcePayload, "resource"> {
|
|
22
|
+
resource?: JsonSerializable;
|
|
23
|
+
}
|
|
@@ -8,7 +8,7 @@ export interface Module extends Disposable {
|
|
|
8
8
|
/**
|
|
9
9
|
* @description Module initializer method.
|
|
10
10
|
*
|
|
11
|
-
* Can be used for on-launch initialization (when the app is constructed) if the {@link
|
|
11
|
+
* Can be used for on-launch initialization (when the app is constructed) if the {@link RegisterPropsBlueprint.initOnConstruct initOnConstruct} param is `true` or manually later in the code.
|
|
12
12
|
*/
|
|
13
13
|
init(...props: any[]): void;
|
|
14
14
|
/**
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { Observable, Subject } from 'rxjs';
|
|
2
2
|
import { PROXY_EVENT_LISTENERS } from '../constants/event.constants';
|
|
3
|
+
export interface ProxyEvent {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
windowWidth: number;
|
|
7
|
+
windowHeight: number;
|
|
8
|
+
}
|
|
3
9
|
/** @description */
|
|
4
10
|
export type ProxyEventListenerKeys = (typeof PROXY_EVENT_LISTENERS)[number];
|
|
5
11
|
export type ProxyEventHandlersImplementation = {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LOADER_SERIALIZED_LOAD_TOKEN = "LOADER_SERIALIZED_LOAD";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AppService } from './app.service';
|
|
2
|
-
import {
|
|
3
|
-
export declare class AppController extends
|
|
2
|
+
import { ProxyEventHandlersBlueprint } from '../../common/blueprints/proxy.blueprint';
|
|
3
|
+
export declare class AppController extends ProxyEventHandlersBlueprint {
|
|
4
4
|
private readonly _service;
|
|
5
5
|
constructor(_service: AppService);
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WorkerThreadModule } from '@quick-threejs/utils';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import {
|
|
3
|
+
import { AppModulePropsMessageEvent, Module, AppProxyEventHandlersBlueprint } from '../../common';
|
|
4
4
|
import { AppController } from './app.controller';
|
|
5
5
|
import { AppService } from './app.service';
|
|
6
6
|
import { TimerModule } from './timer/timer.module';
|
|
@@ -9,7 +9,8 @@ import { RendererModule } from './renderer/renderer.module';
|
|
|
9
9
|
import { SizesModule } from './sizes/sizes.module';
|
|
10
10
|
import { WorldModule } from './world/world.module';
|
|
11
11
|
import { DebugModule } from './debug/debug.module';
|
|
12
|
-
|
|
12
|
+
import { LoaderModule } from './loader/loader.module';
|
|
13
|
+
export declare class AppModule extends AppProxyEventHandlersBlueprint implements Module, WorkerThreadModule {
|
|
13
14
|
private readonly _controller;
|
|
14
15
|
private readonly _service;
|
|
15
16
|
readonly timer: TimerModule;
|
|
@@ -17,10 +18,11 @@ export declare class AppModule extends AppProxyEventHandlersModel implements Mod
|
|
|
17
18
|
readonly camera: CameraModule;
|
|
18
19
|
readonly world: WorldModule;
|
|
19
20
|
readonly renderer: RendererModule;
|
|
21
|
+
readonly loader: LoaderModule;
|
|
20
22
|
readonly debug: DebugModule;
|
|
21
|
-
constructor(_controller: AppController, _service: AppService, timer: TimerModule, sizes: SizesModule, camera: CameraModule, world: WorldModule, renderer: RendererModule, debug: DebugModule);
|
|
23
|
+
constructor(_controller: AppController, _service: AppService, timer: TimerModule, sizes: SizesModule, camera: CameraModule, world: WorldModule, renderer: RendererModule, loader: LoaderModule, debug: DebugModule);
|
|
22
24
|
private _initProxyEvents;
|
|
23
|
-
init(props:
|
|
25
|
+
init(props: AppModulePropsMessageEvent["data"]): void;
|
|
24
26
|
isInitialized(): boolean;
|
|
25
27
|
beforeStep$(): Observable<import('@quick-threejs/utils').NonNever<{
|
|
26
28
|
readonly frame: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ExposedWorkerThreadModule, Methods } from '@quick-threejs/utils';
|
|
2
2
|
import { ProxyEventListenerKeys, ContainerizedApp } from '../../common';
|
|
3
|
-
import { LaunchAppProps } from '../../common/
|
|
3
|
+
import { LaunchAppProps } from '../../common/blueprints';
|
|
4
4
|
import { AppModule } from './app.module';
|
|
5
5
|
export declare const launchApp: (props?: LaunchAppProps<AppModule>) => ContainerizedApp<AppModule>;
|
|
6
6
|
export type ExposedAppModule = Omit<ExposedWorkerThreadModule<Methods<AppModule>>, `${ProxyEventListenerKeys}$` | "init">;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Module } from '../../../common/interfaces';
|
|
2
|
+
import { LoaderController } from './loader.controller';
|
|
3
|
+
import { LoaderService } from './loader.service';
|
|
4
|
+
export declare class LoaderModule implements Module {
|
|
5
|
+
private readonly _controller;
|
|
6
|
+
private readonly _service;
|
|
7
|
+
private readonly _subscriptions;
|
|
8
|
+
constructor(_controller: LoaderController, _service: LoaderService);
|
|
9
|
+
init(): void;
|
|
10
|
+
getLoadedResources(): Record<string, import('../../../common/interfaces').LoaderResource>;
|
|
11
|
+
getLoadedCount(): number;
|
|
12
|
+
getToLoadCount(): number;
|
|
13
|
+
getLoad$(): import('rxjs').Observable<import('../../../common/interfaces').LoadedResourcePayload>;
|
|
14
|
+
getLoadCompleted$(): import('rxjs').Observable<import('../../../common/interfaces').LoadedResourcePayload>;
|
|
15
|
+
dispose(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LoadedResourcePayload, LoaderResource } from '../../../common/interfaces';
|
|
2
|
+
import { LoaderService as RegisterLoaderService } from '../../register/loader/loader.service';
|
|
3
|
+
export declare class LoaderService implements Pick<RegisterLoaderService, "toLoadCount" | "loadedCount" | "loadedResources"> {
|
|
4
|
+
loadedResources: Record<string, LoaderResource>;
|
|
5
|
+
toLoadCount: number;
|
|
6
|
+
loadedCount: number;
|
|
7
|
+
handleLoad(payload: LoadedResourcePayload): void;
|
|
8
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import { ProxyEvent } from '../../../common/interfaces/event.interface';
|
|
2
|
+
import { ProxyEvent } from '../../../common/interfaces/proxy-event.interface';
|
|
3
3
|
import { SizesController } from '../sizes/sizes.controller';
|
|
4
4
|
import { TimerController } from '../timer/timer.controller';
|
|
5
5
|
import { RendererService } from './renderer.service';
|
package/dist/core/index.d.ts
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Observable, Subject } from 'rxjs';
|
|
2
|
+
import { LoadedResourcePayload, SerializedLoadedResourcePayload } from '../../../common/interfaces/loader.interface';
|
|
3
|
+
import { LoaderService } from './loader.service';
|
|
4
|
+
export declare class LoaderController {
|
|
5
|
+
private readonly _service;
|
|
6
|
+
readonly load$$: Subject<Pick<LoadedResourcePayload, "resource" | "source">>;
|
|
7
|
+
readonly load$: Observable<LoadedResourcePayload>;
|
|
8
|
+
readonly serializedLoad$: Observable<SerializedLoadedResourcePayload>;
|
|
9
|
+
readonly loadCompleted$: Observable<LoadedResourcePayload>;
|
|
10
|
+
constructor(_service: LoaderService);
|
|
11
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Module, LoaderSource, LoaderResource } from '../../../common/interfaces';
|
|
2
|
+
import { LoaderController } from './loader.controller';
|
|
3
|
+
import { LoaderService } from './loader.service';
|
|
4
|
+
import { RegisterPropsBlueprint } from '../../../common/blueprints';
|
|
5
|
+
export declare class LoaderModule implements Module {
|
|
6
|
+
private readonly _controller;
|
|
7
|
+
private readonly _service;
|
|
8
|
+
private readonly _props;
|
|
9
|
+
private readonly _subscriptions;
|
|
10
|
+
constructor(_controller: LoaderController, _service: LoaderService, _props: RegisterPropsBlueprint);
|
|
11
|
+
private _performLoad;
|
|
12
|
+
init(sources?: LoaderSource[]): void;
|
|
13
|
+
load(): void;
|
|
14
|
+
getLoadedResources(): Record<string, LoaderResource>;
|
|
15
|
+
getLoaders(): {
|
|
16
|
+
dracoLoader?: import('three/examples/jsm/loaders/DRACOLoader').DRACOLoader;
|
|
17
|
+
gltfLoader?: import('three/examples/jsm/loaders/GLTFLoader').GLTFLoader;
|
|
18
|
+
textureLoader?: import('three').ImageBitmapLoader;
|
|
19
|
+
cubeTextureLoader?: import('three').CubeTextureLoader;
|
|
20
|
+
audioLoader?: import('three').AudioLoader;
|
|
21
|
+
videoLoader?: LoaderService["videoLoader"];
|
|
22
|
+
};
|
|
23
|
+
getSources(): LoaderSource[];
|
|
24
|
+
getLoadedCount(): number;
|
|
25
|
+
getToLoadCount(): number;
|
|
26
|
+
getLoad$(): import('rxjs').Observable<import('../../../common/interfaces').LoadedResourcePayload>;
|
|
27
|
+
getLoadCompleted$(): import('rxjs').Observable<import('../../../common/interfaces').LoadedResourcePayload>;
|
|
28
|
+
setDracoDecoder(dracoDecoderPath: string): void;
|
|
29
|
+
dispose(): void;
|
|
30
|
+
}
|
|
31
|
+
export declare const loaderModule: LoaderModule;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AudioLoader, CubeTextureLoader, ImageBitmapLoader, LoadingManager } from 'three';
|
|
2
|
+
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
3
|
+
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
|
|
4
|
+
import { LoadedResourcePayload, LoaderResource, LoaderSource } from '../../../common/interfaces/loader.interface';
|
|
5
|
+
export declare class LoaderService {
|
|
6
|
+
readonly loadingManager: LoadingManager;
|
|
7
|
+
readonly loaders: {
|
|
8
|
+
dracoLoader?: DRACOLoader;
|
|
9
|
+
gltfLoader?: GLTFLoader;
|
|
10
|
+
textureLoader?: ImageBitmapLoader;
|
|
11
|
+
cubeTextureLoader?: CubeTextureLoader;
|
|
12
|
+
audioLoader?: AudioLoader;
|
|
13
|
+
videoLoader?: LoaderService["videoLoader"];
|
|
14
|
+
};
|
|
15
|
+
sources: LoaderSource[];
|
|
16
|
+
loadedResources: Record<string, LoaderResource>;
|
|
17
|
+
toLoadCount: number;
|
|
18
|
+
loadedCount: number;
|
|
19
|
+
/** @description The video loader. based on {@link HTMLVideoElement}. */
|
|
20
|
+
private get videoLoader();
|
|
21
|
+
private _initLoaders;
|
|
22
|
+
_initSources(sources: LoaderSource[]): void;
|
|
23
|
+
init(sources?: LoaderSource[]): void;
|
|
24
|
+
setDracoDecoder(dracoDecoderPath?: string): void;
|
|
25
|
+
handleLoad({ source, resource, toLoadCount, loadedCount }: LoadedResourcePayload): void;
|
|
26
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RegisterService } from './register.service';
|
|
2
|
-
import {
|
|
3
|
-
export declare class RegisterController extends
|
|
2
|
+
import { ProxyEventHandlersBlueprint } from '../../common/blueprints/proxy.blueprint';
|
|
3
|
+
export declare class RegisterController extends ProxyEventHandlersBlueprint {
|
|
4
4
|
private readonly _service;
|
|
5
5
|
private canvas;
|
|
6
6
|
constructor(_service: RegisterService);
|
|
@@ -1,43 +1,30 @@
|
|
|
1
1
|
import { DependencyContainer } from 'tsyringe';
|
|
2
|
-
import { Module,
|
|
3
|
-
import { ExposedAppModule } from '../app/app.
|
|
4
|
-
import { LoaderModule } from '../loader/loader.module';
|
|
5
|
-
import { ExposedLoaderModule } from '../loader/loader.module-worker';
|
|
2
|
+
import { Module, RegisterPropsBlueprint, RegisterProxyEventHandlersBlueprint } from '../../common';
|
|
3
|
+
import { ExposedAppModule } from '../app/app.util';
|
|
6
4
|
import { RegisterService } from './register.service';
|
|
7
5
|
import { RegisterController } from './register.controller';
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import { LoaderModule } from './loader/loader.module';
|
|
7
|
+
import { LoaderController } from './loader/loader.controller';
|
|
8
|
+
export declare class RegisterModule extends RegisterProxyEventHandlersBlueprint implements Module {
|
|
10
9
|
private readonly _service;
|
|
11
10
|
private readonly _controller;
|
|
12
|
-
readonly
|
|
11
|
+
private readonly _loaderController;
|
|
12
|
+
readonly props: RegisterPropsBlueprint;
|
|
13
|
+
readonly loader: LoaderModule;
|
|
14
|
+
readonly container: DependencyContainer;
|
|
13
15
|
initialized: boolean;
|
|
14
|
-
constructor(
|
|
16
|
+
constructor(_service: RegisterService, _controller: RegisterController, _loaderController: LoaderController, props: RegisterPropsBlueprint, loader: LoaderModule, container: DependencyContainer);
|
|
15
17
|
private _initCanvas;
|
|
16
|
-
private
|
|
18
|
+
private _initService;
|
|
17
19
|
private _initController;
|
|
18
20
|
private _initWorkerThread;
|
|
19
21
|
private _initObservableProxyEvents;
|
|
22
|
+
private _initLoader;
|
|
23
|
+
isInitialized(): boolean;
|
|
20
24
|
init(): Promise<void>;
|
|
21
|
-
loadResources(props: {
|
|
22
|
-
resources: Resource[];
|
|
23
|
-
disposeOnComplete?: boolean;
|
|
24
|
-
onMainThread?: boolean;
|
|
25
|
-
immediateLoad?: boolean;
|
|
26
|
-
onProgress?: (resource: ProgressedResource) => unknown;
|
|
27
|
-
onProgressComplete?: (resource: ProgressedResource) => unknown;
|
|
28
|
-
}): Promise<{
|
|
29
|
-
load: LoaderModule["load"];
|
|
30
|
-
items: ReturnType<LoaderModule["items"]>;
|
|
31
|
-
loaders: ReturnType<LoaderModule["loaders"]>;
|
|
32
|
-
toLoad: ReturnType<LoaderModule["toLoad"]>;
|
|
33
|
-
loaded: ReturnType<LoaderModule["loaded"]>;
|
|
34
|
-
resources: ReturnType<LoaderModule["resources"]>;
|
|
35
|
-
worker?: import('threads').Worker;
|
|
36
|
-
thread?: import('threads').ModuleThread<ExposedLoaderModule> | undefined;
|
|
37
|
-
}>;
|
|
38
|
-
workerPool(): import('@quick-threejs/utils').WorkerPool;
|
|
39
25
|
canvas(): HTMLCanvasElement | undefined;
|
|
40
|
-
worker(): import('threads/dist/types/master').Worker | undefined;
|
|
41
26
|
thread(): import('threads').ModuleThread<ExposedAppModule> | undefined;
|
|
27
|
+
worker(): import('threads/dist/types/master').Worker | undefined;
|
|
28
|
+
workerPool(): import('@quick-threejs/utils').WorkerPool;
|
|
42
29
|
dispose(): Promise<void>;
|
|
43
30
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WorkerThreadResolution } from '@quick-threejs/utils';
|
|
2
|
-
import { ExposedAppModule } from '../app/app.
|
|
2
|
+
import { ExposedAppModule } from '../app/app.util';
|
|
3
3
|
export declare class RegisterService {
|
|
4
4
|
readonly workerPool: import('@quick-threejs/utils').WorkerPool;
|
|
5
5
|
canvas?: HTMLCanvasElement;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ContainerizedApp } from '../../common/interfaces';
|
|
2
|
-
import {
|
|
2
|
+
import { RegisterPropsBlueprint } from '../../common/blueprints';
|
|
3
3
|
import { RegisterModule } from './register.module';
|
|
4
4
|
/**
|
|
5
5
|
* @description
|
|
@@ -8,6 +8,6 @@ import { RegisterModule } from './register.module';
|
|
|
8
8
|
*
|
|
9
9
|
* **🏁 This helper should be called from the main thread**
|
|
10
10
|
*
|
|
11
|
-
* @param props {@link
|
|
11
|
+
* @param props {@link RegisterPropsBlueprint}.
|
|
12
12
|
*/
|
|
13
|
-
export declare const register: (props:
|
|
13
|
+
export declare const register: (props: RegisterPropsBlueprint) => ContainerizedApp<RegisterModule>;
|