UNPKG

sigma

Version:

A JavaScript library dedicated to graph drawing.

33 lines (32 loc) 1.34 kB
/** * 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;