Package net.minecraft.world.phys
Class AABB
java.lang.Object
net.minecraft.world.phys.AABB
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclip(double pMinX, double pMinY, double pMinZ, double pMaxX, double pMaxY, double pMaxZ, Vec3 pFrom, Vec3 pTo) static BlockHitResultprivate static DirectionclipPoint(double[] pMinDistance, Direction pPrevDirection, double pDistanceSide, double pDistanceOtherA, double pDistanceOtherB, double pMinSide, double pMinOtherA, double pMaxOtherA, double pMinOtherB, double pMaxOtherB, Direction pHitSide, double pStartSide, double pStartOtherA, double pStartOtherB) booleancollidedAlongVector(Vec3 pVector, List<AABB> pBoxes) booleancontains(double pX, double pY, double pZ) booleanReturns if the supplied Vec3D is completely inside the bounding boxcontract(double pX, double pY, double pZ) Creates a newAABBthat has been contracted by the given amount, with positive changes decreasing max values and negative changes increasing min values.deflate(double pValue) Creates a newAABBthat is expanded by the given value in all directions.deflate(double pX, double pY, double pZ) doubledistanceToSqr(Vec3 pVec) static AABBencapsulatingFullBlocks(BlockPos pStartPos, BlockPos pEndPos) booleanexpandTowards(double pX, double pY, double pZ) Creates a newAABBthat has been expanded by the given amount, with positive changes increasing max values and negative changes decreasing min values.expandTowards(Vec3 pVector) private static DirectiongetDirection(double pMinX, double pMinY, double pMinZ, double pMaxX, double pMaxY, double pMaxZ, Vec3 pStart, double[] pMinDistance, Direction pFacing, double pDeltaX, double pDeltaY, double pDeltaZ) private static DirectiongetDirection(AABB pAabb, Vec3 pStart, double[] pMinDistance, Direction pFacing, double pDeltaX, double pDeltaY, double pDeltaZ) doublegetSize()doublegetXsize()doublegetYsize()doublegetZsize()inthashCode()booleanhasNaN()inflate(double pValue) Creates a newAABBthat is expanded by the given value in all directions.inflate(double pX, double pY, double pZ) Creates a newAABBthat has been contracted by the given amount in both directions.booleanintersects(double pX1, double pY1, double pZ1, double pX2, double pY2, double pZ2) booleanintersects(AABB pOther) Checks if the bounding box intersects with another.booleanintersects(Vec3 pMin, Vec3 pMax) booleanReturns true if this AABB is infinite in all directions.doublemax(Direction.Axis pAxis) doublemin(Direction.Axis pAxis) move(double pX, double pY, double pZ) Offsets the current bounding box by the specified amount.static AABBof(BoundingBox pMutableBox) static AABBsetMaxX(double pMaxX) setMaxY(double pMaxY) setMaxZ(double pMaxZ) setMinX(double pMinX) setMinY(double pMinY) setMinZ(double pMinZ) toString()static AABBunitCubeFromLowerCorner(Vec3 pVector)
-
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 pX1, double pY1, double pZ1, double pX2, double pY2, double pZ2) -
AABB
-
AABB
-
-
Method Details
-
of
-
unitCubeFromLowerCorner
-
encapsulatingFullBlocks
-
setMinX
-
setMinY
-
setMinZ
-
setMaxX
-
setMaxY
-
setMaxZ
-
min
-
max
-
equals
-
hashCode
public int 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 pX1, double pY1, double pZ1, double pX2, double pY2, double pZ2) -
intersects
-
contains
Returns if the supplied Vec3D is completely inside the bounding box -
contains
public boolean contains(double pX, double pY, double pZ) -
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
@Nullable private static Direction clipPoint(double[] pMinDistance, @Nullable Direction pPrevDirection, double pDistanceSide, double pDistanceOtherA, double pDistanceOtherB, double pMinSide, double pMinOtherA, double pMaxOtherA, double pMinOtherB, double pMaxOtherB, Direction pHitSide, double pStartSide, double pStartOtherA, double pStartOtherB) -
collidedAlongVector
-
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
-