pub enum BoundType { AxisAlignBox, Sphere, } pub trait IBound { fn get_type( & self ) -> BoundType; fn intersect( & self, other: & IBound ) -> bool; fn get_shortest_separation( & self, other: & IBound ) -> f64; fn get_bound_data( &self ) -> [f64;32]; fn get_union( & mut self, bounds: &[ &IBound ] ); fn get_centroid( & self ) -> [ f64; 3 ]; }