Expand description
Minimum and maximum bounds in three dimensions.
Fields§
§min: Vector<f64>
The minimum values.
max: Vector<f64>
The maximum values.
Implementations§
source§impl Bounds
impl Bounds
sourcepub fn grow(&mut self, point: &Point)
pub fn grow(&mut self, point: &Point)
Grows the bounds to encompass this point in xyz space.
Examples
let point = Point { x: 1., y: 2., z: 3., ..Default::default() };
let mut bounds = Bounds { ..Default::default() };
bounds.grow(&point);
assert_eq!(1., bounds.min.x);
sourcepub fn adapt(&self, transform: &Vector<Transform>) -> Result<Self>
pub fn adapt(&self, transform: &Vector<Transform>) -> Result<Self>
Transform the bounds to be compatible with the chosen transform. Otherwise, points may lay outside of the bounding box due to floating-point issues.
Example
use las::{Bounds, Transform, Vector};
let bounds = Bounds {
min: Vector {
x: -2.7868618965148926,
y: -0.9322229027748108,
z: -5.8063459396362305,
},
max: Vector {
x: 0.6091402173042297,
y: 1.5428568124771118,
z: -0.09441471844911575,
},
};
// Currently, the default scale is 0.001.
let new_bounds = bounds.adapt(&Default::default()).unwrap();
assert_eq!(new_bounds.max.z, -0.094);