pub struct LinearRing {
pub abstract_ring: AbstractRing,
/* private fields */
}Expand description
An implicitly closed ring of at least 3 distinct, non-adjacent positions.
Corresponds to gml:LinearRing in OGC 07-036 §10.5.8. The ring is
implicitly closed: the last position is not repeated.
§Invariants
- At least 3 positions.
- No two adjacent positions are equal.
- First and last positions are not equal.
Fields§
§abstract_ring: AbstractRingImplementations§
Source§impl LinearRing
impl LinearRing
Sourcepub fn new(
points: impl IntoIterator<Item = DirectPosition>,
) -> Result<LinearRing, Error>
pub fn new( points: impl IntoIterator<Item = DirectPosition>, ) -> Result<LinearRing, Error>
Creates a new LinearRing from an ordered list of positions.
§Errors
Returns Error::TooFewElements if points has fewer than 3 entries.
Returns Error::AdjacentDuplicatePositions if adjacent positions are equal.
Returns Error::RepeatedClosingVertex if the first and last positions are equal.
pub fn from_abstract_ring( abstract_ring: AbstractRing, points: impl IntoIterator<Item = DirectPosition>, ) -> Result<LinearRing, Error>
Sourcepub fn points(&self) -> &[DirectPosition]
pub fn points(&self) -> &[DirectPosition]
Returns the positions of this ring.
Sourcepub fn set_points(&mut self, val: Vec<DirectPosition>) -> Result<(), Error>
pub fn set_points(&mut self, val: Vec<DirectPosition>) -> Result<(), Error>
Trait Implementations§
Source§impl ApplyTransform for LinearRing
impl ApplyTransform for LinearRing
fn apply_transform(&mut self, transform: Transform<f64, TGeneral, 3>)
fn apply_isometry(&mut self, isometry: Isometry<f64, Unit<Quaternion<f64>>, 3>)
fn apply_translation( &mut self, vector: Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>, )
fn apply_rotation(&mut self, rotation: Rotation<f64, 3>)
fn apply_scale(&mut self, scale: Scale<f64, 3>)
Source§impl AsAbstractCurve for LinearRing
impl AsAbstractCurve for LinearRing
Source§fn abstract_curve(&self) -> &AbstractCurve
fn abstract_curve(&self) -> &AbstractCurve
Returns a reference to the embedded
AbstractCurve base data.Source§impl AsAbstractCurveMut for LinearRing
impl AsAbstractCurveMut for LinearRing
Source§fn abstract_curve_mut(&mut self) -> &mut AbstractCurve
fn abstract_curve_mut(&mut self) -> &mut AbstractCurve
Returns a mutable reference to the embedded
AbstractCurve base data.Source§impl AsAbstractGeometricPrimitive for LinearRing
impl AsAbstractGeometricPrimitive for LinearRing
Source§fn abstract_geometric_primitive(&self) -> &AbstractGeometricPrimitive
fn abstract_geometric_primitive(&self) -> &AbstractGeometricPrimitive
Returns a reference to the embedded
AbstractGeometricPrimitive base data.Source§impl AsAbstractGeometricPrimitiveMut for LinearRing
impl AsAbstractGeometricPrimitiveMut for LinearRing
Source§fn abstract_geometric_primitive_mut(
&mut self,
) -> &mut AbstractGeometricPrimitive
fn abstract_geometric_primitive_mut( &mut self, ) -> &mut AbstractGeometricPrimitive
Returns a mutable reference to the embedded
AbstractGeometricPrimitive base data.Source§impl AsAbstractGeometry for LinearRing
impl AsAbstractGeometry for LinearRing
Source§fn abstract_geometry(&self) -> &AbstractGeometry
fn abstract_geometry(&self) -> &AbstractGeometry
Returns a reference to the embedded
AbstractGeometry base data.fn srs_name(&self) -> Option<&String>
fn srs_dimension(&self) -> Option<u32>
Source§impl AsAbstractGeometryMut for LinearRing
impl AsAbstractGeometryMut for LinearRing
Source§fn abstract_geometry_mut(&mut self) -> &mut AbstractGeometry
fn abstract_geometry_mut(&mut self) -> &mut AbstractGeometry
Returns a mutable reference to the embedded
AbstractGeometry base data.fn set_srs_name(&mut self, srs_name: impl Into<String>)
fn set_srs_name_opt(&mut self, srs_name: Option<String>)
fn clear_srs_name(&mut self)
fn set_srs_dimension(&mut self, srs_dimension: u32)
fn set_srs_dimension_opt(&mut self, srs_dimension: Option<u32>)
fn clear_srs_dimension(&mut self)
Source§impl AsAbstractGml for LinearRing
impl AsAbstractGml for LinearRing
Source§fn abstract_gml(&self) -> &AbstractGml
fn abstract_gml(&self) -> &AbstractGml
Returns a reference to the embedded
AbstractGml base data.Source§impl AsAbstractGmlMut for LinearRing
impl AsAbstractGmlMut for LinearRing
Source§fn abstract_gml_mut(&mut self) -> &mut AbstractGml
fn abstract_gml_mut(&mut self) -> &mut AbstractGml
Returns a mutable reference to the embedded
AbstractGml base data.Source§fn set_id_opt(&mut self, id: Option<Id>)
fn set_id_opt(&mut self, id: Option<Id>)
Sets or clears the identifier of this GML object.
fn set_names(&mut self, names: Vec<Code>)
fn push_name(&mut self, name: Code)
fn extend_names(&mut self, names: impl IntoIterator<Item = Code>)
Source§impl AsAbstractObject for LinearRing
impl AsAbstractObject for LinearRing
fn abstract_object(&self) -> &AbstractObject
Source§impl AsAbstractObjectMut for LinearRing
impl AsAbstractObjectMut for LinearRing
fn abstract_object_mut(&mut self) -> &mut AbstractObject
Source§impl AsAbstractRing for LinearRing
impl AsAbstractRing for LinearRing
Source§fn abstract_ring(&self) -> &AbstractRing
fn abstract_ring(&self) -> &AbstractRing
Returns a reference to the embedded
AbstractRing base data.Source§impl AsAbstractRingMut for LinearRing
impl AsAbstractRingMut for LinearRing
Source§fn abstract_ring_mut(&mut self) -> &mut AbstractRing
fn abstract_ring_mut(&mut self) -> &mut AbstractRing
Returns a mutable reference to the embedded
AbstractRing base data.Source§impl Clone for LinearRing
impl Clone for LinearRing
Source§fn clone(&self) -> LinearRing
fn clone(&self) -> LinearRing
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl ComputeEnvelope for LinearRing
impl ComputeEnvelope for LinearRing
Source§fn compute_envelope(&self) -> Option<Envelope>
fn compute_envelope(&self) -> Option<Envelope>
Returns the axis-aligned bounding box of all positions in this ring.
Source§impl Debug for LinearRing
impl Debug for LinearRing
Source§impl Default for LinearRing
impl Default for LinearRing
Source§fn default() -> LinearRing
fn default() -> LinearRing
Returns the “default value” for a type. Read more
Source§impl<'a> From<&'a LinearRing> for AbstractRingKindRef<'a>
impl<'a> From<&'a LinearRing> for AbstractRingKindRef<'a>
Source§fn from(x: &'a LinearRing) -> AbstractRingKindRef<'a>
fn from(x: &'a LinearRing) -> AbstractRingKindRef<'a>
Converts to this type from the input type.
Source§impl<'a> From<&'a LinearRing> for AbstractCurveKindRef<'a>
impl<'a> From<&'a LinearRing> for AbstractCurveKindRef<'a>
Source§fn from(x: &'a LinearRing) -> AbstractCurveKindRef<'a>
fn from(x: &'a LinearRing) -> AbstractCurveKindRef<'a>
Converts to this type from the input type.
Source§impl<'a> From<&'a LinearRing> for AbstractGeometricPrimitiveKindRef<'a>
impl<'a> From<&'a LinearRing> for AbstractGeometricPrimitiveKindRef<'a>
Source§fn from(x: &'a LinearRing) -> AbstractGeometricPrimitiveKindRef<'a>
fn from(x: &'a LinearRing) -> AbstractGeometricPrimitiveKindRef<'a>
Converts to this type from the input type.
Source§impl<'a> From<&'a LinearRing> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a LinearRing> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a LinearRing) -> AbstractGeometryKindRef<'a>
fn from(x: &'a LinearRing) -> AbstractGeometryKindRef<'a>
Converts to this type from the input type.
Source§impl From<LinearRing> for AbstractRingKind
impl From<LinearRing> for AbstractRingKind
Source§fn from(x: LinearRing) -> AbstractRingKind
fn from(x: LinearRing) -> AbstractRingKind
Converts to this type from the input type.
Source§impl From<LinearRing> for AbstractCurveKind
impl From<LinearRing> for AbstractCurveKind
Source§fn from(x: LinearRing) -> AbstractCurveKind
fn from(x: LinearRing) -> AbstractCurveKind
Converts to this type from the input type.
Source§impl From<LinearRing> for AbstractGeometricPrimitiveKind
impl From<LinearRing> for AbstractGeometricPrimitiveKind
Source§fn from(x: LinearRing) -> AbstractGeometricPrimitiveKind
fn from(x: LinearRing) -> AbstractGeometricPrimitiveKind
Converts to this type from the input type.
Source§impl From<LinearRing> for AbstractGeometryKind
impl From<LinearRing> for AbstractGeometryKind
Source§fn from(x: LinearRing) -> AbstractGeometryKind
fn from(x: LinearRing) -> AbstractGeometryKind
Converts to this type from the input type.
Source§impl From<LinearRing> for AbstractGmlKind
impl From<LinearRing> for AbstractGmlKind
Source§fn from(x: LinearRing) -> AbstractGmlKind
fn from(x: LinearRing) -> AbstractGmlKind
Converts to this type from the input type.
Source§impl From<LinearRing> for AbstractObjectKind
impl From<LinearRing> for AbstractObjectKind
Source§fn from(x: LinearRing) -> AbstractObjectKind
fn from(x: LinearRing) -> AbstractObjectKind
Converts to this type from the input type.
Source§impl HasGeometryType for LinearRing
impl HasGeometryType for LinearRing
fn geometry_type(&self) -> GeometryType
Source§impl IterGeometries for LinearRing
impl IterGeometries for LinearRing
fn iter_geometries( &self, ) -> Box<dyn Iterator<Item = AbstractGeometryKindRef<'_>> + '_>
Source§impl PartialEq for LinearRing
impl PartialEq for LinearRing
impl StructuralPartialEq for LinearRing
Source§impl TryFrom<AbstractCurveKind> for LinearRing
impl TryFrom<AbstractCurveKind> for LinearRing
Source§impl<'a> TryFrom<AbstractCurveKindRef<'a>> for &'a LinearRing
impl<'a> TryFrom<AbstractCurveKindRef<'a>> for &'a LinearRing
Source§impl<'a> TryFrom<AbstractGeometricPrimitiveKindRef<'a>> for &'a LinearRing
impl<'a> TryFrom<AbstractGeometricPrimitiveKindRef<'a>> for &'a LinearRing
Source§impl TryFrom<AbstractGeometryKind> for LinearRing
impl TryFrom<AbstractGeometryKind> for LinearRing
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a LinearRing
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a LinearRing
Source§impl TryFrom<AbstractGmlKind> for LinearRing
impl TryFrom<AbstractGmlKind> for LinearRing
Source§impl TryFrom<AbstractObjectKind> for LinearRing
impl TryFrom<AbstractObjectKind> for LinearRing
Source§impl TryFrom<AbstractRingKind> for LinearRing
impl TryFrom<AbstractRingKind> for LinearRing
Source§impl<'a> TryFrom<AbstractRingKindRef<'a>> for &'a LinearRing
impl<'a> TryFrom<AbstractRingKindRef<'a>> for &'a LinearRing
Source§impl TryFrom<GmlLinearRing> for LinearRing
impl TryFrom<GmlLinearRing> for LinearRing
Source§fn try_from(
value: GmlLinearRing,
) -> Result<LinearRing, <LinearRing as TryFrom<GmlLinearRing>>::Error>
fn try_from( value: GmlLinearRing, ) -> Result<LinearRing, <LinearRing as TryFrom<GmlLinearRing>>::Error>
Performs the conversion.
Auto Trait Implementations§
impl Freeze for LinearRing
impl RefUnwindSafe for LinearRing
impl Send for LinearRing
impl Sync for LinearRing
impl Unpin for LinearRing
impl UnsafeUnpin for LinearRing
impl UnwindSafe for LinearRing
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.