@xviewer.js/debug 1.0.0-alpha.5 → 1.0.0-alpha.7

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.
Files changed (85) hide show
  1. package/dist/main.js +35 -96
  2. package/dist/main.js.map +1 -1
  3. package/dist/module.js +35 -96
  4. package/dist/module.js.map +1 -1
  5. package/package.json +2 -2
  6. package/types/Component.d.ts +34 -0
  7. package/types/ComponentManager.d.ts +48 -0
  8. package/types/ComponentScheduler.d.ts +19 -0
  9. package/types/DebugManager.d.ts +2 -0
  10. package/types/DetectUA.d.ts +79 -0
  11. package/types/DeviceInput.d.ts +60 -0
  12. package/types/ObjectInstance.d.ts +7 -0
  13. package/types/Plugin.d.ts +10 -0
  14. package/types/PluginManager.d.ts +17 -0
  15. package/types/Pressability.d.ts +17 -0
  16. package/types/PropertyManager.d.ts +19 -0
  17. package/types/Scheduler.d.ts +13 -0
  18. package/types/SystemInfo.d.ts +24 -0
  19. package/types/Task.d.ts +5 -0
  20. package/types/TaskManager.d.ts +15 -0
  21. package/types/TextureSettings.d.ts +13 -0
  22. package/types/Utils.d.ts +6 -0
  23. package/types/Viewer.d.ts +143 -0
  24. package/types/WebGL.d.ts +14 -0
  25. package/types/asset/ResourceManager.d.ts +42 -0
  26. package/types/asset/aLoader.d.ts +17 -0
  27. package/types/base/EventEmitter.d.ts +29 -0
  28. package/types/base/Logger.d.ts +11 -0
  29. package/types/base/index.d.ts +3 -0
  30. package/types/base/mixin.d.ts +1 -0
  31. package/types/cinestation/CinestationBlendDefinition.d.ts +11 -0
  32. package/types/cinestation/CinestationBrain.d.ts +21 -0
  33. package/types/cinestation/FreelookVirtualCamera.d.ts +63 -0
  34. package/types/cinestation/VirtualCamera.d.ts +25 -0
  35. package/types/cinestation/index.d.ts +4 -0
  36. package/types/enums/Orientation.d.ts +5 -0
  37. package/types/index.d.ts +12 -3
  38. package/types/loader/aEXRLoader.d.ts +5 -0
  39. package/types/loader/aFBXLoader.d.ts +5 -0
  40. package/types/loader/aGLTFLoader.d.ts +5 -0
  41. package/types/loader/aHDRLoader.d.ts +5 -0
  42. package/types/loader/aJSONLoader.d.ts +5 -0
  43. package/types/loader/aTextureLoader.d.ts +5 -0
  44. package/types/loader/index.d.ts +6 -0
  45. package/types/material/getShaderMaterial.d.ts +4 -0
  46. package/types/material/glsl/boxfilterblur.glsl.d.ts +1 -0
  47. package/types/material/glsl/copy.glsl.d.ts +1 -0
  48. package/types/material/glsl/fullscreen.glsl.d.ts +1 -0
  49. package/types/material/glsl/panorama.glsl.d.ts +2 -0
  50. package/types/math/AnimationCurve.d.ts +23 -0
  51. package/types/math/Constant.d.ts +2 -0
  52. package/types/math/Damp.d.ts +10 -0
  53. package/types/math/Interpolation.d.ts +9 -0
  54. package/types/primitives/Box.d.ts +4 -0
  55. package/types/primitives/Plane.d.ts +4 -0
  56. package/types/primitives/Sphere.d.ts +4 -0
  57. package/types/primitives/index.d.ts +3 -0
  58. package/types/tween/TweenChain.d.ts +15 -0
  59. package/types/tween/TweenManager.d.ts +10 -0
  60. package/types/tween/index.d.ts +3 -0
  61. package/types/types.d.ts +54 -0
  62. package/types/InspectorPlugin.d.ts +0 -22
  63. package/types/StatsPlugin.d.ts +0 -10
  64. package/types/gui/GUI.d.ts +0 -257
  65. package/types/gui/common/UIElement.d.ts +0 -18
  66. package/types/gui/common/UIInteger.d.ts +0 -14
  67. package/types/gui/common/UINumber.d.ts +0 -19
  68. package/types/gui/controllers/BooleanController.d.ts +0 -7
  69. package/types/gui/controllers/ColorController.d.ts +0 -18
  70. package/types/gui/controllers/Controller.d.ts +0 -207
  71. package/types/gui/controllers/CurveController.d.ts +0 -8
  72. package/types/gui/controllers/FunctionController.d.ts +0 -6
  73. package/types/gui/controllers/ImageController.d.ts +0 -12
  74. package/types/gui/controllers/NumberController.d.ts +0 -32
  75. package/types/gui/controllers/OptionController.d.ts +0 -11
  76. package/types/gui/controllers/StringController.d.ts +0 -7
  77. package/types/gui/controllers/TextureController.d.ts +0 -9
  78. package/types/gui/controllers/VectorController.d.ts +0 -19
  79. package/types/gui/curve/CurveEditor.d.ts +0 -26
  80. package/types/gui/curve/CurveViewer.d.ts +0 -53
  81. package/types/gui/curve/IAnimationCurve.d.ts +0 -8
  82. package/types/gui/curve/ICurvePoint.d.ts +0 -6
  83. package/types/gui/utils/getColorFormat.d.ts +0 -21
  84. package/types/gui/utils/index.d.ts +0 -6
  85. package/types/gui/utils/normalizeColorString.d.ts +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xviewer.js/debug",
