All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opengis.geometry.aggregate.MultiSurface Maven / Gradle / Ivy

There is a newer version: 24.2-oss84-1
Show newest version
/*
 *    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(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy