Reuse even more objects!

This commit is contained in:
Shoghi Cervantes
2014-10-29 14:23:51 +01:00
parent 72c09045d5
commit 6f64af3066
6 changed files with 46 additions and 59 deletions

View File

@ -101,39 +101,36 @@ class AxisAlignedBB{
}
public function addCoord($x, $y, $z){
$vec = self::cloneBoundingBoxFromPool($this);
$minX = $this->minX;
$minY = $this->minY;
$minZ = $this->minZ;
$maxX = $this->maxX;
$maxY = $this->maxY;
$maxZ = $this->maxZ;
if($x < 0){
$vec->minX += $x;
$minX += $x;
}elseif($x > 0){
$vec->maxX += $x;
$maxX += $x;
}
if($y < 0){
$vec->minY += $y;
$minY += $y;
}elseif($y > 0){
$vec->maxY += $y;
$maxY += $y;
}
if($z < 0){
$vec->minZ += $z;
$minZ += $z;
}elseif($z > 0){
$vec->maxZ += $z;
$maxZ += $z;
}
return $vec;
return self::getBoundingBoxFromPool($minX, $minY, $minZ, $maxX, $maxY, $maxZ);
}
public function grow($x, $y, $z){
$vec = self::cloneBoundingBoxFromPool($this);
$vec->minX -= $x;
$vec->minY -= $y;
$vec->minZ -= $z;
$vec->maxX += $x;
$vec->maxY += $y;
$vec->maxZ += $z;
return $vec;
return self::getBoundingBoxFromPool($this->minX - $x, $this->minY - $y, $this->minZ - $z, $this->maxX + $x, $this->maxY + $y, $this->maxZ + $z);
}
public function expand($x, $y, $z){
@ -159,15 +156,7 @@ class AxisAlignedBB{
}
public function shrink($x, $y, $z){
$vec = self::cloneBoundingBoxFromPool($this);
$vec->minX += $x;
$vec->minY += $y;
$vec->minZ += $z;
$vec->maxX -= $x;
$vec->maxY -= $y;
$vec->maxZ -= $z;
return $vec;
return self::getBoundingBoxFromPool($this->minX + $x, $this->minY + $y, $this->minZ + $z, $this->maxX - $x, $this->maxY - $y, $this->maxZ - $z);
}
public function contract($x, $y, $z){
@ -192,15 +181,7 @@ class AxisAlignedBB{
}
public function getOffsetBoundingBox($x, $y, $z){
$vec = self::cloneBoundingBoxFromPool($this);
$vec->minX += $x;
$vec->minY += $y;
$vec->minZ += $z;
$vec->maxX += $x;
$vec->maxY += $y;
$vec->maxZ += $z;
return $vec;
return self::getBoundingBoxFromPool($this->minX + $x, $this->minY + $y, $this->minZ + $z, $this->maxX + $x, $this->maxY + $y, $this->maxZ + $z);
}
public function calculateXOffset(AxisAlignedBB $bb, $x){