agentjs-core
Version:
A comprehensive agent-based modeling framework with built-in p5.js visualization
178 lines • 4.57 kB
TypeScript
/**
* 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