## org.opengis.geometry.primitive
Interface SurfaceBoundary

All Superinterfaces:
  Boundary, Complex, Geometry, PrimitiveBoundary, TransfiniteSet

    @UML(identifier="GM_SurfaceBoundary",
         specification=ISO_19107)
    public interface SurfaceBoundary

extends PrimitiveBoundary

The boundary of surfaces. A `SurfaceBoundary` consists of some number of rings, corresponding to the various components of its boundary. In the normal 2D case, one of these rings is distinguished as being the exterior boundary. In a general manifold this is not always possible, in which case all boundaries shall be listed as interior boundaries, and the exterior will be empty.

> NOTE: The use of exterior and interior here is not intended to invoke the definitions of "interior" and "exterior" of geometric objects. The terms are in common usage, and reflect a linguistic metaphor that uses the same linguistic constructs for the concept of being inside an object to being inside a container. In normal mathematical terms, the exterior boundary is the one that appears in the Jordan Separation Theorem (Jordan Curve Theorem extended beyond 2D). The exterior boundary is the one that separates the surface (or solid in 3D) from infinite space. The interior boundaries separate the object at hand from other bounded objects. The uniqueness of the exterior comes from the uniqueness of unbounded space. Essentially, the Jordan Separation Theorem shows that normal 2D or 3D space separates into bounded and unbounded pieces by the insertion of a ring or shell, respectively. It goes beyond that, but this specification is restricted to at most 3 dimensions.

> EXAMPLE 1: If the underlying manifold is an infinite cylinder, then two transverse cuts of the cylinder define a compact surface between the cuts, and two separate unbounded portions of the cylinders. In this case, either cut could reasonably be called exterior. In cases of such ambiguity, the standard chooses to list all boundaries in the "interior" set. The only guarantee of an exterior boundary being unique is in the 2-dimensional plane, E2.

> EXAMPLE 2: Taking the equator of a sphere, and generating a 1 meter buffer, we have a surface with two isomorphic boundary components. There is no unbiased manner to distinguish one of these as an exterior.

Since:
  GeoAPI 1.0
Version:
  ISO 19107
See Also:
  `SolidBoundary`

Method Summary
`Ring` `getExterior()` Returns the exterior ring, or `null` if none.
`List<Ring>` `getInteriors()` Returns the interior rings.

Methods inherited from interface Boundary
`isCycle`

Methods inherited from interface Complex
`getElements, getSubComplexes, getSuperComplexes, isMaximal`

Methods inherited from interface Geometry
`clone, distance, getBoundary, getBuffer, getCentroid, getClosure, getConvexHull, getCoordinateDimension, getCoordinateReferenceSystem, getDimension, getDistance, getEnvelope, getMaximalComplex, getMbRegion, getPrecision, getRepresentativePoint, isMutable, isSimple, toImmutable, transform, transform`

Methods inherited from interface TransfiniteSet
`contains, contains, difference, equals, intersection, intersects, symmetricDifference, union`

Method Detail

### getExterior

    @UML(identifier="exterior",
         obligation=MANDATORY,
         specification=ISO_19107)
    Ring getExterior()

  Returns the exterior ring, or `null` if none.

  Returns:
    The exterior ring, or `null`.

### getInteriors

    @UML(identifier="interior",
         obligation=MANDATORY,
         specification=ISO_19107)
    List<Ring> getInteriors()

  Returns the interior rings.

  Returns:
    The interior rings. Never `null`, but may be an empty array.
  TODO:
    Consider using a Collection return type instead.

Copyright © 1994-2008 Open Geospatial Consortium. All Rights Reserved.