soonspacejs 2.3.20 → 2.4.2
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/index.esm.js +11 -19
- package/dist/index.js +11 -19
- package/package.json +14 -6
- package/types/Interface/animation.d.ts +4 -4
- package/types/Interface/base.d.ts +2 -1
- package/types/Interface/manager.d.ts +1 -1
- package/types/Interface/viewport.d.ts +31 -4
- package/types/Library/BaseObject3D.d.ts +2 -1
- package/types/Library/Model.d.ts +0 -2
- package/types/Library/Sbm.d.ts +0 -2
- package/types/Loader/DatLoader/DatLoader_DEPRECATED.d.ts +68 -0
- package/types/Loader/DatLoader/index.d.ts +59 -0
- package/types/Loader/DatLoader/pako_inflate.d.ts +2 -0
- package/types/Loader/DatLoader/parse-chunk/dracoCompress.d.ts +18 -0
- package/types/Loader/DatLoader/parse-chunk/gzipCompress.d.ts +1 -0
- package/types/Loader/DatLoader/parse-chunk/index.d.ts +11 -0
- package/types/Loader/DatLoader/parse-chunk/noCompress.d.ts +1 -0
- package/types/Loader/SbmLoader/SbkLoader.d.ts +1 -10
- package/types/Loader/SbmLoader/SbmLoader.d.ts +13 -9
- package/types/Loader/{utils → SbmLoader/utils}/generateSbm.d.ts +2 -2
- package/types/Manager/Canvas3DManage.d.ts +2 -2
- package/types/Manager/DefaultManage.d.ts +20 -11
- package/types/Manager/GroupManage.d.ts +7 -0
- package/types/Manager/HelperManage.d.ts +2 -2
- package/types/Manager/LightManage.d.ts +2 -1
- package/types/Manager/ModelManage.d.ts +27 -6
- package/types/Manager/PluginObjectManage.d.ts +3 -3
- package/types/Manager/PoiManage.d.ts +2 -2
- package/types/Manager/PoiNodeManage.d.ts +2 -2
- package/types/Manager/SbmManage.d.ts +2 -2
- package/types/Manager/TopologyManage.d.ts +2 -2
- package/types/Manager/index.d.ts +7 -5
- package/types/Shared/cloneDeep.d.ts +2 -0
- package/types/Shared/index.d.ts +6 -3
- package/types/Shared/material.d.ts +2 -0
- package/types/Shared/network.d.ts +1 -0
- package/types/Shared/path.d.ts +1 -0
- package/types/Viewport/EffectManager.d.ts +44 -0
- package/types/Viewport/RendererManager.d.ts +2 -26
- package/types/Viewport/index.d.ts +20 -9
- package/types/index.d.ts +18 -8
- package/types/Shared/sbmx.d.ts +0 -7
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { noCompressWorker } from './noCompress';
|
|
2
|
+
import { gzipCompressWorker } from './gzipCompress';
|
|
3
|
+
export { noCompressWorker, gzipCompressWorker, };
|
|
4
|
+
declare global {
|
|
5
|
+
interface Window {
|
|
6
|
+
parseChunkWorker: any;
|
|
7
|
+
noCompressWorker: any;
|
|
8
|
+
gzipCompressWorker: any;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export declare const parseChunkWorker: () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const noCompressWorker: () => void;
|
|
@@ -6,22 +6,13 @@ declare class SbkLoader {
|
|
|
6
6
|
materials: Map<string, any>;
|
|
7
7
|
sbmInfo: SbmInfo | null;
|
|
8
8
|
constructor();
|
|
9
|
-
/**
|
|
10
|
-
* 加载模型
|
|
11
|
-
* @param sbmInfo 模型信息
|
|
12
|
-
* @param onProgress 模型加载进度回填函数
|
|
13
|
-
*/
|
|
14
|
-
load(sbmInfo: SbmInfo, onProgress?: ModelLoadingProgressCallback): Promise<Sbm | {
|
|
15
|
-
sbm: Sbm;
|
|
16
|
-
caches: SbmCache;
|
|
17
|
-
}>;
|
|
18
9
|
/**
|
|
19
10
|
* 解析模型
|
|
20
11
|
* @param buffer 模型二进制原数据
|
|
21
12
|
* @param sbmInfo 模型信息
|
|
22
13
|
* @param onProgress 模型加载进度回填函数
|
|
23
14
|
*/
|
|
24
|
-
parseBuffer(buffer: ArrayBuffer, sbmInfo: SbmInfo, onProgress?: ModelLoadingProgressCallback): Promise<
|
|
15
|
+
parseBuffer(buffer: ArrayBuffer, sbmInfo: SbmInfo, onProgress?: ModelLoadingProgressCallback): Promise<{
|
|
25
16
|
sbm: Sbm;
|
|
26
17
|
caches: SbmCache;
|
|
27
18
|
}>;
|
|
@@ -1,35 +1,39 @@
|
|
|
1
1
|
import { Sbm, SbmInfo } from '../../Library';
|
|
2
2
|
import { ModelLoadingProgress, ModelLoadingProgressCallback } from '../../Interface';
|
|
3
|
+
import { SbmCache } from '../../Interface/sbmCache';
|
|
3
4
|
declare class SbmLoader {
|
|
4
5
|
materials: Map<string, any>;
|
|
5
6
|
sbmInfo: SbmInfo | null;
|
|
6
7
|
isLE: boolean;
|
|
7
8
|
constructor();
|
|
8
|
-
/**
|
|
9
|
-
* 加载模型
|
|
10
|
-
* @param sbmInfo 模型信息
|
|
11
|
-
* @param onProgress 模型加载进度回填函数
|
|
12
|
-
*/
|
|
13
|
-
load(sbmInfo: SbmInfo, onProgress?: ModelLoadingProgressCallback): Promise<Sbm>;
|
|
14
9
|
/**
|
|
15
10
|
* 解析模型
|
|
16
11
|
* @param buffer 模型二进制原数据
|
|
17
12
|
* @param sbmInfo 模型信息
|
|
18
13
|
* @param onProgress 模型加载进度回填函数
|
|
19
14
|
*/
|
|
20
|
-
parseBuffer(buffer: ArrayBuffer, sbmInfo: SbmInfo, onProgress?: ModelLoadingProgressCallback): Promise<
|
|
15
|
+
parseBuffer(buffer: ArrayBuffer, sbmInfo: SbmInfo, onProgress?: ModelLoadingProgressCallback): Promise<{
|
|
16
|
+
sbm: Sbm;
|
|
17
|
+
caches: SbmCache;
|
|
18
|
+
}>;
|
|
21
19
|
/**
|
|
22
20
|
* @param dataView
|
|
23
21
|
* @param offset
|
|
24
22
|
* @param onProgress
|
|
25
23
|
*/
|
|
26
|
-
_parseV2(dataView: DataView, offset: number, onProgress?: ModelLoadingProgressCallback): Promise<
|
|
24
|
+
_parseV2(dataView: DataView, offset: number, onProgress?: ModelLoadingProgressCallback): Promise<{
|
|
25
|
+
sbm: Sbm;
|
|
26
|
+
caches: SbmCache;
|
|
27
|
+
}>;
|
|
27
28
|
/**
|
|
28
29
|
* @param dataView
|
|
29
30
|
* @param offset
|
|
30
31
|
* @param onProgress
|
|
31
32
|
*/
|
|
32
|
-
_parseV3(dataView: DataView, offset: number, onProgress?: ModelLoadingProgressCallback): Promise<
|
|
33
|
+
_parseV3(dataView: DataView, offset: number, onProgress?: ModelLoadingProgressCallback): Promise<{
|
|
34
|
+
sbm: Sbm;
|
|
35
|
+
caches: SbmCache;
|
|
36
|
+
}>;
|
|
33
37
|
/**
|
|
34
38
|
* 获取材质贴图路径
|
|
35
39
|
* @param modelUrl 模型资源路径
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Texture,
|
|
1
|
+
import { Texture, MeshStandardMaterial } from 'three';
|
|
2
2
|
/**
|
|
3
3
|
* 生成 sbm 纹理
|
|
4
4
|
* @param url
|
|
@@ -10,4 +10,4 @@ export declare const generateSbmTexture: (textureUrl: string) => Texture;
|
|
|
10
10
|
* @param arr
|
|
11
11
|
* @param texture
|
|
12
12
|
*/
|
|
13
|
-
export declare const generateSbmMaterial: (materialId: string, arr: number[], texture: Texture | null) =>
|
|
13
|
+
export declare const generateSbmMaterial: (materialId: string, arr: number[], texture: Texture | null) => MeshStandardMaterial;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import DefaultManage from './DefaultManage';
|
|
2
2
|
import Viewport from '../Viewport';
|
|
3
|
-
import { Group, GroupInfo, Canvas3D, Canvas3DInfo } from '../Library';
|
|
3
|
+
import { Group, GroupInfo, Canvas3D, Canvas3DInfo, SceneManage } from '../Library';
|
|
4
4
|
declare class Canvas3DManage extends DefaultManage {
|
|
5
|
-
constructor(viewport: Viewport);
|
|
5
|
+
constructor(viewport: Viewport, scene: SceneManage);
|
|
6
6
|
create(info: Canvas3DInfo): Canvas3D;
|
|
7
7
|
createToGroup(groupInfo: GroupInfo, poiInfo: Canvas3DInfo[]): Group;
|
|
8
8
|
addForGroup(groupId: GroupInfo['id'], poiInfo: Canvas3DInfo[]): Group | null;
|
|
@@ -1,22 +1,31 @@
|
|
|
1
|
+
import { Object3D } from 'three';
|
|
1
2
|
import Viewport from '../Viewport';
|
|
2
|
-
import {
|
|
3
|
+
import { Group, GroupInfo, SceneManage, BaseObject3D } from '../Library';
|
|
3
4
|
import { UserDataPropertyFindFunc } from '../Interface';
|
|
4
5
|
declare type findPropKey = 'name' | 'sid';
|
|
6
|
+
declare type ManageCache = {
|
|
7
|
+
objects: Map<BaseObject3D['sid'], Object3D>;
|
|
8
|
+
};
|
|
5
9
|
declare class DefaultManage {
|
|
6
10
|
readonly type: string;
|
|
7
11
|
readonly scene: SceneManage;
|
|
8
12
|
readonly viewport: Viewport;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
readonly cache: ManageCache;
|
|
14
|
+
constructor(type: string, viewport: Viewport, scene: SceneManage);
|
|
15
|
+
/**
|
|
16
|
+
* cache
|
|
17
|
+
*/
|
|
18
|
+
getObjectsCache<T extends Object3D>(sid: BaseObject3D['sid']): T;
|
|
19
|
+
setObjectsCache<T extends Object3D>(objects: T): void;
|
|
20
|
+
removeObjectsCache(sid: BaseObject3D['sid']): void;
|
|
21
|
+
/***
|
|
22
|
+
* group
|
|
23
|
+
*/
|
|
24
|
+
createGroup(groupInfo: GroupInfo, parent?: Object3D | null): Group;
|
|
25
|
+
getById<T extends Object3D>(id: BaseObject3D['sid'], type?: string): T | null;
|
|
26
|
+
getByName<T extends BaseObject3D>(name: string, type?: string): T[];
|
|
27
|
+
getByUserDataProperty<T extends Object3D = BaseObject3D>(propNameOrFindFunc: string | UserDataPropertyFindFunc, propValue?: any): T[];
|
|
14
28
|
removeById(id: BaseObject3D['sid']): boolean;
|
|
15
|
-
createGroup(groupInfo: GroupInfo): Group;
|
|
16
|
-
getGroupById<T = Group>(id: string | number): T | null;
|
|
17
|
-
getGroupByName<T = Group>(name: string): T[];
|
|
18
|
-
getAllGroup(): Group[];
|
|
19
|
-
removeGroupById(id: BaseObject3D['sid']): boolean;
|
|
20
29
|
clear(): void;
|
|
21
30
|
getAll<T = BaseObject3D>(): T[];
|
|
22
31
|
hideAll(): void;
|
|
@@ -3,9 +3,9 @@ import DefaultManage from './DefaultManage';
|
|
|
3
3
|
import { GridHelper, AxesHelper, Box3Helper, DirectionalLightHelper, HemisphereLightHelper, SpotLightHelper, PointLightHelper } from 'three';
|
|
4
4
|
import { RectAreaLightHelper } from 'three/examples/jsm/helpers/RectAreaLightHelper.js';
|
|
5
5
|
import { GridHelperOptions, AxesHelperOptions, BoxHelperOptions, PlaneHelperOptions, GroundHelperOptions, DirectionalLightHelperOptions, HemisphereLightHelperOptions, SpotLightHelperOptions, PointLightHelperOptions, RectAreaLightHelperOptions } from '../Interface';
|
|
6
|
-
import { BaseMesh, Ground } from '../Library';
|
|
6
|
+
import { BaseMesh, Ground, SceneManage } from '../Library';
|
|
7
7
|
declare class HelperManage extends DefaultManage {
|
|
8
|
-
constructor(viewport: Viewport);
|
|
8
|
+
constructor(viewport: Viewport, scene: SceneManage);
|
|
9
9
|
addGridHelper(options: GridHelperOptions): GridHelper;
|
|
10
10
|
addAxesHelper(options: AxesHelperOptions): AxesHelper;
|
|
11
11
|
addBoxHelper(options: BoxHelperOptions): Box3Helper;
|
|
@@ -2,8 +2,9 @@ import { AmbientLight, DirectionalLight, HemisphereLight, SpotLight, PointLight,
|
|
|
2
2
|
import DefaultManage from './DefaultManage';
|
|
3
3
|
import Viewport from '../Viewport';
|
|
4
4
|
import { AmbientLightOptions, DirectionalLightOptions, HemisphereLightOptions, SpotLightOptions, PointLightOptions, RectAreaLightOptions } from '../Interface';
|
|
5
|
+
import { SceneManage } from '../Library';
|
|
5
6
|
declare class LightManage extends DefaultManage {
|
|
6
|
-
constructor(viewport: Viewport);
|
|
7
|
+
constructor(viewport: Viewport, scene: SceneManage);
|
|
7
8
|
createAmbientLight(options: AmbientLightOptions): AmbientLight;
|
|
8
9
|
setAmbientLight(options: AmbientLightOptions): boolean;
|
|
9
10
|
createDirectionalLight(options: DirectionalLightOptions): DirectionalLight;
|
|
@@ -1,20 +1,42 @@
|
|
|
1
|
+
import { LoadingManager } from 'three';
|
|
1
2
|
import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader.js';
|
|
2
3
|
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
3
4
|
import * as localforage from 'localforage';
|
|
5
|
+
import { DatLoader } from '../Loader/DatLoader';
|
|
4
6
|
import DefaultManage from './DefaultManage';
|
|
5
|
-
import { BaseObject3D, Group, GroupInfo, Model, ModelInfo } from '../Library';
|
|
7
|
+
import { BaseObject3D, Group, GroupInfo, Model, ModelInfo, SceneManage } from '../Library';
|
|
6
8
|
import { CloneModelInfo } from '../Interface';
|
|
7
9
|
import Viewport from '../Viewport';
|
|
8
10
|
declare class ModelManage extends DefaultManage {
|
|
9
11
|
readonly viewport: Viewport;
|
|
10
12
|
modelMaps: Map<string, Model>;
|
|
11
13
|
store: typeof localforage;
|
|
14
|
+
loadingManager: LoadingManager;
|
|
15
|
+
datLoader: DatLoader;
|
|
16
|
+
gltfLoader: GLTFLoader;
|
|
17
|
+
fbxLoader: FBXLoader;
|
|
12
18
|
dracoDecoderPath: string | null;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
19
|
+
constructor(viewport: Viewport, scene: SceneManage);
|
|
20
|
+
private _initLoadingManager;
|
|
21
|
+
private _setModelMpas;
|
|
22
|
+
private _parseSbmx;
|
|
23
|
+
private _parseDat;
|
|
24
|
+
private _parseGltf;
|
|
25
|
+
private _parseFbx;
|
|
26
|
+
/**
|
|
27
|
+
* 设置 draco path
|
|
28
|
+
* @param path
|
|
29
|
+
*/
|
|
16
30
|
setDracoDecoderPath(path: string): void;
|
|
17
31
|
load(modelInfo: ModelInfo): Promise<Model>;
|
|
32
|
+
_loadItem(modelInfo: ModelInfo, parent?: BaseObject3D | null): Promise<Model>;
|
|
33
|
+
/**
|
|
34
|
+
* model 解析
|
|
35
|
+
* @param format
|
|
36
|
+
* @param buffer
|
|
37
|
+
* @param modelInfo
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
18
40
|
parse(format: string, buffer: ArrayBuffer, modelInfo: ModelInfo): Promise<Model>;
|
|
19
41
|
clone(model: Model, info: CloneModelInfo, parent?: BaseObject3D | null): Promise<Model>;
|
|
20
42
|
loadToGroup(groupInfo: GroupInfo, modelInfo: ModelInfo[]): Promise<Group>;
|
|
@@ -23,13 +45,12 @@ declare class ModelManage extends DefaultManage {
|
|
|
23
45
|
* 清空本地模型缓存数据
|
|
24
46
|
*/
|
|
25
47
|
clearIdb(): Promise<void>;
|
|
26
|
-
|
|
48
|
+
dispose(): void;
|
|
27
49
|
/**
|
|
28
50
|
* 远程请求 model
|
|
29
51
|
* @param modelInfo
|
|
30
52
|
* @returns
|
|
31
53
|
*/
|
|
32
54
|
_fetchBuffer(modelInfo: ModelInfo): Promise<ArrayBuffer>;
|
|
33
|
-
private _copyMaterial;
|
|
34
55
|
}
|
|
35
56
|
export default ModelManage;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { Object3D } from 'three';
|
|
1
2
|
import DefaultManage from './DefaultManage';
|
|
2
|
-
import { PluginObject, PluginObjectInfo } from '../Library';
|
|
3
|
+
import { PluginObject, PluginObjectInfo, SceneManage } from '../Library';
|
|
3
4
|
import Viewport from '../Viewport';
|
|
4
|
-
import { Object3D } from 'three';
|
|
5
5
|
declare class PluginManage extends DefaultManage {
|
|
6
|
-
constructor(viewport: Viewport);
|
|
6
|
+
constructor(viewport: Viewport, scene: SceneManage);
|
|
7
7
|
createObject(info: PluginObjectInfo, object?: Object3D): PluginObject;
|
|
8
8
|
addToObject(id: PluginObjectInfo['id'], object: Object3D): PluginObject | null;
|
|
9
9
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import DefaultManage from './DefaultManage';
|
|
2
2
|
import { SpriteMaterial } from 'three';
|
|
3
|
-
import { Poi, PoiInfo, Group, GroupInfo, BaseObject3D } from '../Library';
|
|
3
|
+
import { Poi, PoiInfo, Group, GroupInfo, BaseObject3D, SceneManage } from '../Library';
|
|
4
4
|
import { ClonePoiInfo } from '../Interface';
|
|
5
5
|
import Viewport from '../Viewport';
|
|
6
6
|
declare class PoiManage extends DefaultManage {
|
|
7
7
|
materials: Map<string, SpriteMaterial>;
|
|
8
|
-
constructor(viewport: Viewport);
|
|
8
|
+
constructor(viewport: Viewport, scene: SceneManage);
|
|
9
9
|
create(info: PoiInfo): Poi;
|
|
10
10
|
clone(poi: Poi, poiInfo: ClonePoiInfo, parent?: BaseObject3D | null): Poi | void;
|
|
11
11
|
createToGroup(groupInfo: GroupInfo, poiInfo: PoiInfo[]): Group;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import DefaultManage from './DefaultManage';
|
|
2
2
|
import Viewport from '../Viewport';
|
|
3
|
-
import { PoiNode, PoiNodeInfo, Group, GroupInfo } from '../Library';
|
|
3
|
+
import { PoiNode, PoiNodeInfo, Group, GroupInfo, SceneManage } from '../Library';
|
|
4
4
|
declare class PoiNodeManage extends DefaultManage {
|
|
5
|
-
constructor(viewport: Viewport);
|
|
5
|
+
constructor(viewport: Viewport, scene: SceneManage);
|
|
6
6
|
create(info: PoiNodeInfo): PoiNode;
|
|
7
7
|
createToGroup(groupInfo: GroupInfo, poiNodeInfo: PoiNodeInfo[]): Group;
|
|
8
8
|
addForGroup(groupId: GroupInfo['id'], poiNodeInfo: PoiNodeInfo[]): Group | null;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as localforage from 'localforage';
|
|
2
2
|
import DefaultManage from './DefaultManage';
|
|
3
3
|
import Viewport from '../Viewport';
|
|
4
|
-
import { BaseObject3D, Group, GroupInfo, Sbm, SbmInfo } from '../Library';
|
|
4
|
+
import { BaseObject3D, Group, GroupInfo, Sbm, SbmInfo, SceneManage } from '../Library';
|
|
5
5
|
import { CloneSbmInfo, ModelLoadingProgressCallback, GroupProgressCallback } from '../Interface';
|
|
6
6
|
import { SbmCache } from '../Interface/sbmCache';
|
|
7
7
|
declare class SbmManage extends DefaultManage {
|
|
8
8
|
readonly viewport: Viewport;
|
|
9
9
|
modelMaps: Map<string, Sbm>;
|
|
10
10
|
store: typeof localforage;
|
|
11
|
-
constructor(viewport: Viewport);
|
|
11
|
+
constructor(viewport: Viewport, scene: SceneManage);
|
|
12
12
|
load(sbmInfo: SbmInfo, onProgress?: ModelLoadingProgressCallback): Promise<Sbm>;
|
|
13
13
|
parse(data: ArrayBuffer | SbmCache, sbmInfo: SbmInfo, onProgress?: ModelLoadingProgressCallback): Promise<Sbm>;
|
|
14
14
|
clone(model: Sbm, sbmInfo: CloneSbmInfo, parent?: BaseObject3D | null): Promise<Sbm>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import DefaultManage from './DefaultManage';
|
|
2
|
-
import { Group, GroupInfo, Topology, TopologyInfo } from '../Library';
|
|
2
|
+
import { Group, GroupInfo, SceneManage, Topology, TopologyInfo } from '../Library';
|
|
3
3
|
import { TopologyInfoForGml, ShortestPathInfo, ShortestPathByMultipleStartPoints, ShortestPathByMultipleEndPoints, TopologyNodeInfo } from '../Interface';
|
|
4
4
|
import Viewport from '../Viewport';
|
|
5
5
|
import { Dijkstras } from '../Math/dijkstra';
|
|
6
6
|
declare class TopologyManage extends DefaultManage {
|
|
7
7
|
dijkstra: Dijkstras;
|
|
8
|
-
constructor(viewport: Viewport);
|
|
8
|
+
constructor(viewport: Viewport, scene: SceneManage);
|
|
9
9
|
createFromGml(topologyInfoForGml: TopologyInfoForGml): Promise<Topology>;
|
|
10
10
|
create(topologyInfo: TopologyInfo): Topology;
|
|
11
11
|
resetNodes(topology: Topology, nodes: TopologyNodeInfo[]): Topology;
|
package/types/Manager/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Viewport from '../Viewport';
|
|
2
|
-
import
|
|
2
|
+
import { SceneManage } from '../Library';
|
|
3
3
|
import LightManage from './LightManage';
|
|
4
4
|
import SbmManage from './SbmManage';
|
|
5
5
|
import ModelManage from './ModelManage';
|
|
@@ -9,8 +9,10 @@ import Canvas3DManage from './Canvas3DManage';
|
|
|
9
9
|
import TopologyManage from './TopologyManage';
|
|
10
10
|
import HelperManage from './HelperManage';
|
|
11
11
|
import PluginObjectManage from './PluginObjectManage';
|
|
12
|
+
import GroupManage from './GroupManage';
|
|
12
13
|
interface ManagerStore {
|
|
13
|
-
|
|
14
|
+
groupManager: GroupManage;
|
|
15
|
+
lightManager: LightManage;
|
|
14
16
|
sbmManager: SbmManage;
|
|
15
17
|
modelManager: ModelManage;
|
|
16
18
|
poiManager: PoiManage;
|
|
@@ -19,17 +21,17 @@ interface ManagerStore {
|
|
|
19
21
|
topologyManager: TopologyManage;
|
|
20
22
|
helperManager: HelperManage;
|
|
21
23
|
pluginObjectManager: PluginObjectManage;
|
|
22
|
-
[x: string]: DefaultManage;
|
|
23
24
|
}
|
|
24
25
|
declare class Manager {
|
|
25
26
|
readonly viewport: Viewport;
|
|
26
|
-
|
|
27
|
+
readonly scene: SceneManage;
|
|
27
28
|
readonly store: ManagerStore;
|
|
28
|
-
readonly postUpdate: Map<string, () => void>;
|
|
29
29
|
constructor(viewport: Viewport);
|
|
30
|
+
levelUpdate(): void;
|
|
30
31
|
update(): void;
|
|
31
32
|
clearObject(): void;
|
|
32
33
|
clear(): void;
|
|
34
|
+
dispose(): void;
|
|
33
35
|
}
|
|
34
36
|
export { ManagerStore, };
|
|
35
37
|
export default Manager;
|
package/types/Shared/index.d.ts
CHANGED
|
@@ -9,15 +9,18 @@ declare const isArray: (arg: any) => arg is any[];
|
|
|
9
9
|
declare const isObject: <T = Record<any, any>>(val: unknown) => val is T;
|
|
10
10
|
declare const isFunction: (val: unknown) => val is () => void;
|
|
11
11
|
declare const isPromise: <T = any>(val: unknown) => val is Promise<T>;
|
|
12
|
-
declare const
|
|
12
|
+
declare const getValueType: (val: any) => string;
|
|
13
13
|
declare const sleep: (time: number) => Promise<void>;
|
|
14
14
|
declare const getAsciiString: (buf: ArrayBufferLike, offset: number, len: number) => string;
|
|
15
15
|
export * from './log';
|
|
16
16
|
export * from './viewport';
|
|
17
17
|
export * from './MinHeap';
|
|
18
18
|
export * from './map';
|
|
19
|
-
export * from './
|
|
19
|
+
export * from './path';
|
|
20
|
+
export * from './cloneDeep';
|
|
21
|
+
export * from './material';
|
|
22
|
+
export * from './network';
|
|
20
23
|
export { hasOwn, };
|
|
21
24
|
export { isString, isBoolean, isNumber, isNull, isSymbol, };
|
|
22
25
|
export { isDate, isArray, isObject, isFunction, isPromise, };
|
|
23
|
-
export {
|
|
26
|
+
export { getValueType, sleep, getAsciiString, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const fetchFile: (url: string) => Promise<Response>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const parseFilePath: (url: string) => string;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Camera, Scene, WebGLRenderer } from 'three';
|
|
2
|
+
import { EffectComposer, Pass, Effect } from 'postprocessing';
|
|
3
|
+
export interface EffectState<T = Effect> {
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
effect: T;
|
|
6
|
+
}
|
|
7
|
+
declare class EffectManager {
|
|
8
|
+
readonly renderer: WebGLRenderer;
|
|
9
|
+
readonly scene: Scene;
|
|
10
|
+
readonly camera: Camera;
|
|
11
|
+
static CONSTANTS: {
|
|
12
|
+
renderPass: string;
|
|
13
|
+
normalPass: string;
|
|
14
|
+
depthDownsamplingPass: string;
|
|
15
|
+
effectPass: string;
|
|
16
|
+
smaaEffect: string;
|
|
17
|
+
ssaoEffect: string;
|
|
18
|
+
outlineEffect: string;
|
|
19
|
+
};
|
|
20
|
+
effectComposer: EffectComposer;
|
|
21
|
+
passesMap: Map<string, Pass>;
|
|
22
|
+
effectsMap: Map<string, EffectState>;
|
|
23
|
+
constructor(renderer: WebGLRenderer, scene: Scene, camera: Camera);
|
|
24
|
+
/**
|
|
25
|
+
* 更新 Effect pass
|
|
26
|
+
*/
|
|
27
|
+
updateEffectPass(): void;
|
|
28
|
+
/**
|
|
29
|
+
* 更新 camera
|
|
30
|
+
* @param camera
|
|
31
|
+
*/
|
|
32
|
+
updateCamera(camera: Camera): void;
|
|
33
|
+
private _initEffectComposer;
|
|
34
|
+
private _initPasses;
|
|
35
|
+
private _initRenderPass;
|
|
36
|
+
private _initNormalPass;
|
|
37
|
+
private _initDownSamplingPass;
|
|
38
|
+
private _initEffectPass;
|
|
39
|
+
private _initEffects;
|
|
40
|
+
private _initSMAAEffect;
|
|
41
|
+
private _initSSAOEffect;
|
|
42
|
+
private _initOutlineEffect;
|
|
43
|
+
}
|
|
44
|
+
export default EffectManager;
|
|
@@ -1,35 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';
|
|
3
|
-
import { Pass } from 'three/examples/jsm/postprocessing/Pass.js';
|
|
4
|
-
import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js';
|
|
5
|
-
import { OutlinePass } from 'three/examples/jsm/postprocessing/OutlinePass.js';
|
|
6
|
-
import { UnrealBloomPass } from 'three/examples/jsm/postprocessing/UnrealBloomPass.js';
|
|
7
|
-
import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js';
|
|
1
|
+
import { WebGLRenderer, Vector2 } from 'three';
|
|
8
2
|
import { CSS2DRenderer, CSS2DHalfRenderer, CSS3DRenderer } from '../Renderer';
|
|
9
3
|
import { InternalOptions, ViewportOptions } from '../Interface';
|
|
10
|
-
export interface PassObj {
|
|
11
|
-
renderPass: RenderPass;
|
|
12
|
-
outlinePass: OutlinePass;
|
|
13
|
-
unrealBloomPass: UnrealBloomPass;
|
|
14
|
-
sobelPass: ShaderPass;
|
|
15
|
-
gammaCorrectionPass: ShaderPass;
|
|
16
|
-
}
|
|
17
4
|
declare class RendererManager {
|
|
18
|
-
scene: Scene;
|
|
19
5
|
options: ViewportOptions;
|
|
20
6
|
internalOptions: InternalOptions;
|
|
21
|
-
effectComposer: EffectComposer | null;
|
|
22
7
|
renderer: WebGLRenderer;
|
|
23
8
|
container: HTMLElement;
|
|
24
9
|
interactiveContainer: HTMLElement;
|
|
25
10
|
rendererCSS2D: CSS2DRenderer;
|
|
26
11
|
rendererCSS3D: CSS3DRenderer;
|
|
27
12
|
rendererCSS2DHalf: CSS2DHalfRenderer;
|
|
28
|
-
constructor(
|
|
29
|
-
initEffectComposer(): EffectComposer;
|
|
30
|
-
initAllPass(camera: Camera): PassObj;
|
|
31
|
-
addPass(effectPass: Pass): void;
|
|
32
|
-
isIncludesPass(effectPass: Pass): boolean;
|
|
13
|
+
constructor(options: ViewportOptions);
|
|
33
14
|
setInternalState(name: keyof InternalOptions, state: boolean): void;
|
|
34
15
|
getWidth(): number;
|
|
35
16
|
getHeight(): number;
|
|
@@ -41,10 +22,5 @@ declare class RendererManager {
|
|
|
41
22
|
_initRenderCSS3D(): CSS3DRenderer;
|
|
42
23
|
_initRenderCSS2DHalf(): CSS2DHalfRenderer;
|
|
43
24
|
_initInteractiveContainer(): HTMLElement;
|
|
44
|
-
_initRenderPass(camera: Camera): RenderPass;
|
|
45
|
-
_initOutlinePass(camera: Camera): OutlinePass;
|
|
46
|
-
_initUnrealBloomPass(): UnrealBloomPass;
|
|
47
|
-
_initSobelPass(): ShaderPass;
|
|
48
|
-
_initGammaCorrectionPass(): ShaderPass;
|
|
49
25
|
}
|
|
50
26
|
export default RendererManager;
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import { Scene, PerspectiveCamera, WebGLRenderer, PMREMGenerator, Vector3, AnimationMixer, Intersection, Object3D, AnimationAction, AnimationClip } from 'three';
|
|
2
|
-
import { EffectComposer } from '
|
|
1
|
+
import { Clock, Scene, PerspectiveCamera, WebGLRenderer, PMREMGenerator, Vector3, AnimationMixer, Intersection, Object3D, AnimationAction, AnimationClip } from 'three';
|
|
2
|
+
import { EffectComposer } from 'postprocessing';
|
|
3
3
|
import Stats from 'three/examples/jsm/libs/stats.module.js';
|
|
4
4
|
import { Sky } from 'three/examples/jsm/objects/Sky.js';
|
|
5
5
|
import Scener from './Scener';
|
|
6
6
|
import { CSS2DRenderer, CSS2DHalfRenderer, CSS3DRenderer } from '../Renderer';
|
|
7
|
-
import RendererManager
|
|
7
|
+
import RendererManager from './RendererManager';
|
|
8
8
|
import CameraManager from './CameraManager';
|
|
9
|
+
import EffectManager from './EffectManager';
|
|
9
10
|
import { FullFreeControls } from '../Controls';
|
|
10
11
|
import { Model } from '../Library';
|
|
11
|
-
import { ColorSpace, SkyOptions, IColor, OffsetPoint, SceneEventType, Position, ViewportOptions, ViewportState, ModelAnimationFindFunc, SignalsState,
|
|
12
|
+
import { ColorSpace, SkyOptions, IColor, OffsetPoint, SceneEventType, Position, ViewportOptions, ViewportState, ModelAnimationFindFunc, SignalsState, ToneMappingOptions, SSAOOptions } from '../Interface';
|
|
12
13
|
import Info from './Info';
|
|
13
14
|
import { ViewHelper } from './ViewHelper';
|
|
14
|
-
export declare const innerRenderState:
|
|
15
|
+
export declare const innerRenderState: {
|
|
16
|
+
needsUpdate: boolean;
|
|
17
|
+
};
|
|
15
18
|
declare class Viewport {
|
|
19
|
+
clock: Clock;
|
|
16
20
|
options: ViewportOptions;
|
|
17
21
|
state: ViewportState;
|
|
18
22
|
signals: SignalsState;
|
|
@@ -32,8 +36,8 @@ declare class Viewport {
|
|
|
32
36
|
cameraManager: CameraManager;
|
|
33
37
|
camera: PerspectiveCamera;
|
|
34
38
|
controls: FullFreeControls;
|
|
39
|
+
effectManager: EffectManager;
|
|
35
40
|
effectComposer: EffectComposer;
|
|
36
|
-
passObj: PassObj;
|
|
37
41
|
mixer: AnimationMixer;
|
|
38
42
|
/**
|
|
39
43
|
* render 前回调
|
|
@@ -51,12 +55,17 @@ declare class Viewport {
|
|
|
51
55
|
_initInfo(): void;
|
|
52
56
|
_initStats(): void;
|
|
53
57
|
_initViewHelper(): void;
|
|
54
|
-
|
|
58
|
+
/**
|
|
59
|
+
***************************** post-processing ***************************
|
|
60
|
+
*/
|
|
61
|
+
setSobel(): void;
|
|
62
|
+
setBloom(): void;
|
|
63
|
+
setSSAO(options: SSAOOptions): void;
|
|
55
64
|
/**
|
|
56
65
|
***************************** renderer ***************************
|
|
57
66
|
*/
|
|
58
|
-
setBloom(options?: BloomOptions): void;
|
|
59
67
|
setColorSpace(colorSpace: ColorSpace): void;
|
|
68
|
+
setToneMapping(options?: ToneMappingOptions): void;
|
|
60
69
|
/**
|
|
61
70
|
***************************** background ***************************
|
|
62
71
|
*/
|
|
@@ -80,6 +89,9 @@ declare class Viewport {
|
|
|
80
89
|
*/
|
|
81
90
|
render(fn?: () => void): Promise<void>;
|
|
82
91
|
trigerRender(count?: number): void;
|
|
92
|
+
/**
|
|
93
|
+
* effect passes
|
|
94
|
+
*/
|
|
83
95
|
_passesObserver(): void;
|
|
84
96
|
/**
|
|
85
97
|
* 每帧都会被执行
|
|
@@ -106,6 +118,5 @@ declare class Viewport {
|
|
|
106
118
|
* @param {MouseEvent | TouchEvent} event 鼠标事件对象 或 触摸事件对象
|
|
107
119
|
*/
|
|
108
120
|
_triggerSceneEventInAllObject(eventType: SceneEventType, event: MouseEvent | TouchEvent): void;
|
|
109
|
-
_getManagerScene(type: string): Object3D | undefined;
|
|
110
121
|
}
|
|
111
122
|
export default Viewport;
|