public ContainmentType Contains(ref BoundingBox boundingBox)
{
if (Max.X < boundingBox.Min.X || Min.X > boundingBox.Max.X ||
Max.Y < boundingBox.Min.Y || Min.Y > boundingBox.Max.Y ||
Max.Z < boundingBox.Min.Z || Min.Z > boundingBox.Max.Z)
return ContainmentType.Disjoint;
//It is known to be at least intersecting. Is it contained?
if (Min.X <= boundingBox.Min.X && Max.X >= boundingBox.Max.X &&
Min.Y <= boundingBox.Min.Y && Max.Y >= boundingBox.Max.Y &&
Min.Z <= boundingBox.Min.Z && Max.Z >= boundingBox.Max.Z)
return ContainmentType.Contains;
return ContainmentType.Intersects;
}