mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-17 03:08:58 +00:00
Added AxisAlignedBB::getMixedBoundingBox() (?)
This commit is contained in:
parent
df20467f3b
commit
12ddf530b1
@ -43,53 +43,73 @@ class AxisAlignedBB{
|
|||||||
$this->maxX = $maxX;
|
$this->maxX = $maxX;
|
||||||
$this->maxY = $maxY;
|
$this->maxY = $maxY;
|
||||||
$this->maxZ = $maxZ;
|
$this->maxZ = $maxZ;
|
||||||
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addCoord($x, $y, $z){
|
public function addCoord($x, $y, $z){
|
||||||
|
$vec = clone $this;
|
||||||
if($x < 0){
|
if($x < 0){
|
||||||
$this->minX += $x;
|
$vec->minX += $x;
|
||||||
}elseif($x > 0){
|
}elseif($x > 0){
|
||||||
$this->maxX += $x;
|
$vec->maxX += $x;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($y < 0){
|
if($y < 0){
|
||||||
$this->minY += $y;
|
$vec->minY += $y;
|
||||||
}elseif($y > 0){
|
}elseif($y > 0){
|
||||||
$this->maxY += $y;
|
$vec->maxY += $y;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($z < 0){
|
if($z < 0){
|
||||||
$this->minZ += $z;
|
$vec->minZ += $z;
|
||||||
}elseif($z > 0){
|
}elseif($z > 0){
|
||||||
$this->maxZ += $z;
|
$vec->maxZ += $z;
|
||||||
}
|
}
|
||||||
|
return $vec;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function expand($x, $y, $z){
|
public function expand($x, $y, $z){
|
||||||
$this->minX -= $x;
|
$vec = clone $this;
|
||||||
$this->minY -= $y;
|
$vec->minX -= $x;
|
||||||
$this->minZ -= $z;
|
$vec->minY -= $y;
|
||||||
$this->maxX += $x;
|
$vec->minZ -= $z;
|
||||||
$this->maxY += $y;
|
$vec->maxX += $x;
|
||||||
$this->maxZ += $z;
|
$vec->maxY += $y;
|
||||||
|
$vec->maxZ += $z;
|
||||||
|
return $vec;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function offset($x, $y, $z){
|
public function offset($x, $y, $z){
|
||||||
$this->minX += $x;
|
$vec = clone $this;
|
||||||
$this->minY += $y;
|
$vec->minX += $x;
|
||||||
$this->minZ += $z;
|
$vec->minY += $y;
|
||||||
$this->maxX += $x;
|
$vec->minZ += $z;
|
||||||
$this->maxY += $y;
|
$vec->maxX += $x;
|
||||||
$this->maxZ += $z;
|
$vec->maxY += $y;
|
||||||
|
$vec->maxZ += $z;
|
||||||
|
return $vec;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function contract($x, $y, $z){
|
public function contract($x, $y, $z){
|
||||||
$this->minX += $x;
|
$vec = clone $this;
|
||||||
$this->minY += $y;
|
$vec->minX += $x;
|
||||||
$this->minZ += $z;
|
$vec->minY += $y;
|
||||||
$this->maxX -= $x;
|
$vec->minZ += $z;
|
||||||
$this->maxY -= $y;
|
$vec->maxX -= $x;
|
||||||
$this->maxZ -= $z;
|
$vec->maxY -= $y;
|
||||||
|
$vec->maxZ -= $z;
|
||||||
|
return $vec;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getMixedBoundingBox(AxisAlignedBB $bb){
|
||||||
|
return new AxisAlignedBB(
|
||||||
|
min($this->minX, $bb->minX),
|
||||||
|
min($this->minY, $bb->minY),
|
||||||
|
min($this->minZ, $bb->minZ),
|
||||||
|
max($this->maxX, $bb->maxX),
|
||||||
|
max($this->maxY, $bb->maxY),
|
||||||
|
max($this->maxZ, $bb->maxZ)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOffsetBoundingBox($x, $y, $z){
|
public function getOffsetBoundingBox($x, $y, $z){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user