pub fn union_points(p1: &Vec3, p2: &Vec3) -> BBox {
    BBox {
        min: Vec3 {
            x: p1.x.min(p2.x),
            y: p1.y.min(p2.y),
            z: p1.z.min(p2.z)
        },
        max: Vec3 {
            x: p1.x.max(p2.x),
            y: p1.y.max(p2.y),
            z: p1.z.max(p2.z)
        }
    }
}
/// Given two points, compute and return a new `BBox` that encompasses both points
Given two points, compute and return a new `BBox` that encompasses both points
Given two points compute and return a new ` BBox ` that encompasses both points
pub fn union_points(p1: &Vec3, p2: &Vec3) -> BBox {
    BBox {
        min: Vec3 {
            x: p1.x.min(p2.x),
            y: p1.y.min(p2.y),
            z: p1.z.min(p2.z)
        },
        max: Vec3 {
            x: p1.x.max(p2.x),
            y: p1.y.max(p2.y),
            z: p1.z.max(p2.z)
        }
    }
}
pub fn union_points ( p1 : & Vec3 , p2 : & Vec3 ) -> BBox { BBox { min : Vec3 { x : p1 . x . min ( p2 . x ) , y : p1 . y . min ( p2 . y ) , z : p1 . z . min ( p2 . z ) } , max : Vec3 { x : p1 . x . max ( p2 . x ) , y : p1 . y . max ( p2 . y ) , z : p1 . z . max ( p2 . z ) } } }
Given two points, compute and return a new `BBox` that encompasses both points
Given two points compute and return a new ` BBox ` that encompasses both points
p1
&Vec3
p2
&Vec3
p1
&Vec3
p2
&Vec3