sigma
Version:
A JavaScript library dedicated to graph drawing.
33 lines (32 loc) • 1.34 kB
TypeScript
/**
* Sigma.js WebGL Abstract Edge Program
* =====================================
*
* @module
*/
import { AbstractProgram, IProgram, RenderParams } from "./program";
import { EdgeAttributes, NodeAttributes } from "../../../../types";
export interface RenderEdgeParams extends RenderParams {
edgesPowRatio: number;
}
export interface IEdgeProgram extends IProgram {
computeIndices(): void;
process(sourceData: NodeAttributes, targetData: NodeAttributes, data: EdgeAttributes, hidden: boolean, offset: number): void;
render(params: RenderEdgeParams): void;
}
/**
* Edge Program class.
*
* @constructor
*/
export declare abstract class AbstractEdgeProgram extends AbstractProgram implements IEdgeProgram {
constructor(gl: WebGLRenderingContext, vertexShaderSource: string, fragmentShaderSource: string, points: number, attributes: number);
abstract bind(): void;
abstract computeIndices(): void;
abstract process(sourceData: NodeAttributes, targetData: NodeAttributes, data: EdgeAttributes, hidden: boolean, offset: number): void;
abstract render(params: RenderEdgeParams): void;
}
export interface EdgeProgramConstructor {
new (gl: WebGLRenderingContext): IEdgeProgram;
}
export declare function createEdgeCompoundProgram(programClasses: Array<EdgeProgramConstructor>): EdgeProgramConstructor;