Zollection

Struct Zollection 

Source
pub struct Zollection<'a> { /* private fields */ }
Expand description

Equivalent of a geo_types::GeometryCollection except it only contains:

  • One multi points
  • One multi lines
  • One multi polygon

Everything else gets pushed in one of these three types. If the collection contains other collection they all get flatenned to fit in these three types.

Implementations§

Source§

impl<'a> Zollection<'a>

Source

pub fn new( bounding_box: &'a BoundingBox, points: ZultiPoints<'a>, lines: ZultiLines<'a>, polygons: ZultiPolygons<'a>, ) -> Self

Create a Zollection from its bounding box, points, lines and polygons. If the bounding box doesn’t properly bound the collection all the operations will breaks.

Source

pub unsafe fn from_bytes(data: &'a [u8]) -> Self

§Safety

The data must be generated from the Self::write_from_geometry method and be aligned on 64 bits

Source

pub fn write_from_geometry( writer: &mut Vec<u8>, geometry: &GeometryCollection<f64>, ) -> Result<(), Error>

Convert the specified geo_types::GeometryCollection to a valid Zollection slice of bytes in the input buffer. This is a destructive operation:

  • The collection will be flattened as a list of points, lines and polygons
  • If the polygons contains an interior, the information will be lost and ignored during operations.
Source

pub fn bounding_box(&self) -> &'a BoundingBox

Return the internal bounding box

Source

pub fn len(&self) -> usize

Return the number of shapes composing the collection

Source

pub fn is_empty(&self) -> bool

Return true if the line don’t contain any point

Source

pub fn points(&'a self) -> ZultiPoints<'a>

Return all the points contained in the collection

Source

pub fn lines(&'a self) -> ZultiLines<'a>

Return all the lines contained in the collection

Source

pub fn polygons(&'a self) -> ZultiPolygons<'a>

Return all the polygons contained in the collection

Source

pub fn to_geo(&self) -> GeometryCollection<f64>

The geometry collection outputted is completely unrelated to the one inputted. It has been flattened and contains three parts:

  1. The multi-points
  2. The multi-lines
  3. The multi-polygons

Trait Implementations§

Source§

impl<'a> Clone for Zollection<'a>

Source§

fn clone(&self) -> Zollection<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Zollection<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> RelationBetweenShapes<Zerometry<'a>> for Zollection<'a>

Source§

fn relation( &self, other: &Zerometry<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zine<'a>> for Zollection<'a>

Source§

fn relation(&self, other: &Zine<'a>, relation: InputRelation) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zoint<'a>> for Zollection<'a>

Source§

fn relation(&self, other: &Zoint<'a>, relation: InputRelation) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zollection<'a>> for Zerometry<'a>

Source§

fn relation( &self, other: &Zollection<'_>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zollection<'a>> for Zine<'a>

Source§

fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zollection<'a>> for Zoint<'a>

Source§

fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zollection<'a>> for Zollection<'a>

Source§

fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zollection<'a>> for Zolygon<'a>

Source§

fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zollection<'a>> for ZultiLines<'a>

Source§

fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zollection<'a>> for ZultiPoints<'a>

Source§

fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zollection<'a>> for ZultiPolygons<'a>

Source§

fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<Zolygon<'a>> for Zollection<'a>

Source§

fn relation( &self, other: &Zolygon<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<ZultiLines<'a>> for Zollection<'a>

Source§

fn relation( &self, other: &ZultiLines<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<ZultiPoints<'a>> for Zollection<'a>

Source§

fn relation( &self, other: &ZultiPoints<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> RelationBetweenShapes<ZultiPolygons<'a>> for Zollection<'a>

Source§

fn relation( &self, other: &ZultiPolygons<'a>, relation: InputRelation, ) -> OutputRelation

Return the relation between two shapes. The InputRelation lets you specify the kind of relation you want to retrieve. Read more
Source§

fn all_relation(&self, other: &Other) -> OutputRelation

Return all relations with no early return.
Source§

fn any_relation(&self, other: &Other) -> OutputRelation

Return the first relation we find with early return.
Source§

fn contains(&self, other: &Other) -> bool

Return true if Self contains Other.
Source§

fn strict_contains(&self, other: &Other) -> bool

Return true if Self strictly contains Other.
Source§

fn contained(&self, other: &Other) -> bool

Return true if Self is contained in Other.
Source§

fn strict_contained(&self, other: &Other) -> bool

Return true if Self is strictly contained in Other.
Source§

fn intersects(&self, other: &Other) -> bool

Return true if Self intersects with Other.
Source§

fn disjoint(&self, other: &Other) -> bool

Return true if Self is disjoint of Other.
Source§

impl<'a> Copy for Zollection<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Zollection<'a>

§

impl<'a> RefUnwindSafe for Zollection<'a>

§

impl<'a> Send for Zollection<'a>

§

impl<'a> Sync for Zollection<'a>

§

impl<'a> Unpin for Zollection<'a>

§

impl<'a> UnwindSafe for Zollection<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

Source§

fn is_within(&self, b: &G2) -> bool