@xeokit/xeokit-sdk
Version:
3D BIM IFC Viewer SDK for AEC engineering applications. Open Source JavaScript Toolkit based on pure WebGL for top performance, real-world coordinates and full double precision
115 lines (102 loc) • 5.54 kB
TypeScript
import {IFCObjectDefaults, Plugin, VBOSceneModel, Viewer} from "../../viewer";
export declare interface IDotBIMDefaultDataSource {
/**
* Gets the contents of the given ````.xkt```` file in an arraybuffer.
*
* @param {String|Number} dotBIMSrc Path or ID of an ````.bim```` file.
* @param {Function} ok Callback fired on success, argument is the ````.xkt```` file in an arraybuffer.
* @param {Function} error Callback fired on error.
*/
getDotBIM(dotBIMSrc: string | number, ok: (buffer: ArrayBuffer) => void, error: (e: Error) => void): void;
get cacheBuster(): boolean;
set cacheBuster(value: boolean);
}
export declare type DotBIMLoaderPluginConfiguration = {
/** Optional ID for this plugin, so that we can find it within {@link Viewer.plugins}. */
id?: string;
/** Map of initial default states for each loaded {@link Entity} that represents an object. Default value is {@link IFCObjectDefaults}.*/
objectDefaults?: IFCObjectDefaults;
/** A custom data source through which the XKTLoaderPlugin can load model and metadata files. Defaults to an instance of {@link DotBIMDefaultDataSource}, which loads uover HTTP. */
dataSource?: IDotBIMDefaultDataSource;
};
/**
* @param {Number[]} [params.rotation=[0,0,0]] The model's orientation, as Euler angles given in degrees, for each of the X, Y and Z axis.
* @param {Boolean} [params.backfaces=true] When true, always show backfaces, even on objects for which the .BIM material is single-sided. When false, only show backfaces on geometries whenever the .BIM material is double-sided.
* @param {Boolean} [params.dtxEnabled=true] When ````true```` (default) use data textures (DTX), where appropriate, to
* represent the returned model. Set false to always use vertex buffer objects (VBOs). Note that DTX is only applicable
* to non-textured triangle meshes, and that VBOs are always used for meshes that have textures, line segments, or point
* primitives. Only works while {@link DTX#enabled} is also ````true````.
*/
export declare type LoadDotBIMModel = {
/** ID to assign to the root {@link Entity#id}, unique among all components in the Viewer's {@link Scene}, generated automatically by default. */
id?: string;
/** Path to a .BIM file, as an alternative to the ````bim```` parameter. */
src?: string;
/** .BIM JSON, as an alternative to the ````src```` parameter. */
bim?: any;
/** Map of initial default states for each loaded {@link Entity} that represents an object. Default value is {@link IFCObjectDefaults}. */
objectDefaults?: object;
/** When loading metadata, only loads objects that have {@link MetaObject}s with {@link MetaObject.type} values in this list. */
includeTypes?: string[]
/** When loading metadata, never loads objects that have {@link MetaObject}s with {@link MetaObject.type} values in this list. */
excludeTypes?: string[];
/** The double-precision World-space origin of the model's coordinates. */
origin?: number[];
/** The single-precision position, relative to ````origin````. */
position?: number[];
/** The model's scale. */
scale?: number[];
/** The model's orientation, given as Euler angles in degrees, for each of the X, Y and Z axis. */
rotation?: number[];
/** When true, always show backfaces, even on objects for which the .BIM material is single-sided. When false, only show backfaces on geometries whenever the .BIM material is double-sided. */
backfaces?: boolean;
/** When ````true```` (default) use data textures (DTX), where appropriate, to
* represent the returned model. Set false to always use vertex buffer objects (VBOs). Note that DTX is only applicable
* to non-textured triangle meshes, and that VBOs are always used for meshes that have textures, line segments, or point
* primitives. Only works while {@link DTX#enabled} is also ````true````. */
dtxEnabled?: boolean;
};
export declare class DotBIMLoaderPlugin extends Plugin {
/**
* @constructor
*
* @param {Viewer} viewer The Viewer.
* @param {DotBIMLoaderPluginConfiguration} cfg Plugin configuration.
*/
constructor(viewer: Viewer, cfg?: DotBIMLoaderPluginConfiguration);
/**
* Sets a custom data source through which the DotBIMLoaderPlugin can .BIM files.
*
* Default value is {@link DotBIMDefaultDataSource}, which loads via an XMLHttpRequest.
*
* @type {IDotBIMDefaultDataSource}
*/
set dataSource(arg: IDotBIMDefaultDataSource);
/**
* Gets the custom data source through which the DotBIMLoaderPlugin can load .BIM files.
*
* Default value is {@link DotBIMDefaultDataSource}, which loads via an XMLHttpRequest.
*
* @type {IDotBIMDefaultDataSource}
*/
get dataSource(): IDotBIMDefaultDataSource;
/**
* Sets map of initial default states for each loaded {@link Entity} that represents an object.
*
* @type {IFCObjectDefaults}
*/
set objectDefaults(arg: IFCObjectDefaults);
/**
* Gets map of initial default states for each loaded {@link Entity} that represents an object.
*
* @type {IFCObjectDefaults}
*/
get objectDefaults(): IFCObjectDefaults;
/**
* Loads a .BIM model from a file into this DotBIMLoaderPlugin's {@link Viewer}.
*
* @param {LoadDotBIMModel} params Loading parameters.
* @returns {VBOSceneModel} Entity representing the model, which will have {@link Entity.isModel} set ````true```` and will be registered by {@link Entity.id} in {@link Scene.models}.
*/
load(params: LoadDotBIMModel): VBOSceneModel;
}