@xviewer.js/core 1.0.4-alpha.0 → 1.0.4-alpha.1
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/main.cjs +3259 -3211
- package/dist/main.cjs.map +1 -1
- package/dist/module.js +3250 -3205
- package/dist/module.js.map +1 -1
- package/package.json +2 -2
- package/types/Component.d.ts +12 -8
- package/types/ComponentManager.d.ts +10 -5
- package/types/ComponentScheduler.d.ts +3 -3
- package/types/Context.d.ts +6 -0
- package/types/DeviceInput.d.ts +22 -11
- package/types/PropertyManager.d.ts +3 -11
- package/types/TaskManager.d.ts +4 -4
- package/types/Viewer.d.ts +77 -63
- package/types/WebGL.d.ts +1 -1
- package/types/asset/Loader.d.ts +3 -3
- package/types/asset/ResourceManager.d.ts +4 -1
- package/types/cinestation/FreelookVirtualCamera.d.ts +2 -1
- package/types/cinestation/VirtualCamera.d.ts +2 -0
- package/types/components/BoxProjection.d.ts +15 -0
- package/types/components/DropFile.d.ts +29 -0
- package/types/components/Environment.d.ts +37 -0
- package/types/components/FreelookVirtualCamera.d.ts +110 -0
- package/types/components/PerformanceMonitor.d.ts +48 -0
- package/types/components/Reflector.d.ts +6 -5
- package/types/components/RenderTexture.d.ts +7 -0
- package/types/components/Renderer.d.ts +6 -0
- package/types/components/UI.d.ts +30 -0
- package/types/components/index.d.ts +8 -1
- package/types/enums/index.d.ts +9 -0
- package/types/index.d.ts +2 -4
- package/types/loaders/KTX2Loader.d.ts +6 -0
- package/types/loaders/SVGLoader.d.ts +8 -0
- package/types/loaders/index.d.ts +2 -0
- package/types/materials/ReflectorMaterial.d.ts +3 -1
- package/types/plugins/BoxProjection.d.ts +2 -2
- package/types/plugins/DropFile.d.ts +16 -7
- package/types/plugins/Environment.d.ts +2 -2
- package/types/plugins/Exporter.d.ts +7 -0
- package/types/plugins/PerformanceMonitor.d.ts +2 -2
- package/types/plugins/UI.d.ts +2 -2
- package/types/plugins/index.d.ts +0 -4
- package/types/types.d.ts +6 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xviewer.js/core",
|
|
3
|
-
"version": "1.0.4-alpha.
|
|
3
|
+
"version": "1.0.4-alpha.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"types/**/*"
|
|
14
14
|
],
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"three": ">= 0.
|
|
16
|
+
"three": ">= 0.179.0"
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
19
19
|
"b:types": "tsc"
|
package/types/Component.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { Object3D } from "three";
|
|
2
2
|
import { Viewer } from "./Viewer";
|
|
3
|
+
import { Context } from "./Context";
|
|
3
4
|
import { ComponentManager } from "./ComponentManager";
|
|
4
5
|
import { ObjectInstance } from "./ObjectInstance";
|
|
5
6
|
export declare class Component<T extends Object3D = Object3D> extends ObjectInstance {
|
|
6
7
|
private _enabled;
|
|
8
|
+
name: string;
|
|
9
|
+
type: string;
|
|
10
|
+
isComponent: boolean;
|
|
11
|
+
order: number;
|
|
7
12
|
node: T;
|
|
8
13
|
viewer: Viewer;
|
|
14
|
+
context: Context;
|
|
9
15
|
manager: ComponentManager;
|
|
10
|
-
isComponent: boolean;
|
|
11
|
-
type: string;
|
|
12
16
|
onLoad?(): void;
|
|
13
17
|
onEnable?(): void;
|
|
14
18
|
onDisable?(): void;
|
|
@@ -19,12 +23,12 @@ export declare class Component<T extends Object3D = Object3D> extends ObjectInst
|
|
|
19
23
|
render?(dt: number): void;
|
|
20
24
|
resize?(width: number, height: number): void;
|
|
21
25
|
flags: {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
destroyed?: boolean;
|
|
27
|
+
onLoadCalled?: boolean;
|
|
28
|
+
onEnableCalled?: boolean;
|
|
29
|
+
startCalled?: boolean;
|
|
30
|
+
deActivating?: boolean;
|
|
31
|
+
isStartCalled?: boolean;
|
|
28
32
|
};
|
|
29
33
|
get enabled(): boolean;
|
|
30
34
|
set enabled(v: boolean);
|
|
@@ -4,9 +4,10 @@ import { Component } from "./Component";
|
|
|
4
4
|
import { ComponentScheduler } from "./ComponentScheduler";
|
|
5
5
|
import { Viewer } from "./Viewer";
|
|
6
6
|
type ComponentConstructor = new (...args: any[]) => Component;
|
|
7
|
-
interface
|
|
8
|
-
mode
|
|
9
|
-
components
|
|
7
|
+
interface ComponentInfo {
|
|
8
|
+
mode?: DependentMode;
|
|
9
|
+
components?: ComponentConstructor[];
|
|
10
|
+
single?: boolean;
|
|
10
11
|
}
|
|
11
12
|
export declare enum DependentMode {
|
|
12
13
|
/** Check only, throw error if dependent components do not exist. */
|
|
@@ -15,8 +16,9 @@ export declare enum DependentMode {
|
|
|
15
16
|
AutoAdd = 1
|
|
16
17
|
}
|
|
17
18
|
export declare function dependencies(componentOrComponents: ComponentConstructor | ComponentConstructor[], mode?: DependentMode): <T extends ComponentConstructor>(target: T) => void;
|
|
19
|
+
export declare function single(): <T extends ComponentConstructor>(target: T) => void;
|
|
18
20
|
export declare class ComponentManager {
|
|
19
|
-
static _infoMap: Map<ComponentConstructor,
|
|
21
|
+
static _infoMap: Map<ComponentConstructor, ComponentInfo>;
|
|
20
22
|
private _viewer;
|
|
21
23
|
private _scheduler;
|
|
22
24
|
private _componentScheduler;
|
|
@@ -38,7 +40,10 @@ export declare class ComponentManager {
|
|
|
38
40
|
removeComponent(node: Object3D, component: Component): this;
|
|
39
41
|
getComponent<T extends Component>(node: Object3D, constructor: {
|
|
40
42
|
new (...args: any[]): T;
|
|
41
|
-
}
|
|
43
|
+
}): T;
|
|
44
|
+
getComponentInChildren<T extends Component>(node: Object3D, constructor: {
|
|
45
|
+
new (): T;
|
|
46
|
+
}): Component<Object3D<import("three").Object3DEventMap>>;
|
|
42
47
|
getComponentsInChidren<T extends Component>(node: Object3D, constructor: {
|
|
43
48
|
new (): T;
|
|
44
49
|
}, out?: T[]): T[];
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Component } from "./Component";
|
|
2
|
-
declare class Invoker<T> {
|
|
2
|
+
declare class Invoker<T extends Component> {
|
|
3
3
|
protected _targets: T[];
|
|
4
4
|
protected _callback: (target: T, ...args: any[]) => any;
|
|
5
5
|
constructor(callback: (target: T, ...args: any[]) => any);
|
|
6
|
-
add(target:
|
|
7
|
-
remove(target:
|
|
6
|
+
add(target: T): void;
|
|
7
|
+
remove(target: T): void;
|
|
8
8
|
invoke(...args: any[]): void;
|
|
9
9
|
}
|
|
10
10
|
export declare class ComponentScheduler {
|
package/types/DeviceInput.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { Vector2 } from "three";
|
|
2
2
|
import { ConnTarget } from "./Pressability";
|
|
3
|
-
import {
|
|
4
|
-
export
|
|
5
|
-
|
|
3
|
+
import { Component } from "./Component";
|
|
4
|
+
export interface InputTarget {
|
|
5
|
+
on?(event: string, cb: (...args: any[]) => void, target: Object, once?: boolean): any;
|
|
6
|
+
off?(event: string, cb: (...args: any[]) => void, target: Object): any;
|
|
7
|
+
removeEventListener?(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
8
|
+
addEventListener?(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
9
|
+
}
|
|
10
|
+
export declare class DeviceInput extends Component {
|
|
6
11
|
static readonly CLICK = "click";
|
|
7
12
|
static readonly MOUSE_WHEEL = "mousewheel";
|
|
8
13
|
static readonly TOUCH_START = "touchstart";
|
|
@@ -16,18 +21,23 @@ export declare class DeviceInput {
|
|
|
16
21
|
static readonly KEYDOWN = "keydown";
|
|
17
22
|
static readonly KEYPRESS = "keypress";
|
|
18
23
|
static readonly KEYUP = "keyup";
|
|
24
|
+
private _target;
|
|
19
25
|
private _listeners;
|
|
20
|
-
private _mouseWheel;
|
|
21
26
|
private _touches;
|
|
22
27
|
private _touchCount;
|
|
23
|
-
private _pointerButton;
|
|
24
|
-
private _pointerPosition;
|
|
25
28
|
private _pointer;
|
|
29
|
+
private _pointerPixel;
|
|
30
|
+
private _pointerButton;
|
|
31
|
+
private _prePointer;
|
|
32
|
+
private _prePointerPixel;
|
|
33
|
+
private _mouseWheel;
|
|
26
34
|
private _keys;
|
|
27
35
|
private _pressability;
|
|
28
|
-
get pointerButton(): number;
|
|
29
36
|
get pointer(): Vector2;
|
|
30
|
-
get
|
|
37
|
+
get pointerPixel(): Vector2;
|
|
38
|
+
get pointerButton(): number;
|
|
39
|
+
get prePointer(): Vector2;
|
|
40
|
+
get prePointerPixel(): Vector2;
|
|
31
41
|
get mouseWheel(): number;
|
|
32
42
|
get touchCount(): number;
|
|
33
43
|
get touches(): {
|
|
@@ -37,9 +47,10 @@ export declare class DeviceInput {
|
|
|
37
47
|
get keys(): {
|
|
38
48
|
[k: string]: boolean;
|
|
39
49
|
};
|
|
40
|
-
constructor(
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
constructor(target: HTMLElement | Document);
|
|
51
|
+
onEnable(): void;
|
|
52
|
+
onDisable(): void;
|
|
53
|
+
lastUpdate(dt: number): void;
|
|
43
54
|
connect(target: ConnTarget, event: string): void;
|
|
44
55
|
disconnect(target: ConnTarget): void;
|
|
45
56
|
private _addEventListener;
|
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
declare class ClassProperties {
|
|
2
|
-
clsName: string;
|
|
3
|
-
private _properties;
|
|
4
|
-
constructor(clsName: string);
|
|
5
|
-
property(propertyKey: string, options?: Object): this;
|
|
6
|
-
applyProperties(target: object): object;
|
|
7
|
-
}
|
|
8
1
|
export declare class PropertyManager {
|
|
9
|
-
static _classMap: Map<String,
|
|
2
|
+
static _classMap: Map<String, Object>;
|
|
10
3
|
static _propertyMap: Map<Object, Object>;
|
|
11
4
|
static _hasProperties(constructor: Function): boolean;
|
|
12
|
-
static _getProperties(constructor: Function,
|
|
5
|
+
static _getProperties(constructor: Function, initProps?: Object): Object;
|
|
13
6
|
static _getMergedProperties(constructor: Function): any;
|
|
14
|
-
static _getClassProperties(clsName: string,
|
|
15
|
-
static _applyClassProperties(clsName: string, constructor: Function): object;
|
|
7
|
+
static _getClassProperties(clsName: string, initProps?: Object): Object;
|
|
16
8
|
}
|
|
17
9
|
export interface IPropertyOptions {
|
|
18
10
|
dir?: string;
|
package/types/TaskManager.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Task } from "./Task";
|
|
2
|
-
|
|
3
|
-
export declare class TaskManager extends EventEmitter {
|
|
2
|
+
export declare class TaskManager {
|
|
4
3
|
onComplete?: () => void;
|
|
5
4
|
onProgress?: (task: Task, loaded: number, total: number) => void;
|
|
6
5
|
onError?: (task: Task) => void;
|
|
7
6
|
private _tasks;
|
|
8
7
|
private _taskIndex;
|
|
9
|
-
private
|
|
10
|
-
|
|
8
|
+
private _interval;
|
|
9
|
+
private _onstartCalled;
|
|
10
|
+
onStart?: () => void;
|
|
11
11
|
constructor(onComplete?: () => void, onProgress?: (task: Task, loaded: number, total: number) => void, onError?: (task: Task) => void);
|
|
12
12
|
destroy(): void;
|
|
13
13
|
add(task: Task): void;
|
package/types/Viewer.d.ts
CHANGED
|
@@ -1,44 +1,35 @@
|
|
|
1
|
-
import { BufferGeometry, Camera,
|
|
1
|
+
import { BufferGeometry, Camera, Color, ColorRepresentation, ColorSpace, DataTexture, LoadingManager, Material, Mesh, Object3D, OrthographicCamera, PerspectiveCamera, Scene, ShaderMaterial, ShadowMapType, Texture, TextureDataType, ToneMapping, Vector3, WebGLCubeRenderTarget, WebGLRenderer, WebGLRendererParameters, WebGLRenderTarget } from "three";
|
|
2
2
|
import { EventEmitter } from "./base";
|
|
3
|
-
import {
|
|
3
|
+
import { ComponentManager } from "./ComponentManager";
|
|
4
4
|
import { DeviceInput } from "./DeviceInput";
|
|
5
|
-
import { Orientation } from "./enums
|
|
6
|
-
import { AssetProperties, LoaderConstructor
|
|
7
|
-
import { __C, __P } from "./types";
|
|
5
|
+
import { Orientation, ResizeMode } from "./enums";
|
|
6
|
+
import { AssetProperties, LoaderConstructor } from "./asset/ResourceManager";
|
|
7
|
+
import { __C, __P, __Properties } from "./types";
|
|
8
8
|
import { Component } from "./Component";
|
|
9
9
|
import { Task } from "./Task";
|
|
10
|
-
import {
|
|
10
|
+
import { Context } from "./Context";
|
|
11
|
+
type SizeFunction = () => number[];
|
|
11
12
|
export declare class Viewer extends EventEmitter {
|
|
12
|
-
static __target: Vector3;
|
|
13
|
-
static __worldPos: Vector3;
|
|
14
|
-
static _shadowCameraKeys: string[];
|
|
15
|
-
static _setDirectLightShadow(shadow: DirectionalLightShadow, props: number[]): DirectionalLightShadow;
|
|
16
|
-
static CompileMaterial(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Material | Material[]): void;
|
|
17
|
-
static CompileObject3D(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Object3D): void;
|
|
18
|
-
static CompileTexture(renderer: WebGLRenderer, target: Texture | Texture[]): void;
|
|
19
|
-
static Blit(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget | null, material: Material, lod?: number, face?: number): void;
|
|
20
|
-
static CreateFullscreenTriangle(): BufferGeometry<import("three").NormalBufferAttributes>;
|
|
21
|
-
static fullscreenMesh: Mesh;
|
|
22
|
-
static fullscreenCamera: OrthographicCamera;
|
|
23
13
|
static instanceCount: number;
|
|
14
|
+
static target: Vector3;
|
|
15
|
+
static worldPos: Vector3;
|
|
16
|
+
static clearColor: Color;
|
|
24
17
|
private _instanceId;
|
|
25
18
|
private _root;
|
|
26
19
|
private _canvas;
|
|
27
|
-
private _container;
|
|
28
20
|
private _gl;
|
|
29
21
|
private _RENDER_TARGET_FLOAT_TYPE;
|
|
30
22
|
private _DATA_FLOAT_TYPE;
|
|
31
|
-
private _scene;
|
|
32
|
-
private _camera;
|
|
33
23
|
private _mount;
|
|
34
|
-
private _renderer;
|
|
35
24
|
private _input;
|
|
36
25
|
private _dpr;
|
|
37
26
|
private _width;
|
|
38
27
|
private _height;
|
|
39
28
|
private _viewport;
|
|
40
|
-
private
|
|
41
|
-
private
|
|
29
|
+
private _resourceOptions;
|
|
30
|
+
private _scene;
|
|
31
|
+
private _camera;
|
|
32
|
+
private _renderer;
|
|
42
33
|
private _running;
|
|
43
34
|
private _rootRotated;
|
|
44
35
|
private _time;
|
|
@@ -46,17 +37,14 @@ export declare class Viewer extends EventEmitter {
|
|
|
46
37
|
private _lastFrameTime;
|
|
47
38
|
private _targetFrameRate;
|
|
48
39
|
private _fixedFrameTime;
|
|
49
|
-
private
|
|
40
|
+
private _windowSize;
|
|
41
|
+
private _orientation;
|
|
50
42
|
private _taskManager;
|
|
51
43
|
private _resourceManager;
|
|
52
44
|
private _componentManager;
|
|
53
45
|
private _loadingManager;
|
|
54
46
|
get root(): HTMLElement;
|
|
55
|
-
get container(): HTMLElement;
|
|
56
47
|
get time(): number;
|
|
57
|
-
get scene(): Scene;
|
|
58
|
-
get camera(): PerspectiveCamera;
|
|
59
|
-
get renderer(): WebGLRenderer;
|
|
60
48
|
get canvas(): HTMLCanvasElement;
|
|
61
49
|
get gl(): WebGL2RenderingContext | WebGLRenderingContext;
|
|
62
50
|
get RENDER_TARGET_FLOAT_TYPE(): TextureDataType;
|
|
@@ -74,78 +62,104 @@ export declare class Viewer extends EventEmitter {
|
|
|
74
62
|
get targetFrameRate(): number;
|
|
75
63
|
set targetFrameRate(v: number);
|
|
76
64
|
get instanceId(): number;
|
|
77
|
-
get
|
|
78
|
-
get
|
|
79
|
-
get
|
|
80
|
-
|
|
65
|
+
get componentManager(): ComponentManager;
|
|
66
|
+
get scene(): Scene;
|
|
67
|
+
get camera(): Camera;
|
|
68
|
+
get renderer(): WebGLRenderer;
|
|
69
|
+
constructor({ root, canvas, input, shadows, sortObjects, resize, orthographic, camera, targetFrameRate, fixedFrameTime, colorSpace, toneMapping, toneMappingExposure, maxDPR, path, resourcePath, dracoPath, orientation, loader, tasker, ...webglOpts }?: {
|
|
70
|
+
/** 根节点,用于屏幕旋转 */
|
|
81
71
|
root?: HTMLElement;
|
|
72
|
+
/** 渲染用的 canvas 元素,如果不提供,默认获取 id 为 "canvas" 的元素 */
|
|
82
73
|
canvas?: HTMLCanvasElement;
|
|
83
|
-
|
|
74
|
+
/** 设备输入容器,默认使用canvas */
|
|
75
|
+
input?: HTMLElement | Document;
|
|
76
|
+
/** 是否开启阴影或阴影类型,true/false 表示默认 PCFSoftShadowMap */
|
|
77
|
+
shadows?: boolean | ShadowMapType;
|
|
78
|
+
/** 渲染是否开启排序,默认 True */
|
|
79
|
+
sortObjects?: boolean;
|
|
80
|
+
/** 渲染目标帧率 (FPS),-1 表示无限制帧率 */
|
|
84
81
|
targetFrameRate?: number;
|
|
82
|
+
/** 是否固定帧时间,true 使用固定 delta 时间 */
|
|
85
83
|
fixedFrameTime?: boolean;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
/** 调整大小模式,AUTO: 自动 resize,MUNUAL: 手动控制 */
|
|
85
|
+
resize?: ResizeMode | SizeFunction;
|
|
86
|
+
/** 渲染器输出的色彩空间,默认 SRGBColorSpace */
|
|
89
87
|
colorSpace?: ColorSpace;
|
|
88
|
+
/** 渲染器的色调映射类型,默认 LinearToneMapping */
|
|
90
89
|
toneMapping?: ToneMapping;
|
|
90
|
+
/** 色调映射曝光值,默认 1 */
|
|
91
91
|
toneMappingExposure?: number;
|
|
92
|
+
/** 最大设备像素比,用于控制高分屏渲染精度 */
|
|
92
93
|
maxDPR?: number;
|
|
94
|
+
/** 模型路径,通常用于加载主模型文件(如 glTF、FBX 等)的基础路径 */
|
|
93
95
|
path?: string;
|
|
96
|
+
/** 资源路径,模型引用的其他资源(如贴图、材质等)的路径 */
|
|
94
97
|
resourcePath?: string;
|
|
98
|
+
/** Draco 压缩解码器路径,默认 Google CDN 地址 */
|
|
95
99
|
dracoPath?: string;
|
|
100
|
+
/** 页面方向,AUTO: 自动,LANDSCAPE: 横屏,PORTRAIT: 竖屏 */
|
|
96
101
|
orientation?: Orientation;
|
|
97
|
-
camera
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
position?: Vector3;
|
|
103
|
-
rotation?: Euler;
|
|
104
|
-
};
|
|
102
|
+
/** Creates an orthographic camera */
|
|
103
|
+
orthographic?: boolean;
|
|
104
|
+
/** A `THREE.Camera` instance or props that go into the default camera */
|
|
105
|
+
camera?: (Camera | __Properties<PerspectiveCamera & OrthographicCamera>);
|
|
106
|
+
/** 加载管理器 */
|
|
105
107
|
loader?: {
|
|
106
|
-
|
|
108
|
+
onComplete?: () => void;
|
|
107
109
|
onProgress?: (url: string, loaded: number, total: number) => void;
|
|
108
110
|
onError?: (url: string) => void;
|
|
109
111
|
};
|
|
112
|
+
/** 任务管理器 */
|
|
110
113
|
tasker?: {
|
|
111
114
|
onComplete?: () => void;
|
|
112
|
-
onProgress?: (
|
|
113
|
-
onError?: (
|
|
115
|
+
onProgress?: (task: Task, loaded: number, total: number) => void;
|
|
116
|
+
onError?: (task: Task) => void;
|
|
114
117
|
};
|
|
115
118
|
} & WebGLRendererParameters);
|
|
116
119
|
destroy(): void;
|
|
117
|
-
|
|
120
|
+
context(context?: Context): Context;
|
|
118
121
|
private _frame;
|
|
119
122
|
loop(dt: number): void;
|
|
120
|
-
update(dt: number): void;
|
|
121
|
-
render(dt: number): void;
|
|
122
|
-
_rendering(dt: number): void;
|
|
123
|
-
_resizing(width: number, height: number): void;
|
|
124
123
|
start(): this;
|
|
125
124
|
stop(): this;
|
|
126
125
|
rotate(): void;
|
|
127
126
|
resize(width?: number, height?: number): void;
|
|
127
|
+
setURLModifier(callback?: (url: string) => string): LoadingManager;
|
|
128
128
|
loadAsset(props: AssetProperties): Promise<any>;
|
|
129
129
|
getLoader(ext: string): import(".").Loader;
|
|
130
130
|
addLoader(Loader: LoaderConstructor): import(".").Loader;
|
|
131
|
-
|
|
132
|
-
traverseComponents(callback: (comp: Component) => void): void;
|
|
133
|
-
mount<T extends Mount>(constructor: {
|
|
131
|
+
getComponent<T extends Component>(constructor: {
|
|
134
132
|
new (...args: any[]): T;
|
|
135
|
-
},
|
|
136
|
-
task(
|
|
133
|
+
}, node?: Object3D): T;
|
|
134
|
+
task<T extends Object3D | Scene | Material | Texture | Function>(target?: T): T;
|
|
135
|
+
task<T extends Material[]>(target?: Material[]): T;
|
|
137
136
|
add<T extends Object3D | Component, K extends __C<T>>(object: T | K & __C<T>, props?: __P<T, K>): T;
|
|
138
137
|
remove<T extends Object3D | Component>(ins: T): T;
|
|
139
138
|
createRenderTarget(width: number, height: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean, depth?: boolean): WebGLRenderTarget<Texture>;
|
|
140
139
|
createCubeRenderTarget(size: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean, depth?: boolean): WebGLCubeRenderTarget;
|
|
141
140
|
createDataTexture(data: ArrayBufferView, width: number, height: number, floatType?: boolean, nearest?: boolean): DataTexture;
|
|
142
|
-
/**
|
|
143
|
-
* 传送门,得到一个全新的场景
|
|
144
|
-
* @param callback 禁止使用异步函数,会导致状态错误
|
|
145
|
-
* @returns
|
|
146
|
-
*/
|
|
147
|
-
portal<T = any>(callback: () => T, sceneNew?: Scene): T;
|
|
148
141
|
blit(renderTarget: WebGLRenderTarget, material: Material, lod?: number, face?: number): void;
|
|
142
|
+
copy(src: WebGLRenderTarget | Texture, dest: WebGLRenderTarget): void;
|
|
143
|
+
clearColor(renderTarget: WebGLRenderTarget, color: ColorRepresentation, alpha?: number): void;
|
|
144
|
+
blur(blurLevel: number, shadingScale: number, inputBuffer: WebGLRenderTarget, tempBuffer: WebGLRenderTarget, outputBuffer?: WebGLRenderTarget, fixedOutput?: boolean): void;
|
|
145
|
+
render(renderTarget: WebGLRenderTarget | null, node: Object3D, camera: Camera, clearColor?: ColorRepresentation, clearAlpha?: number): void;
|
|
149
146
|
compile(target?: Object3D | Scene | Material | Texture): void;
|
|
150
147
|
compile(target?: Material[]): void;
|
|
148
|
+
static fullscreenMesh: Mesh;
|
|
149
|
+
static fullscreenCamera: OrthographicCamera;
|
|
150
|
+
static copyMaterial: ShaderMaterial;
|
|
151
|
+
static clearMaterial: ShaderMaterial;
|
|
152
|
+
static blur9Material: ShaderMaterial;
|
|
153
|
+
static blur9VaryingMaterial: ShaderMaterial;
|
|
154
|
+
static CompileMaterial(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Material | Material[]): void;
|
|
155
|
+
static CompileObject3D(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Object3D): void;
|
|
156
|
+
static CompileTexture(renderer: WebGLRenderer, target: Texture | Texture[]): void;
|
|
157
|
+
static Blur(renderer: WebGLRenderer, blurLevel: number, shadingScale: number, inputBuffer: WebGLRenderTarget, tempBuffer: WebGLRenderTarget, outputBuffer?: WebGLRenderTarget, fixedOutput?: boolean): void;
|
|
158
|
+
static Blit(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget | null, material: Material, lod?: number, face?: number): void;
|
|
159
|
+
static Copy(renderer: WebGLRenderer, src: WebGLRenderTarget | Texture, dest: WebGLRenderTarget): void;
|
|
160
|
+
static ClearColor(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget | null, clearColor: ColorRepresentation, clearAlpha?: number): void;
|
|
161
|
+
static Render(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget | null, node: Object3D, camera: Camera, clearColor?: ColorRepresentation, clearAlpha?: number): void;
|
|
162
|
+
static Stash(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget | null, callback: () => void, clearColor?: ColorRepresentation, clearAlpha?: number): void;
|
|
163
|
+
static CreateFullscreenTriangle(): BufferGeometry<import("three").NormalBufferAttributes, import("three").BufferGeometryEventMap>;
|
|
151
164
|
}
|
|
165
|
+
export {};
|
package/types/WebGL.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WebGLRendererParameters } from "three";
|
|
2
|
-
export declare function
|
|
2
|
+
export declare function checkWebGL(canvas: HTMLCanvasElement, props: WebGLRendererParameters): {
|
|
3
3
|
gl: WebGL2RenderingContext;
|
|
4
4
|
RENDER_TARGET_FLOAT_TYPE: 1016;
|
|
5
5
|
DATA_FLOAT_TYPE: 1015;
|
package/types/asset/Loader.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LoadingManager, Object3D } from "three";
|
|
2
|
-
import { ResourceManager } from "./ResourceManager";
|
|
3
2
|
import { TextureSettings } from "../TextureSettings";
|
|
3
|
+
import type { Viewer } from "../Viewer";
|
|
4
4
|
export interface LoadProperties {
|
|
5
5
|
url: string;
|
|
6
6
|
buffer?: string | ArrayBuffer;
|
|
@@ -14,10 +14,10 @@ export interface LoadProperties {
|
|
|
14
14
|
onError?: (event: ErrorEvent) => void;
|
|
15
15
|
}
|
|
16
16
|
export declare abstract class Loader {
|
|
17
|
-
|
|
17
|
+
viewer: Viewer;
|
|
18
18
|
static _texKeys: string[];
|
|
19
19
|
static _setUserData(node: Object3D): Object3D<import("three").Object3DEventMap>;
|
|
20
|
-
constructor(
|
|
20
|
+
constructor(viewer: Viewer);
|
|
21
21
|
abstract extension: string[];
|
|
22
22
|
abstract load(props: LoadProperties): void;
|
|
23
23
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { LoadingManager } from "three";
|
|
2
2
|
import { TextureSettings } from "../TextureSettings";
|
|
3
3
|
import { Loader } from "./Loader";
|
|
4
|
+
import type { Viewer } from "../Viewer";
|
|
5
|
+
export type LoaderConstructor = new (viewer: Viewer) => Loader;
|
|
4
6
|
export interface AssetProperties extends TextureSettings {
|
|
5
7
|
url?: string;
|
|
6
8
|
ext?: string;
|
|
@@ -11,7 +13,6 @@ export interface AssetProperties extends TextureSettings {
|
|
|
11
13
|
manager?: LoadingManager;
|
|
12
14
|
onProgress?: (event: ProgressEvent) => void;
|
|
13
15
|
}
|
|
14
|
-
export type LoaderConstructor = new (manager: ResourceManager) => Loader;
|
|
15
16
|
export declare class ResourceManager {
|
|
16
17
|
static extension(path: string): string;
|
|
17
18
|
static dirname(path: string): string;
|
|
@@ -20,7 +21,9 @@ export declare class ResourceManager {
|
|
|
20
21
|
static _splitTextureSettings(props: TextureSettings & {
|
|
21
22
|
[k: string]: any;
|
|
22
23
|
}): {};
|
|
24
|
+
private _viewer;
|
|
23
25
|
private _loaders;
|
|
26
|
+
constructor(viewer: Viewer);
|
|
24
27
|
destroy(): void;
|
|
25
28
|
getLoader(ext: string): Loader;
|
|
26
29
|
addLoader(Loader: LoaderConstructor): Loader;
|
|
@@ -28,6 +28,8 @@ export declare class FreelookVirtualCamera extends VirtualCamera {
|
|
|
28
28
|
private _targetFov;
|
|
29
29
|
private _targetLookAt;
|
|
30
30
|
private _targetOffset;
|
|
31
|
+
private _finalLookAt;
|
|
32
|
+
name: string;
|
|
31
33
|
forbidX: boolean;
|
|
32
34
|
forbidY: boolean;
|
|
33
35
|
forbidZ: boolean;
|
|
@@ -83,6 +85,5 @@ export declare class FreelookVirtualCamera extends VirtualCamera {
|
|
|
83
85
|
smoothing?: number;
|
|
84
86
|
rotateSmoothing?: number;
|
|
85
87
|
}): void;
|
|
86
|
-
private _finalLookAt;
|
|
87
88
|
update(dt: number): void;
|
|
88
89
|
}
|
|
@@ -11,6 +11,7 @@ export declare class VirtualCamera extends Component<Object3D & {
|
|
|
11
11
|
}> {
|
|
12
12
|
private _finalPosition;
|
|
13
13
|
private _finalRotation;
|
|
14
|
+
name: string;
|
|
14
15
|
locked: boolean;
|
|
15
16
|
priority: number;
|
|
16
17
|
lens: Lens;
|
|
@@ -19,6 +20,7 @@ export declare class VirtualCamera extends Component<Object3D & {
|
|
|
19
20
|
brain: CinestationBrain;
|
|
20
21
|
get finalPosition(): Vector3;
|
|
21
22
|
get finalRotation(): Quaternion;
|
|
23
|
+
constructor();
|
|
22
24
|
onLoad(): void;
|
|
23
25
|
onDestroy(): void;
|
|
24
26
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Vector3, Vector4, WebGLProgramParametersWithUniforms } from "three";
|
|
2
|
+
import { Component } from "../Component";
|
|
3
|
+
export declare class BoxProjection extends Component {
|
|
4
|
+
private _center;
|
|
5
|
+
private _boxMin;
|
|
6
|
+
private _boxMax;
|
|
7
|
+
get center(): Vector4;
|
|
8
|
+
set center(v: Vector4);
|
|
9
|
+
get boxMin(): Vector3;
|
|
10
|
+
set boxMin(v: Vector3);
|
|
11
|
+
get boxMax(): Vector3;
|
|
12
|
+
set boxMax(v: Vector3);
|
|
13
|
+
onLoad(): void;
|
|
14
|
+
useBoxProjection(shader: WebGLProgramParametersWithUniforms): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component } from "../Component";
|
|
2
|
+
declare enum Mode {
|
|
3
|
+
BUFFER = 0,
|
|
4
|
+
BUFFER_RAW = 1,
|
|
5
|
+
URL = 2,
|
|
6
|
+
URL_RAW = 3
|
|
7
|
+
}
|
|
8
|
+
export declare class DropFile extends Component {
|
|
9
|
+
static readonly Mode: typeof Mode;
|
|
10
|
+
private _onLoad;
|
|
11
|
+
private _onError;
|
|
12
|
+
private _extension;
|
|
13
|
+
constructor({ onLoad, onError, extension }?: {
|
|
14
|
+
onLoad?: Function;
|
|
15
|
+
onError?: Function;
|
|
16
|
+
extension?: {
|
|
17
|
+
[k: string]: Mode;
|
|
18
|
+
};
|
|
19
|
+
buffers?: string[];
|
|
20
|
+
});
|
|
21
|
+
onEnable(): void;
|
|
22
|
+
onDisable(): void;
|
|
23
|
+
private _onDrogOver;
|
|
24
|
+
private _onDrop;
|
|
25
|
+
private _loadItemList;
|
|
26
|
+
private _loadFiles;
|
|
27
|
+
private _loadFile;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Object3D, Scene, Texture, TextureDataType, Vector3 } from "three";
|
|
2
|
+
import { Component } from "../Component";
|
|
3
|
+
export declare class Environment extends Component {
|
|
4
|
+
static readonly Quality: {
|
|
5
|
+
LOW: number;
|
|
6
|
+
MEDIUM: number;
|
|
7
|
+
HIGH: number;
|
|
8
|
+
ULTRA: number;
|
|
9
|
+
};
|
|
10
|
+
private _elapsed;
|
|
11
|
+
private _scene;
|
|
12
|
+
private _cubeCamera;
|
|
13
|
+
private _reflectPass;
|
|
14
|
+
private _mipBlurPass;
|
|
15
|
+
private _mergeInfo;
|
|
16
|
+
quality: number;
|
|
17
|
+
envMapIntensity: number;
|
|
18
|
+
reflectExposure: number;
|
|
19
|
+
reflectBlurIntensity: number;
|
|
20
|
+
interval: number;
|
|
21
|
+
manual: boolean;
|
|
22
|
+
get envMap(): Texture;
|
|
23
|
+
constructor({ envMap, scene, near, far, layerMask, resolution, floatType, position, }?: {
|
|
24
|
+
envMap?: Texture;
|
|
25
|
+
scene?: Scene | Object3D;
|
|
26
|
+
performance?: number;
|
|
27
|
+
resolution?: number;
|
|
28
|
+
layerMask?: number;
|
|
29
|
+
near?: number;
|
|
30
|
+
far?: number;
|
|
31
|
+
floatType?: boolean | TextureDataType;
|
|
32
|
+
position?: Vector3;
|
|
33
|
+
});
|
|
34
|
+
update(dt: number): void;
|
|
35
|
+
manualFrame(): void;
|
|
36
|
+
private _renderFrame;
|
|
37
|
+
}
|