mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-17 11:24:56 -04:00
util: use more generics
This commit is contained in:
parent
da4b243c1e
commit
bd10ea951f
@ -15,9 +15,7 @@ package de.bixilon.minosoft.data
|
|||||||
import de.bixilon.minosoft.data.registries.blocks.properties.serializer.BlockPropertiesSerializer
|
import de.bixilon.minosoft.data.registries.blocks.properties.serializer.BlockPropertiesSerializer
|
||||||
import de.bixilon.minosoft.util.KUtil
|
import de.bixilon.minosoft.util.KUtil
|
||||||
import de.bixilon.minosoft.util.enum.ValuesEnum
|
import de.bixilon.minosoft.util.enum.ValuesEnum
|
||||||
import glm_.vec3.Vec3
|
import glm_.vec3.Vec3t
|
||||||
import glm_.vec3.Vec3d
|
|
||||||
import glm_.vec3.Vec3i
|
|
||||||
|
|
||||||
enum class Axes {
|
enum class Axes {
|
||||||
X,
|
X,
|
||||||
@ -25,31 +23,11 @@ enum class Axes {
|
|||||||
Z,
|
Z,
|
||||||
;
|
;
|
||||||
|
|
||||||
fun choose(vec3: Vec3): Float {
|
fun <T : Number> choose(vec3: Vec3t<T>): T {
|
||||||
return choose(vec3.x, vec3.y, vec3.z)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun choose(vec3: Vec3d): Double {
|
|
||||||
return choose(vec3.x, vec3.y, vec3.z)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun choose(vec3i: Vec3i): Int {
|
|
||||||
return choose(Vec3(vec3i)).toInt()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun choose(x: Float, y: Float, z: Float): Float {
|
|
||||||
return when (this) {
|
return when (this) {
|
||||||
X -> x
|
X -> vec3.x
|
||||||
Y -> y
|
Y -> vec3.y
|
||||||
Z -> z
|
Z -> vec3.z
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun choose(x: Double, y: Double, z: Double): Double {
|
|
||||||
return when (this) {
|
|
||||||
X -> x
|
|
||||||
Y -> y
|
|
||||||
Z -> z
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ import glm_.vec2.Vec2i
|
|||||||
import glm_.vec3.Vec3
|
import glm_.vec3.Vec3
|
||||||
import glm_.vec3.Vec3d
|
import glm_.vec3.Vec3d
|
||||||
import glm_.vec3.Vec3i
|
import glm_.vec3.Vec3i
|
||||||
|
import glm_.vec3.Vec3t
|
||||||
import kotlin.math.abs
|
import kotlin.math.abs
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
@ -70,16 +71,10 @@ object VecUtil {
|
|||||||
z = 0.0f
|
z = 0.0f
|
||||||
}
|
}
|
||||||
|
|
||||||
infix fun Vec3.assign(vec3: Vec3) {
|
infix fun <T : Number> Vec3t<T>.assign(other: Vec3t<T>) {
|
||||||
x = vec3.x
|
x = other.x
|
||||||
y = vec3.y
|
y = other.y
|
||||||
z = vec3.z
|
z = other.z
|
||||||
}
|
|
||||||
|
|
||||||
infix fun Vec3d.assign(vec3d: Vec3d) {
|
|
||||||
x = vec3d.x
|
|
||||||
y = vec3d.y
|
|
||||||
z = vec3d.z
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmName(name = "times2")
|
@JvmName(name = "times2")
|
||||||
@ -391,29 +386,13 @@ object VecUtil {
|
|||||||
return minDistanceDirection
|
return minDistanceDirection
|
||||||
}
|
}
|
||||||
|
|
||||||
val Vec3i.toVec3: Vec3
|
val <T : Number> Vec3t<T>.toVec3: Vec3
|
||||||
get() = Vec3(this)
|
get() = Vec3(this)
|
||||||
|
|
||||||
val Vec3i.toVec3d: Vec3d
|
val <T : Number> Vec3t<T>.toVec3d: Vec3d
|
||||||
get() = Vec3d(this)
|
get() = Vec3d(this)
|
||||||
|
|
||||||
operator fun Vec3.get(axis: Axes): Float {
|
operator fun <T : Number> Vec3t<T>.get(axis: Axes): T {
|
||||||
return when (axis) {
|
|
||||||
Axes.X -> this.x
|
|
||||||
Axes.Y -> this.y
|
|
||||||
Axes.Z -> this.z
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
operator fun Vec3d.get(axis: Axes): Double {
|
|
||||||
return when (axis) {
|
|
||||||
Axes.X -> this.x
|
|
||||||
Axes.Y -> this.y
|
|
||||||
Axes.Z -> this.z
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
operator fun Vec3i.get(axis: Axes): Int {
|
|
||||||
return when (axis) {
|
return when (axis) {
|
||||||
Axes.X -> this.x
|
Axes.X -> this.x
|
||||||
Axes.Y -> this.y
|
Axes.Y -> this.y
|
||||||
|
Loading…
x
Reference in New Issue
Block a user