/** * Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT * All rights reserved. Use is subject to license terms. See LICENSE.TXT */ package org.diirt.graphene; import org.diirt.util.stats.Range; /** * The scale to be used to create axis references and rescale values. * * @author carcassi */ public interface ValueScale { /** * Scales the actual value to the scale value. * * @param value actual value to be scaled * @param minValue actual range min * @param maxValue actual range max * @param newMinValue scale range min * @param newMaxValue scale range max * @return new value in the scale */ double scaleValue(double value, double minValue, double maxValue, double newMinValue, double newMaxValue); /** * Scales the scale value to the actual value. * * @param scaleValue scale value to be scaled * @param minValue actual range min * @param maxValue actual range max * @param newMinValue scale range min * @param newMaxValue scale range max * @return new value in the actual range */ double invScaleValue(double scaleValue, double minValue, double maxValue, double newMinValue, double newMaxValue); /** * Returns the reference axes for a given range * @param range the range of values to create a reference axis for * @param minRefs minimum references * @param maxRegs max references * @return reference axes */ ValueAxis references(Range range, int minRefs, int maxRegs); }