Package org.locationtech.jts.noding
Class IntersectionAdder
java.lang.Object
org.locationtech.jts.noding.IntersectionAdder
- All Implemented Interfaces:
SegmentIntersector
Computes the possible intersections between two line segments in
NodedSegmentString
s
and adds them to each string
using NodedSegmentString.addIntersection(LineIntersector, int, int, int)
.- Version:
- 1.7
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private boolean
These variables keep track of what types of intersections were found during ALL edges that have been intersected.private boolean
private boolean
private boolean
private LineIntersector
int
int
int
int
private Coordinate
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
An interior intersection is an intersection which is in the interior of some segment.boolean
boolean
A proper interior intersection is a proper intersection which is not contained in the set of boundary nodes set for this SegmentIntersector.boolean
A proper intersection is an intersection which is interior to at least two line segments.static boolean
isAdjacentSegments
(int i1, int i2) boolean
isDone()
Always process all intersectionsprivate boolean
isTrivialIntersection
(SegmentString e0, int segIndex0, SegmentString e1, int segIndex1) A trivial intersection is an apparent self-intersection which in fact is simply the point shared by adjacent line segments.void
processIntersections
(SegmentString e0, int segIndex0, SegmentString e1, int segIndex1) This method is called by clients of theSegmentIntersector
class to process intersections for two segments of theSegmentString
s being intersected.
-
Field Details
-
hasIntersection
private boolean hasIntersectionThese variables keep track of what types of intersections were found during ALL edges that have been intersected. -
hasProper
private boolean hasProper -
hasProperInterior
private boolean hasProperInterior -
hasInterior
private boolean hasInterior -
properIntersectionPoint
-
li
-
isSelfIntersection
private boolean isSelfIntersection -
numIntersections
public int numIntersections -
numInteriorIntersections
public int numInteriorIntersections -
numProperIntersections
public int numProperIntersections -
numTests
public int numTests
-
-
Constructor Details
-
IntersectionAdder
-
-
Method Details
-
isAdjacentSegments
public static boolean isAdjacentSegments(int i1, int i2) -
getLineIntersector
-
getProperIntersectionPoint
- Returns:
- the proper intersection point, or
null
if none was found
-
hasIntersection
public boolean hasIntersection() -
hasProperIntersection
public boolean hasProperIntersection()A proper intersection is an intersection which is interior to at least two line segments. Note that a proper intersection is not necessarily in the interior of the entire Geometry, since another edge may have an endpoint equal to the intersection, which according to SFS semantics can result in the point being on the Boundary of the Geometry. -
hasProperInteriorIntersection
public boolean hasProperInteriorIntersection()A proper interior intersection is a proper intersection which is not contained in the set of boundary nodes set for this SegmentIntersector. -
hasInteriorIntersection
public boolean hasInteriorIntersection()An interior intersection is an intersection which is in the interior of some segment. -
isTrivialIntersection
private boolean isTrivialIntersection(SegmentString e0, int segIndex0, SegmentString e1, int segIndex1) A trivial intersection is an apparent self-intersection which in fact is simply the point shared by adjacent line segments. Note that closed edges require a special check for the point shared by the beginning and end segments. -
processIntersections
This method is called by clients of theSegmentIntersector
class to process intersections for two segments of theSegmentString
s being intersected. Note that some clients (such asMonotoneChain
s) may optimize away this call for segment pairs which they have determined do not intersect (e.g. by an disjoint envelope test).- Specified by:
processIntersections
in interfaceSegmentIntersector
-
isDone
public boolean isDone()Always process all intersections- Specified by:
isDone
in interfaceSegmentIntersector
- Returns:
- false always
-