import { Geometry, Mesh } from "../rendering/renderContext"; import { IPersistenceManager } from "../interfaces"; import { IShaderProperties, IShaderStates, PropertyCollection, Shader, StateCollection } from "./shader"; import { SubMesh } from "../propertyComponents/meshRenderer"; import { AssetBase } from "./assetBase"; import { Viewer } from "../viewer"; import { EventArgs } from "../events"; import { MaterialDefines } from "../materials/materialDefines"; export declare enum FillMode { Triangle = 0, WireFrame = 1, Point = 2, PointList = 3, LineList = 4, LineLoop = 5, LineStrip = 6, TriangleStrip = 7, TriangleFan = 8 } export declare class Material extends AssetBase implements IShaderProperties, IShaderStates { typeName: string; protected _shader: Shader; protected _properties: PropertyCollection; protected _states: StateCollection; protected _defines: MaterialDefines; protected _visible: boolean; originJson: any; /** * 主要用于构件的位置变换. */ _worldModellingMatrix: Float32Array; get shader(): Shader; set shader(value: Shader); get visible(): boolean; set visible(value: boolean); set properties(value: PropertyCollection); get properties(): PropertyCollection; get defines(): MaterialDefines; set defines(value: MaterialDefines); protected _fillMode: FillMode; protected _pointSize: number; /** * 获取材质的几何填充方式。 */ get fillMode(): number; /** * 获取材质的几何填充方式。 */ set fillMode(value: number); /** * 获取绘制点的大小。 */ get pointSize(): number; /** * 设置绘制点的大小。 */ set pointSize(value: number); /** * 获取是否为点云绘制模式。 */ get pointsCloud(): boolean; /** * 设置是否为点云绘制模式。 */ set pointsCloud(value: boolean); constructor(viewer?: Viewer); draw(geometry: Geometry, submesh: SubMesh): void; setShader(shader: Shader): void; /** * Binds the submesh data. * @param mesh - The BJS mesh. * @param subMesh - A submesh of the BJS mesh. */ bindForSubMesh(mesh: Mesh, submesh: SubMesh): void; protected onInit(viewer: Viewer, args: EventArgs): void; serialize(pm?: IPersistenceManager): any; deserialize(obj: any, pm?: IPersistenceManager): void; protected renameTextures(props: any, prefix: string): void; }