@quick-threejs/reactive 0.1.24 → 0.1.26
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-Xeth1BSd.js +34 -0
- package/dist/app.module-ZQDNY2JF.mjs +6121 -0
- package/dist/common/blueprints/index.d.ts +2 -0
- package/dist/common/blueprints/props.blueprint.d.ts +105 -0
- package/dist/common/blueprints/proxy.blueprint.d.ts +96 -0
- package/dist/common/enums/index.d.ts +0 -1
- package/dist/common/index.d.ts +2 -2
- package/dist/common/interfaces/core.interface.d.ts +4 -5
- package/dist/common/interfaces/index.d.ts +2 -2
- package/dist/common/interfaces/loader.interface.d.ts +23 -0
- package/dist/common/interfaces/module.interface.d.ts +10 -2
- package/dist/common/{types/object.type.d.ts → interfaces/proxy-event.interface.d.ts} +6 -0
- package/dist/common/tokens/index.d.ts +2 -0
- package/dist/common/tokens/ioc.token.d.ts +1 -0
- package/dist/common/tokens/loader.token.d.ts +1 -0
- package/dist/core/app/app.controller.d.ts +5 -9
- package/dist/core/app/app.module.d.ts +23 -17
- package/dist/core/app/{app.component.d.ts → app.service.d.ts} +5 -3
- package/dist/core/app/app.util.d.ts +6 -0
- package/dist/core/app/camera/camera.controller.d.ts +4 -8
- package/dist/core/app/camera/camera.module.d.ts +6 -7
- package/dist/core/app/camera/{camera.component.d.ts → camera.service.d.ts} +4 -4
- package/dist/core/app/debug/debug.controller.d.ts +3 -4
- package/dist/core/app/debug/debug.module.d.ts +10 -8
- package/dist/core/app/debug/{debug.component.d.ts → debug.service.d.ts} +10 -10
- 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 +6 -8
- package/dist/core/app/renderer/renderer.module.d.ts +6 -8
- package/dist/core/app/renderer/renderer.service.d.ts +19 -0
- package/dist/core/app/sizes/sizes.controller.d.ts +5 -7
- package/dist/core/app/sizes/sizes.module.d.ts +4 -5
- package/dist/core/app/sizes/{sizes.component.d.ts → sizes.service.d.ts} +1 -1
- package/dist/core/app/timer/timer.controller.d.ts +18 -12
- package/dist/core/app/timer/timer.module.d.ts +22 -12
- package/dist/core/app/timer/timer.service.d.ts +10 -0
- package/dist/core/app/world/world.controller.d.ts +0 -3
- package/dist/core/app/world/world.module.d.ts +3 -6
- package/dist/core/app/world/{world.component.d.ts → world.service.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 +5 -9
- package/dist/core/register/register.module.d.ts +23 -39
- package/dist/core/register/register.service.d.ts +9 -0
- package/dist/core/register/register.util.d.ts +8 -5
- package/dist/main.js +3 -12
- package/dist/main.mjs +1516 -1942
- package/dist/main.worker.d.ts +1 -1
- package/dist/worker.js +1 -3
- package/dist/worker.mjs +32 -315
- package/package.json +8 -5
- package/dist/app.module-Da11YIUG.js +0 -29
- package/dist/app.module-Dg_0i25D.mjs +0 -2640
- package/dist/common/enums/lifecycle.enum.d.ts +0 -10
- package/dist/common/interfaces/event.interface.d.ts +0 -10
- 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 -8
- 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-props.model.d.ts +0 -75
- package/dist/common/models/register-proxy-event-handler.model.d.ts +0 -17
- package/dist/common/types/index.d.ts +0 -1
- package/dist/core/app/app.module-worker.d.ts +0 -5
- package/dist/core/app/renderer/renderer.component.d.ts +0 -19
- package/dist/core/app/timer/timer.component.d.ts +0 -8
- package/dist/core/loader/loader.component.d.ts +0 -25
- package/dist/core/loader/loader.controller.d.ts +0 -9
- package/dist/core/loader/loader.module-worker.d.ts +0 -3
- package/dist/core/loader/loader.module.d.ts +0 -34
- package/dist/core/register/register.component.d.ts +0 -13
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { RegisterModule } from '../../core';
|
|
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 {
|
|
8
|
+
/**
|
|
9
|
+
* @description The app worker logic location.
|
|
10
|
+
*
|
|
11
|
+
* @required
|
|
12
|
+
*/
|
|
13
|
+
location: string;
|
|
14
|
+
/**
|
|
15
|
+
* @description Initialize the app on construct.
|
|
16
|
+
*
|
|
17
|
+
* @default true
|
|
18
|
+
*/
|
|
19
|
+
initOnConstruct?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* @description App `canvas` element reference.
|
|
22
|
+
*
|
|
23
|
+
* @default undefined
|
|
24
|
+
*/
|
|
25
|
+
canvas?: HTMLCanvasElement;
|
|
26
|
+
/**
|
|
27
|
+
* @description Set the `canvas` view in fullscreen and auto-resize it.
|
|
28
|
+
*
|
|
29
|
+
* @default true
|
|
30
|
+
*/
|
|
31
|
+
fullScreen?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Default used camera.
|
|
34
|
+
*
|
|
35
|
+
* @see {@link DefaultCameraType}
|
|
36
|
+
*
|
|
37
|
+
* @default DefaultCameraType.PERSPECTIVE
|
|
38
|
+
*/
|
|
39
|
+
defaultCamera?: DefaultCameraType;
|
|
40
|
+
/**
|
|
41
|
+
* @description Start timer update on launch.
|
|
42
|
+
*
|
|
43
|
+
* @default true
|
|
44
|
+
*/
|
|
45
|
+
startTimer?: boolean;
|
|
46
|
+
/**
|
|
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
|
|
62
|
+
*
|
|
63
|
+
* @default undefined
|
|
64
|
+
*/
|
|
65
|
+
enableDebug?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Define the {@link THREE.AxesHelper} sizes.
|
|
68
|
+
*
|
|
69
|
+
* @remark __Deactivated if the value is `0` or `undefined`__
|
|
70
|
+
* @remark __This property depends on {@link RegisterPropsBlueprint.enableDebug enableDebug}__
|
|
71
|
+
*
|
|
72
|
+
* @default undefined
|
|
73
|
+
*/
|
|
74
|
+
axesSizes?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Define the {@link THREE.GridHelper} sizes.
|
|
77
|
+
*
|
|
78
|
+
* @remark __Deactivated if the value is `0` or `undefined`__
|
|
79
|
+
* @remark __This property depends on {@link RegisterPropsBlueprint.enableDebug enableDebug}__
|
|
80
|
+
*
|
|
81
|
+
* @default undefined
|
|
82
|
+
*/
|
|
83
|
+
gridSizes?: number;
|
|
84
|
+
/**
|
|
85
|
+
* Display a mini perfective camera at the top right corner of the screen.
|
|
86
|
+
*
|
|
87
|
+
* @remark __This property depends on {@link RegisterPropsBlueprint.enableDebug enableDebug}__
|
|
88
|
+
*
|
|
89
|
+
* @default false
|
|
90
|
+
*/
|
|
91
|
+
withMiniCamera?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* @description Handler called when the app is ready.
|
|
94
|
+
*
|
|
95
|
+
* @default undefined
|
|
96
|
+
*/
|
|
97
|
+
onReady?: (app: ContainerizedApp<RegisterModule>) => unknown;
|
|
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
|
}
|
|
@@ -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
|
+
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { DependencyContainer, Disposable } from 'tsyringe';
|
|
1
2
|
/**
|
|
2
3
|
* @description Module representation.
|
|
3
4
|
*
|
|
4
5
|
* @important Each module should `implement` this interface.
|
|
5
6
|
*/
|
|
6
|
-
export interface Module {
|
|
7
|
+
export interface Module extends Disposable {
|
|
7
8
|
/**
|
|
8
9
|
* @description Module initializer method.
|
|
9
10
|
*
|
|
10
|
-
* Can be used for
|
|
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.
|
|
11
12
|
*/
|
|
12
13
|
init(...props: any[]): void;
|
|
13
14
|
/**
|
|
@@ -17,3 +18,10 @@ export interface Module {
|
|
|
17
18
|
*/
|
|
18
19
|
dispose(): void;
|
|
19
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* @description Containerized App representation.
|
|
23
|
+
*/
|
|
24
|
+
export interface ContainerizedApp<M extends Module = Module> {
|
|
25
|
+
container: DependencyContainer;
|
|
26
|
+
module: M;
|
|
27
|
+
}
|
|
@@ -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 CONTAINER_TOKEN = "CONTAINER";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LOADER_SERIALIZED_LOAD_TOKEN = "LOADER_SERIALIZED_LOAD";
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
private readonly component;
|
|
7
|
-
readonly lifecycle$$: Subject<AppLifecycleState>;
|
|
8
|
-
readonly lifecycle$: Observable<AppLifecycleState>;
|
|
9
|
-
constructor(component: AppComponent);
|
|
1
|
+
import { AppService } from './app.service';
|
|
2
|
+
import { ProxyEventHandlersBlueprint } from '../../common/blueprints/proxy.blueprint';
|
|
3
|
+
export declare class AppController extends ProxyEventHandlersBlueprint {
|
|
4
|
+
private readonly _service;
|
|
5
|
+
constructor(_service: AppService);
|
|
10
6
|
}
|
|
@@ -1,35 +1,41 @@
|
|
|
1
1
|
import { WorkerThreadModule } from '@quick-threejs/utils';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { AppModulePropsMessageEvent, Module, AppProxyEventHandlersBlueprint } from '../../common';
|
|
2
4
|
import { AppController } from './app.controller';
|
|
3
|
-
import {
|
|
5
|
+
import { AppService } from './app.service';
|
|
4
6
|
import { TimerModule } from './timer/timer.module';
|
|
5
7
|
import { CameraModule } from './camera/camera.module';
|
|
6
8
|
import { RendererModule } from './renderer/renderer.module';
|
|
7
9
|
import { SizesModule } from './sizes/sizes.module';
|
|
8
10
|
import { WorldModule } from './world/world.module';
|
|
9
11
|
import { DebugModule } from './debug/debug.module';
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import { CoreModuleMessageEventData } from '../../common/interfaces/core.interface';
|
|
15
|
-
import { Observable } from 'rxjs';
|
|
16
|
-
export declare class AppModule extends AppProxyEventHandlersModel implements Module, WorkerThreadModule {
|
|
17
|
-
private readonly controller;
|
|
18
|
-
private readonly component;
|
|
12
|
+
import { LoaderModule } from './loader/loader.module';
|
|
13
|
+
export declare class AppModule extends AppProxyEventHandlersBlueprint implements Module, WorkerThreadModule {
|
|
14
|
+
private readonly _controller;
|
|
15
|
+
private readonly _service;
|
|
19
16
|
readonly timer: TimerModule;
|
|
20
17
|
readonly sizes: SizesModule;
|
|
21
18
|
readonly camera: CameraModule;
|
|
22
19
|
readonly world: WorldModule;
|
|
23
20
|
readonly renderer: RendererModule;
|
|
21
|
+
readonly loader: LoaderModule;
|
|
24
22
|
readonly debug: DebugModule;
|
|
25
|
-
constructor(
|
|
23
|
+
constructor(_controller: AppController, _service: AppService, timer: TimerModule, sizes: SizesModule, camera: CameraModule, world: WorldModule, renderer: RendererModule, loader: LoaderModule, debug: DebugModule);
|
|
26
24
|
private _initProxyEvents;
|
|
27
|
-
|
|
28
|
-
init(props: CoreModuleMessageEventData): void;
|
|
29
|
-
get canvas(): OffscreenCanvasWithStyle | undefined;
|
|
30
|
-
get initialized(): boolean;
|
|
25
|
+
init(props: AppModulePropsMessageEvent["data"]): void;
|
|
31
26
|
isInitialized(): boolean;
|
|
27
|
+
beforeStep$(): Observable<import('@quick-threejs/utils').NonNever<{
|
|
28
|
+
readonly frame: number;
|
|
29
|
+
readonly initialTime: number;
|
|
30
|
+
currentTime: number;
|
|
31
|
+
deltaTime: number;
|
|
32
|
+
deltaRatio: number;
|
|
33
|
+
elapsedTime: number;
|
|
34
|
+
enabled: boolean;
|
|
35
|
+
step: never;
|
|
36
|
+
}>>;
|
|
37
|
+
step$(): Observable<Omit<import('./timer/timer.service').TimerService, never> & {
|
|
38
|
+
type?: string;
|
|
39
|
+
}>;
|
|
32
40
|
dispose(): void;
|
|
33
|
-
lifecycle$(): Observable<AppLifecycleState>;
|
|
34
41
|
}
|
|
35
|
-
export declare const appModule: AppModule;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ProxyReceiver } from '@quick-threejs/utils';
|
|
2
|
-
import { OffscreenCanvasWithStyle } from '../../common/interfaces
|
|
3
|
-
export declare class
|
|
2
|
+
import { OffscreenCanvasWithStyle } from '../../common/interfaces';
|
|
3
|
+
export declare class AppService {
|
|
4
|
+
private _canvas?;
|
|
4
5
|
readonly proxyReceiver: ProxyReceiver<Record<string, unknown>>;
|
|
5
6
|
initialized: boolean;
|
|
6
|
-
canvas
|
|
7
|
+
get canvas(): OffscreenCanvasWithStyle | undefined;
|
|
8
|
+
set canvas(canvas: OffscreenCanvasWithStyle | OffscreenCanvas);
|
|
7
9
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ExposedWorkerThreadModule, Methods } from '@quick-threejs/utils';
|
|
2
|
+
import { ProxyEventListenerKeys, ContainerizedApp } from '../../common';
|
|
3
|
+
import { LaunchAppProps } from '../../common/blueprints';
|
|
4
|
+
import { AppModule } from './app.module';
|
|
5
|
+
export declare const launchApp: (props?: LaunchAppProps<AppModule>) => ContainerizedApp<AppModule>;
|
|
6
|
+
export type ExposedAppModule = Omit<ExposedWorkerThreadModule<Methods<AppModule>>, `${ProxyEventListenerKeys}$` | "init">;
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CameraComponent } from './camera.component';
|
|
1
|
+
import { CameraService } from './camera.service';
|
|
3
2
|
import { TimerController } from '../timer/timer.controller';
|
|
4
|
-
import { StepPayload } from '../../../common/interfaces/event.interface';
|
|
5
3
|
export declare class CameraController {
|
|
6
|
-
private readonly component;
|
|
7
4
|
private readonly timerController;
|
|
8
|
-
readonly
|
|
9
|
-
readonly
|
|
10
|
-
|
|
11
|
-
constructor(component: CameraComponent, timerController: TimerController);
|
|
5
|
+
private readonly _service;
|
|
6
|
+
readonly step$: TimerController["step$"];
|
|
7
|
+
constructor(timerController: TimerController, _service: CameraService);
|
|
12
8
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Camera, PerspectiveCamera, Quaternion, Vector3 } from 'three';
|
|
2
|
-
import {
|
|
2
|
+
import { CameraService } from './camera.service';
|
|
3
3
|
import { CameraController } from './camera.controller';
|
|
4
|
-
import {
|
|
4
|
+
import { SizesService } from '../sizes/sizes.service';
|
|
5
5
|
import { Module } from '../../../common/interfaces/module.interface';
|
|
6
6
|
export declare class CameraModule implements Module {
|
|
7
|
-
private readonly
|
|
8
|
-
private readonly
|
|
9
|
-
private readonly
|
|
10
|
-
constructor(
|
|
7
|
+
private readonly _sizesService;
|
|
8
|
+
private readonly _controller;
|
|
9
|
+
private readonly _service;
|
|
10
|
+
constructor(_sizesService: SizesService, _controller: CameraController, _service: CameraService);
|
|
11
11
|
init(withMiniCamera?: boolean): void;
|
|
12
12
|
dispose(): void;
|
|
13
13
|
aspectRatio(value?: number): number;
|
|
@@ -16,5 +16,4 @@ export declare class CameraModule implements Module {
|
|
|
16
16
|
miniCamera(value?: PerspectiveCamera): PerspectiveCamera | undefined;
|
|
17
17
|
position(value?: Vector3): Vector3;
|
|
18
18
|
quaternion(value?: Quaternion): Quaternion;
|
|
19
|
-
enabled$(): import('rxjs').Observable<boolean>;
|
|
20
19
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Camera, Euler, PerspectiveCamera, Quaternion, Vector3 } from 'three';
|
|
2
|
-
import {
|
|
2
|
+
import { SizesService } from '../sizes/sizes.service';
|
|
3
3
|
import { DefaultCameraType } from '../../../common/enums/camera.enum';
|
|
4
|
-
export declare class
|
|
5
|
-
private readonly
|
|
4
|
+
export declare class CameraService {
|
|
5
|
+
private readonly _sizesService;
|
|
6
6
|
instance?: Camera;
|
|
7
7
|
miniCamera?: PerspectiveCamera;
|
|
8
8
|
enabled: boolean;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(_sizesService: SizesService);
|
|
10
10
|
set aspectRatio(ratio: number);
|
|
11
11
|
set quaternion(quaternion: Quaternion);
|
|
12
12
|
set position(position: Vector3);
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Subject } from 'rxjs';
|
|
2
1
|
import { TimerController } from '../timer/timer.controller';
|
|
2
|
+
import { CameraService } from '../camera/camera.service';
|
|
3
3
|
export declare class DebugController {
|
|
4
4
|
private readonly timerController;
|
|
5
|
-
readonly
|
|
6
|
-
readonly enable$: import('rxjs').Observable<boolean>;
|
|
5
|
+
private readonly _service;
|
|
7
6
|
readonly step$: TimerController["step$"];
|
|
8
|
-
constructor(timerController: TimerController);
|
|
7
|
+
constructor(timerController: TimerController, _service: CameraService);
|
|
9
8
|
}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import { DebugComponent } from './debug.component';
|
|
2
|
-
import { DebugController } from './debug.controller';
|
|
3
1
|
import { Module } from '../../../common/interfaces/module.interface';
|
|
2
|
+
import { DebugService } from './debug.service';
|
|
3
|
+
import { DebugController } from './debug.controller';
|
|
4
4
|
export declare class DebugModule implements Module {
|
|
5
|
-
readonly
|
|
6
|
-
readonly
|
|
7
|
-
constructor(
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
readonly _service: DebugService;
|
|
6
|
+
readonly _controller: DebugController;
|
|
7
|
+
constructor(_service: DebugService, _controller: DebugController);
|
|
8
|
+
step$(): import('rxjs').Observable<Omit<import('../timer/timer.service').TimerService, never> & {
|
|
9
|
+
type?: string;
|
|
10
|
+
}>;
|
|
11
|
+
init(props?: Parameters<DebugService["activate"]>[0]): void;
|
|
10
12
|
axesHelper(): import('three').AxesHelper | undefined;
|
|
11
13
|
cameraControls(): import('three/examples/jsm/controls/OrbitControls').OrbitControls | undefined;
|
|
12
14
|
cameraHelper(): import('three').CameraHelper | undefined;
|
|
13
15
|
enabled(value?: boolean): boolean;
|
|
14
16
|
gridHelper(): import('three').GridHelper | undefined;
|
|
15
17
|
miniCameraControls(): import('three/examples/jsm/controls/OrbitControls').OrbitControls | undefined;
|
|
16
|
-
|
|
18
|
+
dispose(): void;
|
|
17
19
|
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { AxesHelper, CameraHelper, GridHelper } from 'three';
|
|
2
2
|
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
export declare class
|
|
7
|
-
private readonly
|
|
8
|
-
private readonly
|
|
9
|
-
private readonly
|
|
3
|
+
import { CameraService } from '../camera/camera.service';
|
|
4
|
+
import { AppService } from '../app.service';
|
|
5
|
+
import { WorldService } from '../world/world.service';
|
|
6
|
+
export declare class DebugService {
|
|
7
|
+
private readonly _appService;
|
|
8
|
+
private readonly _cameraService;
|
|
9
|
+
private readonly _worldService;
|
|
10
10
|
enabled: boolean;
|
|
11
11
|
cameraControls?: OrbitControls;
|
|
12
12
|
miniCameraControls?: OrbitControls;
|
|
13
13
|
cameraHelper?: CameraHelper;
|
|
14
14
|
axesHelper?: AxesHelper;
|
|
15
15
|
gridHelper?: GridHelper;
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(_appService: AppService, _cameraService: CameraService, _worldService: WorldService);
|
|
17
17
|
private _setCameraOrbitControl;
|
|
18
18
|
private _setMiniCameraOrbitControls;
|
|
19
19
|
private _setCameraHelper;
|
|
20
20
|
private _setAxesHelper;
|
|
21
21
|
private _setGridHelper;
|
|
22
|
-
|
|
22
|
+
activate(props?: {
|
|
23
23
|
axesSizes?: number;
|
|
24
24
|
gridSizes?: number;
|
|
25
25
|
}): void;
|
|
26
26
|
update(): void;
|
|
27
|
-
|
|
27
|
+
deactivate(): void;
|
|
28
28
|
}
|
|
@@ -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,15 +1,13 @@
|
|
|
1
|
-
import { Observable
|
|
2
|
-
import { ProxyEvent
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
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
|
-
import {
|
|
5
|
+
import { RendererService } from './renderer.service';
|
|
6
6
|
export declare class RendererController {
|
|
7
|
-
private readonly
|
|
7
|
+
private readonly _service;
|
|
8
8
|
private readonly timerController;
|
|
9
9
|
private readonly sizesController;
|
|
10
|
-
readonly
|
|
11
|
-
readonly enable$: Observable<boolean>;
|
|
12
|
-
readonly step$: Observable<StepPayload>;
|
|
10
|
+
readonly step$: TimerController["step$"];
|
|
13
11
|
readonly resize$: Observable<UIEvent & ProxyEvent>;
|
|
14
|
-
constructor(
|
|
12
|
+
constructor(_service: RendererService, timerController: TimerController, sizesController: SizesController);
|
|
15
13
|
}
|