pub struct Bounds {
pub min: Vector<f64>,
pub max: Vector<f64>,
}
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);
Trait Implementations§
source§impl PartialEq for Bounds
impl PartialEq for Bounds
impl Copy for Bounds
impl StructuralPartialEq for Bounds
Auto Trait Implementations§
impl Freeze for Bounds
impl RefUnwindSafe for Bounds
impl Send for Bounds
impl Sync for Bounds
impl Unpin for Bounds
impl UnwindSafe for Bounds
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more