public function calculateZOffset(AxisAlignedBB $bb, $z)
{
if ($bb->maxX <= $this->minX or $bb->minX >= $this->maxX) {
return $z;
}
if ($bb->maxY <= $this->minY or $bb->minY >= $this->maxY) {
return $z;
}
if ($z > 0 and $bb->maxZ <= $this->minZ) {
$z1 = $this->minZ - $bb->maxZ;
if ($z1 < $z) {
$z = $z1;
}
}
if ($z < 0 and $bb->minZ >= $this->maxZ) {
$z2 = $this->maxZ - $bb->minZ;
if ($z2 > $z) {
$z = $z2;
}
}
return $z;
}