pub struct CompositeSurface {
pub abstract_surface: AbstractSurface,
/* private fields */
}Expand description
A topology-aware surface composed of connected AbstractSurfaceProperty members.
Corresponds to gml:CompositeSurface in OGC 07-036 §11.2.2.3. Unlike
MultiSurface, a
CompositeSurface requires that its constituent surfaces share boundaries
coherently, forming a single connected manifold.
Fields§
§abstract_surface: AbstractSurfaceImplementations§
Source§impl CompositeSurface
impl CompositeSurface
Sourcepub fn new(
surface_member: impl IntoIterator<Item = AbstractSurfaceProperty>,
aggregation_type: AggregationType,
) -> Result<Self, Error>
pub fn new( surface_member: impl IntoIterator<Item = AbstractSurfaceProperty>, aggregation_type: AggregationType, ) -> Result<Self, Error>
Creates a new CompositeSurface from surface members and an aggregation type.
§Errors
Returns Error::TooFewElements if surface_members is empty.
pub fn from_abstract_surface( abstract_surface: AbstractSurface, surface_member: impl IntoIterator<Item = AbstractSurfaceProperty>, aggregation_type: AggregationType, ) -> Result<Self, Error>
Sourcepub fn surface_member(&self) -> &[AbstractSurfaceProperty]
pub fn surface_member(&self) -> &[AbstractSurfaceProperty]
Returns the surface members as a slice.
Sourcepub fn set_surface_member(
&mut self,
surface_members: Vec<AbstractSurfaceProperty>,
) -> Result<(), Error>
pub fn set_surface_member( &mut self, surface_members: Vec<AbstractSurfaceProperty>, ) -> Result<(), Error>
pub fn push_surface_member(&mut self, member: AbstractSurfaceProperty)
pub fn extend_surface_members( &mut self, members: impl IntoIterator<Item = AbstractSurfaceProperty>, )
Sourcepub fn aggregation_type(&self) -> AggregationType
pub fn aggregation_type(&self) -> AggregationType
Returns the aggregation type that qualifies how members relate.
pub fn set_aggregation_type(&mut self, aggregation_type: AggregationType)
Trait Implementations§
Source§impl ApplyTransform for CompositeSurface
impl ApplyTransform for CompositeSurface
fn apply_transform(&mut self, transform: Transform3<f64>)
fn apply_isometry(&mut self, isometry: Isometry3<f64>)
fn apply_translation(&mut self, vector: Vector3<f64>)
fn apply_rotation(&mut self, rotation: Rotation3<f64>)
fn apply_scale(&mut self, scale: Scale3<f64>)
Source§impl AsAbstractGeometricPrimitive for CompositeSurface
impl AsAbstractGeometricPrimitive for CompositeSurface
Source§fn abstract_geometric_primitive(&self) -> &AbstractGeometricPrimitive
fn abstract_geometric_primitive(&self) -> &AbstractGeometricPrimitive
AbstractGeometricPrimitive base data.Source§impl AsAbstractGeometricPrimitiveMut for CompositeSurface
impl AsAbstractGeometricPrimitiveMut for CompositeSurface
Source§fn abstract_geometric_primitive_mut(
&mut self,
) -> &mut AbstractGeometricPrimitive
fn abstract_geometric_primitive_mut( &mut self, ) -> &mut AbstractGeometricPrimitive
AbstractGeometricPrimitive base data.Source§impl AsAbstractGeometry for CompositeSurface
impl AsAbstractGeometry for CompositeSurface
Source§fn abstract_geometry(&self) -> &AbstractGeometry
fn abstract_geometry(&self) -> &AbstractGeometry
AbstractGeometry base data.fn srs_name(&self) -> Option<&String>
fn srs_dimension(&self) -> Option<u32>
Source§impl AsAbstractGeometryMut for CompositeSurface
impl AsAbstractGeometryMut for CompositeSurface
Source§fn abstract_geometry_mut(&mut self) -> &mut AbstractGeometry
fn abstract_geometry_mut(&mut self) -> &mut AbstractGeometry
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 CompositeSurface
impl AsAbstractGml for CompositeSurface
Source§fn abstract_gml(&self) -> &AbstractGml
fn abstract_gml(&self) -> &AbstractGml
AbstractGml base data.Source§impl AsAbstractGmlMut for CompositeSurface
impl AsAbstractGmlMut for CompositeSurface
Source§fn abstract_gml_mut(&mut self) -> &mut AbstractGml
fn abstract_gml_mut(&mut self) -> &mut AbstractGml
AbstractGml base data.Source§fn set_id_opt(&mut self, id: Option<Id>)
fn set_id_opt(&mut self, id: Option<Id>)
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 CompositeSurface
impl AsAbstractObject for CompositeSurface
fn abstract_object(&self) -> &AbstractObject
Source§impl AsAbstractObjectMut for CompositeSurface
impl AsAbstractObjectMut for CompositeSurface
fn abstract_object_mut(&mut self) -> &mut AbstractObject
Source§impl AsAbstractSurface for CompositeSurface
impl AsAbstractSurface for CompositeSurface
Source§fn abstract_surface(&self) -> &AbstractSurface
fn abstract_surface(&self) -> &AbstractSurface
AbstractSurface base data.Source§impl AsAbstractSurfaceMut for CompositeSurface
impl AsAbstractSurfaceMut for CompositeSurface
Source§fn abstract_surface_mut(&mut self) -> &mut AbstractSurface
fn abstract_surface_mut(&mut self) -> &mut AbstractSurface
AbstractSurface base data.Source§impl Clone for CompositeSurface
impl Clone for CompositeSurface
Source§fn clone(&self) -> CompositeSurface
fn clone(&self) -> CompositeSurface
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ComputeEnvelope for CompositeSurface
impl ComputeEnvelope for CompositeSurface
Source§fn compute_envelope(&self) -> Option<Envelope>
fn compute_envelope(&self) -> Option<Envelope>
Returns the union of the bounding boxes of all surface members.
Source§impl Debug for CompositeSurface
impl Debug for CompositeSurface
Source§impl<'a> From<&'a CompositeSurface> for AbstractSurfaceKindRef<'a>
impl<'a> From<&'a CompositeSurface> for AbstractSurfaceKindRef<'a>
Source§fn from(x: &'a CompositeSurface) -> Self
fn from(x: &'a CompositeSurface) -> Self
Source§impl<'a> From<&'a CompositeSurface> for AbstractGeometricPrimitiveKindRef<'a>
impl<'a> From<&'a CompositeSurface> for AbstractGeometricPrimitiveKindRef<'a>
Source§fn from(x: &'a CompositeSurface) -> Self
fn from(x: &'a CompositeSurface) -> Self
Source§impl<'a> From<&'a CompositeSurface> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a CompositeSurface> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a CompositeSurface) -> Self
fn from(x: &'a CompositeSurface) -> Self
Source§impl From<CompositeSurface> for AbstractSurfaceKind
impl From<CompositeSurface> for AbstractSurfaceKind
Source§fn from(x: CompositeSurface) -> Self
fn from(x: CompositeSurface) -> Self
Source§impl From<CompositeSurface> for AbstractGeometricPrimitiveKind
impl From<CompositeSurface> for AbstractGeometricPrimitiveKind
Source§fn from(x: CompositeSurface) -> Self
fn from(x: CompositeSurface) -> Self
Source§impl From<CompositeSurface> for AbstractGeometryKind
impl From<CompositeSurface> for AbstractGeometryKind
Source§fn from(x: CompositeSurface) -> Self
fn from(x: CompositeSurface) -> Self
Source§impl From<CompositeSurface> for AbstractGmlKind
impl From<CompositeSurface> for AbstractGmlKind
Source§fn from(x: CompositeSurface) -> Self
fn from(x: CompositeSurface) -> Self
Source§impl From<CompositeSurface> for AbstractObjectKind
impl From<CompositeSurface> for AbstractObjectKind
Source§fn from(x: CompositeSurface) -> Self
fn from(x: CompositeSurface) -> Self
Source§impl HasGeometryType for CompositeSurface
impl HasGeometryType for CompositeSurface
fn geometry_type(&self) -> GeometryType
Source§impl IterGeometries for CompositeSurface
impl IterGeometries for CompositeSurface
fn iter_geometries( &self, ) -> Box<dyn Iterator<Item = AbstractGeometryKindRef<'_>> + '_>
Source§impl PartialEq for CompositeSurface
impl PartialEq for CompositeSurface
impl StructuralPartialEq for CompositeSurface
Source§impl Triangulate for CompositeSurface
impl Triangulate for CompositeSurface
Source§fn triangulate(&self) -> Result<Triangulation, Error>
fn triangulate(&self) -> Result<Triangulation, Error>
Members that fail to triangulate individually (e.g. a degenerate ring) are
skipped rather than failing the whole aggregate; see their errors via
Triangulation::skipped.
§Errors
Returns Error::TooFewElements if no member could be triangulated.
Source§impl<'a> TryFrom<AbstractGeometricPrimitiveKindRef<'a>> for &'a CompositeSurface
impl<'a> TryFrom<AbstractGeometricPrimitiveKindRef<'a>> for &'a CompositeSurface
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a CompositeSurface
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a CompositeSurface
Source§impl TryFrom<AbstractGmlKind> for CompositeSurface
impl TryFrom<AbstractGmlKind> for CompositeSurface
Source§impl TryFrom<AbstractObjectKind> for CompositeSurface
impl TryFrom<AbstractObjectKind> for CompositeSurface
Source§impl<'a> TryFrom<AbstractSurfaceKindRef<'a>> for &'a CompositeSurface
impl<'a> TryFrom<AbstractSurfaceKindRef<'a>> for &'a CompositeSurface
Auto Trait Implementations§
impl Freeze for CompositeSurface
impl RefUnwindSafe for CompositeSurface
impl Send for CompositeSurface
impl Sync for CompositeSurface
impl Unpin for CompositeSurface
impl UnsafeUnpin for CompositeSurface
impl UnwindSafe for CompositeSurface
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
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>
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>
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)
&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)
&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> 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>
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>
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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.