import { AttributeInfo } from "./Shader"; import { ResourceReference } from "./ResourceReference"; import { Vector3 } from "./Vector3"; import { Point } from "../public/Point"; export declare class Model extends ResourceReference { private gl; /** * * @type {Array} */ attributeInfos: AttributeInfo[]; /** * the vertices buffer */ arrayBuffer: WebGLBuffer; /** * the index buffer */ indexBuffer: WebGLBuffer; /** * Number of vertices */ numOfVertices: number; highestModelPosition: Vector3; private _points; private _minX; private _maxX; private _minY; private _maxY; private _minZ; private _maxZ; /** * create an model with * @param gl * @param type the item type * @param data * @param properties * @param attributes * @param indices the indices */ constructor(gl: WebGLRenderingContext, data?: any[], properties?: string[], attributes?: string[], indices?: number[]); init(data?: any, attributeInfos?: AttributeInfo[], indices?: number[]): void; init3dObjectFormArrayBuffer(vertices?: ArrayBuffer): void; init3dObject(data?: number[], indices?: number[]): void; /** * set indices * @param indices */ setIndices(indices: number[]): void; bind(): void; unbind(): void; /** * render this model */ render(type: number): void; renderPartial(type: number, first: number, count: number): void; /** * destroy the model to save memory */ destroy(): void; setHighestModelPosition(highestModelPosition: Vector3): void; getHighestModelPosition(): Vector3; get points(): Point[]; set points(value: Point[]); get maxX(): number; set maxX(value: number); get maxY(): number; set maxY(value: number); get maxZ(): number; set maxZ(value: number); get minX(): number; set minX(value: number); get minY(): number; set minY(value: number); get minZ(): number; set minZ(value: number); }