/*$************************************************************************************************
 **
 ** $Id: LineSegment.java 831 2006-05-01 00:27:23Z Desruisseaux $
 **
 ** $URL: http://svn.code.sf.net/p/geoapi/code/branches/2.0.x/geoapi/src/main/java/org/opengis/spatialschema/geometry/geometry/LineSegment.java $
 **
 ** Copyright (C) 2003-2005 Open GIS Consortium, Inc.
 ** All Rights Reserved. http://www.opengis.org/legal/
 **
 *************************************************************************************************/
package org.opengis.spatialschema.geometry.geometry;

// Annotations
import org.opengis.annotation.UML;
import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;


/**
 * Two distinct {@linkplain org.opengis.spatialschema.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.spatialschema.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 Abstract specification 5 * @author Martin Desruisseaux (IRD) * @since GeoAPI 1.0 * * @see GeometryFactory#createLineSegment */ @UML(identifier="GM_LineSegment", specification=ISO_19107) public interface LineSegment extends LineString { }

Ads help maintain this website.