View Javadoc
1   package org.djunits.unit.scale;
2   
3   import java.io.Serializable;
4   
5   /**
6    * Scales for unit conversion, offers functions to and from SI units. E.g., LinearScale for Length, Area, etc. LinearOffsetScale
7    * for Temperature. PercentScale for Angle. LogarithmicScale for Sound.
8    * <p>
9    * Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
10   * BSD-style license. See <a href="http://opentrafficsim.org/docs/license.html">OpenTrafficSim License</a>.
11   * </p>
12   * $LastChangedDate: 2015-07-24 02:58:59 +0200 (Fri, 24 Jul 2015) $, @version $Revision: 1147 $, by $Author: averbraeck $,
13   * initial version Oct 11, 2015 <br>
14   * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
15   * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
16   */
17  public interface Scale extends Serializable
18  {
19      /**
20       * Convert a value to an SI value using this scale.
21       * @param value double; the value to convert
22       * @return the corresponding SI value
23       */
24      double toStandardUnit(double value);
25  
26      /**
27       * Convert a value from an SI value to a value in the unit that uses this scale.
28       * @param value double; the value to convert
29       * @return the corresponding value in the given unit
30       */
31      double fromStandardUnit(double value);
32  
33      /**
34       * Return whether this is a base (SI) scale.
35       * @return boolean; whether this is a base (SI) scale or not
36       */
37      boolean isBaseSIScale();
38  }