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§
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§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more