PointResamplerBase

StockSharp.Xaml.Charting.Numerics

Implementa: IPointResampler

Métodos

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)

Isto precisa ser implementado para cada par suportado de TX,TY. Talvez usar modelos T4? Para um desempenho ideal, este método deve ser implementado em C++/ASM e não apenas o método GetMinMaxValuesForPixel (isto evita transições de chamadas não geridas por pixels). Contudo, isso também exigiria que o reducedPoints seja passado como buffer pré-alocado e não como um Point2Dseries. O manuseio do NaN torna um pouco difícil pré-alocar (desde que o NaNs possa causar várias linhas por pixel).

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)

Implementação genérica onde uma lista não verificada foi obtida para os valores de x e y.