public static BoundingBox Transform(this BoundingBox bb, Matrix matrix) {
var a = Vector3.Transform(bb.Minimum, matrix);
var b = Vector3.Transform(bb.Maximum, matrix);
return new BoundingBox(
new Vector3(
Math.Min(a.X, b.X),
Math.Min(a.Y, b.Y),
Math.Min(a.Z, b.Z)),
new Vector3(
Math.Max(a.X, b.X),
Math.Max(a.Y, b.Y),
Math.Max(a.Z, b.Z)));
}