public static AxisAlignedBoundingBox operator +(AxisAlignedBoundingBox A, AxisAlignedBoundingBox B)
{
Vector3 calcMinXYZ = new Vector3();
calcMinXYZ.x = Math.Min(A.minXYZ.x, B.minXYZ.x);
calcMinXYZ.y = Math.Min(A.minXYZ.y, B.minXYZ.y);
calcMinXYZ.z = Math.Min(A.minXYZ.z, B.minXYZ.z);
Vector3 calcMaxXYZ = new Vector3();
calcMaxXYZ.x = Math.Max(A.maxXYZ.x, B.maxXYZ.x);
calcMaxXYZ.y = Math.Max(A.maxXYZ.y, B.maxXYZ.y);
calcMaxXYZ.z = Math.Max(A.maxXYZ.z, B.maxXYZ.z);
AxisAlignedBoundingBox combinedBounds = new AxisAlignedBoundingBox(calcMinXYZ, calcMaxXYZ);
return combinedBounds;
}