Class AABB
java.lang.Object
net.minecraft.world.phys.AABB
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclip(double minX, double minY, double minZ, double maxX, double maxY, double maxZ, Vec3 from, Vec3 to) static @Nullable BlockHitResultprivate static @Nullable DirectionclipPoint(double[] scaleReference, @Nullable Direction direction, double da, double db, double dc, double point, double minB, double maxB, double minC, double maxC, Direction newDirection, double fromA, double fromB, double fromC) booleancollidedAlongVector(Vec3 vector, List<AABB> aabbs) booleancontains(double x, double y, double z) booleanReturns if the supplied Vec3D is completely inside the bounding boxcontract(double xa, double ya, double za) Creates a newAABBthat has been contracted by the given amount, with positive changes decreasing max values and negative changes increasing min values.deflate(double amount) Creates a newAABBthat is expanded by the given value in all directions.deflate(double xSubstract, double ySubtract, double zSubtract) doubledistanceToSqr(AABB boundingBox) doubledistanceToSqr(Vec3 point) static AABBencapsulatingFullBlocks(BlockPos pos0, BlockPos pos1) booleanexpandTowards(double xa, double ya, double za) Creates a newAABBthat has been expanded by the given amount, with positive changes increasing max values and negative changes decreasing min values.expandTowards(Vec3 delta) private static @Nullable DirectiongetDirection(double minX, double minY, double minZ, double maxX, double maxY, double maxZ, Vec3 from, double[] scaleReference, @Nullable Direction direction, double dx, double dy, double dz) private static @Nullable DirectiongetDirection(AABB aabb, Vec3 from, double[] scaleReference, @Nullable Direction direction, double dx, double dy, double dz) doublegetSize()doublegetXsize()doublegetYsize()doublegetZsize()inthashCode()booleanhasNaN()inflate(double amountToAddInAllDirections) Creates a newAABBthat is expanded by the given value in all directions.inflate(double xAdd, double yAdd, double zAdd) Creates a newAABBthat has been contracted by the given amount in both directions.booleanintersects(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) booleanintersects(BlockPos pos) booleanintersects(AABB aabb) Checks if the bounding box intersects with another.booleanintersects(Vec3 min, Vec3 max) booleanReturns true if this AABB is infinite in all directions.doublemax(Direction.Axis axis) doublemin(Direction.Axis axis) move(double xa, double ya, double za) Offsets the current bounding box by the specified amount.static AABBof(BoundingBox box) static AABBsetMaxX(double maxX) setMaxY(double maxY) setMaxZ(double maxZ) setMinX(double minX) setMinY(double minY) setMinZ(double minZ) toString()static AABB
-
Field Details
-
EPSILON
private static final double EPSILON- See Also:
-
INFINITE
-
minX
public final double minX -
minY
public final double minY -
minZ
public final double minZ -
maxX
public final double maxX -
maxY
public final double maxY -
maxZ
public final double maxZ
-
-
Constructor Details
-
AABB
public AABB(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) -
AABB
-
AABB
-
-
Method Details
-
of
-
unitCubeFromLowerCorner
-
encapsulatingFullBlocks
-
setMinX
-
setMinY
-
setMinZ
-
setMaxX
-
setMaxY
-
setMaxZ
-
min
-
max
-
equals
-
hashCode
-
contract
Creates a newAABBthat has been contracted by the given amount, with positive changes decreasing max values and negative changes increasing min values.
If the amount to contract by is larger than the length of a side, then the side will wrap (still creating a valid AABB - see last sample).Samples:
Input Result new AABB(0, 0, 0, 4, 4, 4).contract(2, 2, 2)box[0.0, 0.0, 0.0 -> 2.0, 2.0, 2.0]
new AABB(0, 0, 0, 4, 4, 4).contract(-2, -2, -2)box[2.0, 2.0, 2.0 -> 4.0, 4.0, 4.0]
new AABB(5, 5, 5, 7, 7, 7).contract(0, 1, -1)box[5.0, 5.0, 6.0 -> 7.0, 6.0, 7.0]
new AABB(-2, -2, -2, 2, 2, 2).contract(4, -4, 0)box[-8.0, 2.0, -2.0 -> -2.0, 8.0, 2.0]
See Also:
-
- like this, except for expanding.
invalid reference
#expand(double, double, double) -
and
invalid reference
#grow(double, double, double)- expands in all directions.invalid reference
#grow(double) -
- contracts in all directions (like
invalid reference
#shrink(double))invalid reference
#grow(double)
- Returns:
- A new modified bounding box.
-
-
expandTowards
-
expandTowards
Creates a newAABBthat has been expanded by the given amount, with positive changes increasing max values and negative changes decreasing min values.Samples:
Input Result new AABB(0, 0, 0, 1, 1, 1).expand(2, 2, 2)box[0, 0, 0 -> 3, 3, 3]
new AABB(0, 0, 0, 1, 1, 1).expand(-2, -2, -2)box[-2, -2, -2 -> 1, 1, 1]
new AABB(5, 5, 5, 7, 7, 7).expand(0, 1, -1)box[5, 5, 4, 7, 8, 7]
See Also:
contract(double, double, double)- like this, except for shrinking.-
and
invalid reference
#grow(double, double, double)- expands in all directions.invalid reference
#grow(double) -
- contracts in all directions (like
invalid reference
#shrink(double))invalid reference
#grow(double)
- Returns:
- A modified bounding box that will always be equal or greater in volume to this bounding box.
-
inflate
Creates a newAABBthat has been contracted by the given amount in both directions. Negative values will shrink the AABB instead of expanding it.
Side lengths will be increased by 2 times the value of the parameters, since both min and max are changed.
If contracting and the amount to contract by is larger than the length of a side, then the side will wrap (still creating a valid AABB - see last ample).Samples:
Input Result new AABB(0, 0, 0, 1, 1, 1).grow(2, 2, 2)box[-2.0, -2.0, -2.0 -> 3.0, 3.0, 3.0]
new AABB(0, 0, 0, 6, 6, 6).grow(-2, -2, -2)box[2.0, 2.0, 2.0 -> 4.0, 4.0, 4.0]
new AABB(5, 5, 5, 7, 7, 7).grow(0, 1, -1)box[5.0, 4.0, 6.0 -> 7.0, 8.0, 6.0]
new AABB(1, 1, 1, 3, 3, 3).grow(-4, -2, -3)box[-1.0, 1.0, 0.0 -> 5.0, 3.0, 4.0]
See Also:
-
- expands in only one direction.
invalid reference
#expand(double, double, double) contract(double, double, double)- contracts in only one direction.-
- contracts in all directions
invalid reference
#shrink(double)
- version of this that expands in all directions from one parameter.invalid reference
#grow(double)- Returns:
- A modified bounding box.
-
-
inflate
Creates a newAABBthat is expanded by the given value in all directions. Equivalent towith the given value for all 3 params. Negative values will shrink the AABB.invalid reference
#grow(double, double, double)
Side lengths will be increased by 2 times the value of the parameter, since both min and max are changed.
If contracting and the amount to contract by is larger than the length of a side, then the side will wrap (still creating a valid AABB - see samples on).invalid reference
#grow(double, double, double)- Returns:
- A modified AABB.
-
intersect
-
minmax
-
move
Offsets the current bounding box by the specified amount. -
move
-
move
-
move
-
intersects
Checks if the bounding box intersects with another. -
intersects
public boolean intersects(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) -
intersects
-
intersects
-
contains
Returns if the supplied Vec3D is completely inside the bounding box -
contains
public boolean contains(double x, double y, double z) -
getSize
public double getSize() -
getXsize
public double getXsize() -
getYsize
public double getYsize() -
getZsize
public double getZsize() -
deflate
-
deflate
Creates a newAABBthat is expanded by the given value in all directions. Equivalent towith value set to the negative of the value provided here. Passing a negative value to this method values will grow the AABB.invalid reference
#grow(double)
Side lengths will be decreased by 2 times the value of the parameter, since both min and max are changed.
If contracting and the amount to contract by is larger than the length of a side, then the side will wrap (still creating a valid AABB - see samples on).invalid reference
#grow(double, double, double)- Returns:
- A modified AABB.
-
clip
-
clip
-
clip
-
getDirection
-
getDirection
-
clipPoint
-
collidedAlongVector
-
distanceToSqr
-
distanceToSqr
-
toString
-
hasNaN
public boolean hasNaN() -
getCenter
-
getBottomCenter
-
getMinPosition
-
getMaxPosition
-
ofSize
-
isInfinite
public boolean isInfinite()Returns true if this AABB is infinite in all directions.- Returns:
- true if this AABB is infinite in all directions
-