Interface Complex

  • All Superinterfaces:
    Geometry, TransfiniteSet
    All Known Subinterfaces:
    Boundary, ComplexBoundary, Composite, CompositeCurve, CompositePoint, CompositeSolid, CompositeSurface, CurveBoundary, PrimitiveBoundary, Ring, Shell, SolidBoundary, SurfaceBoundary

    @UML(identifier="GM_Complex",
         specification=ISO_19107)
    public interface Complex
    extends Geometry
    A collection of geometrically disjoint, simple primitives. If a primitive (other than a point is in a particular Complex, then there exists a set of primitives of lower dimension in the same complex that form the boundary of this primitive.

    A geometric complex can be thought of as a set in two distinct ways. First, it is a finite set of objects (via delegation to its elements member) and, second, it is an infinite set of point values as a subtype of geometric object. The dual use of delegation and subtyping is to disambiguate the two types of set interface. To determine if a primitive P is an element of a Complex C, call: C.element().contains(P).

    The "elements" attribute allows Complex to inherit the behavior of Set<Primitive> without confusing the same sort of behavior inherited from TransfiniteSet<DirectPosition> inherited through Geometry. Complexes shall be used in application schemas where the sharing of geometry is important, such as in the use of computational topology. In a complex, primitives may be aggregated many-to-many into composites for use as attributes of features.

    Since:
    GeoAPI 1.0
    TODO:
    Some associations are commented out for now.