web-ifc-viewer
Version:
61 lines (60 loc) • 2.03 kB
TypeScript
import { LineSegments2 } from 'three/examples/jsm/lines/LineSegments2';
import { LineMaterial } from 'three/examples/jsm/lines/LineMaterial';
import { BufferGeometry, Mesh, Plane } from 'three';
import { IfcManager } from '../../ifc';
import { IfcContext } from '../../context';
export interface Style {
ids: number[];
categories: number[];
meshes: Mesh[];
material: LineMaterial;
}
export interface StyleList {
[styleName: string]: Style;
}
export interface EdgesItems {
[styleName: string]: {
generatorGeometry: BufferGeometry;
mesh: LineSegments2;
};
}
export interface Model extends Mesh {
modelID: number;
}
export declare class ClippingEdges {
static readonly styles: StyleList;
static forceStyleUpdate: boolean;
static createDefaultIfcStyles: boolean;
static edgesParent: any;
private static invisibleMaterial;
private static defaultMaterial;
static context: IfcContext;
static ifc: IfcManager;
private static basicEdges;
edges: EdgesItems;
private isVisible;
private inverseMatrix;
private localPlane;
private tempLine;
private tempVector;
private readonly clippingPlane;
private stylesInitialized;
constructor(clippingPlane: Plane);
get visible(): boolean;
set visible(visible: boolean);
private static newGeneratorGeometry;
dispose(): void;
disposeStylesAndHelpers(): void;
updateEdges(): Promise<void>;
static newStyle(styleName: string, categories: number[], material?: LineMaterial): Promise<void>;
static newStyleFromMesh(styleName: string, meshes: Model[], material?: LineMaterial): Promise<void>;
updateStylesIfcGeometry(): Promise<void>;
private updateSubsetsTranformation;
private updateIfcStyles;
private createDefaultIfcStyles;
private static newSubset;
private static getItemIDs;
private static getVisibileItems;
private newThickEdges;
private drawEdges;
}