public function calculateXOffset(AxisAlignedBB $bb, $x)
{
if ($bb->maxY <= $this->minY or $bb->minY >= $this->maxY) {
return $x;
}
if ($bb->maxZ <= $this->minZ or $bb->minZ >= $this->maxZ) {
return $x;
}
if ($x > 0 and $bb->maxX <= $this->minX) {
$x1 = $this->minX - $bb->maxX;
if ($x1 < $x) {
$x = $x1;
}
}
if ($x < 0 and $bb->minX >= $this->maxX) {
$x2 = $this->maxX - $bb->minX;
if ($x2 > $x) {
$x = $x2;
}
}
return $x;
}