web-ifc-viewer
Version:
149 lines (148 loc) • 6.35 kB
TypeScript
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>;
}