import type { IAttribute, IElements, IModel, IModelDrawOptions, IModelInitializationOptions, IUniform } from '@antv/l7-core'; import type regl from 'regl'; /** * adaptor for regl.DrawCommand */ export default class ReglModel implements IModel { private reGl; private destroyed; private drawCommand; private drawParams; private options; private uniforms; constructor(reGl: regl.Regl, options: IModelInitializationOptions); updateAttributesAndElements(attributes: { [key: string]: IAttribute; }, elements: IElements): void; updateAttributes(attributes: { [key: string]: IAttribute; }): void; addUniforms(uniforms: { [key: string]: IUniform; }): void; draw(options: IModelDrawOptions, pick?: boolean): void; destroy(): void; /** * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#depth-buffer */ private initDepthDrawParams; private getBlendDrawParams; /** * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#stencil */ private getStencilDrawParams; private getColorMaskDrawParams; /** * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#culling */ private initCullDrawParams; /** * 考虑结构体命名, eg: * a: { b: 1 } -> 'a.b' * a: [ { b: 1 } ] -> 'a[0].b' */ private extractUniforms; private extractUniformsRecursively; }