[−][src]Struct geo::MultiPolygon
A collection of Polygon
s. Can
be created from a Vec
of Polygon
s, or from an
Iterator which yields Polygon
s. Iterating over this
object yields the component Polygon
s.
Semantics
The interior and the boundary are the union of the interior and the boundary of the constituent polygons.
Validity
-
The interiors of no two constituent polygons may intersect.
-
The boundaries of two (distinct) constituent polygons may only intersect at finitely many points.
Refer to section 6.1.14 of the OGC-SFA for a formal definition of validity. Note that the validity is not enforced, but expected by the operations and predicates that operate on it.
Trait Implementations
impl<T> Area<T> for MultiPolygon<T> where
T: Float,
[src]
T: Float,
Note. The implementation is a straight-forward
summation of the signed areas of the individual
polygons. In particular, unsigned_area
is not
necessarily the sum of the unsigned_area
of the
constituent polygons unless they are all oriented the
same.
fn signed_area(&self) -> T
[src]
fn unsigned_area(&self) -> T
[src]
impl<T> BoundingRect<T> for MultiPolygon<T> where
T: CoordinateType,
[src]
T: CoordinateType,
type Output = Option<Rect<T>>
fn bounding_rect(&self) -> Self::Output
[src]
Return the BoundingRect for a MultiPolygon
impl<T> Centroid for MultiPolygon<T> where
T: Float + FromPrimitive + Sum,
[src]
T: Float + FromPrimitive + Sum,
impl<T> Clone for MultiPolygon<T> where
T: Clone + CoordinateType,
[src]
T: Clone + CoordinateType,
fn clone(&self) -> MultiPolygon<T>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<F: Float + HasKernel> ClosestPoint<F, Point<F>> for MultiPolygon<F>
[src]
fn closest_point(&self, p: &Point<F>) -> Closest<F>
[src]
impl<T> ConcaveHull for MultiPolygon<T> where
T: Float + RTreeNum + HasKernel,
[src]
T: Float + RTreeNum + HasKernel,
impl<G, T> Contains<G> for MultiPolygon<T> where
T: CoordinateType,
Polygon<T>: Contains<G>,
[src]
T: CoordinateType,
Polygon<T>: Contains<G>,
impl<T> ConvexHull for MultiPolygon<T> where
T: HasKernel,
[src]
T: HasKernel,
type Scalar = T
fn convex_hull(&self) -> Polygon<T>
[src]
impl<T> Debug for MultiPolygon<T> where
T: Debug + CoordinateType,
[src]
T: Debug + CoordinateType,
impl<T> Eq for MultiPolygon<T> where
T: Eq + CoordinateType,
[src]
T: Eq + CoordinateType,
impl<T> EuclideanDistance<T, Line<T>> for MultiPolygon<T> where
T: Float + FloatConst + Signed + RTreeNum + HasKernel,
[src]
T: Float + FloatConst + Signed + RTreeNum + HasKernel,
MultiPolygon to Line distance
fn euclidean_distance(&self, other: &Line<T>) -> T
[src]
impl<T> EuclideanDistance<T, MultiPolygon<T>> for Point<T> where
T: Float + HasKernel,
[src]
T: Float + HasKernel,
fn euclidean_distance(&self, mpolygon: &MultiPolygon<T>) -> T
[src]
Minimum distance from a Point to a MultiPolygon
impl<T> EuclideanDistance<T, MultiPolygon<T>> for Line<T> where
T: Float + FloatConst + Signed + RTreeNum + HasKernel,
[src]
T: Float + FloatConst + Signed + RTreeNum + HasKernel,
Line to MultiPolygon distance
fn euclidean_distance(&self, mpolygon: &MultiPolygon<T>) -> T
[src]
impl<T> EuclideanDistance<T, Point<T>> for MultiPolygon<T> where
T: Float + HasKernel,
[src]
T: Float + HasKernel,
fn euclidean_distance(&self, point: &Point<T>) -> T
[src]
Minimum distance from a MultiPolygon to a Point
impl<T> ExtremeIndices for MultiPolygon<T> where
T: Signed + HasKernel,
[src]
T: Signed + HasKernel,
fn extreme_indices(&self) -> Result<Extremes, ()>
[src]
impl<T, IP> From<IP> for MultiPolygon<T> where
IP: Into<Polygon<T>>,
T: CoordinateType,
[src]
IP: Into<Polygon<T>>,
T: CoordinateType,
fn from(x: IP) -> MultiPolygon<T>
[src]
impl<T> From<MultiPolygon<T>> for Geometry<T> where
T: CoordinateType,
[src]
T: CoordinateType,
fn from(x: MultiPolygon<T>) -> Geometry<T>
[src]
impl<T, IP> From<Vec<IP>> for MultiPolygon<T> where
IP: Into<Polygon<T>>,
T: CoordinateType,
[src]
IP: Into<Polygon<T>>,
T: CoordinateType,
fn from(x: Vec<IP>) -> MultiPolygon<T>
[src]
impl<T, IP> FromIterator<IP> for MultiPolygon<T> where
IP: Into<Polygon<T>>,
T: CoordinateType,
[src]
IP: Into<Polygon<T>>,
T: CoordinateType,
fn from_iter<I>(iter: I) -> MultiPolygon<T> where
I: IntoIterator<Item = IP>,
[src]
I: IntoIterator<Item = IP>,
impl<T> Hash for MultiPolygon<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<G, T> Intersects<G> for MultiPolygon<T> where
T: HasKernel,
Polygon<T>: Intersects<G>,
[src]
T: HasKernel,
Polygon<T>: Intersects<G>,
fn intersects(&self, rhs: &G) -> bool
[src]
impl<T> Intersects<MultiPolygon<T>> for Point<T> where
MultiPolygon<T>: Intersects<Point<T>>,
T: CoordinateType,
[src]
MultiPolygon<T>: Intersects<Point<T>>,
T: CoordinateType,
fn intersects(&self, rhs: &MultiPolygon<T>) -> bool
[src]
impl<T> Intersects<MultiPolygon<T>> for Line<T> where
MultiPolygon<T>: Intersects<Line<T>>,
T: CoordinateType,
[src]
MultiPolygon<T>: Intersects<Line<T>>,
T: CoordinateType,
fn intersects(&self, rhs: &MultiPolygon<T>) -> bool
[src]
impl<T> Intersects<MultiPolygon<T>> for Rect<T> where
MultiPolygon<T>: Intersects<Rect<T>>,
T: CoordinateType,
[src]
MultiPolygon<T>: Intersects<Rect<T>>,
T: CoordinateType,
fn intersects(&self, rhs: &MultiPolygon<T>) -> bool
[src]
impl<T> Intersects<MultiPolygon<T>> for Polygon<T> where
MultiPolygon<T>: Intersects<Polygon<T>>,
T: CoordinateType,
[src]
MultiPolygon<T>: Intersects<Polygon<T>>,
T: CoordinateType,
fn intersects(&self, rhs: &MultiPolygon<T>) -> bool
[src]
impl<T> IntoIterator for MultiPolygon<T> where
T: CoordinateType,
[src]
T: CoordinateType,
type Item = Polygon<T>
The type of the elements being iterated over.
type IntoIter = IntoIter<Polygon<T>>
Which kind of iterator are we turning this into?
fn into_iter(self) -> <MultiPolygon<T> as IntoIterator>::IntoIter
[src]
impl<T: CoordinateType, NT: CoordinateType> MapCoords<T, NT> for MultiPolygon<T>
[src]
type Output = MultiPolygon<NT>
fn map_coords(&self, func: impl Fn(&(T, T)) -> (NT, NT) + Copy) -> Self::Output
[src]
impl<T: CoordinateType> MapCoordsInplace<T> for MultiPolygon<T>
[src]
impl<T> Orient for MultiPolygon<T> where
T: HasKernel,
[src]
T: HasKernel,
fn orient(&self, direction: Direction) -> MultiPolygon<T>
[src]
impl<T> PartialEq<MultiPolygon<T>> for MultiPolygon<T> where
T: PartialEq<T> + CoordinateType,
[src]
T: PartialEq<T> + CoordinateType,
fn eq(&self, other: &MultiPolygon<T>) -> bool
[src]
fn ne(&self, other: &MultiPolygon<T>) -> bool
[src]
impl<T> Rotate<T> for MultiPolygon<T> where
T: Float + FromPrimitive + Sum,
[src]
T: Float + FromPrimitive + Sum,
fn rotate(&self, angle: T) -> Self
[src]
Rotate the contained Polygons about their centroids by the given number of degrees
impl<T> Simplify<T, T> for MultiPolygon<T> where
T: Float,
[src]
T: Float,
impl<T> SimplifyVW<T, T> for MultiPolygon<T> where
T: Float,
[src]
T: Float,
fn simplifyvw(&self, epsilon: &T) -> MultiPolygon<T>
[src]
impl<T> SimplifyVWPreserve<T, T> for MultiPolygon<T> where
T: Float + RTreeNum,
[src]
T: Float + RTreeNum,
fn simplifyvw_preserve(&self, epsilon: &T) -> MultiPolygon<T>
[src]
impl<T> StructuralEq for MultiPolygon<T> where
T: CoordinateType,
[src]
T: CoordinateType,
impl<T> StructuralPartialEq for MultiPolygon<T> where
T: CoordinateType,
[src]
T: CoordinateType,
impl<T> TryFrom<Geometry<T>> for MultiPolygon<T> where
T: Float,
[src]
T: Float,
type Error = FailedToConvertError
The type returned in the event of a conversion error.
fn try_from(
geom: Geometry<T>
) -> Result<MultiPolygon<T>, <MultiPolygon<T> as TryFrom<Geometry<T>>>::Error>
[src]
geom: Geometry<T>
) -> Result<MultiPolygon<T>, <MultiPolygon<T> as TryFrom<Geometry<T>>>::Error>
impl<T: CoordinateType, NT: CoordinateType> TryMapCoords<T, NT> for MultiPolygon<T>
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for MultiPolygon<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for MultiPolygon<T> where
T: Send,
T: Send,
impl<T> Sync for MultiPolygon<T> where
T: Sync,
T: Sync,
impl<T> Unpin for MultiPolygon<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for MultiPolygon<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, G> ExtremePoints for G where
G: ConvexHull<Scalar = T> + ExtremeIndices,
T: Signed + HasKernel,
[src]
G: ConvexHull<Scalar = T> + ExtremeIndices,
T: Signed + HasKernel,
type Scalar = T
fn extreme_points(&Self) -> ExtremePoint<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<I> IntoIterator for I where
I: Iterator,
[src]
I: Iterator,
type Item = <I as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = I
Which kind of iterator are we turning this into?
fn into_iter(self) -> I
[src]
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>,