mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-15 10:25:06 -04:00
add Vec3t::get(Axes) for each datatype
Optimization for upcoming glm version
This commit is contained in:
parent
5fd52fb192
commit
48b44c3fa0
@ -17,7 +17,7 @@ import de.bixilon.minosoft.commands.parser.minecraft.target.targets.selector.Ent
|
||||
import de.bixilon.minosoft.commands.parser.minecraft.target.targets.selector.properties.EntityTargetProperty
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.set
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.set
|
||||
import java.util.*
|
||||
|
||||
abstract class CenterProperty(
|
||||
|
@ -17,7 +17,10 @@ import de.bixilon.kotlinglm.vec2.Vec2
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.kotlinglm.vec3.Vec3d
|
||||
import de.bixilon.kotlinglm.vec3.Vec3i
|
||||
import de.bixilon.kotlinglm.vec3.swizzle.*
|
||||
import de.bixilon.kotlinglm.vec3.swizzle.xy
|
||||
import de.bixilon.kotlinglm.vec3.swizzle.xz
|
||||
import de.bixilon.kotlinglm.vec3.swizzle.yz
|
||||
import de.bixilon.kotlinglm.vec3.swizzle.zy
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeNull
|
||||
import de.bixilon.kutil.enums.EnumUtil
|
||||
@ -28,7 +31,7 @@ import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.data.registries.blocks.properties.serializer.BlockPropertiesSerializer
|
||||
import de.bixilon.minosoft.data.registries.blocks.state.BlockState
|
||||
import de.bixilon.minosoft.data.world.chunk.ChunkSection
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.get
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3iUtil.get
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||
import kotlin.reflect.jvm.javaField
|
||||
|
||||
|
@ -25,8 +25,8 @@ import de.bixilon.minosoft.data.direction.Directions
|
||||
import de.bixilon.minosoft.data.registries.shapes.voxel.AABBRaycastHit
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.ONE
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.get
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.toVec3
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.get
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.max
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.min
|
||||
import kotlin.math.abs
|
||||
|
@ -22,7 +22,7 @@ import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.data.registries.shapes.ShapeRegistry
|
||||
import de.bixilon.minosoft.data.registries.shapes.aabb.AABB
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.get
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.get
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.max
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.min
|
||||
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||
|
@ -14,10 +14,8 @@
|
||||
package de.bixilon.minosoft.gui.rendering.util.vec.vec2
|
||||
|
||||
import de.bixilon.kotlinglm.func.rad
|
||||
import de.bixilon.kotlinglm.mat4x4.Mat4
|
||||
import de.bixilon.kotlinglm.vec2.Vec2
|
||||
import de.bixilon.kotlinglm.vec2.Vec2i
|
||||
import de.bixilon.kotlinglm.vec2.Vec2t
|
||||
import de.bixilon.kutil.primitive.IntUtil.toInt
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.data.direction.Directions
|
||||
@ -112,14 +110,6 @@ object Vec2iUtil {
|
||||
return this isSmaller min || this isGreater max
|
||||
}
|
||||
|
||||
infix fun Mat4.orthoTimes(vec: Vec2t<*>): Vec2 {
|
||||
val array = this.array
|
||||
return Vec2(
|
||||
array[0] * vec[0].toFloat() + array[4] * vec[1].toFloat() - 1.0f,
|
||||
array[1] * vec[0].toFloat() + array[5] * vec[1].toFloat() + 1.0f,
|
||||
)
|
||||
}
|
||||
|
||||
operator fun Vec2i.plus(direction: Directions): Vec2i {
|
||||
val ret = Vec2i(this)
|
||||
ret.x += direction.vector.x
|
||||
|
@ -18,7 +18,6 @@ import de.bixilon.kotlinglm.func.sin
|
||||
import de.bixilon.kotlinglm.vec2.Vec2
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.kotlinglm.vec3.Vec3i
|
||||
import de.bixilon.kotlinglm.vec3.Vec3t
|
||||
import de.bixilon.kotlinglm.vec3.swizzle.xy
|
||||
import de.bixilon.kotlinglm.vec3.swizzle.xz
|
||||
import de.bixilon.kotlinglm.vec3.swizzle.yz
|
||||
@ -94,7 +93,7 @@ object Vec3Util {
|
||||
this += origin
|
||||
}
|
||||
|
||||
operator fun <T : Number> Vec3t<T>.get(axis: Axes): T {
|
||||
operator fun Vec3.get(axis: Axes): Float {
|
||||
return when (axis) {
|
||||
Axes.X -> x
|
||||
Axes.Y -> y
|
||||
@ -102,7 +101,7 @@ object Vec3Util {
|
||||
}
|
||||
}
|
||||
|
||||
operator fun <T : Number> Vec3t<T>.set(axis: Axes, value: T) {
|
||||
operator fun Vec3.set(axis: Axes, value: Float) {
|
||||
when (axis) {
|
||||
Axes.X -> x = value
|
||||
Axes.Y -> y = value
|
||||
|
@ -21,7 +21,6 @@ import de.bixilon.kutil.math.interpolation.DoubleInterpolation.interpolateSine
|
||||
import de.bixilon.kutil.math.simple.DoubleMath.ceil
|
||||
import de.bixilon.kutil.math.simple.DoubleMath.floor
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.get
|
||||
import kotlin.math.abs
|
||||
|
||||
object Vec3dUtil {
|
||||
@ -133,4 +132,21 @@ object Vec3dUtil {
|
||||
fun Vec3d.length3(): Double {
|
||||
return x + y + z
|
||||
}
|
||||
|
||||
|
||||
operator fun Vec3d.get(axis: Axes): Double {
|
||||
return when (axis) {
|
||||
Axes.X -> x
|
||||
Axes.Y -> y
|
||||
Axes.Z -> z
|
||||
}
|
||||
}
|
||||
|
||||
operator fun Vec3d.set(axis: Axes, value: Double) {
|
||||
when (axis) {
|
||||
Axes.X -> x = value
|
||||
Axes.Y -> y = value
|
||||
Axes.Z -> z = value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import de.bixilon.kotlinglm.vec2.Vec2i
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.kotlinglm.vec3.Vec3i
|
||||
import de.bixilon.kutil.primitive.IntUtil.toInt
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.inSectionHeight
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.sectionHeight
|
||||
|
||||
@ -73,4 +74,20 @@ object Vec3iUtil {
|
||||
fun Vec3i.length2(): Int {
|
||||
return x * x + y * y + z * z
|
||||
}
|
||||
|
||||
operator fun Vec3i.get(axis: Axes): Int {
|
||||
return when (axis) {
|
||||
Axes.X -> x
|
||||
Axes.Y -> y
|
||||
Axes.Z -> z
|
||||
}
|
||||
}
|
||||
|
||||
operator fun Vec3i.set(axis: Axes, value: Int) {
|
||||
when (axis) {
|
||||
Axes.X -> x = value
|
||||
Axes.Y -> y = value
|
||||
Axes.Z -> z = value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ import de.bixilon.kotlinglm.vec3.Vec3d
|
||||
import de.bixilon.minosoft.data.Axes
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity
|
||||
import de.bixilon.minosoft.data.registries.shapes.aabb.AABB
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.set
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.set
|
||||
import de.bixilon.minosoft.physics.handlers.general.AbstractEntityPhysics
|
||||
|
||||
interface SneakAdjuster : StepAdjuster, AbstractEntityPhysics {
|
||||
|
@ -28,8 +28,8 @@ import de.bixilon.minosoft.data.registries.shapes.voxel.VoxelShape
|
||||
import de.bixilon.minosoft.data.world.World
|
||||
import de.bixilon.minosoft.data.world.chunk.chunk.Chunk
|
||||
import de.bixilon.minosoft.data.world.iterator.WorldIterator
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.set
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.set
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3iUtil.EMPTY
|
||||
import de.bixilon.minosoft.physics.entities.EntityPhysics
|
||||
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||
|
@ -20,7 +20,7 @@ import de.bixilon.minosoft.data.abilities.Gamemodes
|
||||
import de.bixilon.minosoft.data.direction.Directions
|
||||
import de.bixilon.minosoft.data.world.positions.BlockPosition
|
||||
import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3Util.get
|
||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3iUtil.get
|
||||
import de.bixilon.minosoft.physics.entities.living.player.local.LocalPlayerPhysics
|
||||
|
||||
object OutOfBlockPusher {
|
||||
|
Loading…
x
Reference in New Issue
Block a user