scichart
Version:
Fast WebGL JavaScript Charting Library and Framework
64 lines (63 loc) • 3.09 kB
TypeScript
import { SCRTDoubleVector, SCRTLineDrawingParams, TSciChart } from "../../../../types/TSciChart";
import { WebGlRenderContext2D } from "../../../Drawing/WebGlRenderContext2D";
import { EDataSeriesType } from "../../../Model/IDataSeries";
import { IPointSeries } from "../../../Model/PointSeries/IPointSeries";
import { RenderPassData } from "../../../Services/RenderPassData";
import { TDpiChangedEventArgs } from "../../TextureManager/DpiHelper";
import { FastLineSegmentRenderableSeries } from "../FastLineSegmentRenderableSeries";
import { BaseSeriesDrawingProvider } from "./BaseSeriesDrawingProvider";
export interface ILineSegmentSeriesDrawingProviderProperties {
stroke?: string;
strokeThickness?: number;
opacity?: number;
strokeDashArray?: number[];
dataSeriesType?: EDataSeriesType;
}
/**
* Used internally - a drawing provider performs drawing for a {@link FastLineSegmentRenderableSeries} using
* our WebAssembly WebGL rendering engine
*/
export declare class LineSegmentSeriesDrawingProvider extends BaseSeriesDrawingProvider<FastLineSegmentRenderableSeries> {
private linesPenCache;
private nativeDrawingProvider;
protected args: SCRTLineDrawingParams;
/**
* Creates an instance of the {@link LineSegmentSeriesDrawingProvider}
* @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and
* access to our WebGL2 Engine and WebAssembly numerical methods
* @param parentSeries the parent {@link FastLineSegmentRenderableSeries} which this drawing provider is attached to
*/
constructor(webAssemblyContext: TSciChart, parentSeries: FastLineSegmentRenderableSeries, ySelector?: (ps: IPointSeries) => SCRTDoubleVector, xSelector?: (ps: IPointSeries) => SCRTDoubleVector);
/** @inheritDoc */
onDpiChanged(args: TDpiChangedEventArgs): void;
/** @inheritDoc */
onSeriesPropertyChange(propertyName: string): void;
/** A mapping function to get the pen properties from the parent series */
getProperties(parentSeries: FastLineSegmentRenderableSeries): ILineSegmentSeriesDrawingProviderProperties;
/** @inheritDoc */
onAttachSeries(): void;
/** @inheritDoc */
onDetachSeries(): void;
/** @inheritDoc */
getStartAndCount(renderPassData: RenderPassData, xValues: SCRTDoubleVector): {
startIndex: number;
count: number;
};
/** A hook so derived classes can change the args */
updateArgs(renderPassData: RenderPassData): void;
/**
* Drawing two vectors xValues: [x1_1, x1_2, x2_1, x2_2,...], yValues: [y1_1, y1_2, y2_1, y2_2,...]
*/
private drawXy;
/**
* Drawing two vectors xValues: [x1_1, x2_1,...], yValues: [y1_1, y2_1,...], x1Values: [x1_2, x2_2,...], y1Values: [y1_2, y2_2,...]
*/
private drawXyXy;
/** @inheritDoc */
draw(renderContext: WebGlRenderContext2D, renderPassData: RenderPassData): void;
/**
* @inheritDoc
*/
delete(): void;
private drawLines;
}