org.opengis.geometry.coordinate.GriddedSurface 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.
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 (s, t), 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();
}