soonspacejs
Version:
soonspacejs 2.x
107 lines (106 loc) • 2.99 kB
TypeScript
import { LoadingManager, Object3D } from 'three';
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
import { STLLoader } from 'three/examples/jsm/loaders/STLLoader.js';
import localforage from 'localforage';
import { FBXLoader } from '../Loader/FBXLoader.js';
import { OBJLoader } from '../Loader/OBJLoader.js';
import Viewport from '../Viewport';
import { Group, GroupInfo, Model, ModelInfo } from '../Library';
import { CloneModelInfo } from '../Interface';
import { ObjectsCache } from '../Cache';
import DefaultManage from './DefaultManage';
declare class ModelManage extends DefaultManage {
readonly viewport: Viewport;
readonly cache: ObjectsCache;
/**
* 场景是否卸载
*/
isDisposed: boolean;
modelsPromiseMap: Map<string, Promise<Model | null>>;
modelsMap: Map<string, Model>;
_dbReady: boolean;
/**
* workaround for types
*/
store: typeof localforage;
cacheStore: typeof localforage;
loadingManager: LoadingManager;
gltfLoader: GLTFLoader;
fbxLoader: FBXLoader;
objLoader: OBJLoader;
stlLoader: STLLoader;
constructor(viewport: Viewport, cache: ObjectsCache);
/**
* 设置 draco path
* @param path
*/
setDracoDecoderPath(path: string): void;
setKtx2DecoderPath(path: string): void;
/**
* 加载模型
* @param modelInfo
* @returns
*/
load(modelInfo: ModelInfo, parent?: Object3D | null): Promise<Model | null>;
/**
* 模型解析
* @param format
* @param buffer
* @param modelInfo
* @returns
*/
parse(modelInfo: ModelInfo): Promise<Model | null>;
clone(model: Model, info: CloneModelInfo, parent?: Object3D | null): Promise<Model>;
loadToGroup(groupInfo: GroupInfo, modelInfo: ModelInfo[]): Promise<Group>;
addForGroup(group: Group | null, modelInfo: ModelInfo[]): Promise<Group | null>;
/**
* 清空本地模型缓存数据
*/
clearIdb(): Promise<void>;
dispose(): void;
_checkDbReady(): Promise<void>;
/**
* private methods
*/
private _initLoadingManager;
private _setModelsMap;
/**
* 解析 sbm 格式
* @param modelInfo
* @returns
*/
private _parseSbm;
/**
* 解析 sbmx 格式
* @param modelInfo
* @returns
*/
private _parseSbmx;
/**
* 解析 gltf、glb 格式
* @param modelInfo
* @param _buffer
* @returns
*/
private _parseGltf;
/**
* 解析 fbx 格式
* @param modelInfo
* @returns
*/
private _parseFbx;
/**
* 解析 obj 格式
* @param modelInfo
*/
private _parseObj;
/**
* 解析 stl 格式
* @param modelInfo
*/
private _parseStl;
private _innerLoad;
private _fetchBuffer;
private _getBuffer;
}
export default ModelManage;