Package com.luciad.geometries
Class Polyline
java.lang.Object
com.luciad.geometries.Geometry
com.luciad.geometries.Curve
com.luciad.geometries.CompositeCurve
com.luciad.geometries.Polyline
- All Implemented Interfaces:
AutoCloseable
Represents a polyline.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
protected void
finalize()
Returns the interpolation type of the line segment.getPoint
(long index) Returns the coordinate for the requested index.long
Returns the number of points in the polyline.List
<@NotNull Coordinate> Returns the list of points of this polyline.insertPoint
(long index, Coordinate newLocation) Creates a newPolyline
with an newly inserted control point.movePoint
(long index, Coordinate newLocation) Creates a newPolyline
with a moved control point.removePoint
(long index) Creates a newPolyline
with a control point removed.translate
(Coordinate translation) Translates the entire polyline.Methods inherited from class com.luciad.geometries.CompositeCurve
getCurveAt, getCurveCount
Methods inherited from class com.luciad.geometries.Curve
computePoint, getLength2D
Methods inherited from class com.luciad.geometries.Geometry
getBounds, getReference
-
Method Details
-
finalize
protected void finalize()- Overrides:
finalize
in classCompositeCurve
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Overrides:
close
in classCompositeCurve
-
getPointCount
public long getPointCount()Returns the number of points in the polyline.- Returns:
- the number of points in the polyline.
-
getPoint
Returns the coordinate for the requested index.- Parameters:
index
- the index of the requested point.- Returns:
- the point at the index.
- Throws:
IllegalArgumentException
- when requesting an invalid index.
-
getPoints
Returns the list of points of this polyline.- Returns:
- the list of points of this polyline.
-
getInterpolationType
Returns the interpolation type of the line segment.One of
- Returns:
- the interpolation type of the line segment.
-
translate
Translates the entire polyline.Note: when the polyline is defined in a geodetic reference and uses geodetic interpolation, the translation is not performed by translating the points one by one. Instead, a translation method is used that better preserves the shape of the polyline when moving it towards (or away from) the poles.
- Parameters:
translation
- the translation vector- Returns:
- a new, translated geometry
-
movePoint
@NotNull public Polyline movePoint(long index, @NotNull Coordinate newLocation) throws IllegalArgumentException Creates a newPolyline
with a moved control point.- Parameters:
index
- the index of the point to move. Should be in[0,
.getPointCount()
- 1]newLocation
- the new location of the point- Returns:
- a new geometry
- Throws:
IllegalArgumentException
- for an invalid index
-
insertPoint
@NotNull public Polyline insertPoint(long index, @NotNull Coordinate newLocation) throws IllegalArgumentException Creates a newPolyline
with an newly inserted control point.- Parameters:
index
- the index of the newly inserted control point. Should be in[0,
. For index 0, a new point will be added at the start of thegetPointCount()
]Polyline
. For indexgetPointCount()
, a new point will be added at the end of thePolyline
. For other index values, a point will be added between 2 other points.newLocation
- the location of the new point- Returns:
- a new geometry
- Throws:
IllegalArgumentException
- for an invalid index
-
removePoint
Creates a newPolyline
with a control point removed.This methods returns a copy of the polyline if its point count is less or equal to 2.
- Parameters:
index
- the index of the point to be removed. Should be in[0,
.getPointCount()
- 1]- Returns:
- a new geometry
- Throws:
IllegalArgumentException
- for an invalid index
-