// Check axial collision public bool CollidesWith(Cube cube) => xCoordinate.Collides(cube.xCoordinate) || yCoordinate.Collides(cube.yCoordinate) || zCoordinate.Collides(cube.zCoordinate);
// Check the intersection points to get volume public double IntersectionVolumeWith(Cube cube) => xCoordinate.Overlap(cube.xCoordinate) * yCoordinate.Overlap(cube.yCoordinate) * zCoordinate.Overlap(cube.zCoordinate);