scichart
Version:
Fast WebGL JavaScript Charting Library and Framework
71 lines (70 loc) • 4.19 kB
TypeScript
import { DeletableEntity } from "../../../Core/DeletableEntity";
import { IDeletable } from "../../../Core/IDeletable";
import { Rect } from "../../../Core/Rect";
import { IntVector, ResamplingMode, SCRTDoubleResamplerMergeIndicesParams, SCRTDoubleVector, TSciChart } from "../../../types/TSciChart";
import { TSeriesRenderPassInfo } from "../../Services/RenderPassInfo";
import { AxisBase2D } from "../../Visuals/Axis/AxisBase2D";
import { IRenderableSeries } from "../../Visuals/RenderableSeries/IRenderableSeries";
import { EResamplingMode } from "./ResamplingMode";
import { ResamplingParams } from "./ResamplingParams";
/**
* Helper class for functions which optimise drawing
*/
export declare class ExtremeResamplerHelper extends DeletableEntity implements IDeletable {
/**
* Used internally
* @param xAxis
* @param rs
* @param seriesViewRect
*/
static resampleSeries(xAxis: AxisBase2D, rs: IRenderableSeries, seriesViewRect: Rect): TSeriesRenderPassInfo;
static calculateResamplingHash(rs: IRenderableSeries, rp: ResamplingParams): number;
readonly nativeMergeIndexParams: SCRTDoubleResamplerMergeIndicesParams;
private wasmContext;
private readonly nativeResampler;
private readonly xInput;
private readonly nativeArgs;
private readonly output;
private isDeleted;
constructor(wasmContext: TSciChart);
/**
* Calls native RequiresReduction method to calculate if resampling is needed
* @param rp The resampling params
* @param xOriginalValues XValues
* @param fillBasicNativeArgs Update nativeArgs if True
* @param updateResamplingMode Update {@link ResamplingArgs.Resampling} property if True
*/
needsResampling(rp: ResamplingParams, xOriginalValues: SCRTDoubleVector, fillBasicNativeArgs?: boolean, updateResamplingMode?: boolean): boolean;
/**
* This method calls does resampling by calling the native resampling methods.
* It does similar things as WPF AvxExtremeResamplerDoubleDouble.ResampleInternal() method
* The needsResampling() method must be called before, this is done in {@link SciChartRenderer.resampleSeries}
* @param wasmContext The WebAssembly context
* @param rp The resampling parameters
* @param xOriginalValues The original not resampled X values
* @param yOriginalValues The original not resampled Y values
* @param indexesOut The indices output
* @param xResampledValuesOut The resampled X values output
* @param yResampledValuesOut The resampled Y values output
* @param fillBasicNativeArgs If set to True resets and fill nativeArgs with basic properties,
* you can set it to False if {@link needsResampling()} was called before this method
* @returns indicesVector The resampled vector of indices
*/
resampleIntoPointSeries(wasmContext: TSciChart, rp: ResamplingParams, xOriginalValues: SCRTDoubleVector, yOriginalValues: SCRTDoubleVector, indexesOut: IntVector, indexesResampledOut: SCRTDoubleVector, xResampledValuesOut: SCRTDoubleVector, yResampledValuesOut: SCRTDoubleVector, fillBasicNativeArgs?: boolean): {
OutputSplitIndex: number;
};
mergeIndexes(indices: IntVector, size1: number, size2: number, mergedIndicesOut: IntVector): number;
copyValuesByIndexes(indices: IntVector, xValues: SCRTDoubleVector, yValues: SCRTDoubleVector, y1Values: SCRTDoubleVector, count: number, isCategoryAxis: boolean, isFifoSweeping: boolean, indicesOut: SCRTDoubleVector, xValuesOut: SCRTDoubleVector, yValuesOut: SCRTDoubleVector, y1ValuesOut: SCRTDoubleVector, y1Offset?: number): void;
/** @inheritDoc */
delete(): void;
getNativeResamplingMode(resamplingMode: EResamplingMode): ResamplingMode;
/**
* Fills basic native args needed for {@link needsResampling()} and {@link resampleIntoPointSeries} methods
*/
resetAndFillBasicNativeArgs(rp: ResamplingParams, xOriginalValues: SCRTDoubleVector): void;
private debugParameters;
private debugRect;
private debugResamplingDataEnum;
private debugResamplingModeEnum;
private getDataDistribution;
}