@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
66 lines (60 loc) • 3.2 kB
TypeScript
import { Plugin, Viewer, VBOSceneModel } from "../../viewer";
export declare type XML3DLoaderPluginConfiguration = {
/** Optional ID for this plugin, so that we can find it within {@link Viewer.plugins}. */
id?: string;
/** Path to the directory that contains the bundled [zip.js](https://gildas-lormeau.github.io/zip.js/) archive */
workerScriptsPath: string;
/** What type of materials to create while loading */
materialType?: "MetallicMaterial" | "SpecularMaterial" | "PhongMaterial";
/** When true, will create a {@link MetaModel} for the model in {@link MetaScene.metaModels}. */
createMetaModel?: boolean;
}
export declare type LoadXML3DModel = {
/** ID to assign to the model's root {@link Entity}, unique among all components in the Viewer's {@link Scene}. */
id: string;
/** Path to a 3DXML file. */
src: string;
/** Whether or not xeokit renders the {@link Entity} with edges emphasized. */
edges?: boolean;
/** The model's World-space 3D position. */
position?: number[];
/** The model's World-space scale. */
scale?: number[];
/** The model's World-space rotation, as Euler angles given in degrees, for each of the X, Y and Z axis. */
rotation?: number[];
/** The model's world transform matrix. Overrides the position, scale and rotation parameters. */
matrix?: number[];
/** When true, allows visible backfaces, wherever specified in the 3DXML. When false, ignores backfaces. */
backfaces?: boolean;
/** When xraying, highlighting, selecting or edging, this is the threshold angle between normals of adjacent triangles, below which their shared wireframe edge is not drawn. */
edgeThreshold?: number;
/** What type of materials to create while loading: "MetallicMaterial" to create {@link MetallicMaterial}s, "SpecularMaterial" to create {@link SpecularMaterial}s or "PhongMaterial" to create {@link PhongMaterial}s. As it loads XML3D's Phong materials, the XMLLoaderPlugin will do its best approximate conversion of those to the specified workflow. */
materialType?: "MetallicMaterial" | "SpecularMaterial" | "PhongMaterial";
/** When true, will create a {@link MetaModel} for the model in {@link MetaScene.metaModels}. */
createMetaModel?: boolean;
};
/**
* {@link Viewer} plugin that loads models from [3DXML](https://en.wikipedia.org/wiki/3DXML) files.
*/
export declare class XML3DLoaderPlugin extends Plugin {
/**
* @constructor
* @param {Viewer} viewer The Viewer.
* @param {XML3DLoaderPluginConfiguration} cfg Plugin configuration.
*/
constructor(viewer: Viewer, cfg?:XML3DLoaderPluginConfiguration );
/**
* Supported 3DXML schema versions
* @type {string[]}
*/
supportedSchemas: string[];
/**
* Loads a 3DXML model from a file into this XML3DLoaderPlugin's {@link Viewer}.
*
* Creates a tree of {@link Entity}s within the Viewer's {@link Scene} that represents the model.
*
* @param {LoadXML3DModel} params Loading parameters.
* @returns {Entity} 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: LoadXML3DModel): VBOSceneModel;
}