Package org.locationtech.jts.noding
Class NodedSegmentString
- java.lang.Object
-
- org.locationtech.jts.noding.NodedSegmentString
-
- All Implemented Interfaces:
NodableSegmentString
,SegmentString
public class NodedSegmentString extends java.lang.Object implements NodableSegmentString
Represents a list of contiguous line segments, and supports noding the segments. The line segments are represented by an array ofCoordinate
s. Intended to optimize the noding of contiguous segments by reducing the number of allocated objects.SegmentString
s can carry a context object, which is useful for preserving topological or parentage information. All noded substrings are initialized with the same context object.For read-only applications use
BasicSegmentString
, which is (slightly) more lightweight.- Version:
- 1.7
- See Also:
BasicSegmentString
-
-
Constructor Summary
Constructors Constructor Description NodedSegmentString(Coordinate[] pts, java.lang.Object data)
Creates a instance from a list of vertices and optional data object.NodedSegmentString(SegmentString ss)
Creates a new instance from aSegmentString
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addIntersection(LineIntersector li, int segmentIndex, int geomIndex, int intIndex)
Add an SegmentNode for intersection intIndex.void
addIntersection(Coordinate intPt, int segmentIndex)
Adds an intersection node for a given point and segment to this segment string.SegmentNode
addIntersectionNode(Coordinate intPt, int segmentIndex)
Adds an intersection node for a given point and segment to this segment string.void
addIntersections(LineIntersector li, int segmentIndex, int geomIndex)
Adds EdgeIntersections for one or both intersections found for a segment of an edge to the edge intersection list.Coordinate
getCoordinate(int i)
Coordinate[]
getCoordinates()
java.lang.Object
getData()
Gets the user-defined data for this segment string.Coordinate[]
getNodedCoordinates()
Gets a list of coordinates with all nodes included.static java.util.List
getNodedSubstrings(java.util.Collection segStrings)
Gets theSegmentString
s which result from splitting this string at node points.static void
getNodedSubstrings(java.util.Collection segStrings, java.util.Collection resultEdgelist)
Adds the nodedSegmentString
s which result from splitting this string at node points.SegmentNodeList
getNodeList()
int
getSegmentOctant(int index)
Gets the octant of the segment starting at vertexindex
.boolean
isClosed()
void
setData(java.lang.Object data)
Sets the user-defined data for this segment string.int
size()
java.lang.String
toString()
-
-
-
Constructor Detail
-
NodedSegmentString
public NodedSegmentString(Coordinate[] pts, java.lang.Object data)
Creates a instance from a list of vertices and optional data object.- Parameters:
pts
- the vertices of the segment stringdata
- the user-defined data of this segment string (may be null)
-
NodedSegmentString
public NodedSegmentString(SegmentString ss)
Creates a new instance from aSegmentString
.- Parameters:
ss
- the segment string to use
-
-
Method Detail
-
getNodedSubstrings
public static java.util.List getNodedSubstrings(java.util.Collection segStrings)
Gets theSegmentString
s which result from splitting this string at node points.- Parameters:
segStrings
- a Collection of NodedSegmentStrings- Returns:
- a Collection of NodedSegmentStrings representing the substrings
-
getNodedSubstrings
public static void getNodedSubstrings(java.util.Collection segStrings, java.util.Collection resultEdgelist)
Adds the nodedSegmentString
s which result from splitting this string at node points.- Parameters:
segStrings
- a Collection of NodedSegmentStringsresultEdgelist
- a List which will collect the NodedSegmentStrings representing the substrings
-
getData
public java.lang.Object getData()
Gets the user-defined data for this segment string.- Specified by:
getData
in interfaceSegmentString
- Returns:
- the user-defined data
-
setData
public void setData(java.lang.Object data)
Sets the user-defined data for this segment string.- Specified by:
setData
in interfaceSegmentString
- Parameters:
data
- an Object containing user-defined data
-
getNodeList
public SegmentNodeList getNodeList()
-
size
public int size()
- Specified by:
size
in interfaceSegmentString
-
getCoordinate
public Coordinate getCoordinate(int i)
- Specified by:
getCoordinate
in interfaceSegmentString
-
getCoordinates
public Coordinate[] getCoordinates()
- Specified by:
getCoordinates
in interfaceSegmentString
-
getNodedCoordinates
public Coordinate[] getNodedCoordinates()
Gets a list of coordinates with all nodes included.- Returns:
- an array of coordinates include nodes
-
isClosed
public boolean isClosed()
- Specified by:
isClosed
in interfaceSegmentString
-
getSegmentOctant
public int getSegmentOctant(int index)
Gets the octant of the segment starting at vertexindex
.- Parameters:
index
- the index of the vertex starting the segment. Must not be the last index in the vertex list- Returns:
- the octant of the segment at the vertex
-
addIntersections
public void addIntersections(LineIntersector li, int segmentIndex, int geomIndex)
Adds EdgeIntersections for one or both intersections found for a segment of an edge to the edge intersection list.
-
addIntersection
public void addIntersection(LineIntersector li, int segmentIndex, int geomIndex, int intIndex)
Add an SegmentNode for intersection intIndex. An intersection that falls exactly on a vertex of the SegmentString is normalized to use the higher of the two possible segmentIndexes
-
addIntersection
public void addIntersection(Coordinate intPt, int segmentIndex)
Adds an intersection node for a given point and segment to this segment string.- Specified by:
addIntersection
in interfaceNodableSegmentString
- Parameters:
intPt
- the location of the intersectionsegmentIndex
- the index of the segment containing the intersection
-
addIntersectionNode
public SegmentNode addIntersectionNode(Coordinate intPt, int segmentIndex)
Adds an intersection node for a given point and segment to this segment string. If an intersection already exists for this exact location, the existing node will be returned.- Parameters:
intPt
- the location of the intersectionsegmentIndex
- the index of the segment containing the intersection- Returns:
- the intersection node for the point
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-