UNPKG

agentjs-core

Version:

A comprehensive agent-based modeling framework with built-in p5.js visualization

178 lines 4.57 kB
/** * HeatMapSystem - Agent density and property value heat maps * * Features: * - Agent density heat maps * - Property value heat maps (autonomy, resources, etc.) * - Dynamic heat map updates * - Customizable color schemes * - Performance-optimized rendering * - Multiple heat map layers */ /// <reference types="@types/p5-global" /> import type { Agent } from '../core/agents/Agent'; import type { AgentId } from '../types/core'; /** Heat map configuration */ export interface HeatMapConfig { cellSize: number; smoothing: number; intensity: number; radius: number; colorScheme: ColorScheme; updateInterval: number; maxValue: number; minValue: number; threshold: number; blur: boolean; blurRadius: number; } /** Color scheme for heat maps */ export type ColorScheme = 'thermal' | 'viridis' | 'plasma' | 'cool' | 'warm' | 'custom'; /** Heat map layer types */ export type HeatMapLayer = 'density' | 'autonomy' | 'resources' | 'energy' | 'custom'; /** * HeatMapSystem - Advanced heat map visualization * * Educational Context: Visualizes spatial patterns in agent * populations and behaviors, revealing clustering, movement * patterns, and resource distribution dynamics. */ export declare class HeatMapSystem { /** Heat map configurations for different layers */ private configs; /** Heat map data for different layers */ private heatMaps; /** Active layers to render */ private activeLayers; /** Color gradients for different schemes */ private colorGradients; /** p5 instance for rendering */ private p5Instance; /** Graphics buffer for performance */ private graphicsBuffer; /** Current timestamp */ private currentTime; /** Performance statistics */ private readonly stats; /** Default bounds for heat maps */ private defaultBounds; constructor(); /** * Initialize default configurations */ private initializeDefaultConfigs; /** * Set p5 instance and initialize graphics */ setP5Instance(p5Instance: p5Instance): void; /** * Initialize color gradients with p5 instance */ private initializeColorGradients; /** * Create graphics buffer for performance */ private createGraphicsBuffer; /** * Update all active heat maps */ update(agents: Map<AgentId, Agent>, currentTime: number): void; /** * Update specific heat map layer */ private updateHeatMapLayer; /** * Initialize heat map data structure */ private initializeHeatMap; /** * Clear heat map values */ private clearHeatMap; /** * Update density heat map */ private updateDensityHeatMap; /** * Update property-based heat map */ private updatePropertyHeatMap; /** * Add agent influence to heat map */ private addAgentInfluence; /** * Apply smoothing to heat map */ private applySmoothing; /** * Apply blur to heat map */ private applyBlur; /** * Render all active heat maps */ render(sketch: p5Instance): void; /** * Render specific heat map layer */ private renderHeatMapLayer; /** * Get color from gradient at position */ private getColorFromGradient; /** * Enable heat map layer */ enableLayer(layer: HeatMapLayer): void; /** * Disable heat map layer */ disableLayer(layer: HeatMapLayer): void; /** * Toggle heat map layer */ toggleLayer(layer: HeatMapLayer): boolean; /** * Check if layer is active */ isLayerActive(layer: HeatMapLayer): boolean; /** * Get active layers */ getActiveLayers(): HeatMapLayer[]; /** * Update layer configuration */ updateLayerConfig(layer: HeatMapLayer, config: Partial<HeatMapConfig>): void; /** * Get layer configuration */ getLayerConfig(layer: HeatMapLayer): HeatMapConfig | undefined; /** * Set heat map bounds */ setBounds(bounds: { minX: number; maxX: number; minY: number; maxY: number; }): void; /** * Get performance statistics */ getStats(): typeof this.stats; /** * Export heat map data */ exportHeatMapData(layer: HeatMapLayer): number[][] | null; /** * Clear all heat maps */ clear(): void; /** * Destroy the heat map system */ destroy(): void; } //# sourceMappingURL=HeatMapSystem.d.ts.map