PointResamplerBase
StockSharp.Xaml.Charting.Numerics
Реализует: IPointResampler
Методы
ReducePointUnevenImpl
private static void ReducePointUnevenImpl(UncheckedList<double> xValues, UncheckedList<double> yValues, Point2DSeries reducedPoints, int startIndexInclusive, int endIndexInclusive, double minXInclusive, double maxXInclusive, int viewportWidth, bool isCategoryAxis)
PointResamplerBase.ReducePointUnevenImpl(xValues, yValues, reducedPoints, startIndexInclusive, endIndexInclusive, minXInclusive, maxXInclusive, viewportWidth, isCategoryAxis)
Это необходимо реализовать для каждой поддерживаемой пары TX,TY. Возможно, использовать шаблоны T4? Для оптимальной производительности этот метод должен быть реализован в C++/ASM, а не только в методе GetMinMaxValuesForPixel (это позволяет избежать неуправляемых переходов вызовов на пиксель). Однако это также потребует, чтобы reducedPoints был передан в качестве предварительно распределенного буфера, а не в качестве Point2DSeries. Обработка NaN немного затрудняет предварительное распределение (поскольку NaNs может вызывать несколько линий на пиксель).
ReducePointUnevenImpl``2
private static void ReducePointUnevenImpl<TX, TY>(UncheckedList<TX> xValues, UncheckedList<TY> yValues, Point2DSeries reducedPoints, int startIndexInclusive, int endIndexInclusive, double minXInclusive, double maxXInclusive, int viewportWidth, bool isCategoryAxis)
PointResamplerBase.ReducePointUnevenImpl(xValues, yValues, reducedPoints, startIndexInclusive, endIndexInclusive, minXInclusive, maxXInclusive, viewportWidth, isCategoryAxis)
Общая реализация, в которой был получен непроверенный список для значений x и y.