@xviewer.js/core 1.0.4-alpha.0 → 1.0.4-alpha.10
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 +4076 -3234
- package/dist/main.cjs.map +1 -1
- package/dist/module.js +4064 -3229
- package/dist/module.js.map +1 -1
- package/package.json +2 -2
- package/types/Component.d.ts +11 -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 +41 -11
- package/types/PropertyManager.d.ts +3 -11
- package/types/TaskManager.d.ts +4 -4
- package/types/Viewer.d.ts +81 -64
- package/types/WebGL.d.ts +1 -1
- package/types/asset/Loader.d.ts +4 -3
- package/types/asset/ResourceManager.d.ts +6 -2
- package/types/bmfont/BMFontAtlas.d.ts +44 -0
- package/types/bmfont/BMFontTextGeometry.d.ts +9 -0
- package/types/bmfont/BMFontTextLayout.d.ts +93 -0
- package/types/bmfont/index.d.ts +3 -0
- package/types/bmfont/utils.d.ts +2 -0
- package/types/bmfont/wordwrap.d.ts +8 -0
- 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/Label.d.ts +26 -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 +9 -1
- package/types/enums/index.d.ts +9 -0
- package/types/index.d.ts +3 -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/MSDFMaterial.d.ts +20 -0
- package/types/materials/ReflectorMaterial.d.ts +13 -3
- 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.10",
|
|
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,11 @@ 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
|
-
IsStartCalled?: boolean;
|
|
26
|
+
destroyed?: boolean;
|
|
27
|
+
onLoadCalled?: boolean;
|
|
28
|
+
onEnableCalled?: boolean;
|
|
29
|
+
startCalled?: boolean;
|
|
30
|
+
deActivating?: boolean;
|
|
28
31
|
};
|
|
29
32
|
get enabled(): boolean;
|
|
30
33
|
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,22 @@
|
|
|
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 interface InputOption {
|
|
11
|
+
source: HTMLElement | Document;
|
|
12
|
+
normalizeWheel?: (e: WheelEvent) => {
|
|
13
|
+
spinX: number;
|
|
14
|
+
spinY: number;
|
|
15
|
+
pixelX: number;
|
|
16
|
+
pixelY: number;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export declare class DeviceInput extends Component {
|
|
6
20
|
static readonly CLICK = "click";
|
|
7
21
|
static readonly MOUSE_WHEEL = "mousewheel";
|
|
8
22
|
static readonly TOUCH_START = "touchstart";
|
|
@@ -16,19 +30,34 @@ export declare class DeviceInput {
|
|
|
16
30
|
static readonly KEYDOWN = "keydown";
|
|
17
31
|
static readonly KEYPRESS = "keypress";
|
|
18
32
|
static readonly KEYUP = "keyup";
|
|
33
|
+
private _target;
|
|
34
|
+
private _normalizeWheel;
|
|
19
35
|
private _listeners;
|
|
20
|
-
private _mouseWheel;
|
|
21
36
|
private _touches;
|
|
22
37
|
private _touchCount;
|
|
23
|
-
private
|
|
24
|
-
private
|
|
38
|
+
private _touchStart;
|
|
39
|
+
private _touchMoving;
|
|
25
40
|
private _pointer;
|
|
41
|
+
private _pointerPixel;
|
|
42
|
+
private _pointerButton;
|
|
43
|
+
private _prePointer;
|
|
44
|
+
private _prePointerPixel;
|
|
45
|
+
private _preTouches;
|
|
46
|
+
private _mouseWheel;
|
|
26
47
|
private _keys;
|
|
27
48
|
private _pressability;
|
|
28
|
-
get pointerButton(): number;
|
|
29
49
|
get pointer(): Vector2;
|
|
30
|
-
get
|
|
50
|
+
get pointerPixel(): Vector2;
|
|
51
|
+
get pointerButton(): number;
|
|
52
|
+
get prePointer(): Vector2;
|
|
53
|
+
get prePointerPixel(): Vector2;
|
|
54
|
+
get preTouches(): {
|
|
55
|
+
id: number;
|
|
56
|
+
position: Vector2;
|
|
57
|
+
}[];
|
|
31
58
|
get mouseWheel(): number;
|
|
59
|
+
get touchStart(): boolean;
|
|
60
|
+
get touchMoving(): boolean;
|
|
32
61
|
get touchCount(): number;
|
|
33
62
|
get touches(): {
|
|
34
63
|
id: number;
|
|
@@ -37,9 +66,10 @@ export declare class DeviceInput {
|
|
|
37
66
|
get keys(): {
|
|
38
67
|
[k: string]: boolean;
|
|
39
68
|
};
|
|
40
|
-
constructor(
|
|
41
|
-
|
|
42
|
-
|
|
69
|
+
constructor(option: InputOption);
|
|
70
|
+
onEnable(): void;
|
|
71
|
+
onDisable(): void;
|
|
72
|
+
lastUpdate(dt: number): void;
|
|
43
73
|
connect(target: ConnTarget, event: string): void;
|
|
44
74
|
disconnect(target: ConnTarget): void;
|
|
45
75
|
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 {
|
|
4
|
-
import { DeviceInput } from "./DeviceInput";
|
|
5
|
-
import { Orientation } from "./enums
|
|
6
|
-
import { AssetProperties, LoaderConstructor
|
|
7
|
-
import { __C, __P } from "./types";
|
|
3
|
+
import { ComponentManager } from "./ComponentManager";
|
|
4
|
+
import { DeviceInput, InputOption } from "./DeviceInput";
|
|
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,107 @@ 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, transcoderPath, orientation, loader, tasker, ...webglOpts }?: {
|
|
70
|
+
/** 根节点,用于屏幕旋转 */
|
|
81
71
|
root?: HTMLElement;
|
|
72
|
+
/** 渲染用的 canvas 元素,如果不提供,默认获取 id 为 "canvas" 的元素 */
|
|
82
73
|
canvas?: HTMLCanvasElement;
|
|
83
|
-
|
|
74
|
+
/** 设备输入容器,默认使用canvas */
|
|
75
|
+
input?: InputOption;
|
|
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
|
+
/** The WASM transcoder and JS wrapper are available from the examples/jsm/libs/basis directory. */
|
|
101
|
+
transcoderPath?: string;
|
|
102
|
+
/** 页面方向,AUTO: 自动,LANDSCAPE: 横屏,PORTRAIT: 竖屏 */
|
|
96
103
|
orientation?: Orientation;
|
|
97
|
-
camera
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
position?: Vector3;
|
|
103
|
-
rotation?: Euler;
|
|
104
|
-
};
|
|
104
|
+
/** Creates an orthographic camera */
|
|
105
|
+
orthographic?: boolean;
|
|
106
|
+
/** A `THREE.Camera` instance or props that go into the default camera */
|
|
107
|
+
camera?: (Camera | __Properties<PerspectiveCamera & OrthographicCamera>);
|
|
108
|
+
/** 加载管理器 */
|
|
105
109
|
loader?: {
|
|
106
|
-
|
|
110
|
+
onComplete?: () => void;
|
|
107
111
|
onProgress?: (url: string, loaded: number, total: number) => void;
|
|
108
112
|
onError?: (url: string) => void;
|
|
109
113
|
};
|
|
114
|
+
/** 任务管理器 */
|
|
110
115
|
tasker?: {
|
|
111
116
|
onComplete?: () => void;
|
|
112
|
-
onProgress?: (
|
|
113
|
-
onError?: (
|
|
117
|
+
onProgress?: (task: Task, loaded: number, total: number) => void;
|
|
118
|
+
onError?: (task: Task) => void;
|
|
114
119
|
};
|
|
115
120
|
} & WebGLRendererParameters);
|
|
116
121
|
destroy(): void;
|
|
117
|
-
|
|
122
|
+
context(context?: Context): Context;
|
|
118
123
|
private _frame;
|
|
119
124
|
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
125
|
start(): this;
|
|
125
126
|
stop(): this;
|
|
126
127
|
rotate(): void;
|
|
127
128
|
resize(width?: number, height?: number): void;
|
|
129
|
+
setURLModifier(callback?: (url: string) => string): LoadingManager;
|
|
128
130
|
loadAsset(props: AssetProperties): Promise<any>;
|
|
129
131
|
getLoader(ext: string): import(".").Loader;
|
|
130
132
|
addLoader(Loader: LoaderConstructor): import(".").Loader;
|
|
131
|
-
|
|
132
|
-
traverseComponents(callback: (comp: Component) => void): void;
|
|
133
|
-
mount<T extends Mount>(constructor: {
|
|
133
|
+
getComponent<T extends Component>(constructor: {
|
|
134
134
|
new (...args: any[]): T;
|
|
135
|
-
},
|
|
136
|
-
task(
|
|
135
|
+
}, node?: Object3D): T;
|
|
136
|
+
task<T extends Object3D | Scene | Material | Texture | Function>(target?: T): T;
|
|
137
|
+
task<T extends Material[]>(target?: Material[]): T;
|
|
137
138
|
add<T extends Object3D | Component, K extends __C<T>>(object: T | K & __C<T>, props?: __P<T, K>): T;
|
|
138
139
|
remove<T extends Object3D | Component>(ins: T): T;
|
|
139
140
|
createRenderTarget(width: number, height: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean, depth?: boolean): WebGLRenderTarget<Texture>;
|
|
140
141
|
createCubeRenderTarget(size: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean, depth?: boolean): WebGLCubeRenderTarget;
|
|
141
142
|
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
143
|
blit(renderTarget: WebGLRenderTarget, material: Material, lod?: number, face?: number): void;
|
|
144
|
+
copy(src: WebGLRenderTarget | Texture, dest: WebGLRenderTarget): void;
|
|
145
|
+
clearColor(renderTarget: WebGLRenderTarget, color: ColorRepresentation, alpha?: number): void;
|
|
146
|
+
stash(renderTarget: WebGLRenderTarget | null, callback: (renderer: WebGLRenderer) => void, clearColor?: ColorRepresentation, clearAlpha?: number): void;
|
|
147
|
+
blur(blurLevel: number, shadingScale: number, inputBuffer: WebGLRenderTarget, tempBuffer: WebGLRenderTarget, outputBuffer?: WebGLRenderTarget, fixedOutput?: boolean): void;
|
|
148
|
+
render(renderTarget: WebGLRenderTarget | null, node: Object3D, camera: Camera, clearColor?: ColorRepresentation, clearAlpha?: number): void;
|
|
149
149
|
compile(target?: Object3D | Scene | Material | Texture): void;
|
|
150
150
|
compile(target?: Material[]): void;
|
|
151
|
+
static fullscreenMesh: Mesh;
|
|
152
|
+
static fullscreenCamera: OrthographicCamera;
|
|
153
|
+
static copyMaterial: ShaderMaterial;
|
|
154
|
+
static clearMaterial: ShaderMaterial;
|
|
155
|
+
static blur9Material: ShaderMaterial;
|
|
156
|
+
static blur9VaryingMaterial: ShaderMaterial;
|
|
157
|
+
static CompileMaterial(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Material | Material[]): void;
|
|
158
|
+
static CompileObject3D(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Object3D): void;
|
|
159
|
+
static CompileTexture(renderer: WebGLRenderer, target: Texture | Texture[]): void;
|
|
160
|
+
static Blur(renderer: WebGLRenderer, blurLevel: number, shadingScale: number, inputBuffer: WebGLRenderTarget, tempBuffer: WebGLRenderTarget, outputBuffer?: WebGLRenderTarget, fixedOutput?: boolean): void;
|
|
161
|
+
static Blit(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget | null, material: Material, lod?: number, face?: number): void;
|
|
162
|
+
static Copy(renderer: WebGLRenderer, src: WebGLRenderTarget | Texture, dest: WebGLRenderTarget): void;
|
|
163
|
+
static ClearColor(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget | null, clearColor: ColorRepresentation, clearAlpha?: number): void;
|
|
164
|
+
static Render(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget | null, node: Object3D, camera: Camera, clearColor?: ColorRepresentation, clearAlpha?: number): void;
|
|
165
|
+
static Stash(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget | null, callback: (renderer: WebGLRenderer) => void, clearColor?: ColorRepresentation, clearAlpha?: number): void;
|
|
166
|
+
static CreateFullscreenTriangle(): BufferGeometry<import("three").NormalBufferAttributes, import("three").BufferGeometryEventMap>;
|
|
151
167
|
}
|
|
168
|
+
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;
|
|
@@ -8,16 +8,17 @@ export interface LoadProperties {
|
|
|
8
8
|
path?: string;
|
|
9
9
|
resourcePath?: string;
|
|
10
10
|
dracoPath?: string;
|
|
11
|
+
transcoderPath?: string;
|
|
11
12
|
manager?: LoadingManager;
|
|
12
13
|
onLoad: (asset: any) => void;
|
|
13
14
|
onProgress?: (event: ProgressEvent) => void;
|
|
14
15
|
onError?: (event: ErrorEvent) => void;
|
|
15
16
|
}
|
|
16
17
|
export declare abstract class Loader {
|
|
17
|
-
|
|
18
|
+
viewer: Viewer;
|
|
18
19
|
static _texKeys: string[];
|
|
19
20
|
static _setUserData(node: Object3D): Object3D<import("three").Object3DEventMap>;
|
|
20
|
-
constructor(
|
|
21
|
+
constructor(viewer: Viewer);
|
|
21
22
|
abstract extension: string[];
|
|
22
23
|
abstract load(props: LoadProperties): void;
|
|
23
24
|
}
|
|
@@ -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;
|
|
@@ -8,10 +10,10 @@ export interface AssetProperties extends TextureSettings {
|
|
|
8
10
|
path?: string;
|
|
9
11
|
resourcePath?: string;
|
|
10
12
|
dracoPath?: string;
|
|
13
|
+
transcoderPath?: string;
|
|
11
14
|
manager?: LoadingManager;
|
|
12
15
|
onProgress?: (event: ProgressEvent) => void;
|
|
13
16
|
}
|
|
14
|
-
export type LoaderConstructor = new (manager: ResourceManager) => Loader;
|
|
15
17
|
export declare class ResourceManager {
|
|
16
18
|
static extension(path: string): string;
|
|
17
19
|
static dirname(path: string): string;
|
|
@@ -20,9 +22,11 @@ export declare class ResourceManager {
|
|
|
20
22
|
static _splitTextureSettings(props: TextureSettings & {
|
|
21
23
|
[k: string]: any;
|
|
22
24
|
}): {};
|
|
25
|
+
private _viewer;
|
|
23
26
|
private _loaders;
|
|
27
|
+
constructor(viewer: Viewer);
|
|
24
28
|
destroy(): void;
|
|
25
29
|
getLoader(ext: string): Loader;
|
|
26
30
|
addLoader(Loader: LoaderConstructor): Loader;
|
|
27
|
-
loadAsset<T = any>({ url,
|
|
31
|
+
loadAsset<T = any>({ url, ext, onProgress, ...props }: AssetProperties): Promise<T>;
|
|
28
32
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Color, ShaderMaterial, ShaderMaterialParameters, Texture, Vector2 } from "three";
|
|
2
|
+
import { BMFontInfo, BMFontTextLayout, LayoutSetting } from "./BMFontTextLayout";
|
|
3
|
+
export declare class BMFontAtlas {
|
|
4
|
+
info: BMFontInfo;
|
|
5
|
+
material: ShaderMaterial;
|
|
6
|
+
uniforms: {
|
|
7
|
+
u_color: {
|
|
8
|
+
value: Color;
|
|
9
|
+
};
|
|
10
|
+
u_opacity: {
|
|
11
|
+
value: number;
|
|
12
|
+
};
|
|
13
|
+
u_weight: {
|
|
14
|
+
value: number;
|
|
15
|
+
};
|
|
16
|
+
u_strokeColor: {
|
|
17
|
+
value: Color;
|
|
18
|
+
};
|
|
19
|
+
u_strokeWidth: {
|
|
20
|
+
value: number;
|
|
21
|
+
};
|
|
22
|
+
u_shadowColor: {
|
|
23
|
+
value: Color;
|
|
24
|
+
};
|
|
25
|
+
u_shadowBlur: {
|
|
26
|
+
value: number;
|
|
27
|
+
};
|
|
28
|
+
u_shadowOffset: {
|
|
29
|
+
value: Vector2;
|
|
30
|
+
};
|
|
31
|
+
u_fontTexture: {
|
|
32
|
+
value: any;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
constructor({ info, texture, uniforms, ...props }: {
|
|
36
|
+
info: BMFontInfo;
|
|
37
|
+
texture: Texture;
|
|
38
|
+
} & ShaderMaterialParameters);
|
|
39
|
+
build(layout: BMFontTextLayout, setting: LayoutSetting): {
|
|
40
|
+
position: Float32Array<ArrayBuffer>;
|
|
41
|
+
uv: Float32Array<ArrayBuffer>;
|
|
42
|
+
indice: Uint16Array<ArrayBuffer>;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BufferGeometry } from "three";
|
|
2
|
+
import { BMFontAtlas } from "./BMFontAtlas";
|
|
3
|
+
import { LayoutSetting, BMFontTextLayout } from "./BMFontTextLayout";
|
|
4
|
+
export declare class BMFontTextGeometry extends BufferGeometry {
|
|
5
|
+
layout: BMFontTextLayout;
|
|
6
|
+
update(fontAtlas: BMFontAtlas, text: string, setting: LayoutSetting): void;
|
|
7
|
+
computeBoundingSphere(): void;
|
|
8
|
+
computeBoundingBox(): void;
|
|
9
|
+
}
|