import { Angle, Color } from '../../numbers'; import { AgentSet, CellGrid } from '../../structures'; import { Agent, Cell } from '../../entities'; import { Render2DConstructor, ColorFunction, StyleFunction } from './Render2D'; export declare class WebGL2D { renderWidth: number; renderHeight: number; frameRate: number; cellWidth: number; cellHeight: number; private gl; private program; private posLoc; private colorLoc; private resolutionLoc; private gridVAO; private gridVBO; private agentVAO; private agentVBO; private miscVAO; private miscVBO; constructor(opts: Render2DConstructor); clear(): void; drawCellGrid(world: CellGrid, opts?: { colorFunction?: ColorFunction; }): void; drawAgentSet(agents: AgentSet, opts?: { colorFunction?: ColorFunction; styleFunction?: StyleFunction; }): void; private drawAgentBatch; drawAgent(agent: T, opts?: { colorFunction?: ColorFunction; styleFunction?: StyleFunction; }): void; drawCircle(x: number, y: number, options?: { radius?: number; rotation?: Angle; fill?: Color; stroke?: Color; lineWidth?: number; showRotation?: boolean; }): void; drawRectangle(x: number, y: number, options?: { width?: number; height?: number; rotation?: Angle; fill?: Color; stroke?: Color; lineWidth?: number; }): void; drawTriangle(x: number, y: number, options?: { width?: number; rotation?: Angle; fill?: Color; stroke?: Color; lineWidth?: number; }): void; drawLine(x1: number, y1: number, x2: number, y2: number, stroke: Color, options?: { lineWidth?: number; }): void; drawPolygon(points: [number, number][], options?: { fill?: Color; stroke?: Color; lineWidth?: number; }): void; drawPolyline(points: [number, number][], stroke: Color, options?: { lineWidth?: number; }): void; } export default WebGL2D;