pub fn bnd3_union_bnd3f(b1: &Bounds3f, b2: &Bounds3f) -> Bounds3f {
    let p_min: Point3f = Point3f {
        x: b1.p_min.x.min(b2.p_min.x),
        y: b1.p_min.y.min(b2.p_min.y),
        z: b1.p_min.z.min(b2.p_min.z),
    };
    let p_max: Point3f = Point3f {
        x: b1.p_max.x.max(b2.p_max.x),
        y: b1.p_max.y.max(b2.p_max.y),
        z: b1.p_max.z.max(b2.p_max.z),
    };
    Bounds3f { p_min, p_max }
}
/// Construct a new box that bounds the space encompassed by two other
/// bounding boxes.
Construct a new box that bounds the space encompassed by two other
bounding boxes.
Construct a new box that bounds the space encompassed by two other bounding boxes .
pub fn bnd3_union_bnd3f(b1: &Bounds3f, b2: &Bounds3f) -> Bounds3f {
    let p_min: Point3f = Point3f {
        x: b1.p_min.x.min(b2.p_min.x),
        y: b1.p_min.y.min(b2.p_min.y),
        z: b1.p_min.z.min(b2.p_min.z),
    };
    let p_max: Point3f = Point3f {
        x: b1.p_max.x.max(b2.p_max.x),
        y: b1.p_max.y.max(b2.p_max.y),
        z: b1.p_max.z.max(b2.p_max.z),
    };
    Bounds3f { p_min, p_max }
}
pub fn bnd3_union_bnd3f ( b1 : & Bounds3f , b2 : & Bounds3f ) -> Bounds3f { let p_min : Point3f = Point3f { x : b1 . p_min . x . min ( b2 . p_min . x ) , y : b1 . p_min . y . min ( b2 . p_min . y ) , z : b1 . p_min . z . min ( b2 . p_min . z ) , } ; let p_max : Point3f = Point3f { x : b1 . p_max . x . max ( b2 . p_max . x ) , y : b1 . p_max . y . max ( b2 . p_max . y ) , z : b1 . p_max . z . max ( b2 . p_max . z ) , } ; Bounds3f { p_min , p_max } }
Construct a new box that bounds the space encompassed by two other
bounding boxes.
Construct a new box that bounds the space encompassed by two other bounding boxes .
b1
&Bounds3f
b2
&Bounds3f