Compute the overlap of two boxes - the region of points which are contained in both boxes. If an overlap exists, they collide.
def BoxCollidesWithBox(box1, box2):
minx = max(box1.minX, box2.minX)
maxx = min(box1.maxX, box2.maxX)
miny = max(box1.minY, box2.minY)
maxy = min(box1.maxY, box2.maxY)
minz = max(box1.minZ, box2.minZ)
maxz = min(box1.maxZ, box2.maxZ)
return (minx <= maxx) and (miny <= maxy) and (minz <= maxz)