pub enum Geometry<T = f64>where
T: CoordNum,{
Point(Point<T>),
Line(Line<T>),
LineString(LineString<T>),
Polygon(Polygon<T>),
MultiPoint(MultiPoint<T>),
MultiLineString(MultiLineString<T>),
MultiPolygon(MultiPolygon<T>),
GeometryCollection(GeometryCollection<T>),
Rect(Rect<T>),
Triangle(Triangle<T>),
}
Expand description
An enum representing any possible geometry type.
All geometry variants (Point
, LineString
, etc.) can be converted to a Geometry
using
Into::into
. Conversely, TryFrom::try_from
can be used to convert a Geometry
back to one of it’s specific enum members.
§Example
use std::convert::TryFrom;
use geo_types::{Point, point, Geometry, GeometryCollection};
let p = point!(x: 1.0, y: 1.0);
let pe: Geometry = p.into();
let pn = Point::try_from(pe).unwrap();
Variants§
Point(Point<T>)
Line(Line<T>)
LineString(LineString<T>)
Polygon(Polygon<T>)
MultiPoint(MultiPoint<T>)
MultiLineString(MultiLineString<T>)
MultiPolygon(MultiPolygon<T>)
GeometryCollection(GeometryCollection<T>)
Rect(Rect<T>)
Triangle(Triangle<T>)
Implementations§
Source§impl<T> Geometry<T>where
T: CoordNum,
impl<T> Geometry<T>where
T: CoordNum,
Sourcepub fn into_point(self) -> Option<Point<T>>
👎Deprecated: Will be removed in an upcoming version. Switch to std::convert::TryInto<Point>
pub fn into_point(self) -> Option<Point<T>>
If this Geometry is a Point, then return that, else None.
§Examples
use geo_types::*;
use std::convert::TryInto;
let g = Geometry::Point(Point::new(0., 0.));
let p2: Point<f32> = g.try_into().unwrap();
assert_eq!(p2, Point::new(0., 0.,));
Sourcepub fn into_line_string(self) -> Option<LineString<T>>
👎Deprecated: Will be removed in an upcoming version. Switch to std::convert::TryInto<LineString>
pub fn into_line_string(self) -> Option<LineString<T>>
If this Geometry is a LineString, then return that LineString, else None.
Sourcepub fn into_line(self) -> Option<Line<T>>
👎Deprecated: Will be removed in an upcoming version. Switch to std::convert::TryInto<Line>
pub fn into_line(self) -> Option<Line<T>>
If this Geometry is a Line, then return that Line, else None.
Sourcepub fn into_polygon(self) -> Option<Polygon<T>>
👎Deprecated: Will be removed in an upcoming version. Switch to std::convert::TryInto<Polygon>
pub fn into_polygon(self) -> Option<Polygon<T>>
If this Geometry is a Polygon, then return that, else None.
Sourcepub fn into_multi_point(self) -> Option<MultiPoint<T>>
👎Deprecated: Will be removed in an upcoming version. Switch to std::convert::TryInto<MultiPoint>
pub fn into_multi_point(self) -> Option<MultiPoint<T>>
If this Geometry is a MultiPoint, then return that, else None.
Sourcepub fn into_multi_line_string(self) -> Option<MultiLineString<T>>
👎Deprecated: Will be removed in an upcoming version. Switch to std::convert::TryInto<MultiLineString>
pub fn into_multi_line_string(self) -> Option<MultiLineString<T>>
If this Geometry is a MultiLineString, then return that, else None.
Sourcepub fn into_multi_polygon(self) -> Option<MultiPolygon<T>>
👎Deprecated: Will be removed in an upcoming version. Switch to std::convert::TryInto<MultiPolygon>
pub fn into_multi_polygon(self) -> Option<MultiPolygon<T>>
If this Geometry is a MultiPolygon, then return that, else None.
Trait Implementations§
Source§impl<T> AbsDiffEq for Geometry<T>
impl<T> AbsDiffEq for Geometry<T>
Source§fn abs_diff_eq(
&self,
other: &Geometry<T>,
epsilon: <Geometry<T> as AbsDiffEq>::Epsilon,
) -> bool
fn abs_diff_eq( &self, other: &Geometry<T>, epsilon: <Geometry<T> as AbsDiffEq>::Epsilon, ) -> bool
Equality assertion with an absolute limit.
§Examples
use geo_types::{Geometry, polygon};
let a: Geometry<f32> = polygon![(x: 0., y: 0.), (x: 5., y: 0.), (x: 7., y: 9.), (x: 0., y: 0.)].into();
let b: Geometry<f32> = polygon![(x: 0., y: 0.), (x: 5., y: 0.), (x: 7.01, y: 9.), (x: 0., y: 0.)].into();
approx::assert_abs_diff_eq!(a, b, epsilon=0.1);
approx::assert_abs_diff_ne!(a, b, epsilon=0.001);
Source§fn default_epsilon() -> <Geometry<T> as AbsDiffEq>::Epsilon
fn default_epsilon() -> <Geometry<T> as AbsDiffEq>::Epsilon
Source§fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
AbsDiffEq::abs_diff_eq
.Source§impl<T> Area<T> for Geometry<T>where
T: CoordFloat,
impl<T> Area<T> for Geometry<T>where
T: CoordFloat,
fn signed_area(&self) -> T
fn unsigned_area(&self) -> T
Source§impl<T> BoundingRect<T> for Geometry<T>where
T: CoordNum,
impl<T> BoundingRect<T> for Geometry<T>where
T: CoordNum,
Source§impl<T> Centroid for Geometry<T>where
T: GeoFloat,
impl<T> Centroid for Geometry<T>where
T: GeoFloat,
Source§fn centroid(&self) -> Self::Output
fn centroid(&self) -> Self::Output
The Centroid of a Geometry
is the centroid of its enum variant
§Examples
use geo::Centroid;
use geo::{Geometry, Rect, point};
let rect = Rect::new(
point!(x: 0.0f32, y: 0.0),
point!(x: 1.0, y: 1.0),
);
let geometry = Geometry::from(rect.clone());
assert_eq!(
Some(rect.centroid()),
geometry.centroid(),
);
assert_eq!(
Some(point!(x: 0.5, y: 0.5)),
geometry.centroid(),
);
type Output = Option<Point<T>>
Source§impl<T> ChamberlainDuquetteArea<T> for Geometry<T>where
T: CoordFloat,
impl<T> ChamberlainDuquetteArea<T> for Geometry<T>where
T: CoordFloat,
fn chamberlain_duquette_signed_area(&self) -> T
fn chamberlain_duquette_unsigned_area(&self) -> T
Source§impl<F: GeoFloat> ClosestPoint<F> for Geometry<F>
impl<F: GeoFloat> ClosestPoint<F> for Geometry<F>
Source§fn closest_point(&self, p: &Point<F>) -> Closest<F>
fn closest_point(&self, p: &Point<F>) -> Closest<F>
self
and p
.Source§impl<T> Contains<GeometryCollection<T>> for Geometry<T>where
T: GeoFloat,
impl<T> Contains<GeometryCollection<T>> for Geometry<T>where
T: GeoFloat,
fn contains(&self, geometry_collection: &GeometryCollection<T>) -> bool
Source§impl<T> Contains<LineString<T>> for Geometry<T>where
T: GeoFloat,
impl<T> Contains<LineString<T>> for Geometry<T>where
T: GeoFloat,
fn contains(&self, line_string: &LineString<T>) -> bool
Source§impl<T> Contains<MultiLineString<T>> for Geometry<T>where
T: GeoFloat,
impl<T> Contains<MultiLineString<T>> for Geometry<T>where
T: GeoFloat,
fn contains(&self, multi_line_string: &MultiLineString<T>) -> bool
Source§impl<T> Contains<MultiPoint<T>> for Geometry<T>where
T: GeoFloat,
impl<T> Contains<MultiPoint<T>> for Geometry<T>where
T: GeoFloat,
fn contains(&self, multi_point: &MultiPoint<T>) -> bool
Source§impl<T> Contains<MultiPolygon<T>> for Geometry<T>where
T: GeoFloat,
impl<T> Contains<MultiPolygon<T>> for Geometry<T>where
T: GeoFloat,
fn contains(&self, multi_line_string: &MultiPolygon<T>) -> bool
Source§impl<T> CoordinatePosition for Geometry<T>where
T: GeoNum,
impl<T> CoordinatePosition for Geometry<T>where
T: GeoNum,
Source§impl<'a, T: CoordNum + 'a> CoordsIter<'a> for Geometry<T>
impl<'a, T: CoordNum + 'a> CoordsIter<'a> for Geometry<T>
Source§fn coords_count(&'a self) -> usize
fn coords_count(&'a self) -> usize
Return the number of coordinates in the Geometry
.
type Iter = GeometryCoordsIter<'a, T>
type ExteriorIter = GeometryExteriorCoordsIter<'a, T>
type Scalar = T
Source§fn coords_iter(&'a self) -> Self::Iter
fn coords_iter(&'a self) -> Self::Iter
Source§fn exterior_coords_iter(&'a self) -> Self::ExteriorIter
fn exterior_coords_iter(&'a self) -> Self::ExteriorIter
Source§impl<T> From<LineString<T>> for Geometry<T>where
T: CoordNum,
impl<T> From<LineString<T>> for Geometry<T>where
T: CoordNum,
Source§fn from(x: LineString<T>) -> Geometry<T>
fn from(x: LineString<T>) -> Geometry<T>
Source§impl<T> From<MultiLineString<T>> for Geometry<T>where
T: CoordNum,
impl<T> From<MultiLineString<T>> for Geometry<T>where
T: CoordNum,
Source§fn from(x: MultiLineString<T>) -> Geometry<T>
fn from(x: MultiLineString<T>) -> Geometry<T>
Source§impl<T> From<MultiPoint<T>> for Geometry<T>where
T: CoordNum,
impl<T> From<MultiPoint<T>> for Geometry<T>where
T: CoordNum,
Source§fn from(x: MultiPoint<T>) -> Geometry<T>
fn from(x: MultiPoint<T>) -> Geometry<T>
Source§impl<T> From<MultiPolygon<T>> for Geometry<T>where
T: CoordNum,
impl<T> From<MultiPolygon<T>> for Geometry<T>where
T: CoordNum,
Source§fn from(x: MultiPolygon<T>) -> Geometry<T>
fn from(x: MultiPolygon<T>) -> Geometry<T>
Source§impl GeodesicArea<f64> for Geometry<f64>
impl GeodesicArea<f64> for Geometry<f64>
Source§fn geodesic_perimeter(&self) -> f64
fn geodesic_perimeter(&self) -> f64
Source§fn geodesic_area_signed(&self) -> f64
fn geodesic_area_signed(&self) -> f64
Source§fn geodesic_area_unsigned(&self) -> f64
fn geodesic_area_unsigned(&self) -> f64
Source§impl<C: GeoNum> HasDimensions for Geometry<C>
impl<C: GeoNum> HasDimensions for Geometry<C>
Source§fn dimensions(&self) -> Dimensions
fn dimensions(&self) -> Dimensions
Rect
s are 2-dimensional, but it’s possible to create degenerate Rect
s which
have either 1 or 0 dimensions. Read moreSource§fn boundary_dimensions(&self) -> Dimensions
fn boundary_dimensions(&self) -> Dimensions
Geometry
’s boundary, as used by OGC-SFA. Read moreSource§impl<T> InteriorPoint for Geometry<T>where
T: GeoFloat,
impl<T> InteriorPoint for Geometry<T>where
T: GeoFloat,
Source§impl<T, G> Intersects<G> for Geometry<T>where
T: CoordNum,
Point<T>: Intersects<G>,
MultiPoint<T>: Intersects<G>,
Line<T>: Intersects<G>,
LineString<T>: Intersects<G>,
MultiLineString<T>: Intersects<G>,
Triangle<T>: Intersects<G>,
Rect<T>: Intersects<G>,
Polygon<T>: Intersects<G>,
MultiPolygon<T>: Intersects<G>,
G: BoundingRect<T>,
impl<T, G> Intersects<G> for Geometry<T>where
T: CoordNum,
Point<T>: Intersects<G>,
MultiPoint<T>: Intersects<G>,
Line<T>: Intersects<G>,
LineString<T>: Intersects<G>,
MultiLineString<T>: Intersects<G>,
Triangle<T>: Intersects<G>,
Rect<T>: Intersects<G>,
Polygon<T>: Intersects<G>,
MultiPolygon<T>: Intersects<G>,
G: BoundingRect<T>,
fn intersects(&self, rhs: &G) -> bool
Source§impl<T> Intersects<Geometry<T>> for Coord<T>
impl<T> Intersects<Geometry<T>> for Coord<T>
fn intersects(&self, rhs: &Geometry<T>) -> bool
Source§impl<T> Intersects<Geometry<T>> for Line<T>
impl<T> Intersects<Geometry<T>> for Line<T>
fn intersects(&self, rhs: &Geometry<T>) -> bool
Source§impl<T> Intersects<Geometry<T>> for Polygon<T>
impl<T> Intersects<Geometry<T>> for Polygon<T>
fn intersects(&self, rhs: &Geometry<T>) -> bool
Source§impl<T> Intersects<Geometry<T>> for Rect<T>
impl<T> Intersects<Geometry<T>> for Rect<T>
fn intersects(&self, rhs: &Geometry<T>) -> bool
Source§impl<T: CoordNum, NT: CoordNum> MapCoords<T, NT> for Geometry<T>
impl<T: CoordNum, NT: CoordNum> MapCoords<T, NT> for Geometry<T>
Source§impl<T: CoordNum> MapCoordsInPlace<T> for Geometry<T>
impl<T: CoordNum> MapCoordsInPlace<T> for Geometry<T>
Source§impl<T: CoordNum> MapCoordsInplace<T> for Geometry<T>
impl<T: CoordNum> MapCoordsInplace<T> for Geometry<T>
Source§fn map_coords_inplace(&mut self, func: impl Fn((T, T)) -> (T, T) + Copy)where
T: CoordNum,
👎Deprecated since 0.21.0: use MapCoordsInPlace::map_coords_in_place
instead which takes a Coord
instead of an (x,y) tuple
fn map_coords_inplace(&mut self, func: impl Fn((T, T)) -> (T, T) + Copy)where
T: CoordNum,
MapCoordsInPlace::map_coords_in_place
instead which takes a Coord
instead of an (x,y) tupleApply a function to all the coordinates in a geometric object, in place
§Examples
#[allow(deprecated)]
use geo::MapCoordsInplace;
use geo::Point;
use approx::assert_relative_eq;
let mut p = Point::new(10., 20.);
#[allow(deprecated)]
p.map_coords_inplace(|(x, y)| (x + 1000., y * 2.));
assert_relative_eq!(p, Point::new(1010., 40.), epsilon = 1e-6);
Source§impl<F: GeoFloat> Relate<F, Geometry<F>> for Geometry<F>
impl<F: GeoFloat> Relate<F, Geometry<F>> for Geometry<F>
fn relate(&self, other: &Geometry<F>) -> IntersectionMatrix
Source§impl<T> RelativeEq for Geometry<T>where
T: CoordNum + RelativeEq<Epsilon = T>,
impl<T> RelativeEq for Geometry<T>where
T: CoordNum + RelativeEq<Epsilon = T>,
Source§fn relative_eq(
&self,
other: &Geometry<T>,
epsilon: <Geometry<T> as AbsDiffEq>::Epsilon,
max_relative: <Geometry<T> as AbsDiffEq>::Epsilon,
) -> bool
fn relative_eq( &self, other: &Geometry<T>, epsilon: <Geometry<T> as AbsDiffEq>::Epsilon, max_relative: <Geometry<T> as AbsDiffEq>::Epsilon, ) -> bool
Equality assertion within a relative limit.
§Examples
use geo_types::{Geometry, polygon};
let a: Geometry<f32> = polygon![(x: 0., y: 0.), (x: 5., y: 0.), (x: 7., y: 9.), (x: 0., y: 0.)].into();
let b: Geometry<f32> = polygon![(x: 0., y: 0.), (x: 5., y: 0.), (x: 7.01, y: 9.), (x: 0., y: 0.)].into();
approx::assert_relative_eq!(a, b, max_relative=0.1);
approx::assert_relative_ne!(a, b, max_relative=0.001);
Source§fn default_max_relative() -> <Geometry<T> as AbsDiffEq>::Epsilon
fn default_max_relative() -> <Geometry<T> as AbsDiffEq>::Epsilon
Source§fn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon,
) -> bool
fn relative_ne( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon, ) -> bool
RelativeEq::relative_eq
.Source§impl<T> RemoveRepeatedPoints<T> for Geometry<T>where
T: CoordNum + FromPrimitive,
impl<T> RemoveRepeatedPoints<T> for Geometry<T>where
T: CoordNum + FromPrimitive,
Source§fn remove_repeated_points(&self) -> Self
fn remove_repeated_points(&self) -> Self
Create a Geometry with consecutive repeated points removed.
Source§fn remove_repeated_points_mut(&mut self)
fn remove_repeated_points_mut(&mut self)
Remove consecutive repeated points from a Geometry inplace.
Source§impl<T> TryFrom<Geometry<T>> for Line<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
impl<T> TryFrom<Geometry<T>> for Line<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Source§impl<T> TryFrom<Geometry<T>> for LineString<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
impl<T> TryFrom<Geometry<T>> for LineString<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Source§impl<T> TryFrom<Geometry<T>> for MultiLineString<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
impl<T> TryFrom<Geometry<T>> for MultiLineString<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Source§impl<T> TryFrom<Geometry<T>> for MultiPoint<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
impl<T> TryFrom<Geometry<T>> for MultiPoint<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Source§impl<T> TryFrom<Geometry<T>> for MultiPolygon<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
impl<T> TryFrom<Geometry<T>> for MultiPolygon<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Source§impl<T> TryFrom<Geometry<T>> for Point<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
impl<T> TryFrom<Geometry<T>> for Point<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Source§impl<T> TryFrom<Geometry<T>> for Polygon<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
impl<T> TryFrom<Geometry<T>> for Polygon<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Source§impl<T> TryFrom<Geometry<T>> for Rect<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
impl<T> TryFrom<Geometry<T>> for Rect<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Source§impl<T> TryFrom<Geometry<T>> for Triangle<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
impl<T> TryFrom<Geometry<T>> for Triangle<T>where
T: CoordNum,
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Source§impl<T: CoordNum, NT: CoordNum, E> TryMapCoords<T, NT, E> for Geometry<T>
impl<T: CoordNum, NT: CoordNum, E> TryMapCoords<T, NT, E> for Geometry<T>
Source§type Output = Geometry<NT>
type Output = Geometry<NT>
MapCoords::try_map_coords
which takes a Coord
instead of an (x,y) tupleSource§fn try_map_coords(
&self,
func: impl Fn((T, T)) -> Result<(NT, NT), E> + Copy,
) -> Result<Self::Output, E>
fn try_map_coords( &self, func: impl Fn((T, T)) -> Result<(NT, NT), E> + Copy, ) -> Result<Self::Output, E>
MapCoords::try_map_coords
which takes a Coord
instead of an (x,y) tupleSource§impl<T: CoordNum, E> TryMapCoordsInplace<T, E> for Geometry<T>
impl<T: CoordNum, E> TryMapCoordsInplace<T, E> for Geometry<T>
Source§fn try_map_coords_inplace(
&mut self,
func: impl Fn((T, T)) -> Result<(T, T), E>,
) -> Result<(), E>
fn try_map_coords_inplace( &mut self, func: impl Fn((T, T)) -> Result<(T, T), E>, ) -> Result<(), E>
MapCoordsInPlace::try_map_coords_in_place
which takes a Coord
instead of an (x,y) tupleResult
. Read moreSource§impl<T> UlpsEq for Geometry<T>
impl<T> UlpsEq for Geometry<T>
Source§fn ulps_eq(
&self,
other: &Geometry<T>,
epsilon: <Geometry<T> as AbsDiffEq>::Epsilon,
max_ulps: u32,
) -> bool
fn ulps_eq( &self, other: &Geometry<T>, epsilon: <Geometry<T> as AbsDiffEq>::Epsilon, max_ulps: u32, ) -> bool
Approximate equality assertion for floating point geometries based on the number of representable floats that fit between the two numbers being compared.
“relative_eq” might be more intuitive, but it does floating point math in its error calculation, introducing its own error into the error calculation.
Working with ulps
avoids this problem. max_ulps
means “how many floating points
are representable that fit between these two numbers”, which lets us tune how “sloppy”
we’re willing to be while avoiding any danger of floating point rounding in the
comparison itself.
§Examples
use geo_types::{Geometry, Point};
let a: Geometry = Point::new(1.0, 1.0).into();
let b: Geometry = Point::new(1.0 + 4.0 * f64::EPSILON, 1.0 + 4.0 * f64::EPSILON).into();
approx::assert_ulps_eq!(a, b);
approx::assert_ulps_ne!(a, b, max_ulps=3);
approx::assert_ulps_eq!(a, b, max_ulps=5);
§References
https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
Source§fn default_max_ulps() -> u32
fn default_max_ulps() -> u32
impl<T> Eq for Geometry<T>
impl<T> StructuralPartialEq for Geometry<T>where
T: CoordNum,
Auto Trait Implementations§
impl<T> Freeze for Geometry<T>where
T: Freeze,
impl<T> RefUnwindSafe for Geometry<T>where
T: RefUnwindSafe,
impl<T> Send for Geometry<T>where
T: Send,
impl<T> Sync for Geometry<T>where
T: Sync,
impl<T> Unpin for Geometry<T>where
T: Unpin,
impl<T> UnwindSafe for Geometry<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T, M> AffineOps<T> for M
impl<T, M> AffineOps<T> for M
Source§fn affine_transform(&self, transform: &AffineTransform<T>) -> M
fn affine_transform(&self, transform: &AffineTransform<T>) -> M
transform
immutably, outputting a new geometry.Source§fn affine_transform_mut(&mut self, transform: &AffineTransform<T>)
fn affine_transform_mut(&mut self, transform: &AffineTransform<T>)
transform
to mutate self
.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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<'a, T, G> ConvexHull<'a, T> for Gwhere
T: GeoNum,
G: CoordsIter<'a, Scalar = T>,
impl<'a, T, G> ConvexHull<'a, T> for Gwhere
T: GeoNum,
G: CoordsIter<'a, Scalar = T>,
Source§impl<'a, T, G> Extremes<'a, T> for Gwhere
G: CoordsIter<'a, Scalar = T>,
T: CoordNum,
impl<'a, T, G> Extremes<'a, T> for Gwhere
G: CoordsIter<'a, Scalar = T>,
T: CoordNum,
Source§impl<'a, T, G> MinimumRotatedRect<'a, T> for G
impl<'a, T, G> MinimumRotatedRect<'a, T> for G
type Scalar = T
fn minimum_rotated_rect( &'a self, ) -> Option<Polygon<<G as MinimumRotatedRect<'a, T>>::Scalar>>
Source§impl<G, IP, IR, T> Rotate<T> for G
impl<G, IP, IR, T> Rotate<T> for G
Source§fn rotate_around_centroid(&self, degrees: T) -> G
fn rotate_around_centroid(&self, degrees: T) -> G
Source§fn rotate_around_centroid_mut(&mut self, degrees: T)
fn rotate_around_centroid_mut(&mut self, degrees: T)
Self::rotate_around_centroid
Source§fn rotate_around_center(&self, degrees: T) -> G
fn rotate_around_center(&self, degrees: T) -> G
Source§fn rotate_around_center_mut(&mut self, degrees: T)
fn rotate_around_center_mut(&mut self, degrees: T)
Self::rotate_around_center
Source§fn rotate_around_point(&self, degrees: T, point: Point<T>) -> G
fn rotate_around_point(&self, degrees: T, point: Point<T>) -> G
Source§fn rotate_around_point_mut(&mut self, degrees: T, point: Point<T>)
fn rotate_around_point_mut(&mut self, degrees: T, point: Point<T>)
Self::rotate_around_point
Source§impl<T, IR, G> Scale<T> for Gwhere
T: CoordFloat,
IR: Into<Option<Rect<T>>>,
G: Clone + AffineOps<T> + BoundingRect<T, Output = IR>,
impl<T, IR, G> Scale<T> for Gwhere
T: CoordFloat,
IR: Into<Option<Rect<T>>>,
G: Clone + AffineOps<T> + BoundingRect<T, Output = IR>,
Source§fn scale(&self, scale_factor: T) -> G
fn scale(&self, scale_factor: T) -> G
Source§fn scale_xy(&self, x_factor: T, y_factor: T) -> G
fn scale_xy(&self, x_factor: T, y_factor: T) -> G
x_factor
and
y_factor
to distort the geometry’s aspect ratio. Read moreSource§fn scale_xy_mut(&mut self, x_factor: T, y_factor: T)
fn scale_xy_mut(&mut self, x_factor: T, y_factor: T)
scale_xy
.Source§fn scale_around_point(
&self,
x_factor: T,
y_factor: T,
origin: impl Into<Coord<T>>,
) -> G
fn scale_around_point( &self, x_factor: T, y_factor: T, origin: impl Into<Coord<T>>, ) -> G
origin
. Read moreSource§fn scale_around_point_mut(
&mut self,
x_factor: T,
y_factor: T,
origin: impl Into<Coord<T>>,
)
fn scale_around_point_mut( &mut self, x_factor: T, y_factor: T, origin: impl Into<Coord<T>>, )
scale_around_point
.Source§impl<T, IR, G> Skew<T> for Gwhere
T: CoordFloat,
IR: Into<Option<Rect<T>>>,
G: Clone + AffineOps<T> + BoundingRect<T, Output = IR>,
impl<T, IR, G> Skew<T> for Gwhere
T: CoordFloat,
IR: Into<Option<Rect<T>>>,
G: Clone + AffineOps<T> + BoundingRect<T, Output = IR>,
Source§fn skew(&self, degrees: T) -> G
fn skew(&self, degrees: T) -> G
Source§fn skew_xy(&self, degrees_x: T, degrees_y: T) -> G
fn skew_xy(&self, degrees_x: T, degrees_y: T) -> G
Source§fn skew_xy_mut(&mut self, degrees_x: T, degrees_y: T)
fn skew_xy_mut(&mut self, degrees_x: T, degrees_y: T)
skew_xy
.Source§fn skew_around_point(&self, xs: T, ys: T, origin: impl Into<Coord<T>>) -> G
fn skew_around_point(&self, xs: T, ys: T, origin: impl Into<Coord<T>>) -> G
origin
, sheared by an
angle along the x and y dimensions. Read moreSource§fn skew_around_point_mut(&mut self, xs: T, ys: T, origin: impl Into<Coord<T>>)
fn skew_around_point_mut(&mut self, xs: T, ys: T, origin: impl Into<Coord<T>>)
skew_around_point
.