visual-heatmap
Version:
"Advanced Visual Heatmap - High Scale webGL based rendering."
130 lines (129 loc) • 4.08 kB
TypeScript
import { BackgroundImageConfig, GradientElement, HearmapExData, HeatmapConfig, MappedGradient, Point, ShaderProgram, Translate } from "./types";
export declare class HeatmapRenderer {
ctx: WebGL2RenderingContext | null;
ratio: number;
width: number;
height: number;
imageConfig: BackgroundImageConfig | null;
configMin: number | null;
configMax: number | null;
min: number;
max: number;
size: number;
zoom: number;
angle: number;
intensity: number;
translate: [number, number];
opacity: number;
hearmapExData: HearmapExData | object;
gradient: MappedGradient | null;
_imageTexture: WebGLTexture | null;
_pDataLength: number | undefined;
_gradShadOP: ShaderProgram;
_colorShadOP: ShaderProgram;
_imageShaOP: ShaderProgram;
_fbTexObj: WebGLTexture;
_fbo: WebGLFramebuffer;
private layer;
private dom;
private imgWidth;
private imgHeight;
private heatmapData;
private type;
constructor(container: string | HTMLElement, config: HeatmapConfig);
/**
* Invoke resize method on container resize.
*/
resize(): void;
clear(): void;
/**
* Set the maximum data value for relative gradient calculations
* @param max - number
* @returns instance
*/
setMax(max: number): HeatmapRenderer;
/**
* Set the minimum data value for relative gradient calculations
* @param min - number
* @returns instance
*/
setMin(min: number): HeatmapRenderer;
/**
* Accepts array of objects with color value and offset
* @param gradient - Color Gradient
* @returns instance
*/
setGradient(gradient: GradientElement[]): HeatmapRenderer;
/**
* Set the translate on the Heatmap
* @param translate - Accepts array [x, y]
* @returns instance
*/
setTranslate(translate: Translate): HeatmapRenderer;
/**
* Set the zoom transformation on the Heatmap
* @param zoom - Accepts float value
* @returns instance
*/
setZoom(zoom: number): HeatmapRenderer;
/**
* Set the rotation transformation on the Heatmap
* @param angle - Accepts angle in radians
* @returns instance
*/
setRotationAngle(angle: number): HeatmapRenderer;
/**
* Set the point radius
* @param size - Accepts float value
* @returns instance
*/
setSize(size: number): HeatmapRenderer;
/**
* Set the intensity factor
* @param intensity - Accepts float value
* @returns instance
*/
setIntensity(intensity: number): HeatmapRenderer;
/**
* Set the opacity factor
* @param opacity - The opacity factor.
* @returns instance
*/
setOpacity(opacity: number): HeatmapRenderer;
/**
* Set the background image
* @param config - Accepts Object with { url, height, width, x, and y} properties
* @returns instance
*/
setBackgroundImage(config: BackgroundImageConfig): HeatmapRenderer | undefined;
/**
* Clear heatmap
*/
clearData(): void;
/**
* Method to append data points. This method automatically adds new data points to the existing dataset and the heatmap updates in immediately. no need to call the ".render" method separately.
* @param data - The data points with 'x', 'y' and 'value'
* @param transIntactFlag - Flag indicating whether to apply existing heatmap transformations on the newly added data points
* @returns instance
*/
addData(data: Point[], transIntactFlag: boolean): HeatmapRenderer;
/**
* Method to load data. This will override any existing data.
* @param data - Accepts an array of data points with 'x', 'y' and 'value'
* @returns instance
*/
renderData(data: Point[]): HeatmapRenderer;
/**
* Method to update the heatmap. This method to be invoked on every change in configuration.
*/
render(): void;
/**
* Get projected co-ordinates relative to the heatmap
* @param data - The data point to project.
* @returns projected data point.
*/
projection(data: Point): {
x: number;
y: number;
};
}