From 238f9ee69d1cb619d2a99bbf0eef53d2f3617028 Mon Sep 17 00:00:00 2001 From: Aidan Heller Date: Sun, 3 Feb 2019 00:42:04 -0800 Subject: [PATCH] Add unit stuff --- .../org/sert2521/deepspace/util/Units.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/kotlin/org/sert2521/deepspace/util/Units.kt diff --git a/src/main/kotlin/org/sert2521/deepspace/util/Units.kt b/src/main/kotlin/org/sert2521/deepspace/util/Units.kt new file mode 100644 index 0000000..34907c8 --- /dev/null +++ b/src/main/kotlin/org/sert2521/deepspace/util/Units.kt @@ -0,0 +1,24 @@ +package org.sert2521.deepspace.util + +import org.sert2521.deepspace.Characteristics +import java.lang.Math.PI +import java.util.stream.Collector + +data class Unit(val type: T, val factor: Double) { + sealed class Type { + object Linear : Type() + object Square : Type() + object Cubic : Type() + object Angular : Type() + } +} + +fun Int.convert(units: Pair, Unit>) = + this * (units.first.factor / units.second.factor) + +val m = Unit(Unit.Type.Linear, 1.0) +val inch = Unit(Unit.Type.Linear, 39.3701) +val et = Unit(Unit.Type.Linear, 26876.6549) + +val rad = Unit(Unit.Type.Angular, PI) +val deg = Unit(Unit.Type.Angular, 180.0)