org.opengis.geometry.aggregate.MultiSurface Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gt-opengis Show documentation
Show all versions of gt-opengis Show documentation
Standard interfaces implemented throughout the library.
/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2011, Open Source Geospatial Foundation (OSGeo)
* (C) 2003-2005, Open Geospatial Consortium Inc.
*
* All Rights Reserved. http://www.opengis.org/legal/
*/
package org.opengis.geometry.aggregate;
import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;
import java.util.Set;
import org.opengis.annotation.UML;
import org.opengis.geometry.DirectPosition;
import org.opengis.geometry.primitive.OrientableSurface;
/**
* An aggregate class containing only instances of {@link OrientableSurface}. The association role
* {@link #getElements element} shall be the set of {@linkplain OrientableSurface orientable
* surfaces} contained in this {@code MultiSurface}.
*
* @version ISO 19107
* @author Sanjay Jena
* @author Prof. Dr. Jackson Roehrig
* @since GeoAPI 2.1
*/
@UML(identifier = "GM_MultiSurface", specification = ISO_19107)
public interface MultiSurface extends MultiPrimitive {
/**
* Returns the set containing the {@linkplain OrientableSurface orientable surfaces} that
* compose this {@code MultiSurface}. The set may be modified if this geometry {@linkplain
* #isMutable is mutable}.
*/
@UML(identifier = "element", obligation = MANDATORY, specification = ISO_19107)
Set getElements();
/**
* Returns the accumulated area of all {@linkplain OrientableSurface orientable surfaces}
* contained in this {@code MultiSurface}. The area of a 2-dimensional geometric object shall be
* a numeric measure of its surface area (in a square unit of distance). Since area is an
* accumulation (integral) of the product of two distances, its return value shall be in a unit
* of measure appropriate for measuring distances squared, such as meters squared
* (m2).
*
*
*
* NOTE: Consistent with the definition of surface as a set of
* {@linkplain DirectPosition direct positions}, holes in the surfaces will not contribute to
* the total area. If the usual Green's Theorem (or more general Stokes' Theorem) integral is
* used, the integral around the holes in the surface are subtracted from the integral about the
* exterior of the surface patch.
*
*
*
* @return The area.
* @unitof Area
*/
@UML(identifier = "area", obligation = MANDATORY, specification = ISO_19107)
double getArea();
}