UNPKG

@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

40 lines (34 loc) 1.47 kB
/** * @desc A **Material** defines the surface appearance of attached {@link Mesh}es. * * Material is the base class for: * * * {@link MetallicMaterial} - physically-based material for metallic surfaces. Use this one for things made of metal. * * {@link SpecularMaterial} - physically-based material for non-metallic (dielectric) surfaces. Use this one for insulators, such as ceramics, plastics, wood etc. * * {@link PhongMaterial} - material for classic Blinn-Phong shading. This is less demanding of graphics hardware than the physically-based materials. * * {@link LambertMaterial} - material for fast, flat-shaded CAD rendering without textures. Use this for navigating huge CAD or BIM models interactively. This material gives the best rendering performance and uses the least memory. * * {@link EmphasisMaterial} - defines the appearance of Meshes when "xrayed" or "highlighted". * * {@link EdgeMaterial} - defines the appearance of Meshes when edges are emphasized. * * A {@link Scene} is allowed to contain a mixture of these material types. * */ import {Component} from '../Component.js'; import {stats} from '../stats.js'; class Material extends Component { /** @private */ get type() { return "Material"; } constructor(owner, cfg={}) { super(owner, cfg); stats.memory.materials++; } destroy() { super.destroy(); stats.memory.materials--; } } export {Material};