Class DefaultDataReducer

  • All Implemented Interfaces:
    RendererDataReducer

    public class DefaultDataReducer
    extends java.lang.Object
    implements RendererDataReducer
    Default data reduction algorithm implementation for the ErrorDataSet Renderer
    Simple algorithm that reduces the number of points if neighbouring x coordinates are closer than the user-defined dash size. Points in between are dropped and their errors propagated to the following drawn data point. N.B. numerical complexity: average = worst-case = O(n)
    Author:
    rstein
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected javafx.beans.property.IntegerProperty minPointPixelDistance  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getMinPointPixelDistance()  
      javafx.beans.property.IntegerProperty minPointPixelDistanceProperty()  
      int reducePoints​(double[] xValues, double[] yValues, double[] xPointErrorsPos, double[] xPointErrorsNeg, double[] yPointErrorsPos, double[] yPointErrorsNeg, java.lang.String[] styles, boolean[] pointSelected, int indexMin, int indexMax)
      Internal function to the ErrorDataSetRenderer arrays are cached copies and operations are assumed to be performed in-place (<-> for performance reasons/minimisation of memory allocation)
      void setMinPointPixelDistance​(int minPixelDistance)
      Sets the minPointPixelDistance to the specified value.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • minPointPixelDistance

        protected javafx.beans.property.IntegerProperty minPointPixelDistance
    • Constructor Detail

      • DefaultDataReducer

        public DefaultDataReducer()
    • Method Detail

      • getMinPointPixelDistance

        public final int getMinPointPixelDistance()
        Returns:
        the minPointPixelDistance.
      • setMinPointPixelDistance

        public final void setMinPointPixelDistance​(int minPixelDistance)
        Sets the minPointPixelDistance to the specified value.
        Parameters:
        minPixelDistance - the minimum distance between two adjacent points.
      • minPointPixelDistanceProperty

        public final javafx.beans.property.IntegerProperty minPointPixelDistanceProperty()
      • reducePoints

        public int reducePoints​(double[] xValues,
                                double[] yValues,
                                double[] xPointErrorsPos,
                                double[] xPointErrorsNeg,
                                double[] yPointErrorsPos,
                                double[] yPointErrorsNeg,
                                java.lang.String[] styles,
                                boolean[] pointSelected,
                                int indexMin,
                                int indexMax)
        Internal function to the ErrorDataSetRenderer arrays are cached copies and operations are assumed to be performed in-place (<-> for performance reasons/minimisation of memory allocation)
        Specified by:
        reducePoints in interface RendererDataReducer
        Parameters:
        xValues - array of x coordinates
        yValues - array of y coordinates
        xPointErrorsPos - array of coordinates containing x+exp
        xPointErrorsNeg - array of coordinates containing x-exn
        yPointErrorsPos - array of coordinates containing x+eyp
        yPointErrorsNeg - array of coordinates containing x+eyn
        pointSelected - array containing the points that have been specially selected by the user
        indexMin - minimum index of those array that shall be considered
        indexMax - maximum index of those array that shall be considered
        styles - point styles
        Returns:
        effective number of points that remain after the reduction