3
- "version": "1.0.0-alpha.5",
3
+ "version": "1.0.0-alpha.7",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -18,6 +18,6 @@
18
18
  "types/**/*"
19
19
  ],
20
20
  "dependencies": {
21
- "@xviewer.js/core": "1.0.0-alpha.5"
21
+ "@xviewer.js/core": "1.0.0-alpha.7"
22
22
  }
23
23
  }
@@ -0,0 +1,34 @@
1
+ import { Object3D } from "three";
2
+ import { Viewer } from "./Viewer";
3
+ import { ComponentManager } from "./ComponentManager";
4
+ import { ObjectInstance } from "./ObjectInstance";
5
+ export declare class Component<T extends Object3D = Object3D> extends ObjectInstance {
6
+ get enabled(): boolean;
7
+ set enabled(v: boolean);
8
+ private _enabled;
9
+ node: T;
10
+ viewer: Viewer;
11
+ manager: ComponentManager;
12
+ type: string;
13
+ onLoad?(): void;
14
+ onEnable?(): void;
15
+ onDisable?(): void;
16
+ onDestroy?(): void;
17
+ start?(): void;
18
+ update?(dt: number): void;
19
+ lastUpdate?(dt: number): void;
20
+ flags: {
21
+ Destroyed?: boolean;
22
+ OnLoadCalled?: boolean;
23
+ OnEnableCalled?: boolean;
24
+ StartCalled?: boolean;
25
+ Deactivating?: boolean;
26
+ IsStartCalled?: boolean;
27
+ };
28
+ protected _onPreDestroy(): void;
29
+ schedule(callback: Function, interval: number, repeat?: number): void;
30
+ unshedule(callback: Function): void;
31
+ unscheduleAll(): void;
32
+ destroy(): boolean;
33
+ destroyImmediate(): void;
34
+ }
@@ -0,0 +1,48 @@
1
+ import { Object3D } from "three";
2
+ import { Scheduler } from "./Scheduler";
3
+ import { Component } from "./Component";
4
+ import { ComponentScheduler } from "./ComponentScheduler";
5
+ import { Viewer } from "./Viewer";
6
+ type ComponentConstructor = new () => Component;
7
+ interface DependentInfo {
8
+ mode: DependentMode;
9
+ components: ComponentConstructor[];
10
+ }
11
+ export declare enum DependentMode {
12
+ /** Check only, throw error if dependent components do not exist. */
13
+ CheckOnly = 0,
14
+ /** Auto add if dependent components do not exist. */
15
+ AutoAdd = 1
16
+ }
17
+ export declare function dependencies(componentOrComponents: ComponentConstructor | ComponentConstructor[], mode?: DependentMode): <T extends ComponentConstructor>(target: T) => void;
18
+ export declare class ComponentManager {
19
+ static _dependenciesMap: Map<ComponentConstructor, DependentInfo>;
20
+ private _viewer;
21
+ private _scheduler;
22
+ private _componentScheduler;
23
+ private _componentsMap;
24
+ get viewer(): Viewer;
25
+ get scheduler(): Scheduler;
26
+ get componentScheduler(): ComponentScheduler;
27
+ constructor(viewer: Viewer);
28
+ destroy(): void;
29
+ update(dt: number): void;
30
+ destroyComponents(node: Object3D): void;
31
+ activeComponents(node: Object3D): void;
32
+ addComponent<T extends Component>(node: Object3D | Component, instance: T): T;
33
+ addComponent<T extends Component>(node: Object3D | Component, constructor: {
34
+ new (): T;
35
+ }): T;
36
+ removeComponent(node: Object3D, component: Component): this;
37
+ getComponent<T extends Component>(node: Object3D, constructor: {
38
+ new (): T;
39
+ }, autoAdd?: boolean): T;
40
+ getComponentsInChidren<T extends Component>(node: Object3D, constructor: {
41
+ new (): T;
42
+ }, out?: T[]): T[];
43
+ traverseComponents(callback: (comp: Component) => void): void;
44
+ private _addDendencies;
45
+ private _findComponent;
46
+ protected _activeComponent(comp: Component, active: boolean): void;
47
+ }
48
+ export {};
@@ -0,0 +1,19 @@
1
+ import { Component } from "./Component";
2
+ declare class Invoker<T> {
3
+ protected _targets: T[];
4
+ protected _callback: (target: T, dt: number) => any;
5
+ constructor(callback: (target: T, dt: number) => any);
6
+ add(target: any): void;
7
+ remove(target: any): void;
8
+ invoke(dt: number): void;
9
+ }
10
+ export declare class ComponentScheduler {
11
+ startInvoker: Invoker<Component>;
12
+ updateInvoker: Invoker<Component>;
13
+ lastUpdateInvoker: Invoker<Component>;
14
+ start(): void;
15
+ update(dt: number): void;
16
+ lastUpdate(dt: number): void;
17
+ enableComponent(comp: Component, enable: boolean): void;
18
+ }
19
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare class DebugManager {
2
+ }
@@ -0,0 +1,79 @@
1
+ export interface IDeviceResult {
2
+ version: string;
3
+ }
4
+ export interface IBrowserResult {
5
+ name: string;
6
+ version: string;
7
+ }
8
+ export declare class DetectUA {
9
+ userAgent: string;
10
+ private isAndroidDevice;
11
+ private iOSDevice;
12
+ /**
13
+ * Detect a users browser, browser version and whether it is a mobile-, tablet- or desktop device
14
+ *
15
+ * @param forceUserAgent Force a user agent string (useful for testing)
16
+ */
17
+ constructor(forceUserAgent?: string);
18
+ /**
19
+ * Match entry based on position found in the user-agent string
20
+ *
21
+ * @param pattern regular expression pattern
22
+ */
23
+ private match;
24
+ /**
25
+ * Returns if the device is a mobile device
26
+ */
27
+ get isMobile(): boolean;
28
+ /**
29
+ * Returns if the device is a tablet device
30
+ */
31
+ get isTablet(): boolean;
32
+ /**
33
+ * Returns if the device is a desktop device
34
+ */
35
+ get isDesktop(): boolean;
36
+ /**
37
+ * Returns if the device is running MacOS (and if so which version)
38
+ *
39
+ * '5' => Leopard'
40
+ * '6' => Snow Leopard'
41
+ * '7' => Lion'
42
+ * '8' => Mountain Lion'
43
+ * '9' => Mavericks'
44
+ * '10' => Yosemite'
45
+ * '11' => El Capitan'
46
+ * '12' => Sierra'
47
+ * '13' => High Sierra'
48
+ * '14' => Mojave'
49
+ * '15' => Catalina'
50
+ */
51
+ get isMacOS(): IDeviceResult | boolean;
52
+ /**
53
+ * Returns if the device is running Windows (and if so which version)
54
+ *
55
+ * 'NT' => 'NT'
56
+ * 'XP' => 'XP'
57
+ * 'NT 5.0' => '2000'
58
+ * 'NT 5.1' => 'XP'
59
+ * 'NT 5.2' => '2003'
60
+ * 'NT 6.0' => 'Vista'
61
+ * 'NT 6.1' => '7'
62
+ * 'NT 6.2' => '8'
63
+ * 'NT 6.3' => '8.1'
64
+ * 'NT 10.0' => '10'
65
+ */
66
+ get isWindows(): IDeviceResult | boolean;
67
+ /**
68
+ * Returns if the device is an iOS device (and if so which version)
69
+ */
70
+ get isiOS(): IDeviceResult | boolean;
71
+ /**
72
+ * Returns if the device is an Android device (and if so which version)
73
+ */
74
+ get isAndroid(): IDeviceResult | boolean;
75
+ /**
76
+ * Returns the browser name and version
77
+ */
78
+ get browser(): IBrowserResult | boolean;
79
+ }
@@ -0,0 +1,60 @@
1
+ import { Vector2 } from "three";
2
+ import { ConnTarget } from "./Pressability";
3
+ import { Viewer } from "./Viewer";
4
+ export declare class DeviceInput {
5
+ viewer: Viewer;
6
+ static readonly CLICK = "click";
7
+ static readonly MOUSE_WHEEL = "mousewheel";
8
+ static readonly TOUCH_START = "touchstart";
9
+ static readonly TOUCH_END = "touchend";
10
+ static readonly TOUCH_MOVE = "touchmove";
11
+ static readonly POINTER_DOWN = "pointerdown";
12
+ static readonly POINTER_UP = "pointerup";
13
+ static readonly POINTER_MOVE = "pointermove";
14
+ static readonly POINTER_OVER = "pointerover";
15
+ static readonly POINTER_OUT = "pointerout";
16
+ static readonly KEYDOWN = "keydown";
17
+ static readonly KEYPRESS = "keypress";
18
+ static readonly KEYUP = "keyup";
19
+ static readonly RESIZE = "resize";
20
+ private _listeners;
21
+ private _mouseWheel;
22
+ private _touches;
23
+ private _touchCount;
24
+ private _pointerButton;
25
+ private _pointerPosition;
26
+ private _pointer;
27
+ private _keys;
28
+ private _pressability;
29
+ get pointerButton(): number;
30
+ get pointer(): Vector2;
31
+ get pointerPosition(): Vector2;
32
+ get mouseWheel(): number;
33
+ get touchCount(): number;
34
+ get touches(): {
35
+ id: number;
36
+ position: Vector2;
37
+ }[];
38
+ get keys(): {
39
+ [k: string]: boolean;
40
+ };
41
+ constructor(viewer: Viewer);
42
+ addEventListeners(): void;
43
+ removeAllListeners(): void;
44
+ connect(target: ConnTarget, event: string): void;
45
+ disconnect(target: ConnTarget): void;
46
+ private _addEventListener;
47
+ private _remapPointer;
48
+ private _remapTouch;
49
+ private _computePointer;
50
+ private _onPointerDown;
51
+ private _onPointerUp;
52
+ private _onPointerMove;
53
+ private _onMouseWheel;
54
+ private _onTouchStart;
55
+ private _onTouchEnd;
56
+ private _onTouchMove;
57
+ private _onKeyDown;
58
+ private _onKeyPress;
59
+ private _onKeyUp;
60
+ }
@@ -0,0 +1,7 @@
1
+ export declare class ObjectInstance {
2
+ static _instanceCount: number;
3
+ instanceId: number;
4
+ uuid: string;
5
+ name: string;
6
+ type: string;
7
+ }
@@ -0,0 +1,10 @@
1
+ import { ObjectInstance } from "./ObjectInstance";
2
+ import { Viewer } from "./Viewer";
3
+ export declare class Plugin extends ObjectInstance {
4
+ viewer: Viewer;
5
+ type: string;
6
+ install?(): void;
7
+ uninstall?(): void;
8
+ onUpdate?(dt: number): void;
9
+ onRender?(dt: number): void;
10
+ }
@@ -0,0 +1,17 @@
1
+ import { Plugin } from "./Plugin";
2
+ import { Viewer } from "./Viewer";
3
+ import { __C } from "./types";
4
+ export declare class PluginManager {
5
+ private _viewer;
6
+ private _plugins;
7
+ private _pluginsMap;
8
+ get viewer(): Viewer;
9
+ constructor(viewer: Viewer);
10
+ destroy(): void;
11
+ update(dt: number): void;
12
+ render(dt: number): void;
13
+ traversePlugins(callback: (plugin: Plugin) => void): void;
14
+ getPlugin<T extends Plugin>(plugin: new (...args: any[]) => T, autoAdd?: boolean): T;
15
+ addPlugin<T extends Plugin, K extends __C<T>>(plugin: T | K & __C<T>): T;
16
+ removePlugin<T extends Plugin, K extends __C<T>>(plugin: T | K & __C<T>): void;
17
+ }
@@ -0,0 +1,17 @@
1
+ import { Camera, Intersection, Object3D, Vector2 } from "three";
2
+ export interface ConnTarget {
3
+ node: Object3D;
4
+ emit(name: string, e: {
5
+ intersects: Intersection[];
6
+ }): void;
7
+ has(name: string): boolean;
8
+ }
9
+ export declare class Pressability {
10
+ private _raycaster;
11
+ private _connectors;
12
+ connect(target: ConnTarget): void;
13
+ disconnect(target: ConnTarget): void;
14
+ pointerDown(pointer: Vector2, camera: Camera): void;
15
+ pointerUp(pointer: Vector2, camera: Camera): void;
16
+ pointerMove(pointer: Vector2, camera: Camera): void;
17
+ }
@@ -0,0 +1,19 @@
1
+ export declare class PropertyManager {
2
+ static _propertiesMap: Map<Object, Object>;
3
+ static _getProperties(target: object): Object;
4
+ static _hasProperties(target: object): boolean;
5
+ static _getMergedProperties(target: Object): any;
6
+ }
7
+ export interface IPropertyOptions {
8
+ dir?: string;
9
+ parent?: string;
10
+ max?: number;
11
+ min?: number;
12
+ step?: number;
13
+ value?: any;
14
+ name?: string;
15
+ }
16
+ type PropertyDecorator = (target: Object, propertyKey: string) => void;
17
+ export declare function property(options?: IPropertyOptions): PropertyDecorator;
18
+ export declare function property(...args: Parameters<PropertyDecorator>): void;
19
+ export {};
@@ -0,0 +1,13 @@
1
+ export interface ICallTarget {
2
+ uuid: string;
3
+ }
4
+ export declare class Scheduler {
5
+ private _callers;
6
+ private _callersArray;
7
+ pause(target: ICallTarget): void;
8
+ resume(target: ICallTarget): void;
9
+ schedule(target: ICallTarget, callback: Function, interval: number, repeat: number): void;
10
+ unshedule(target: ICallTarget, callback: Function): void;
11
+ unscheduleAll(target: ICallTarget): void;
12
+ update(dt: number): void;
13
+ }
@@ -0,0 +1,24 @@
1
+ export declare class SystemInfo {
2
+ static isMobile: boolean;
3
+ static isDesktop: boolean;
4
+ static device: string;
5
+ static isAndroid: boolean;
6
+ static isIOS: boolean;
7
+ static isMacOS: boolean;
8
+ static isWindows: boolean;
9
+ static isLinux: boolean;
10
+ static ua: string;
11
+ static isEdge: boolean;
12
+ static isIE: boolean;
13
+ static isFirefox: boolean;
14
+ static isChrome: boolean;
15
+ static isOpera: boolean;
16
+ static isSafari: boolean;
17
+ static isSupportMSAA: boolean;
18
+ static isSupportOgg: boolean;
19
+ static isRetina: boolean;
20
+ static devicePixelRatio: number;
21
+ static cpuCoreCount: number;
22
+ static baseUrl: string;
23
+ static isIFrame: boolean;
24
+ }
@@ -0,0 +1,5 @@
1
+ export declare class Task {
2
+ excute: () => void;
3
+ name: string;
4
+ constructor(excute: () => void, name?: string);
5
+ }
@@ -0,0 +1,15 @@
1
+ import { Task } from "./Task";
2
+ import { EventEmitter } from "./base";
3
+ export declare class TaskManager extends EventEmitter {
4
+ onComplete?: () => void;
5
+ onProgress?: (task: Task, loaded: number, total: number) => void;
6
+ onError?: (task: Task) => void;
7
+ private _tasks;
8
+ private _taskIndex;
9
+ private _percent;
10
+ get percent(): number;
11
+ constructor(onComplete?: () => void, onProgress?: (task: Task, loaded: number, total: number) => void, onError?: (task: Task) => void);
12
+ destroy(): void;
13
+ add(task: Task): void;
14
+ update(): void;
15
+ }
@@ -0,0 +1,13 @@
1
+ import { Mapping, PixelFormat, TextureDataType, TextureFilter, Vector2, Wrapping } from "three";
2
+ export interface TextureSettings {
3
+ flipY?: boolean;
4
+ mapping?: Mapping;
5
+ wrapS?: Wrapping;
6
+ wrapT?: Wrapping;
7
+ magFilter?: TextureFilter;
8
+ minFilter?: TextureFilter;
9
+ format?: PixelFormat;
10
+ dataType?: TextureDataType;
11
+ anisotropy?: number;
12
+ repeat?: Vector2;
13
+ }
@@ -0,0 +1,6 @@
1
+ import { __C, __P } from "./types";
2
+ export declare function applyProps<T, K extends __C<T>>(target: T & {
3
+ copy?: Function;
4
+ }, props: __P<T, K>): T & {
5
+ copy?: Function;
6
+ };
@@ -0,0 +1,143 @@
1
+ import { BufferGeometry, Camera, ColorSpace, DataTexture, DirectionalLightShadow, Euler, Material, Mesh, Object3D, OrthographicCamera, PerspectiveCamera, Scene, ShaderMaterial, ShadowMapType, Texture, TextureDataType, ToneMapping, Vector3, WebGLCubeRenderTarget, WebGLRenderer, WebGLRendererParameters, WebGLRenderTarget } from "three";
2
+ import { EventEmitter } from "./base";
3
+ import { ComponentManager } from "./ComponentManager";
4
+ import { AssetProperties, LoaderConstructor } from "./asset/ResourceManager";
5
+ import { __C, __P } from "./types";
6
+ import { Component } from "./Component";
7
+ import { TextureSettings } from "./TextureSettings";
8
+ import { Plugin } from "./Plugin";
9
+ export declare class Viewer extends EventEmitter {
10
+ static __target: Vector3;
11
+ static __worldPos: Vector3;
12
+ static _getClassInstance(constructor: any, args?: any[]): any;
13
+ static _shadowCameraKeys: string[];
14
+ static _setDirectLightShadow(shadow: DirectionalLightShadow, props: number[]): DirectionalLightShadow;
15
+ static CompileMaterial(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Material | Material[]): void;
16
+ static CompileObject3D(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Object3D): void;
17
+ static CompileTexture(renderer: WebGLRenderer, target: Texture | Texture[]): void;
18
+ static Blit(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget, material: ShaderMaterial, lod?: number, face?: number): void;
19
+ static GetFullscreenTriangle(): BufferGeometry<import("three").NormalBufferAttributes>;
20
+ static fullscreenMesh: Mesh;
21
+ static fullscreenCamera: OrthographicCamera;
22
+ private _root;
23
+ private _canvas;
24
+ private _gl;
25
+ private _RENDER_TARGET_FLOAT_TYPE;
26
+ private _DATA_FLOAT_TYPE;
27
+ private _scene;
28
+ private _camera;
29
+ private _renderer;
30
+ private _input;
31
+ private _dpr;
32
+ private _width;
33
+ private _height;
34
+ private _viewport;
35
+ private _orientation;
36
+ private _running;
37
+ private _rootRotated;
38
+ private _time;
39
+ private _lastTime;
40
+ private _targetFrameRate;
41
+ private _autoResize;
42
+ private _taskManager;
43
+ private _resourceManager;
44
+ private _componentManager;
45
+ private _pluginManager;
46
+ private _tweenManager;
47
+ get root(): HTMLElement;
48
+ get time(): number;
49
+ get scene(): Scene;
50
+ get camera(): PerspectiveCamera;
51
+ get renderer(): WebGLRenderer;
52
+ get canvas(): HTMLCanvasElement;
53
+ get gl(): WebGL2RenderingContext | WebGLRenderingContext;
54
+ get RENDER_TARGET_FLOAT_TYPE(): TextureDataType;
55
+ get DATA_FLOAT_TYPE(): TextureDataType;
56
+ get dpr(): number;
57
+ get width(): number;
58
+ get height(): number;
59
+ get viewport(): {
60
+ width: number;
61
+ height: number;
62
+ factor: number;
63
+ };
64
+ get rootRotated(): boolean;
65
+ constructor({ root, canvas, autoStart, autoResize, shadows, camera, targetFrameRate, colorSpace, toneMapping, toneMappingExposure, maxDPR, path, resourcePath, dracoPath, loader, tasker, ...webglOpts }?: {
66
+ root?: HTMLElement;
67
+ canvas?: HTMLCanvasElement;
68
+ targetFrameRate?: number;
69
+ autoStart?: boolean;
70
+ autoResize?: boolean;
71
+ shadows?: boolean | ShadowMapType;
72
+ colorSpace?: ColorSpace;
73
+ toneMapping?: ToneMapping;
74
+ toneMappingExposure?: number;
75
+ maxDPR?: number;
76
+ path?: string;
77
+ resourcePath?: string;
78
+ dracoPath?: string;
79
+ camera?: {
80
+ fov?: number;
81
+ aspect?: number;
82
+ near?: number;
83
+ far?: number;
84
+ position?: Vector3;
85
+ rotation?: Euler;
86
+ };
87
+ loader?: {
88
+ onLoad?: () => void;
89
+ onProgress?: (url: string, loaded: number, total: number) => void;
90
+ onError?: (url: string) => void;
91
+ };
92
+ tasker?: {
93
+ onComplete?: () => void;
94
+ onProgress?: (target: Object, loaded: number, total: number) => void;
95
+ onError?: (target: Object) => void;
96
+ };
97
+ } & WebGLRendererParameters);
98
+ destroy(): void;
99
+ private _addDefaultLoaders;
100
+ private _frame;
101
+ loop(dt: number): void;
102
+ update(dt: number): void;
103
+ render(dt: number): void;
104
+ _onRender(dt: number): void;
105
+ _onResize(width: number, height: number): void;
106
+ start(): this;
107
+ stop(): this;
108
+ resize(width?: number, height?: number): void;
109
+ loadAsset(props: AssetProperties & TextureSettings): Promise<any>;
110
+ addLoader(Loader: LoaderConstructor): void;
111
+ load({ url, ext, onProgress, castShadow, receiveShadow, ...props }: AssetProperties & __P<Object3D, typeof Object3D>): Promise<any>;
112
+ tween(target: Object): import("./tween").Tween<Object>;
113
+ timeline(target: Object): import("./tween").TweenChain;
114
+ killTweensOf(target: Object): void;
115
+ traverseMaterials(callback: (mat: Material) => void): void;
116
+ traversePlugins(callback: (plugin: Plugin) => void): void;
117
+ getPlugin<T extends Plugin>(plugin: new (...args: any[]) => T, autoAdd?: boolean): T;
118
+ addPlugin<T extends Plugin, K extends __C<T>>(plugin: T | K & __C<T>, props?: __P<T, K>): T;
119
+ removePlugin<T extends Plugin, K extends __C<T>>(plugin: T | K & __C<T>): void;
120
+ getComponent<T extends Component>(node: Object3D, constructor: {
121
+ new (): T;
122
+ }, autoAdd?: boolean): T;
123
+ traverseComponents(callback: (comp: Component) => void): void;
124
+ addComponent<T extends Component>(node: Object3D | Component, instance: T): T;
125
+ addComponent<T extends Component>(node: Object3D | Component, constructor: {
126
+ new (): T;
127
+ }): T;
128
+ removeComponent(node: Object3D, component: Component): ComponentManager;
129
+ addNode<T, K extends __C<T>>(object: T | K & __C<T>, props?: __P<T, K>): T;
130
+ removeNode(node: Object3D): void;
131
+ activeNode(node: Object3D, active: boolean): Object3D<import("three").Object3DEventMap>;
132
+ createRenderTarget(width: number, height: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean): WebGLRenderTarget<Texture>;
133
+ createCubeRenderTarget(size: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean): WebGLCubeRenderTarget;
134
+ createDataTexture(data: BufferSource, width: number, height: number, floatType?: boolean, nearest?: boolean): DataTexture;
135
+ /**
136
+ * 传送门,得到一个全新的场景
137
+ * @param callback 禁止使用异步函数,会导致状态错误
138
+ * @returns
139
+ */
140
+ portal<T = any>(callback: () => T): T;
141
+ compile(target?: Object3D | Scene | Material | Texture): void;
142
+ compile(target?: Material[]): void;
143
+ }
@@ -0,0 +1,14 @@
1
+ import { WebGLRendererParameters } from "three";
2
+ export declare function parepareWebGL(canvas: HTMLCanvasElement, props: WebGLRendererParameters): {
3
+ gl: WebGL2RenderingContext;
4
+ RENDER_TARGET_FLOAT_TYPE: 1016;
5
+ DATA_FLOAT_TYPE: 1015;
6
+ } | {
7
+ gl: WebGLRenderingContext;
8
+ RENDER_TARGET_FLOAT_TYPE: 1016 | 1015;
9
+ DATA_FLOAT_TYPE: 1015;
10
+ } | {
11
+ gl: WebGLRenderingContext;
12
+ RENDER_TARGET_FLOAT_TYPE: 1009;
13
+ DATA_FLOAT_TYPE: 1009;
14
+ };
@@ -0,0 +1,42 @@
1
+ import { LoadingManager } from "three";
2
+ import { TextureSettings } from "../TextureSettings";
3
+ import { aLoader } from "./aLoader";
4
+ export interface AssetProperties {
5
+ ext?: string;
6
+ url?: string | File | {
7
+ mainFile: File;
8
+ additionalFiles: File[];
9
+ };
10
+ onProgress?: (event: ProgressEvent) => void;
11
+ }
12
+ export type LoaderConstructor = new (manager: ResourceManager) => aLoader;
13
+ export declare class ResourceManager {
14
+ static extension(path: string): string;
15
+ static dirname(path: string): string;
16
+ static basename(path: string, ext?: string): string;
17
+ static _parseURL(uri: any): {
18
+ url: string;
19
+ file: any;
20
+ ext: string;
21
+ };
22
+ static _getTextureKey(url: string, settings: TextureSettings): string;
23
+ static _texSettingKeys: string[];
24
+ static _splitTextureSettings(props: TextureSettings & {
25
+ [k: string]: any;
26
+ }): {};
27
+ path: string;
28
+ resourcePath: string;
29
+ dracoPath: string;
30
+ loadingManager: LoadingManager;
31
+ private _caches;
32
+ private _loaders;
33
+ constructor(props: {
34
+ path: string;
35
+ resourcePath: string;
36
+ dracoPath: string;
37
+ loadingManager: LoadingManager;
38
+ });
39
+ destroy(): void;
40
+ addLoader(Loader: LoaderConstructor): void;
41
+ loadAsset<T = any>({ url, ext, onProgress, ...props }: AssetProperties & TextureSettings): Promise<T>;
42
+ }
@@ -0,0 +1,17 @@
1
+ import { Object3D } from "three";
2
+ import { ResourceManager } from "./ResourceManager";
3
+ import { TextureSettings } from "../TextureSettings";
4
+ export interface LoadProperties {
5
+ url: string;
6
+ texSettings?: TextureSettings;
7
+ onLoad: (asset: any) => void;
8
+ onProgress?: (event: ProgressEvent) => void;
9
+ onError?: (event: ErrorEvent) => void;
10
+ }
11
+ export declare abstract class aLoader {
12
+ manager: ResourceManager;
13
+ static _setMeshData(node: Object3D): Object3D<import("three").Object3DEventMap>;
14
+ constructor(manager: ResourceManager);
15
+ abstract extension: string[];
16
+ abstract load(props: LoadProperties): void;
17
+ }