Class Vec3d
- All Implemented Interfaces:
Position
This vector class is used for representing position, velocity, rotation, color, etc.
This vector has proper hashCode()
and equals(Object)
implementations and can be used as a map key.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionadd
(double x, double y, double z) Returns the sum of this vector and the given vector.Returns the sum of this vector and the given vector.crossProduct
(Vec3d vec) Returns the cross product of this vector and the given vector.double
distanceTo
(Vec3d vec) Returns the distance between this vector and the given vector.double
dotProduct
(Vec3d vec) Returns the dot product of this vector and the given vector.boolean
floorAlongAxes
(EnumSet<Direction.Axis> axes) Applies the floor function to the coordinates chosen by the given axes.static Vec3d
fromPolar
(float pitch, float yaw) Converts pitch and yaw into a direction vector.static Vec3d
Converts pitch and yaw into a direction vector.double
Returns the coordinate chosen by the given axis.final double
getX()
Returns the X coordinate.final double
getY()
Returns the Y coordinate.final double
getZ()
Returns the Z coordinate.int
hashCode()
double
Returns the horizontal length of this vector.double
Returns the squared horizontal length of this vector.boolean
Checks if the distance between this vector and the given position is less thanradius
.double
length()
Returns the length of this vector.double
Returns the squared length of this vector.Performs linear interpolation from this vector to the given vector.multiply
(double value) Return a vector whose coordinates are the coordinates of this vector each multiplied by the given scalar value.multiply
(double x, double y, double z) Returns a vector whose coordinates are the product of each pair of coordinates in this vector and the given vector.Returns a vector whose coordinates are the product of each pair of coordinates in this vector and the given vector.negate()
Creates a vector with the same length but with the opposite direction.Normalizes this vector.static Vec3d
Copies the given vector.static Vec3d
ofBottomCenter
(Vec3i vec) Creates a vector representing the bottom center of the given block position.static Vec3d
Creates a vector representing the center of the given block position.static Vec3d
Creates a vector representing the center of the given block position but with the given offset for the Y coordinate.relativize
(Vec3d vec) Subtracts this vector from the given vector.rotateX
(float angle) Rotates this vector by the given angle counterclockwise around the X axis.rotateY
(float angle) Rotates this vector by the given angle counterclockwise around the Y axis.rotateZ
(float angle) Rotates this vector by the given angle counterclockwise around the Z axis.double
squaredDistanceTo
(double x, double y, double z) Returns the squared distance between this vector and the given vector.double
squaredDistanceTo
(Vec3d vec) Returns the squared distance between this vector and the given vector.subtract
(double x, double y, double z) Subtracts the given vector from this vector.Subtracts the given vector from this vector.toString()
static Vec3d
unpackRgb
(int rgb) Converts a packed RGB color into a vector of (red, green, blue).withAxis
(Direction.Axis axis, double value)
-
Field Details
-
CODEC
- Mappings:
Namespace Name Mixin selector official a
Ldwq;a:Lcom/mojang/serialization/Codec;
intermediary field_38277
Lnet/minecraft/class_243;field_38277:Lcom/mojang/serialization/Codec;
named CODEC
Lnet/minecraft/util/math/Vec3d;CODEC:Lcom/mojang/serialization/Codec;
-
ZERO
The zero vector (0, 0, 0).- Mappings:
Namespace Name Mixin selector official b
Ldwq;b:Ldwq;
intermediary field_1353
Lnet/minecraft/class_243;field_1353:Lnet/minecraft/class_243;
named ZERO
Lnet/minecraft/util/math/Vec3d;ZERO:Lnet/minecraft/util/math/Vec3d;
-
x
public final double xThe X coordinate of this vector.- Mappings:
Namespace Name Mixin selector official c
Ldwq;c:D
intermediary field_1352
Lnet/minecraft/class_243;field_1352:D
named x
Lnet/minecraft/util/math/Vec3d;x:D
-
y
public final double yThe Y coordinate of this vector.- Mappings:
Namespace Name Mixin selector official d
Ldwq;d:D
intermediary field_1351
Lnet/minecraft/class_243;field_1351:D
named y
Lnet/minecraft/util/math/Vec3d;y:D
-
z
public final double zThe Z coordinate of this vector.- Mappings:
Namespace Name Mixin selector official e
Ldwq;e:D
intermediary field_1350
Lnet/minecraft/class_243;field_1350:D
named z
Lnet/minecraft/util/math/Vec3d;z:D
-
-
Constructor Details
-
Vec3d
public Vec3d(double x, double y, double z) Creates a vector of the given coordinates.- Mappings:
Namespace Name Mixin selector official <init>
Ldwq;<init>(DDD)V
intermediary <init>
Lnet/minecraft/class_243;<init>(DDD)V
named <init>
Lnet/minecraft/util/math/Vec3d;<init>(DDD)V
-
Vec3d
Copies the given vector.- Mappings:
Namespace Name Mixin selector official <init>
Ldwq;<init>(Lk;)V
intermediary <init>
Lnet/minecraft/class_243;<init>(Lnet/minecraft/class_1160;)V
named <init>
Lnet/minecraft/util/math/Vec3d;<init>(Lnet/minecraft/util/math/Vec3f;)V
-
-
Method Details
-
unpackRgb
Converts a packed RGB color into a vector of (red, green, blue).- Parameters:
rgb
- the color in the 0xRRGGBB format- Returns:
- the vector representing the given color; each coordinate has value between 0 and 1
- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(I)Ldwq;
intermediary method_24457
Lnet/minecraft/class_243;method_24457(I)Lnet/minecraft/class_243;
named unpackRgb
Lnet/minecraft/util/math/Vec3d;unpackRgb(I)Lnet/minecraft/util/math/Vec3d;
-
ofCenter
Creates a vector representing the center of the given block position.- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(Lhs;)Ldwq;
intermediary method_24953
Lnet/minecraft/class_243;method_24953(Lnet/minecraft/class_2382;)Lnet/minecraft/class_243;
named ofCenter
Lnet/minecraft/util/math/Vec3d;ofCenter(Lnet/minecraft/util/math/Vec3i;)Lnet/minecraft/util/math/Vec3d;
-
of
Copies the given vector.- Mappings:
Namespace Name Mixin selector official b
Ldwq;b(Lhs;)Ldwq;
intermediary method_24954
Lnet/minecraft/class_243;method_24954(Lnet/minecraft/class_2382;)Lnet/minecraft/class_243;
named of
Lnet/minecraft/util/math/Vec3d;of(Lnet/minecraft/util/math/Vec3i;)Lnet/minecraft/util/math/Vec3d;
-
ofBottomCenter
Creates a vector representing the bottom center of the given block position.The bottom center of a block position
pos
is(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5)
.- See Also:
- Mappings:
Namespace Name Mixin selector official c
Ldwq;c(Lhs;)Ldwq;
intermediary method_24955
Lnet/minecraft/class_243;method_24955(Lnet/minecraft/class_2382;)Lnet/minecraft/class_243;
named ofBottomCenter
Lnet/minecraft/util/math/Vec3d;ofBottomCenter(Lnet/minecraft/util/math/Vec3i;)Lnet/minecraft/util/math/Vec3d;
-
ofCenter
Creates a vector representing the center of the given block position but with the given offset for the Y coordinate.- Returns:
- a vector of
(vec.getX() + 0.5, vec.getY() + deltaY, vec.getZ() + 0.5)
- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(Lhs;D)Ldwq;
intermediary method_26410
Lnet/minecraft/class_243;method_26410(Lnet/minecraft/class_2382;D)Lnet/minecraft/class_243;
named ofCenter
Lnet/minecraft/util/math/Vec3d;ofCenter(Lnet/minecraft/util/math/Vec3i;D)Lnet/minecraft/util/math/Vec3d;
-
relativize
Subtracts this vector from the given vector.- Returns:
- the difference between the given vector and this vector
- See Also:
- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(Ldwq;)Ldwq;
intermediary method_1035
Lnet/minecraft/class_243;method_1035(Lnet/minecraft/class_243;)Lnet/minecraft/class_243;
named relativize
Lnet/minecraft/util/math/Vec3d;relativize(Lnet/minecraft/util/math/Vec3d;)Lnet/minecraft/util/math/Vec3d;
-
normalize
Normalizes this vector.Normalized vector is a vector with the same direction but with length 1. Each coordinate of normalized vector has value between 0 and 1.
- Returns:
- the normalized vector of this vector
- Mappings:
Namespace Name Mixin selector official d
Ldwq;d()Ldwq;
intermediary method_1029
Lnet/minecraft/class_243;method_1029()Lnet/minecraft/class_243;
named normalize
Lnet/minecraft/util/math/Vec3d;normalize()Lnet/minecraft/util/math/Vec3d;
-
dotProduct
Returns the dot product of this vector and the given vector.- Mappings:
Namespace Name Mixin selector official b
Ldwq;b(Ldwq;)D
intermediary method_1026
Lnet/minecraft/class_243;method_1026(Lnet/minecraft/class_243;)D
named dotProduct
Lnet/minecraft/util/math/Vec3d;dotProduct(Lnet/minecraft/util/math/Vec3d;)D
-
crossProduct
Returns the cross product of this vector and the given vector.- Mappings:
Namespace Name Mixin selector official c
Ldwq;c(Ldwq;)Ldwq;
intermediary method_1036
Lnet/minecraft/class_243;method_1036(Lnet/minecraft/class_243;)Lnet/minecraft/class_243;
named crossProduct
Lnet/minecraft/util/math/Vec3d;crossProduct(Lnet/minecraft/util/math/Vec3d;)Lnet/minecraft/util/math/Vec3d;
-
subtract
Subtracts the given vector from this vector.- Returns:
- the difference between this vector and the given vector
- See Also:
- Mappings:
Namespace Name Mixin selector official d
Ldwq;d(Ldwq;)Ldwq;
intermediary method_1020
Lnet/minecraft/class_243;method_1020(Lnet/minecraft/class_243;)Lnet/minecraft/class_243;
named subtract
Lnet/minecraft/util/math/Vec3d;subtract(Lnet/minecraft/util/math/Vec3d;)Lnet/minecraft/util/math/Vec3d;
-
subtract
Subtracts the given vector from this vector.- Returns:
- the difference between this vector and the given vector
- See Also:
- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(DDD)Ldwq;
intermediary method_1023
Lnet/minecraft/class_243;method_1023(DDD)Lnet/minecraft/class_243;
named subtract
Lnet/minecraft/util/math/Vec3d;subtract(DDD)Lnet/minecraft/util/math/Vec3d;
-
add
Returns the sum of this vector and the given vector.- See Also:
- Mappings:
Namespace Name Mixin selector official e
Ldwq;e(Ldwq;)Ldwq;
intermediary method_1019
Lnet/minecraft/class_243;method_1019(Lnet/minecraft/class_243;)Lnet/minecraft/class_243;
named add
Lnet/minecraft/util/math/Vec3d;add(Lnet/minecraft/util/math/Vec3d;)Lnet/minecraft/util/math/Vec3d;
-
add
Returns the sum of this vector and the given vector.- See Also:
- Mappings:
Namespace Name Mixin selector official b
Ldwq;b(DDD)Ldwq;
intermediary method_1031
Lnet/minecraft/class_243;method_1031(DDD)Lnet/minecraft/class_243;
named add
Lnet/minecraft/util/math/Vec3d;add(DDD)Lnet/minecraft/util/math/Vec3d;
-
isInRange
Checks if the distance between this vector and the given position is less thanradius
.- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(Lhj;D)Z
intermediary method_24802
Lnet/minecraft/class_243;method_24802(Lnet/minecraft/class_2374;D)Z
named isInRange
Lnet/minecraft/util/math/Vec3d;isInRange(Lnet/minecraft/util/math/Position;D)Z
-
distanceTo
Returns the distance between this vector and the given vector.- See Also:
- Mappings:
Namespace Name Mixin selector official f
Ldwq;f(Ldwq;)D
intermediary method_1022
Lnet/minecraft/class_243;method_1022(Lnet/minecraft/class_243;)D
named distanceTo
Lnet/minecraft/util/math/Vec3d;distanceTo(Lnet/minecraft/util/math/Vec3d;)D
-
squaredDistanceTo
Returns the squared distance between this vector and the given vector.Can be used for fast comparison between distances.
- See Also:
- Mappings:
Namespace Name Mixin selector official g
Ldwq;g(Ldwq;)D
intermediary method_1025
Lnet/minecraft/class_243;method_1025(Lnet/minecraft/class_243;)D
named squaredDistanceTo
Lnet/minecraft/util/math/Vec3d;squaredDistanceTo(Lnet/minecraft/util/math/Vec3d;)D
-
squaredDistanceTo
public double squaredDistanceTo(double x, double y, double z) Returns the squared distance between this vector and the given vector.Can be used for fast comparison between distances.
- See Also:
- Mappings:
Namespace Name Mixin selector official c
Ldwq;c(DDD)D
intermediary method_1028
Lnet/minecraft/class_243;method_1028(DDD)D
named squaredDistanceTo
Lnet/minecraft/util/math/Vec3d;squaredDistanceTo(DDD)D
-
multiply
Return a vector whose coordinates are the coordinates of this vector each multiplied by the given scalar value.- See Also:
- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(D)Ldwq;
intermediary method_1021
Lnet/minecraft/class_243;method_1021(D)Lnet/minecraft/class_243;
named multiply
Lnet/minecraft/util/math/Vec3d;multiply(D)Lnet/minecraft/util/math/Vec3d;
-
negate
Creates a vector with the same length but with the opposite direction.- Mappings:
Namespace Name Mixin selector official e
Ldwq;e()Ldwq;
intermediary method_22882
Lnet/minecraft/class_243;method_22882()Lnet/minecraft/class_243;
named negate
Lnet/minecraft/util/math/Vec3d;negate()Lnet/minecraft/util/math/Vec3d;
-
multiply
Returns a vector whose coordinates are the product of each pair of coordinates in this vector and the given vector.- See Also:
- Mappings:
Namespace Name Mixin selector official h
Ldwq;h(Ldwq;)Ldwq;
intermediary method_18806
Lnet/minecraft/class_243;method_18806(Lnet/minecraft/class_243;)Lnet/minecraft/class_243;
named multiply
Lnet/minecraft/util/math/Vec3d;multiply(Lnet/minecraft/util/math/Vec3d;)Lnet/minecraft/util/math/Vec3d;
-
multiply
Returns a vector whose coordinates are the product of each pair of coordinates in this vector and the given vector.- See Also:
- Mappings:
Namespace Name Mixin selector official d
Ldwq;d(DDD)Ldwq;
intermediary method_18805
Lnet/minecraft/class_243;method_18805(DDD)Lnet/minecraft/class_243;
named multiply
Lnet/minecraft/util/math/Vec3d;multiply(DDD)Lnet/minecraft/util/math/Vec3d;
-
length
public double length()Returns the length of this vector.The length of a vector is equivalent to the distance between that vector and the ZERO vector.
- Returns:
- the length of this vector
- See Also:
- Mappings:
Namespace Name Mixin selector official f
Ldwq;f()D
intermediary method_1033
Lnet/minecraft/class_243;method_1033()D
named length
Lnet/minecraft/util/math/Vec3d;length()D
-
lengthSquared
public double lengthSquared()Returns the squared length of this vector.Can be used for fast comparison between lengths.
- Returns:
- the squared length of this vector
- See Also:
- Mappings:
Namespace Name Mixin selector official g
Ldwq;g()D
intermediary method_1027
Lnet/minecraft/class_243;method_1027()D
named lengthSquared
Lnet/minecraft/util/math/Vec3d;lengthSquared()D
-
horizontalLength
public double horizontalLength()Returns the horizontal length of this vector.This length is same as the length of a 2-vector with the
x
andz
components of this vector, or the euclidean distance between(x, z)
and the origin.- Returns:
- the horizontal length of this vector
- See Also:
- Mappings:
Namespace Name Mixin selector official h
Ldwq;h()D
intermediary method_37267
Lnet/minecraft/class_243;method_37267()D
named horizontalLength
Lnet/minecraft/util/math/Vec3d;horizontalLength()D
-
horizontalLengthSquared
public double horizontalLengthSquared()Returns the squared horizontal length of this vector.Can be used for fast comparison between horizontal lengths.
- Returns:
- the squared horizontal length of this vector
- See Also:
- Mappings:
Namespace Name Mixin selector official i
Ldwq;i()D
intermediary method_37268
Lnet/minecraft/class_243;method_37268()D
named horizontalLengthSquared
Lnet/minecraft/util/math/Vec3d;horizontalLengthSquared()D
-
equals
-
hashCode
public int hashCode() -
toString
-
lerp
Performs linear interpolation from this vector to the given vector.- Parameters:
to
- the vector to interpolate todelta
- the interpolation coefficient in the range between 0 and 1- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(Ldwq;D)Ldwq;
intermediary method_35590
Lnet/minecraft/class_243;method_35590(Lnet/minecraft/class_243;D)Lnet/minecraft/class_243;
named lerp
Lnet/minecraft/util/math/Vec3d;lerp(Lnet/minecraft/util/math/Vec3d;D)Lnet/minecraft/util/math/Vec3d;
-
rotateX
Rotates this vector by the given angle counterclockwise around the X axis.- Parameters:
angle
- the angle in radians- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(F)Ldwq;
intermediary method_1037
Lnet/minecraft/class_243;method_1037(F)Lnet/minecraft/class_243;
named rotateX
Lnet/minecraft/util/math/Vec3d;rotateX(F)Lnet/minecraft/util/math/Vec3d;
-
rotateY
Rotates this vector by the given angle counterclockwise around the Y axis.- Parameters:
angle
- the angle in radians- Mappings:
Namespace Name Mixin selector official b
Ldwq;b(F)Ldwq;
intermediary method_1024
Lnet/minecraft/class_243;method_1024(F)Lnet/minecraft/class_243;
named rotateY
Lnet/minecraft/util/math/Vec3d;rotateY(F)Lnet/minecraft/util/math/Vec3d;
-
rotateZ
Rotates this vector by the given angle counterclockwise around the Z axis.- Parameters:
angle
- the angle in radians- Mappings:
Namespace Name Mixin selector official c
Ldwq;c(F)Ldwq;
intermediary method_31033
Lnet/minecraft/class_243;method_31033(F)Lnet/minecraft/class_243;
named rotateZ
Lnet/minecraft/util/math/Vec3d;rotateZ(F)Lnet/minecraft/util/math/Vec3d;
-
fromPolar
Converts pitch and yaw into a direction vector.- Parameters:
polar
- the vector composed of pitch and yaw- See Also:
- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(Ldwp;)Ldwq;
intermediary method_1034
Lnet/minecraft/class_243;method_1034(Lnet/minecraft/class_241;)Lnet/minecraft/class_243;
named fromPolar
Lnet/minecraft/util/math/Vec3d;fromPolar(Lnet/minecraft/util/math/Vec2f;)Lnet/minecraft/util/math/Vec3d;
-
fromPolar
Converts pitch and yaw into a direction vector.- See Also:
- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(FF)Ldwq;
intermediary method_1030
Lnet/minecraft/class_243;method_1030(FF)Lnet/minecraft/class_243;
named fromPolar
Lnet/minecraft/util/math/Vec3d;fromPolar(FF)Lnet/minecraft/util/math/Vec3d;
-
floorAlongAxes
Applies the floor function to the coordinates chosen by the given axes.- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(Ljava/util/EnumSet;)Ldwq;
intermediary method_1032
Lnet/minecraft/class_243;method_1032(Ljava/util/EnumSet;)Lnet/minecraft/class_243;
named floorAlongAxes
Lnet/minecraft/util/math/Vec3d;floorAlongAxes(Ljava/util/EnumSet;)Lnet/minecraft/util/math/Vec3d;
-
getComponentAlongAxis
Returns the coordinate chosen by the given axis.- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(Lgy$a;)D
intermediary method_18043
Lnet/minecraft/class_243;method_18043(Lnet/minecraft/class_2350$class_2351;)D
named getComponentAlongAxis
Lnet/minecraft/util/math/Vec3d;getComponentAlongAxis(Lnet/minecraft/util/math/Direction$Axis;)D
-
withAxis
- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(Lgy$a;D)Ldwq;
intermediary method_38499
Lnet/minecraft/class_243;method_38499(Lnet/minecraft/class_2350$class_2351;D)Lnet/minecraft/class_243;
named withAxis
Lnet/minecraft/util/math/Vec3d;withAxis(Lnet/minecraft/util/math/Direction$Axis;D)Lnet/minecraft/util/math/Vec3d;
-
withBias
- Mappings:
Namespace Name Mixin selector official a
Ldwq;a(Lgy;D)Ldwq;
intermediary method_43206
Lnet/minecraft/class_243;method_43206(Lnet/minecraft/class_2350;D)Lnet/minecraft/class_243;
named withBias
Lnet/minecraft/util/math/Vec3d;withBias(Lnet/minecraft/util/math/Direction;D)Lnet/minecraft/util/math/Vec3d;
-
getX
public final double getX()Returns the X coordinate. -
getY
public final double getY()Returns the Y coordinate. -
getZ
public final double getZ()Returns the Z coordinate.
-