UNPKG

soonspacejs

Version:
107 lines (106 loc) 2.99 kB
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;