scichart
Version:
Fast WebGL JavaScript Charting Library and Framework
61 lines (60 loc) • 4.52 kB
TypeScript
import { RenderPassData } from "../../../Services/RenderPassData";
import { HitTestInfo } from "./HitTestInfo";
/**
* Defines the interface to a Hit-Test Provider: a class which performs hit-tests on series, returning data-values at X-Y mouse locations
*/
export interface IHitTestProvider {
/**
* @description updates the current HitTestProvider with the latest renderPassData
* @param renderPassData the latest renderPassData from the parent series last draw operation
*/
update(renderPassData: RenderPassData): void;
/**
* @description Performs a hit-test for series body at the specific mouse point (X,Y coordinate on the parent SciChartSurface),
* returning a HitTestInfo type with the results
* @remarks For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param x The mouse point X coordinate on the parent SciChartSurface.
* NOTE: For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param y The mouse point Y coordinate on the parent SciChartSurface.
* NOTE: For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param hitTestRadius The radius in pixels to determine whether a mouse is over a data-point
*/
hitTest(x: number, y: number, hitTestRadius?: number): HitTestInfo;
/**
* @description Performs a hit-test for the data point at the specific mouse point (X,Y coordinate on the parent SciChartSurface),
* returning a HitTestInfo type with the results
* @remarks For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param x The mouse point X coordinate on the parent SciChartSurface.
* NOTE: For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param y The mouse point Y coordinate on the parent SciChartSurface.
* NOTE: For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param hitTestRadius The radius in pixels to determine whether a mouse is over a data-point
*/
hitTestDataPoint(x: number, y: number, hitTestRadius?: number): HitTestInfo;
/**
* @description Performs a hit-test for the vertical slice at the specific mouse point (X,Y coordinate on the parent SciChartSurface),
* only X value is taken into account, it is used for {@link CursorModifier} and {@link RolloverModifier},
* returns a HitTestInfo type with the results,
* Only for sorted values
* @remarks For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param x The mouse point X coordinate on the parent SciChartSurface.
* NOTE: For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param y The mouse point Y coordinate on the parent SciChartSurface.
* NOTE: For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param hitTestRadius The radius in pixels to determine whether a mouse is over a data-point
*/
hitTestXSlice(x: number, y: number, hitTestRadius?: number): HitTestInfo;
/**
* @description Performs a hit-test for the {@link DataPointSelectionModifier}. This calls {@link IHitTestProvider.hitTestDataPoint} by default.
* The hitTestProvider for the renderableSeries can override this if different behaviour is desired, eg for columSeries we call hitTest instead.
* returns a HitTestInfo type with the results,
* Only for sorted values
* @remarks For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param x The mouse point X coordinate on the parent SciChartSurface.
* NOTE: For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param y The mouse point Y coordinate on the parent SciChartSurface.
* NOTE: For Retina displays and Browser zoom, ensure that X,Y points are scaled by {@link DpiHelper.PIXEL_RATIO}
* @param hitTestRadius The radius in pixels to determine whether a mouse is over a data-point
*/
hitTestForDataPointSelectionModifier(x: number, y: number, hitTestRadius: number): HitTestInfo;
}