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

org.opengis.geometry.coordinate.LineSegment 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.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 {}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy