Package com.luciad.geometries
Class PolylineRing
java.lang.Object
com.luciad.geometries.Geometry
com.luciad.geometries.Curve
com.luciad.geometries.Ring
com.luciad.geometries.CompositeRing
com.luciad.geometries.PolylineRing
- All Implemented Interfaces:
AutoCloseable
Represents a polyline that is closed, i.e., the first point and the last point coincide.
- 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 ring.List
<@NotNull Coordinate> Returns the list of points of this polyline ring.insertPoint
(long index, Coordinate newLocation) Creates a newPolylineRing
with an newly inserted control point.movePoint
(long index, Coordinate newLocation) Creates a newPolylineRing
with a moved control point.removePoint
(long index) Creates a newPolylineRing
with a control point removed.translate
(Coordinate translation) Translates the entire polyline ring.Methods inherited from class com.luciad.geometries.CompositeRing
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 classCompositeRing
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Overrides:
close
in classCompositeRing
-
getPointCount
public long getPointCount()Returns the number of points in the polyline ring.- Returns:
- the number of points in the polyline ring.
-
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 ring.- Returns:
- the list of points of this polyline ring.
-
getInterpolationType
Returns the interpolation type of the line segment.One of
- Returns:
- the interpolation type of the line segment.
-
translate
Translates the entire polyline ring.Note: when the polyline ring 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 ring when moving it towards (or away from) the poles.
- Parameters:
translation
- the translation vector- Returns:
- a new, translated geometry
-
movePoint
@NotNull public PolylineRing movePoint(long index, @NotNull Coordinate newLocation) throws IllegalArgumentException Creates a newPolylineRing
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 PolylineRing insertPoint(long index, @NotNull Coordinate newLocation) throws IllegalArgumentException Creates a newPolylineRing
with an newly inserted control point.- Parameters:
index
- the index of the newly inserted control point. Should be in [0,getPointCount()
]. For index 0, a new point will be added at the start of thePolyline
ring. For indexgetPointCount()
, a new point is added at the end of thePolyline
ring. For other index values, a new point will be added between the point at specified (index-1) and the point at the index position.newLocation
- the location of the new point- Returns:
- a new geometry
- Throws:
IllegalArgumentException
- for an invalid index
-
removePoint
Creates a newPolylineRing
with a control point removed.This methods returns a copy of the polyline ring if its point count is less or equal to 3.
- 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
-