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

org.opengis.geometry.coordinate.GriddedSurface Maven / Gradle / Ivy

The 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.coordinate;

import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;

import org.opengis.annotation.UML;

/**
 * A {@linkplain ParametricCurveSurface parametric curve surface} defined from a rectangular grid in
 * the parameter space. The rows from this grid are control points for horizontal surface curves;
 * the columns are control points for vertical surface curves. The working assumption is that for a
 * pair of parametric coordinates (st), that the horizontal curves for
 * each integer offset are calculated and evaluated at s. This defines a sequence of
 * control points:
 *
 * 
* * <cn(s) : s = 1 … columns> * *
* * From this sequence, a vertical curve is calculated for s, and evaluated at * t. In most cases, the order of calculation (horizontal-vertical versus * vertical-horizontal) does not make a difference. Where it does, the horizontal-vertical order * shall be the one used. * *

The most common case of a gridded surface is a 2D spline. In this case the weight functions * for each parameter make order of calculation unimportant: * *

* * TODO: copy equations there * *
* * Logically, any pair of curve interpolation types can lead to a subtype of {@code GriddedSurface}. * The sub-interfaces provided in this package define some of the most commonly encountered surfaces * that can be represented in this manner. * * @version ISO 19107 * @author Martin Desruisseaux (IRD) * @since GeoAPI 2.0 */ @UML(identifier = "GM_GriddedSurface", specification = ISO_19107) public interface GriddedSurface extends ParametricCurveSurface { /** * Returns the doubly indexed sequence of control points, given in row major form. There is no * assumption made about the shape of the grid. For example, the positions need not effect a * "2½D" surface, consecutive points may be equal in any or all of their ordinates. * Further, the curves in either or both directions may close. */ @UML(identifier = "controlPoint", obligation = MANDATORY, specification = ISO_19107) PointGrid getControlPoints(); /** Returns the number of rows in the parameter grid. */ @UML(identifier = "rows", obligation = MANDATORY, specification = ISO_19107) int getRows(); /** Returns the number of columns in the parameter grid. */ @UML(identifier = "columns", obligation = MANDATORY, specification = ISO_19107) int getColumns(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy