@quick-threejs/reactive 0.1.21 → 0.1.23
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-Da11YIUG.cjs +29 -0
- package/dist/app.module-Dg_0i25D.js +2640 -0
- package/dist/common/constants/event.constants.d.ts +2 -0
- package/dist/common/constants/index.d.ts +1 -0
- package/dist/common/enums/camera.enum.d.ts +4 -0
- package/dist/common/enums/index.d.ts +2 -0
- package/dist/common/enums/lifecycle.enum.d.ts +10 -0
- package/dist/common/index.d.ts +5 -0
- package/dist/common/interfaces/canvas.interface.d.ts +6 -0
- package/dist/common/interfaces/core.interface.d.ts +11 -0
- package/dist/common/interfaces/event.interface.d.ts +10 -0
- package/dist/common/interfaces/index.d.ts +5 -0
- package/dist/common/interfaces/module.interface.d.ts +19 -0
- package/dist/common/interfaces/resource.interface.d.ts +14 -0
- package/dist/common/models/app-proxy-event-handler.model.d.ts +32 -0
- package/dist/common/models/index.d.ts +7 -0
- package/dist/common/models/launch-app-props.model.d.ts +8 -0
- package/dist/common/models/proxy-event-handler.model.d.ts +19 -0
- package/dist/common/models/proxy-event-observables.model.d.ts +20 -0
- package/dist/common/models/proxy-event-subjects.models.d.ts +19 -0
- package/dist/common/models/register-props.model.d.ts +75 -0
- package/dist/common/models/register-proxy-event-handler.model.d.ts +17 -0
- package/dist/common/types/index.d.ts +1 -0
- package/dist/common/types/object.type.d.ts +13 -0
- package/dist/core/app/app.component.d.ts +7 -0
- package/dist/core/app/app.controller.d.ts +10 -0
- package/dist/core/app/app.module-worker.d.ts +5 -0
- package/dist/core/app/app.module.d.ts +35 -0
- package/dist/core/app/camera/camera.component.d.ts +18 -0
- package/dist/core/app/camera/camera.controller.d.ts +12 -0
- package/dist/core/app/camera/camera.module.d.ts +20 -0
- package/dist/core/app/debug/debug.component.d.ts +28 -0
- package/dist/core/app/debug/debug.controller.d.ts +9 -0
- package/dist/core/app/debug/debug.module.d.ts +17 -0
- package/dist/core/app/renderer/renderer.component.d.ts +19 -0
- package/dist/core/app/renderer/renderer.controller.d.ts +15 -0
- package/dist/core/app/renderer/renderer.module.d.ts +17 -0
- package/dist/core/app/sizes/sizes.component.d.ts +10 -0
- package/dist/core/app/sizes/sizes.controller.d.ts +12 -0
- package/dist/core/app/sizes/sizes.module.d.ts +19 -0
- package/dist/core/app/timer/timer.component.d.ts +8 -0
- package/dist/core/app/timer/timer.controller.d.ts +14 -0
- package/dist/core/app/timer/timer.module.d.ts +19 -0
- package/dist/core/app/world/world.component.d.ts +5 -0
- package/dist/core/app/world/world.controller.d.ts +5 -0
- package/dist/core/app/world/world.module.d.ts +14 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/loader/loader.component.d.ts +25 -0
- package/dist/core/loader/loader.controller.d.ts +9 -0
- package/dist/core/loader/loader.module-worker.d.ts +3 -0
- package/dist/core/loader/loader.module.d.ts +34 -0
- package/dist/core/register/register.component.d.ts +13 -0
- package/dist/core/register/register.controller.d.ts +77 -0
- package/dist/core/register/register.module.d.ts +46 -0
- package/dist/core/register/register.util.d.ts +10 -0
- package/dist/main.cjs +12 -0
- package/dist/main.d.ts +2 -28
- package/dist/main.js +2575 -4018
- package/dist/main.worker.d.ts +1 -14
- package/dist/worker.cjs +3 -0
- package/dist/worker.js +318 -0
- package/package.json +18 -11
- package/dist/main.d.mts +0 -28
- package/dist/main.js.map +0 -1
- package/dist/main.mjs +0 -4245
- package/dist/main.mjs.map +0 -1
- package/dist/main.worker-CJCIoHnh.d.mts +0 -728
- package/dist/main.worker-CJCIoHnh.d.ts +0 -728
- package/dist/main.worker.d.mts +0 -14
- package/dist/main.worker.js +0 -3564
- package/dist/main.worker.js.map +0 -1
- package/dist/main.worker.mjs +0 -3550
- package/dist/main.worker.mjs.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const KEYBOARD_EVENT_CODES: string[];
|
|
2
|
+
export declare const PROXY_EVENT_LISTENERS: readonly ["contextmenu", "resize", "mousedown", "mousemove", "mouseup", "pointerdown", "pointermove", "pointercancel", "pointerup", "touchstart", "touchmove", "touchend", "wheel", "keydown"];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './event.constants';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RegisterPropsModel } from '../models/register-props.model';
|
|
2
|
+
export interface CoreModuleMessageEventData extends Omit<RegisterPropsModel, "canvas" | "location"> {
|
|
3
|
+
/**
|
|
4
|
+
* The canvas element based on.
|
|
5
|
+
*
|
|
6
|
+
* @defaultValue `undefined`
|
|
7
|
+
*/
|
|
8
|
+
canvas?: OffscreenCanvas;
|
|
9
|
+
}
|
|
10
|
+
export interface CoreModuleMessageEvent extends MessageEvent<CoreModuleMessageEventData> {
|
|
11
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Module representation.
|
|
3
|
+
*
|
|
4
|
+
* @important Each module should `implement` this interface.
|
|
5
|
+
*/
|
|
6
|
+
export interface Module {
|
|
7
|
+
/**
|
|
8
|
+
* @description Module initializer method.
|
|
9
|
+
*
|
|
10
|
+
* Can be used for direct initialization (when constructing `quick-three`) or manual (later in the code).
|
|
11
|
+
*/
|
|
12
|
+
init(...props: any[]): void;
|
|
13
|
+
/**
|
|
14
|
+
* @description Module disposal.
|
|
15
|
+
*
|
|
16
|
+
* Used to terminate the Module execution and free memory.
|
|
17
|
+
*/
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CubeTextureLoader, Texture, VideoTexture } from 'three';
|
|
2
|
+
import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
3
|
+
export type LoadedResourceItem = GLTF | Texture | CubeTextureLoader | VideoTexture | AudioBuffer;
|
|
4
|
+
export interface Resource {
|
|
5
|
+
name: string;
|
|
6
|
+
type: "cubeTexture" | "texture" | "gltfModel" | "video" | "audio";
|
|
7
|
+
path: string | string[];
|
|
8
|
+
}
|
|
9
|
+
export interface ProgressedResource {
|
|
10
|
+
file?: LoadedResourceItem;
|
|
11
|
+
resource: Resource;
|
|
12
|
+
loaded: number;
|
|
13
|
+
toLoad: number;
|
|
14
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { ProxyEvent } from 'main';
|
|
3
|
+
export declare class AppProxyEventHandlersModel {
|
|
4
|
+
contextmenu$?: () => Observable<MouseEvent & ProxyEvent>;
|
|
5
|
+
resize$?: () => Observable<UIEvent & ProxyEvent>;
|
|
6
|
+
mousedown$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
7
|
+
mousemove$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
8
|
+
mouseup$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
9
|
+
pointerdown$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
10
|
+
pointermove$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
11
|
+
pointercancel$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
12
|
+
pointerup$?: () => Observable<PointerEvent & ProxyEvent>;
|
|
13
|
+
touchstart$?: () => Observable<TouchEvent & ProxyEvent>;
|
|
14
|
+
touchmove$?: () => Observable<TouchEvent & ProxyEvent>;
|
|
15
|
+
touchend$?: () => Observable<TouchEvent & ProxyEvent>;
|
|
16
|
+
wheel$?: () => Observable<WheelEvent & ProxyEvent>;
|
|
17
|
+
keydown$?: () => Observable<KeyboardEvent & ProxyEvent>;
|
|
18
|
+
contextmenu: (e: MouseEvent & ProxyEvent) => void;
|
|
19
|
+
resize: (e: UIEvent & ProxyEvent) => void;
|
|
20
|
+
mousedown: (e: PointerEvent & ProxyEvent) => void;
|
|
21
|
+
mousemove: (e: PointerEvent & ProxyEvent) => void;
|
|
22
|
+
mouseup: (e: PointerEvent & ProxyEvent) => void;
|
|
23
|
+
pointerdown: (e: PointerEvent & ProxyEvent) => void;
|
|
24
|
+
pointermove: (e: PointerEvent & ProxyEvent) => void;
|
|
25
|
+
pointercancel: (e: PointerEvent & ProxyEvent) => void;
|
|
26
|
+
pointerup: (e: PointerEvent & ProxyEvent) => void;
|
|
27
|
+
touchstart: (e: TouchEvent & ProxyEvent) => void;
|
|
28
|
+
touchmove: (e: TouchEvent & ProxyEvent) => void;
|
|
29
|
+
touchend: (e: TouchEvent & ProxyEvent) => void;
|
|
30
|
+
wheel: (e: WheelEvent & ProxyEvent) => void;
|
|
31
|
+
keydown: (e: KeyboardEvent & ProxyEvent) => void;
|
|
32
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './app-proxy-event-handler.model';
|
|
2
|
+
export * from './launch-app-props.model';
|
|
3
|
+
export * from './proxy-event-handler.model';
|
|
4
|
+
export * from './proxy-event-observables.model';
|
|
5
|
+
export * from './proxy-event-subjects.models';
|
|
6
|
+
export * from './register-props.model';
|
|
7
|
+
export * from './register-proxy-event-handler.model';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ProxyEvent } from 'main';
|
|
2
|
+
import { ProxyEventHandlersImplementation } from '../types/object.type';
|
|
3
|
+
import { ProxyEventObservablesModel } from './proxy-event-observables.model';
|
|
4
|
+
export declare class ProxyEventHandlersModel extends ProxyEventObservablesModel implements ProxyEventHandlersImplementation {
|
|
5
|
+
contextmenu: (e: MouseEvent & ProxyEvent) => void;
|
|
6
|
+
resize: (e: UIEvent & ProxyEvent) => void;
|
|
7
|
+
mousedown: (e: PointerEvent & ProxyEvent) => void;
|
|
8
|
+
mousemove: (e: PointerEvent & ProxyEvent) => void;
|
|
9
|
+
mouseup: (e: PointerEvent & ProxyEvent) => void;
|
|
10
|
+
pointerdown: (e: PointerEvent & ProxyEvent) => void;
|
|
11
|
+
pointermove: (e: PointerEvent & ProxyEvent) => void;
|
|
12
|
+
pointercancel: (e: PointerEvent & ProxyEvent) => void;
|
|
13
|
+
pointerup: (e: PointerEvent & ProxyEvent) => void;
|
|
14
|
+
touchstart: (e: TouchEvent & ProxyEvent) => void;
|
|
15
|
+
touchmove: (e: TouchEvent & ProxyEvent) => void;
|
|
16
|
+
touchend: (e: TouchEvent & ProxyEvent) => void;
|
|
17
|
+
wheel: (e: WheelEvent & ProxyEvent) => void;
|
|
18
|
+
keydown: (e: KeyboardEvent & ProxyEvent) => void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { ProxyEvent } from 'main';
|
|
3
|
+
import { ProxyEventSubjectsModel } from './proxy-event-subjects.models';
|
|
4
|
+
import { ProxyEventObservablesImplementation } from '../types/object.type';
|
|
5
|
+
export declare class ProxyEventObservablesModel extends ProxyEventSubjectsModel implements ProxyEventObservablesImplementation {
|
|
6
|
+
contextmenu$: Observable<MouseEvent & ProxyEvent>;
|
|
7
|
+
resize$: Observable<UIEvent & ProxyEvent>;
|
|
8
|
+
mousedown$: Observable<PointerEvent & ProxyEvent>;
|
|
9
|
+
mousemove$: Observable<PointerEvent & ProxyEvent>;
|
|
10
|
+
mouseup$: Observable<PointerEvent & ProxyEvent>;
|
|
11
|
+
pointerdown$: Observable<PointerEvent & ProxyEvent>;
|
|
12
|
+
pointermove$: Observable<PointerEvent & ProxyEvent>;
|
|
13
|
+
pointercancel$: Observable<PointerEvent & ProxyEvent>;
|
|
14
|
+
pointerup$: Observable<PointerEvent & ProxyEvent>;
|
|
15
|
+
touchstart$: Observable<TouchEvent & ProxyEvent>;
|
|
16
|
+
touchmove$: Observable<TouchEvent & ProxyEvent>;
|
|
17
|
+
touchend$: Observable<TouchEvent & ProxyEvent>;
|
|
18
|
+
wheel$: Observable<WheelEvent & ProxyEvent>;
|
|
19
|
+
keydown$: Observable<KeyboardEvent & ProxyEvent>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { ProxyEvent } from 'main';
|
|
3
|
+
import { ProxyEventSubjectsImplementation } from '../types/object.type';
|
|
4
|
+
export declare class ProxyEventSubjectsModel implements ProxyEventSubjectsImplementation {
|
|
5
|
+
contextmenu$$: Subject<MouseEvent & ProxyEvent>;
|
|
6
|
+
resize$$: Subject<UIEvent & ProxyEvent>;
|
|
7
|
+
mousedown$$: Subject<PointerEvent & ProxyEvent>;
|
|
8
|
+
mousemove$$: Subject<PointerEvent & ProxyEvent>;
|
|
9
|
+
mouseup$$: Subject<PointerEvent & ProxyEvent>;
|
|
10
|
+
pointerdown$$: Subject<PointerEvent & ProxyEvent>;
|
|
11
|
+
pointermove$$: Subject<PointerEvent & ProxyEvent>;
|
|
12
|
+
pointercancel$$: Subject<PointerEvent & ProxyEvent>;
|
|
13
|
+
pointerup$$: Subject<PointerEvent & ProxyEvent>;
|
|
14
|
+
touchstart$$: Subject<TouchEvent & ProxyEvent>;
|
|
15
|
+
touchmove$$: Subject<TouchEvent & ProxyEvent>;
|
|
16
|
+
touchend$$: Subject<TouchEvent & ProxyEvent>;
|
|
17
|
+
wheel$$: Subject<WheelEvent & ProxyEvent>;
|
|
18
|
+
keydown$$: Subject<KeyboardEvent & ProxyEvent>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { RegisterModule } from '../../core/register/register.module';
|
|
2
|
+
import { DefaultCameraType } from '../enums/camera.enum';
|
|
3
|
+
/** @description Quick-three register properties. */
|
|
4
|
+
export declare class RegisterPropsModel {
|
|
5
|
+
/**
|
|
6
|
+
* @description The app worker logic location.
|
|
7
|
+
*
|
|
8
|
+
* @required
|
|
9
|
+
*/
|
|
10
|
+
location: string;
|
|
11
|
+
/**
|
|
12
|
+
* @description App `canvas` element reference.
|
|
13
|
+
*
|
|
14
|
+
* @default undefined
|
|
15
|
+
*/
|
|
16
|
+
canvas?: HTMLCanvasElement;
|
|
17
|
+
/**
|
|
18
|
+
* @description Set the `canvas` view in fullscreen and auto-resize it.
|
|
19
|
+
*
|
|
20
|
+
* @default true
|
|
21
|
+
*/
|
|
22
|
+
fullScreen?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Default used camera.
|
|
25
|
+
*
|
|
26
|
+
* @see {@link DefaultCameraType}
|
|
27
|
+
*
|
|
28
|
+
* @default DefaultCameraType.PERSPECTIVE
|
|
29
|
+
*/
|
|
30
|
+
defaultCamera?: DefaultCameraType;
|
|
31
|
+
/**
|
|
32
|
+
* @description Start timer update on launch.
|
|
33
|
+
*
|
|
34
|
+
* @default true
|
|
35
|
+
*/
|
|
36
|
+
startTimer?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Enable the debug mode
|
|
39
|
+
*
|
|
40
|
+
* @default undefined
|
|
41
|
+
*/
|
|
42
|
+
enableDebug?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Define the {@link THREE.AxesHelper} sizes.
|
|
45
|
+
*
|
|
46
|
+
* @remark __Deactivated if the value is `0` or `undefined`__
|
|
47
|
+
* @remark __This property depends on {@link RegisterPropsModel.enableDebug}__
|
|
48
|
+
*
|
|
49
|
+
* @default undefined
|
|
50
|
+
*/
|
|
51
|
+
axesSizes?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Define the {@link THREE.GridHelper} sizes.
|
|
54
|
+
*
|
|
55
|
+
* @remark __Deactivated if the value is `0` or `undefined`__
|
|
56
|
+
* @remark __This property depends on {@link RegisterPropsModel.enableDebug}__
|
|
57
|
+
*
|
|
58
|
+
* @default undefined
|
|
59
|
+
*/
|
|
60
|
+
gridSizes?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Display a mini perfective camera at the top right corner of the screen.
|
|
63
|
+
*
|
|
64
|
+
* @remark __This property depends on {@link RegisterPropsModel.enableDebug}__
|
|
65
|
+
*
|
|
66
|
+
* @default false
|
|
67
|
+
*/
|
|
68
|
+
withMiniCamera?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* @description Handler called when the app is ready.
|
|
71
|
+
*
|
|
72
|
+
* @default undefined
|
|
73
|
+
*/
|
|
74
|
+
onReady?: (register: RegisterModule) => unknown;
|
|
75
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
export declare class RegisterProxyEventHandlersModel {
|
|
3
|
+
contextmenu$?: () => Observable<Event>;
|
|
4
|
+
resize$?: () => Observable<Event>;
|
|
5
|
+
mousedown$?: () => Observable<Event>;
|
|
6
|
+
mousemove$?: () => Observable<Event>;
|
|
7
|
+
mouseup$?: () => Observable<Event>;
|
|
8
|
+
pointerdown$?: () => Observable<Event>;
|
|
9
|
+
pointermove$?: () => Observable<Event>;
|
|
10
|
+
pointercancel$?: () => Observable<Event>;
|
|
11
|
+
pointerup$?: () => Observable<Event>;
|
|
12
|
+
touchstart$?: () => Observable<Event>;
|
|
13
|
+
touchmove$?: () => Observable<Event>;
|
|
14
|
+
touchend$?: () => Observable<Event>;
|
|
15
|
+
wheel$?: () => Observable<Event>;
|
|
16
|
+
keydown$?: () => Observable<Event>;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './object.type';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Observable, Subject } from 'rxjs';
|
|
2
|
+
import { PROXY_EVENT_LISTENERS } from '../constants/event.constants';
|
|
3
|
+
/** @description */
|
|
4
|
+
export type ProxyEventListenerKeys = (typeof PROXY_EVENT_LISTENERS)[number];
|
|
5
|
+
export type ProxyEventHandlersImplementation = {
|
|
6
|
+
[x in ProxyEventListenerKeys]: (event: any) => void;
|
|
7
|
+
};
|
|
8
|
+
export type ProxyEventSubjectsImplementation = {
|
|
9
|
+
[x in `${ProxyEventListenerKeys}$$`]: Subject<any>;
|
|
10
|
+
};
|
|
11
|
+
export type ProxyEventObservablesImplementation = {
|
|
12
|
+
[x in `${ProxyEventListenerKeys}$`]: Observable<any>;
|
|
13
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ProxyReceiver } from '@quick-threejs/utils';
|
|
2
|
+
import { OffscreenCanvasWithStyle } from '../../common/interfaces/canvas.interface';
|
|
3
|
+
export declare class AppComponent {
|
|
4
|
+
readonly proxyReceiver: ProxyReceiver<Record<string, unknown>>;
|
|
5
|
+
initialized: boolean;
|
|
6
|
+
canvas?: OffscreenCanvasWithStyle;
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Observable, Subject } from 'rxjs';
|
|
2
|
+
import { AppComponent } from './app.component';
|
|
3
|
+
import { ProxyEventHandlersModel } from '../../common/models/proxy-event-handler.model';
|
|
4
|
+
import { AppLifecycleState } from '../../common/enums/lifecycle.enum';
|
|
5
|
+
export declare class AppController extends ProxyEventHandlersModel {
|
|
6
|
+
private readonly component;
|
|
7
|
+
readonly lifecycle$$: Subject<AppLifecycleState>;
|
|
8
|
+
readonly lifecycle$: Observable<AppLifecycleState>;
|
|
9
|
+
constructor(component: AppComponent);
|
|
10
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ExposedWorkerThreadModule, Methods } from '@quick-threejs/utils';
|
|
2
|
+
import { AppModule } from './app.module';
|
|
3
|
+
import { LaunchAppProps } from '../../common/models/launch-app-props.model';
|
|
4
|
+
export declare const launchApp: (props?: LaunchAppProps) => AppModule;
|
|
5
|
+
export type ExposedAppModule = ExposedWorkerThreadModule<Methods<AppModule>>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { WorkerThreadModule } from '@quick-threejs/utils';
|
|
2
|
+
import { AppController } from './app.controller';
|
|
3
|
+
import { AppComponent } from './app.component';
|
|
4
|
+
import { TimerModule } from './timer/timer.module';
|
|
5
|
+
import { CameraModule } from './camera/camera.module';
|
|
6
|
+
import { RendererModule } from './renderer/renderer.module';
|
|
7
|
+
import { SizesModule } from './sizes/sizes.module';
|
|
8
|
+
import { WorldModule } from './world/world.module';
|
|
9
|
+
import { DebugModule } from './debug/debug.module';
|
|
10
|
+
import { AppLifecycleState } from '../../common/enums/lifecycle.enum';
|
|
11
|
+
import { AppProxyEventHandlersModel } from '../../common/models/app-proxy-event-handler.model';
|
|
12
|
+
import { Module } from '../../common/interfaces/module.interface';
|
|
13
|
+
import { OffscreenCanvasWithStyle } from '../../common/interfaces/canvas.interface';
|
|
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;
|
|
19
|
+
readonly timer: TimerModule;
|
|
20
|
+
readonly sizes: SizesModule;
|
|
21
|
+
readonly camera: CameraModule;
|
|
22
|
+
readonly world: WorldModule;
|
|
23
|
+
readonly renderer: RendererModule;
|
|
24
|
+
readonly debug: DebugModule;
|
|
25
|
+
constructor(controller: AppController, component: AppComponent, timer: TimerModule, sizes: SizesModule, camera: CameraModule, world: WorldModule, renderer: RendererModule, debug: DebugModule);
|
|
26
|
+
private _initProxyEvents;
|
|
27
|
+
private _onMessage;
|
|
28
|
+
init(props: CoreModuleMessageEventData): void;
|
|
29
|
+
get canvas(): OffscreenCanvasWithStyle | undefined;
|
|
30
|
+
get initialized(): boolean;
|
|
31
|
+
isInitialized(): boolean;
|
|
32
|
+
dispose(): void;
|
|
33
|
+
lifecycle$(): Observable<AppLifecycleState>;
|
|
34
|
+
}
|
|
35
|
+
export declare const appModule: AppModule;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Camera, Euler, PerspectiveCamera, Quaternion, Vector3 } from 'three';
|
|
2
|
+
import { SizesComponent } from '../sizes/sizes.component';
|
|
3
|
+
import { DefaultCameraType } from '../../../common/enums/camera.enum';
|
|
4
|
+
export declare class CameraComponent {
|
|
5
|
+
private readonly sizesComponent;
|
|
6
|
+
instance?: Camera;
|
|
7
|
+
miniCamera?: PerspectiveCamera;
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
constructor(sizesComponent: SizesComponent);
|
|
10
|
+
set aspectRatio(ratio: number);
|
|
11
|
+
set quaternion(quaternion: Quaternion);
|
|
12
|
+
set position(position: Vector3);
|
|
13
|
+
set rotation(rotation: Euler);
|
|
14
|
+
initDefaultCamera(cameraType?: DefaultCameraType): void;
|
|
15
|
+
setMiniCamera(): void;
|
|
16
|
+
removeCamera(): void;
|
|
17
|
+
removeMiniCamera(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Observable, Subject } from 'rxjs';
|
|
2
|
+
import { CameraComponent } from './camera.component';
|
|
3
|
+
import { TimerController } from '../timer/timer.controller';
|
|
4
|
+
import { StepPayload } from '../../../common/interfaces/event.interface';
|
|
5
|
+
export declare class CameraController {
|
|
6
|
+
private readonly component;
|
|
7
|
+
private readonly timerController;
|
|
8
|
+
readonly enable$$: Subject<boolean>;
|
|
9
|
+
readonly enable$: Observable<boolean>;
|
|
10
|
+
readonly step$: Observable<StepPayload>;
|
|
11
|
+
constructor(component: CameraComponent, timerController: TimerController);
|
|
12
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Camera, PerspectiveCamera, Quaternion, Vector3 } from 'three';
|
|
2
|
+
import { CameraComponent } from './camera.component';
|
|
3
|
+
import { CameraController } from './camera.controller';
|
|
4
|
+
import { SizesComponent } from '../sizes/sizes.component';
|
|
5
|
+
import { Module } from '../../../common/interfaces/module.interface';
|
|
6
|
+
export declare class CameraModule implements Module {
|
|
7
|
+
private readonly component;
|
|
8
|
+
private readonly sizesComponent;
|
|
9
|
+
private readonly controller;
|
|
10
|
+
constructor(component: CameraComponent, sizesComponent: SizesComponent, controller: CameraController);
|
|
11
|
+
init(withMiniCamera?: boolean): void;
|
|
12
|
+
dispose(): void;
|
|
13
|
+
aspectRatio(value?: number): number;
|
|
14
|
+
enabled(value?: boolean): boolean;
|
|
15
|
+
instance(value?: Camera): Camera | undefined;
|
|
16
|
+
miniCamera(value?: PerspectiveCamera): PerspectiveCamera | undefined;
|
|
17
|
+
position(value?: Vector3): Vector3;
|
|
18
|
+
quaternion(value?: Quaternion): Quaternion;
|
|
19
|
+
enabled$(): import('rxjs').Observable<boolean>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AxesHelper, CameraHelper, GridHelper } from 'three';
|
|
2
|
+
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
|
3
|
+
import { CameraComponent } from '../camera/camera.component';
|
|
4
|
+
import { AppComponent } from '../app.component';
|
|
5
|
+
import { WorldComponent } from '../world/world.component';
|
|
6
|
+
export declare class DebugComponent {
|
|
7
|
+
private readonly appComponent;
|
|
8
|
+
private readonly cameraComponent;
|
|
9
|
+
private readonly worldComponent;
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
cameraControls?: OrbitControls;
|
|
12
|
+
miniCameraControls?: OrbitControls;
|
|
13
|
+
cameraHelper?: CameraHelper;
|
|
14
|
+
axesHelper?: AxesHelper;
|
|
15
|
+
gridHelper?: GridHelper;
|
|
16
|
+
constructor(appComponent: AppComponent, cameraComponent: CameraComponent, worldComponent: WorldComponent);
|
|
17
|
+
private _setCameraOrbitControl;
|
|
18
|
+
private _setMiniCameraOrbitControls;
|
|
19
|
+
private _setCameraHelper;
|
|
20
|
+
private _setAxesHelper;
|
|
21
|
+
private _setGridHelper;
|
|
22
|
+
init(props?: {
|
|
23
|
+
axesSizes?: number;
|
|
24
|
+
gridSizes?: number;
|
|
25
|
+
}): void;
|
|
26
|
+
update(): void;
|
|
27
|
+
dispose(): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { TimerController } from '../timer/timer.controller';
|
|
3
|
+
export declare class DebugController {
|
|
4
|
+
private readonly timerController;
|
|
5
|
+
readonly enable$$: Subject<boolean>;
|
|
6
|
+
readonly enable$: import('rxjs').Observable<boolean>;
|
|
7
|
+
readonly step$: TimerController["step$"];
|
|
8
|
+
constructor(timerController: TimerController);
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DebugComponent } from './debug.component';
|
|
2
|
+
import { DebugController } from './debug.controller';
|
|
3
|
+
import { Module } from '../../../common/interfaces/module.interface';
|
|
4
|
+
export declare class DebugModule implements Module {
|
|
5
|
+
readonly component: DebugComponent;
|
|
6
|
+
readonly controller: DebugController;
|
|
7
|
+
constructor(component: DebugComponent, controller: DebugController);
|
|
8
|
+
init(props?: Parameters<DebugComponent["init"]>[0]): void;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
axesHelper(): import('three').AxesHelper | undefined;
|
|
11
|
+
cameraControls(): import('three/examples/jsm/controls/OrbitControls').OrbitControls | undefined;
|
|
12
|
+
cameraHelper(): import('three').CameraHelper | undefined;
|
|
13
|
+
enabled(value?: boolean): boolean;
|
|
14
|
+
gridHelper(): import('three').GridHelper | undefined;
|
|
15
|
+
miniCameraControls(): import('three/examples/jsm/controls/OrbitControls').OrbitControls | undefined;
|
|
16
|
+
enabled$(): import('rxjs').Observable<boolean>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { WebGLRenderer } from 'three';
|
|
2
|
+
import { WorldComponent } from '../world/world.component';
|
|
3
|
+
import { CameraComponent } from '../camera/camera.component';
|
|
4
|
+
import { OffscreenCanvasWithStyle } from '../../../common/interfaces/canvas.interface';
|
|
5
|
+
import { SizesComponent } from '../sizes/sizes.component';
|
|
6
|
+
import { DebugComponent } from '../debug/debug.component';
|
|
7
|
+
export declare class RendererComponent {
|
|
8
|
+
private readonly worldComponent;
|
|
9
|
+
private readonly cameraComponent;
|
|
10
|
+
private readonly sizesComponent;
|
|
11
|
+
private readonly debugComponent;
|
|
12
|
+
static readonly RENDERER_PIXEL_RATIO: number;
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
instance?: WebGLRenderer;
|
|
15
|
+
constructor(worldComponent: WorldComponent, cameraComponent: CameraComponent, sizesComponent: SizesComponent, debugComponent: DebugComponent);
|
|
16
|
+
init(canvas: OffscreenCanvasWithStyle): void;
|
|
17
|
+
setSize(width: number, height: number): void;
|
|
18
|
+
render(): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Observable, Subject } from 'rxjs';
|
|
2
|
+
import { ProxyEvent, StepPayload } from 'common';
|
|
3
|
+
import { SizesController } from '../sizes/sizes.controller';
|
|
4
|
+
import { TimerController } from '../timer/timer.controller';
|
|
5
|
+
import { RendererComponent } from './renderer.component';
|
|
6
|
+
export declare class RendererController {
|
|
7
|
+
private readonly rendererComponent;
|
|
8
|
+
private readonly timerController;
|
|
9
|
+
private readonly sizesController;
|
|
10
|
+
readonly enable$$: Subject<boolean>;
|
|
11
|
+
readonly enable$: Observable<boolean>;
|
|
12
|
+
readonly step$: Observable<StepPayload>;
|
|
13
|
+
readonly resize$: Observable<UIEvent & ProxyEvent>;
|
|
14
|
+
constructor(rendererComponent: RendererComponent, timerController: TimerController, sizesController: SizesController);
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Vector2Like } from 'three';
|
|
2
|
+
import { RendererComponent } from './renderer.component';
|
|
3
|
+
import { RendererController } from './renderer.controller';
|
|
4
|
+
import { Module } from '../../../common/interfaces/module.interface';
|
|
5
|
+
import { OffscreenCanvasWithStyle } from '../../../common/interfaces/canvas.interface';
|
|
6
|
+
export declare class RendererModule implements Module {
|
|
7
|
+
private readonly component;
|
|
8
|
+
private readonly controller;
|
|
9
|
+
constructor(component: RendererComponent, controller: RendererController);
|
|
10
|
+
init(canvas: OffscreenCanvasWithStyle): void;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
enabled(value?: boolean): boolean;
|
|
13
|
+
instance(): import('three').WebGLRenderer | undefined;
|
|
14
|
+
setSize(value: Vector2Like): void;
|
|
15
|
+
render(): void;
|
|
16
|
+
enabled$(): import('rxjs').Observable<boolean>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { OffscreenCanvasWithStyle } from '../../../common/interfaces/canvas.interface';
|
|
2
|
+
export declare class SizesComponent {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
aspect: number;
|
|
6
|
+
pixelRatio: number;
|
|
7
|
+
frustrum: number;
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
init(canvas: OffscreenCanvasWithStyle, enabled?: boolean): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Observable, Subject } from 'rxjs';
|
|
2
|
+
import { ProxyEvent } from 'common';
|
|
3
|
+
import { AppController } from '../app.controller';
|
|
4
|
+
import { SizesComponent } from './sizes.component';
|
|
5
|
+
export declare class SizesController {
|
|
6
|
+
private readonly appController;
|
|
7
|
+
private readonly component;
|
|
8
|
+
readonly enable$$: Subject<boolean>;
|
|
9
|
+
readonly enable$: Observable<boolean>;
|
|
10
|
+
readonly resize$: Observable<UIEvent & ProxyEvent>;
|
|
11
|
+
constructor(appController: AppController, component: SizesComponent);
|
|
12
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SizesComponent } from './sizes.component';
|
|
2
|
+
import { SizesController } from './sizes.controller';
|
|
3
|
+
import { Module } from '../../../common/interfaces/module.interface';
|
|
4
|
+
import { OffscreenCanvasWithStyle } from '../../../common/interfaces/canvas.interface';
|
|
5
|
+
export declare class SizesModule implements Module {
|
|
6
|
+
private readonly component;
|
|
7
|
+
private readonly controller;
|
|
8
|
+
constructor(component: SizesComponent, controller: SizesController);
|
|
9
|
+
init(canvas: OffscreenCanvasWithStyle): void;
|
|
10
|
+
dispose(): void;
|
|
11
|
+
aspect(value?: number): number;
|
|
12
|
+
enabled(value?: boolean): boolean;
|
|
13
|
+
frustrum(value?: number): number;
|
|
14
|
+
height(value?: number): number;
|
|
15
|
+
pixelRatio(value?: number): number;
|
|
16
|
+
width(value?: number): number;
|
|
17
|
+
enabled$(): import('rxjs').Observable<boolean>;
|
|
18
|
+
resize$(): import('rxjs').Observable<UIEvent & import('../../../common').ProxyEvent>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { TimerComponent } from './timer.component';
|
|
3
|
+
import { StepPayload } from '../../../common/interfaces/event.interface';
|
|
4
|
+
import { AppController } from '../app.controller';
|
|
5
|
+
export declare class TimerController {
|
|
6
|
+
private readonly component;
|
|
7
|
+
private readonly appController;
|
|
8
|
+
readonly step$$: Subject<StepPayload>;
|
|
9
|
+
readonly enable$$: Subject<boolean>;
|
|
10
|
+
readonly step$: import('rxjs').Observable<StepPayload>;
|
|
11
|
+
readonly enable$: import('rxjs').Observable<boolean>;
|
|
12
|
+
constructor(component: TimerComponent, appController: AppController);
|
|
13
|
+
step(): void;
|
|
14
|
+
}
|