package tim.prune.gui.colour; import java.awt.Color; import tim.prune.config.Config; import tim.prune.data.Track; import tim.prune.gui.profile.ProfileData; /** * Colourer based on speed values */ public abstract class ProfileDataColourer extends ContinuousPointColourer { /** * Constructor * @param inStartColour start colour * @param inEndColour end colour */ public ProfileDataColourer(Color inStartColour, Color inEndColour) { super(inStartColour, inEndColour); } /** * Calculate the colours according to the track and the profile data */ public void calculateColours(Track inTrack, ProfileData inData) { final int numPoints = inTrack == null ? 0 : inTrack.getNumPoints(); // Calculate values for each point inData.init(Config.getUnitSet()); // Figure out speed range double minValue = inData.getMinValue(); double maxValue = inData.getMaxValue(); if (!inData.hasData() || (maxValue - minValue) < 0.1) { // not enough value range, set all to null init(0); } else { // initialise the array to the right size init(numPoints); // loop over track points to calculate colours for (int i=0; i