Class SegmentIntersector
java.lang.Object
org.locationtech.jts.geomgraph.index.SegmentIntersector
Computes the intersection of line segments,
and adds the intersection to the edges containing the segments.
- Version:
- 1.7
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Collection[]private booleanThese variables keep track of what types of intersections were found during ALL edges that have been intersected.private booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate LineIntersectorprivate intintprivate Coordinateprivate boolean -
Constructor Summary
ConstructorsConstructorDescriptionSegmentIntersector(LineIntersector li, boolean includeProper, boolean recordIsolated) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddIntersections(Edge e0, int segIndex0, Edge e1, int segIndex1) This method is called by clients of the EdgeIntersector class to test for and add intersections for two segments of the edges being intersected.booleanbooleanA proper interior intersection is a proper intersection which is not contained in the set of boundary nodes set for this SegmentIntersector.booleanA proper intersection is an intersection which is interior to at least two line segments.static booleanisAdjacentSegments(int i1, int i2) private booleanisBoundaryPoint(LineIntersector li, Collection[] bdyNodes) private booleanisBoundaryPointInternal(LineIntersector li, Collection bdyNodes) booleanisDone()private booleanisTrivialIntersection(Edge e0, int segIndex0, Edge e1, int segIndex1) A trivial intersection is an apparent self-intersection which in fact is simply the point shared by adjacent line segments.voidsetBoundaryNodes(Collection bdyNodes0, Collection bdyNodes1) voidsetIsDoneIfProperInt(boolean isDoneWhenProperInt)
-
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 -
properIntersectionPoint
-
li
-
includeProper
private boolean includeProper -
recordIsolated
private boolean recordIsolated -
isSelfIntersection
private boolean isSelfIntersection -
numIntersections
private int numIntersections -
numTests
public int numTests -
bdyNodes
-
isDone
private boolean isDone -
isDoneWhenProperInt
private boolean isDoneWhenProperInt
-
-
Constructor Details
-
SegmentIntersector
-
-
Method Details
-
isAdjacentSegments
public static boolean isAdjacentSegments(int i1, int i2) -
setBoundaryNodes
-
setIsDoneIfProperInt
public void setIsDoneIfProperInt(boolean isDoneWhenProperInt) -
isDone
public boolean isDone() -
getProperIntersectionPoint
- Returns:
- the proper intersection point, or
nullif 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. -
isTrivialIntersection
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. -
addIntersections
This method is called by clients of the EdgeIntersector class to test for and add intersections for two segments of the edges being intersected. Note that clients (such as MonotoneChainEdges) may choose not to intersect certain pairs of segments for efficiency reasons. -
isBoundaryPoint
-
isBoundaryPointInternal
-