org.opengis.geometry.coordinate.LineSegment 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.coordinate;
import static org.opengis.annotation.Specification.*;
import org.opengis.annotation.UML;
/**
* Two distinct {@linkplain org.opengis.geometry.DirectPosition direct positions} (the {@linkplain
* #getStartPoint start point} and {@linkplain #getEndPoint end point}) joined by a straight line.
* Thus its interpolation attribute shall be {@link
* org.opengis.geometry.primitive.CurveInterpolation#LINEAR LINEAR}. The default parameterization
* is:
*
*
*
*
* L = {@linkplain #getEndParam endParam} - {@linkplain #getStartParam startParam}
* c(s) = ControlPoint[1]+((s-{@linkplain #getStartParam startParam})/L)*(ControlPoint[2]-ControlPoint[1])
*
*
*
*
* Any other point in the control point array must fall on this line. The control points of a {@code
* LineSegment} shall all lie on the straight line between its start point and end point. Between
* these two points, other positions may be interpolated linearly. The linear interpolation, given
* using a constructive parameter t, 0 ? t ? 1.0, where c(o) = c.{@linkplain
* #getStartPoint startPoint} and c(1)=c.{@link #getEndPoint endPoint}, is:
*
*
*
* c(t) = c(0)(1-t) + c(1)t
*
*
*
* @version ISO 19107
* @author Martin Desruisseaux (IRD)
* @since GeoAPI 1.0
* @see GeometryFactory#createLineSegment
*/
@UML(identifier = "GM_LineSegment", specification = ISO_19107)
public interface LineSegment extends LineString {}