[−][src]Struct geo::Rect
A bounded 2D quadrilateral whose area is defined by minimum and maximum Coordinate
s.
The constructors and setters ensure the maximum Coordinate
is greater than or equal to the
minimum. Thus, a Rect
s width, height, and area is guaranteed to be greater than or equal to
zero.
Examples
use geo_types::{Coordinate, Rect}; let rect = Rect::new( Coordinate { x: 0., y: 4.}, Coordinate { x: 3., y: 10.}, ); assert_eq!(3., rect.width()); assert_eq!(6., rect.height()); assert_eq!( Coordinate { x: 1.5, y: 7. }, rect.center() );
Implementations
impl<T> Rect<T> where
T: CoordinateType,
[src]
T: CoordinateType,
pub fn new<C>(min: C, max: C) -> Rect<T> where
C: Into<Coordinate<T>>,
[src]
C: Into<Coordinate<T>>,
Constructor to creates a new rectangle from coordinates, where min
denotes to the
coordinates of the bottom-left corner, and max
denotes to the coordinates of the
top-right corner
Panics
Panics if min
's x/y coordinate is larger than that of the max
's.
Examples
use geo_types::{Coordinate, Rect}; let rect = Rect::new( Coordinate { x: 0., y: 0. }, Coordinate { x: 10., y: 20. } );
pub fn try_new<C>(
min: C,
max: C
) -> Result<Rect<T>, InvalidRectCoordinatesError> where
C: Into<Coordinate<T>>,
[src]
min: C,
max: C
) -> Result<Rect<T>, InvalidRectCoordinatesError> where
C: Into<Coordinate<T>>,
pub fn min(self) -> Coordinate<T>
[src]
Returns the minimum Coordinate
(bottom-left corner) of the Rect
.
Examples
use geo_types::{Coordinate, Rect}; let rect = Rect::new( Coordinate { x: 5., y: 5. }, Coordinate { x: 15., y: 15. }, ); assert_eq!(rect.min(), Coordinate { x: 5., y: 5. });
pub fn set_min<C>(&mut self, min: C) where
C: Into<Coordinate<T>>,
[src]
C: Into<Coordinate<T>>,
Set the Rect
’s minimum coordinate.
Panics
Panics if min
’s x/y is greater than the maximum coordinate’s x/y.
pub fn max(self) -> Coordinate<T>
[src]
Returns the maximum Coordinate
(top-right corner) of the Rect
.
Examples
use geo_types::{Coordinate, Rect}; let rect = Rect::new( Coordinate { x: 5., y: 5. }, Coordinate { x: 15., y: 15. }, ); assert_eq!(rect.max(), Coordinate { x: 15., y: 15. });
pub fn set_max<C>(&mut self, max: C) where
C: Into<Coordinate<T>>,
[src]
C: Into<Coordinate<T>>,
Set the Rect
’s maximum coordinate.
Panics
Panics if max
’s x/y is less than the minimum coordinate’s x/y.
pub fn width(self) -> T
[src]
Returns the width of the Rect
.
Examples
use geo_types::{Coordinate, Rect}; let rect = Rect::new( Coordinate { x: 5., y: 5. }, Coordinate { x: 15., y: 15. }, ); assert_eq!(rect.width(), 10.);
pub fn height(self) -> T
[src]
Returns the height of the Rect
.
Examples
use geo_types::{Coordinate, Rect}; let rect = Rect::new( Coordinate { x: 5., y: 5. }, Coordinate { x: 15., y: 15. }, ); assert_eq!(rect.height(), 10.);
pub fn to_polygon(self) -> Polygon<T>
[src]
Create a Polygon
from the Rect
.
Examples
use geo_types::{Coordinate, Rect, polygon}; let rect = Rect::new( Coordinate { x: 0., y: 0. }, Coordinate { x: 10., y: 20. }, ); assert_eq!( rect.to_polygon(), polygon![ (x: 0., y: 0.), (x: 0., y: 20.), (x: 10., y: 20.), (x: 10., y: 0.), (x: 0., y: 0.), ], );
impl<T> Rect<T> where
T: CoordinateType + Float,
[src]
T: CoordinateType + Float,
pub fn center(self) -> Coordinate<T>
[src]
Returns the center Coordinate
of the Rect
.
Examples
use geo_types::{Coordinate, Rect}; let rect = Rect::new( Coordinate { x: 5., y: 5. }, Coordinate { x: 15., y: 15. }, ); assert_eq!( rect.center(), Coordinate { x: 10., y: 10. } );
Trait Implementations
impl<T> Area<T> for Rect<T> where
T: CoordinateType,
[src]
T: CoordinateType,
Because a Rect
has no winding order, the area will always be positive.
fn signed_area(&self) -> T
[src]
fn unsigned_area(&self) -> T
[src]
impl<T> BoundingRect<T> for Rect<T> where
T: CoordinateType,
[src]
T: CoordinateType,
type Output = Rect<T>
fn bounding_rect(&self) -> Self::Output
[src]
impl<T> Centroid<T> for Rect<T> where
T: Float,
[src]
T: Float,
impl<T> Clone for Rect<T> where
T: Clone + CoordinateType,
[src]
T: Clone + CoordinateType,
impl<T> Contains<Coordinate<T>> for Rect<T> where
T: CoordinateType,
[src]
T: CoordinateType,
fn contains(&self, coord: &Coordinate<T>) -> bool
[src]
impl<T> Contains<Point<T>> for Rect<T> where
T: CoordinateType,
[src]
T: CoordinateType,
impl<T> Contains<Rect<T>> for Rect<T> where
T: CoordinateType,
[src]
T: CoordinateType,
impl<T> Copy for Rect<T> where
T: Copy + CoordinateType,
[src]
T: Copy + CoordinateType,
impl<T> Debug for Rect<T> where
T: Debug + CoordinateType,
[src]
T: Debug + CoordinateType,
impl<T> Eq for Rect<T> where
T: Eq + CoordinateType,
[src]
T: Eq + CoordinateType,
impl<T> From<Rect<T>> for Polygon<T> where
T: CoordinateType,
[src]
T: CoordinateType,
impl<T> From<Rect<T>> for Geometry<T> where
T: CoordinateType,
[src]
T: CoordinateType,
impl<T> Hash for Rect<T> where
T: Hash + CoordinateType,
[src]
T: Hash + CoordinateType,
fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,
[src]
__H: Hasher,
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<T> Intersects<Polygon<T>> for Rect<T> where
T: Float,
[src]
T: Float,
fn intersects(&self, polygon: &Polygon<T>) -> bool
[src]
impl<T> Intersects<Rect<T>> for Rect<T> where
T: Float,
[src]
T: Float,
fn intersects(&self, bounding_rect: &Rect<T>) -> bool
[src]
impl<T> Intersects<Rect<T>> for Polygon<T> where
T: Float,
[src]
T: Float,
fn intersects(&self, bounding_rect: &Rect<T>) -> bool
[src]
impl<T: CoordinateType, NT: CoordinateType> MapCoords<T, NT> for Rect<T>
[src]
type Output = Rect<NT>
fn map_coords(&self, func: impl Fn(&(T, T)) -> (NT, NT) + Copy) -> Self::Output
[src]
impl<T: CoordinateType> MapCoordsInplace<T> for Rect<T>
[src]
impl<T> PartialEq<Rect<T>> for Rect<T> where
T: PartialEq<T> + CoordinateType,
[src]
T: PartialEq<T> + CoordinateType,
impl<T: CoordinateType, NT: CoordinateType> TryMapCoords<T, NT> for Rect<T>
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for Rect<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for Rect<T> where
T: Send,
T: Send,
impl<T> Sync for Rect<T> where
T: Sync,
T: Sync,
impl<T> Unpin for Rect<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for Rect<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, G> RotatePoint<T> for G where
G: MapCoords<T, T, Output = G>,
T: Float,
[src]
G: MapCoords<T, T, Output = G>,
T: Float,
fn rotate_around_point(&Self, T, Point<T>) -> G
[src]
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, G> Translate<T> for G where
G: MapCoords<T, T, Output = G> + MapCoordsInplace<T>,
T: CoordinateType,
[src]
G: MapCoords<T, T, Output = G> + MapCoordsInplace<T>,
T: CoordinateType,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,