Package-level declarations

Types

Link copied to clipboard
abstract class Dimension(val symbol: String, val converter: UnitConverter)

A Dimension is a base class for a specific type of unit, like length or temperature.

Link copied to clipboard
data class Measurement<out UnitType : Dimension>(val value: Double, val unit: UnitType) : Comparable<Measurement<UnitType>>

A Measurement holds a value in a specific unit.

Link copied to clipboard
Link copied to clipboard
abstract class UnitConverter

A UnitConverter provides the mechanism to convert between different units of the same dimension.

Link copied to clipboard
class UnitConverterLinear(val coefficient: Double, val constant: Double = 0.0) : UnitConverter

A linear converter that applies a coefficient (and optionally a constant) for conversion. Formula: y = m * x + b

Link copied to clipboard
sealed class UnitDuration : Dimension
Link copied to clipboard
sealed class UnitHeight : Dimension
Link copied to clipboard
Link copied to clipboard
sealed class UnitLength : Dimension
Link copied to clipboard
sealed class UnitNone : Dimension
Link copied to clipboard
sealed class UnitProportion : Dimension
Link copied to clipboard
Link copied to clipboard
sealed class UnitSpeed : Dimension
Link copied to clipboard
sealed class UnitTemperature : Dimension
Link copied to clipboard

Functions

Link copied to clipboard

Creates a ClosedRange of Temperature Measurements in Celsius from a Double range.

Link copied to clipboard
fun <T : Dimension> Double.convert(from: T, to: T): Double

Converts a Double from one unit to another of the same dimension.

Link copied to clipboard

Creates a ClosedRange of Proportion Measurements from a Double range representing a decimal proportion (e.g., 0.0 to 1.0).

Link copied to clipboard

Creates a ClosedRange of Temperature Measurements in Fahrenheit from a Double range.

Link copied to clipboard

Marshall-Palmer formula for conversion of dBZ to rainfall rate in mm/h.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Creates a ClosedRange of Proportion Measurements from a Double range representing percentages (e.g., 0.0 to 100.0).

Link copied to clipboard

Creates a new ClosedRange<Measurement<UnitType>> from a numeric range using the same unit type as this range.

Link copied to clipboard

Returns a ClosedRange<Double> with just the numeric values from a range of Measurements.

Returns numeric bounds converted to the specified unit first.