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 { 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; }