UNPKG

web-ifc-viewer

Version:
149 lines (148 loc) 6.35 kB
import { Color } from 'three'; import { IfcContext, IfcManager, ViewerOptions, IfcGrid, IfcAxes, IfcClipper, DropboxAPI, Edges, SectionFillManager, IfcDimensions, PlanManager } from './components'; import { GLTFManager } from './components/import-export/glTF'; import { ShadowDropper } from './components/display/shadow-dropper'; import { DXFWriter } from './components/import-export/dxf'; import { PDFWriter } from './components/import-export/pdf'; import { EdgeProjector } from './components/import-export/edges-vectorizer/edge-projection'; import { SelectionWindow } from './components/selection/selection-window'; export declare class IfcViewerAPI { context: IfcContext; IFC: IfcManager; GLTF: GLTFManager; clipper: IfcClipper; plans: PlanManager; filler: SectionFillManager; dimensions: IfcDimensions; edges: Edges; shadowDropper: ShadowDropper; dxf: DXFWriter; pdf: PDFWriter; edgesProjector: EdgeProjector; grid: IfcGrid; axes: IfcAxes; dropbox: DropboxAPI; selectionWindow: SelectionWindow; constructor(options: ViewerOptions); /** * @deprecated Use `IfcViewerAPI.clipper.createPlane()` instead. * Adds a clipping plane on the face pointed to by the cursor. */ addClippingPlane: () => void; /** * @deprecated Use `IfcViewerAPI.clipper.deletePlane()` instead. * Removes the clipping plane pointed by the cursor. */ removeClippingPlane: () => void; /** * @deprecated Use `IfcViewerAPI.clipper.toggle()` instead. * Turns on / off all clipping planes. */ toggleClippingPlanes: () => void; /** * @deprecated Use `this.dropbox.loadDropboxIfc()` instead. * Opens a dropbox window where the user can select their IFC models. */ openDropboxWindow(): void; /** * @deprecated Use `IfcViewerAPI.IFC.loadIfc()` instead. * Loads the given IFC in the current scene. * @file IFC as File. * @fitToFrame (optional) if true, brings the perspectiveCamera to the loaded IFC. */ loadIfc(file: File, fitToFrame?: boolean): Promise<void>; /** * @deprecated Use `IfcViewerAPI.grid.setGrid()` instead. * Adds a base [grid](https://threejs.org/docs/#api/en/helpers/GridHelper) to the scene. * @size (optional) Size of the grid. * @divisions (optional) Number of divisions in X and Y. * @ColorCenterLine (optional) Color of the XY central lines of the grid. * @colorGrid (optional) Color of the XY lines of the grid. */ addGrid(size?: number, divisions?: number, colorCenterLine?: Color, colorGrid?: Color): void; /** * @deprecated Use `IfcViewerAPI.axes.setAxes()` instead. * Adds base [axes](https://threejs.org/docs/#api/en/helpers/AxesHelper) to the scene. * @size (optional) Size of the axes. */ addAxes(size?: number): void; /** * @deprecated Use `IfcViewerAPI.IFC.loadIfcUrl()` instead. * Loads the given IFC in the current scene. * @file IFC as URL. * @fitToFrame (optional) if true, brings the perspectiveCamera to the loaded IFC. */ loadIfcUrl(url: string, fitToFrame?: boolean): Promise<void>; /** * @deprecated Use `IfcViewerAPI.IFC.setWasmPath()` instead. * Sets the relative path of web-ifc.wasm file in the project. * Beware: you **must** serve this file in your page; this means * that you have to copy this files from *node_modules/web-ifc* * to your deployment directory. * * If you don't use this methods, * IFC.js assumes that you are serving it in the root directory. * * Example if web-ifc.wasm is in dist/wasmDir: * `ifcLoader.setWasmPath("dist/wasmDir/");` * * @path Relative path to web-ifc.wasm. */ setWasmPath(path: string): void; /** * @deprecated Use `IfcViewerAPI.IFC.getSpatialStructure()` instead. * Gets the spatial structure of the specified model. * @modelID ID of the IFC model. */ getSpatialStructure(modelID: number): Promise<any>; /** * @deprecated Use `IfcViewerAPI.IFC.getProperties()` instead. * Gets the properties of the specified item. * @modelID ID of the IFC model. * @id Express ID of the item. * @indirect If true, also returns psets, qsets and type properties. */ getProperties(modelID: number, id: number, indirect: boolean): Promise<any>; /** * @deprecated Use `IfcViewerAPI.IFC.getModelID()` instead. * Gets the ID of the model pointed by the cursor. */ getModelID(): number | null; /** * @deprecated Use `IfcViewerAPI.IFC.getAllItemsOfType()` instead. * Gets all the items of the specified type in the specified IFC model. * @modelID ID of the IFC model. * @type type of element. You can import the type from web-ifc. * @verbose If true, also gets the properties for all the elements. */ getAllItemsOfType(modelID: number, type: number, verbose?: boolean): Promise<any[]>; /** * @deprecated Use `IfcViewerAPI.IFC.selector.prePickIfcItem()` instead. * Highlights the item pointed by the cursor. */ prePickIfcItem: () => void; /** * @deprecated Use `IfcViewerAPI.IFC.selector.pickIfcItem()` instead. * Highlights the item pointed by the cursor and gets is properties. */ pickIfcItem: () => Promise<{ modelID: number; id: number; } | null>; /** * @deprecated Use `IfcViewerAPI.IFC.selector.pickIfcItemsByID()` instead. * Highlights the item with the given ID. * @modelID ID of the IFC model. * @id Express ID of the item. */ pickIfcItemsByID: (modelID: number, ids: number[]) => void; /** * Releases all the memory allocated by IFC.js. * Use this only when deleting the ifcViewerAPI instance. * This is especially important when using libraries and frameworks that handle the lifecycle * of objects automatically (e.g. React, Angular, etc). If you are using one of these and are * instantiating webIfcViewer inside a component, make sure you use this method in the component * destruction event. */ dispose(): Promise<void>; }