@UML(identifier="GM_SurfaceBoundary", specification=ISO_19107) public interface SurfaceBoundary extends PrimitiveBoundary
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 2dimensional plane, E^{2}.
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.
SolidBoundary
Modifier and Type  Method and Description 

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

getElements, getSubComplexes, getSuperComplexes, isMaximal
clone, distance, getBoundary, getBuffer, getCentroid, getClosure, getConvexHull, getCoordinateDimension, getCoordinateReferenceSystem, getDimension, getEnvelope, getMaximalComplex, getMbRegion, getPrecision, getRepresentativePoint, isMutable, isSimple, toImmutable, transform, transform
contains, contains, difference, equals, intersection, intersects, symmetricDifference, union
@UML(identifier="exterior", obligation=MANDATORY, specification=ISO_19107) Ring getExterior()
null
if none.null
.@UML(identifier="interior", obligation=MANDATORY, specification=ISO_19107) List<Ring> getInteriors()
null
, but may be an empty array.Copyright © 1996–2020 Geotools. All rights reserved.