JTS Topology Suite - v 1.12

com.vividsolutions.jts.noding
Class InteriorIntersectionFinder

java.lang.Object
  extended by com.vividsolutions.jts.noding.InteriorIntersectionFinder
All Implemented Interfaces:
SegmentIntersector

public class InteriorIntersectionFinder
extends java.lang.Object
implements SegmentIntersector

Finds an interior intersection in a set of SegmentStrings, if one exists. Only the first intersection found is reported.

Version:
1.7

Constructor Summary
InteriorIntersectionFinder(LineIntersector li)
          Creates an intersection finder which finds an interior intersection if one exists
 
Method Summary
 Coordinate getInteriorIntersection()
          Gets the computed location of the intersection.
 java.util.List getIntersections()
           
 Coordinate[] getIntersectionSegments()
          Gets the endpoints of the intersecting segments.
 boolean hasIntersection()
          Tests whether an intersection was found.
 boolean isDone()
          Reports whether the client of this class needs to continue testing all intersections in an arrangement.
 void processIntersections(SegmentString e0, int segIndex0, SegmentString e1, int segIndex1)
          This method is called by clients of the SegmentIntersector class to process intersections for two segments of the SegmentStrings being intersected.
 void setCheckEndSegmentsOnly(boolean isCheckEndSegmentsOnly)
          Sets whether only end segments should be tested for interior intersection.
 void setFindAllIntersections(boolean findAllIntersections)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InteriorIntersectionFinder

public InteriorIntersectionFinder(LineIntersector li)
Creates an intersection finder which finds an interior intersection if one exists

Parameters:
li - the LineIntersector to use
Method Detail

setFindAllIntersections

public void setFindAllIntersections(boolean findAllIntersections)

getIntersections

public java.util.List getIntersections()

setCheckEndSegmentsOnly

public void setCheckEndSegmentsOnly(boolean isCheckEndSegmentsOnly)
Sets whether only end segments should be tested for interior intersection. This is a performance optimization that may be used if the segments have been previously noded by an appropriate algorithm. It may be known that any potential noding failures will occur only in end segments.

Parameters:
isCheckEndSegmentsOnly - whether to test only end segments

hasIntersection

public boolean hasIntersection()
Tests whether an intersection was found.

Returns:
true if an intersection was found

getInteriorIntersection

public Coordinate getInteriorIntersection()
Gets the computed location of the intersection. Due to round-off, the location may not be exact.

Returns:
the coordinate for the intersection location

getIntersectionSegments

public Coordinate[] getIntersectionSegments()
Gets the endpoints of the intersecting segments.

Returns:
an array of the segment endpoints (p00, p01, p10, p11)

processIntersections

public void processIntersections(SegmentString e0,
                                 int segIndex0,
                                 SegmentString e1,
                                 int segIndex1)
This method is called by clients of the SegmentIntersector class to process intersections for two segments of the SegmentStrings being intersected. Note that some clients (such as MonotoneChains) 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 interface SegmentIntersector

isDone

public boolean isDone()
Description copied from interface: SegmentIntersector
Reports whether the client of this class needs to continue testing all intersections in an arrangement.

Specified by:
isDone in interface SegmentIntersector
Returns:
true if there is no need to continue testing segments

JTS Topology Suite - v 1.12