diff options
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/util/math/Vec3d.kt')
-rw-r--r-- | src/main/kotlin/io/dico/parcels2/util/math/Vec3d.kt | 104 |
1 files changed, 52 insertions, 52 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/util/math/Vec3d.kt b/src/main/kotlin/io/dico/parcels2/util/math/Vec3d.kt index 787f46c..72b6dcd 100644 --- a/src/main/kotlin/io/dico/parcels2/util/math/Vec3d.kt +++ b/src/main/kotlin/io/dico/parcels2/util/math/Vec3d.kt @@ -1,53 +1,53 @@ -package io.dico.parcels2.util.math - -import org.bukkit.Location -import kotlin.math.sqrt - -data class Vec3d( - val x: Double, - val y: Double, - val z: Double -) { - constructor(loc: Location) : this(loc.x, loc.y, loc.z) - - operator fun plus(o: Vec3d) = Vec3d(x + o.x, y + o.y, z + o.z) - operator fun minus(o: Vec3i) = Vec3d(x - o.x, y - o.y, z - o.z) - infix fun addX(o: Double) = Vec3d(x + o, y, z) - infix fun addY(o: Double) = Vec3d(x, y + o, z) - infix fun addZ(o: Double) = Vec3d(x, y, z + o) - infix fun withX(o: Double) = Vec3d(o, y, z) - infix fun withY(o: Double) = Vec3d(x, o, z) - infix fun withZ(o: Double) = Vec3d(x, y, o) - fun add(ox: Double, oy: Double, oz: Double) = Vec3d(x + ox, y + oy, z + oz) - fun toVec3i() = Vec3i(x.floor(), y.floor(), z.floor()) - - fun distanceSquared(o: Vec3d): Double { - val dx = o.x - x - val dy = o.y - y - val dz = o.z - z - return dx * dx + dy * dy + dz * dz - } - - fun distance(o: Vec3d) = sqrt(distanceSquared(o)) - - operator fun get(dimension: Dimension) = - when (dimension) { - Dimension.X -> x - Dimension.Y -> y - Dimension.Z -> z - } - - fun with(dimension: Dimension, value: Double) = - when (dimension) { - Dimension.X -> withX(value) - Dimension.Y -> withY(value) - Dimension.Z -> withZ(value) - } - - fun add(dimension: Dimension, value: Double) = - when (dimension) { - Dimension.X -> addX(value) - Dimension.Y -> addY(value) - Dimension.Z -> addZ(value) - } +package io.dico.parcels2.util.math
+
+import org.bukkit.Location
+import kotlin.math.sqrt
+
+data class Vec3d(
+ val x: Double,
+ val y: Double,
+ val z: Double
+) {
+ constructor(loc: Location) : this(loc.x, loc.y, loc.z)
+
+ operator fun plus(o: Vec3d) = Vec3d(x + o.x, y + o.y, z + o.z)
+ operator fun minus(o: Vec3i) = Vec3d(x - o.x, y - o.y, z - o.z)
+ infix fun addX(o: Double) = Vec3d(x + o, y, z)
+ infix fun addY(o: Double) = Vec3d(x, y + o, z)
+ infix fun addZ(o: Double) = Vec3d(x, y, z + o)
+ infix fun withX(o: Double) = Vec3d(o, y, z)
+ infix fun withY(o: Double) = Vec3d(x, o, z)
+ infix fun withZ(o: Double) = Vec3d(x, y, o)
+ fun add(ox: Double, oy: Double, oz: Double) = Vec3d(x + ox, y + oy, z + oz)
+ fun toVec3i() = Vec3i(x.floor(), y.floor(), z.floor())
+
+ fun distanceSquared(o: Vec3d): Double {
+ val dx = o.x - x
+ val dy = o.y - y
+ val dz = o.z - z
+ return dx * dx + dy * dy + dz * dz
+ }
+
+ fun distance(o: Vec3d) = sqrt(distanceSquared(o))
+
+ operator fun get(dimension: Dimension) =
+ when (dimension) {
+ Dimension.X -> x
+ Dimension.Y -> y
+ Dimension.Z -> z
+ }
+
+ fun with(dimension: Dimension, value: Double) =
+ when (dimension) {
+ Dimension.X -> withX(value)
+ Dimension.Y -> withY(value)
+ Dimension.Z -> withZ(value)
+ }
+
+ fun add(dimension: Dimension, value: Double) =
+ when (dimension) {
+ Dimension.X -> addX(value)
+ Dimension.Y -> addY(value)
+ Dimension.Z -> addZ(value)
+ }
}
\ No newline at end of file |