/*$************************************************************************************************
 **
 ** $Id: SolidBoundary.java 831 2006-05-01 00:27:23Z Desruisseaux $
 **
 ** $URL: http://svn.code.sf.net/p/geoapi/code/branches/2.0.x/geoapi/src/main/java/org/opengis/spatialschema/geometry/primitive/SolidBoundary.java $
 **
 ** Copyright (C) 2003-2005 Open GIS Consortium, Inc.
 ** All Rights Reserved. http://www.opengis.org/legal/
 **
 *************************************************************************************************/
package org.opengis.spatialschema.geometry.primitive;

// Annotations
import org.opengis.annotation.UML;
import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;


/**
 * The boundary of {@linkplain Solid solids}. Solid boundaries are similar to
 * {@linkplain SurfaceBoundary surface boundaries}. In normal 3-dimensional Euclidean
 * space, one {@linkplain Shell shell} is distinguished as the exterior. In the more
 * general case, this is not always possible.
 *
 * 
* NOTE: An alternative use of solids with no external shell would be to define * "complements" of finite solids. These infinite solids would have only interior boundaries. If * this specification is extended to 4D Euclidean space, or if 3D compact manifolds are used * (probably not in geographic information), then other examples of bounded solids without exterior * boundaries are possible. *
* * @version Abstract specification 5 * @author Martin Desruisseaux (IRD) * @since GeoAPI 1.0 * * @see SurfaceBoundary */ @UML(identifier="GM_SolidBoundary", specification=ISO_19107) public interface SolidBoundary extends PrimitiveBoundary { /** * Returns the exterior shell, or {@code null} if none. * * @return The exterior shell, or {@code null}. */ @UML(identifier="exterior", obligation=MANDATORY, specification=ISO_19107) public Shell getExterior(); /** * Returns the interior shells. * * @return The interior shells. Never {@code null}, but may be an empty array. */ @UML(identifier="interior", obligation=MANDATORY, specification=ISO_19107) public Shell[] getInteriors(); }

Ads help maintain this website.