# geos::noding::SegmentIntersectionDetector Class Reference

Detects and records an intersection between two SegmentStrings, if one exists. More...

`#include <SegmentIntersectionDetector.h>`

Inheritance diagram for geos::noding::SegmentIntersectionDetector:

List of all members.

## Public Member Functions

| SegmentIntersectionDetector (LineIntersector *li)
void | setFindProper (bool findProper)
void | setFindAllIntersectionTypes (bool findAllTypes)
bool | hasIntersection () const
bool | hasProperIntersection () const
bool | hasNonProperIntersection () const
const geom::Coordinate *const | getIntersection () const
const geom::CoordinateSequence * | getIntersectionSegments () const
bool | isDone () const
| Reports whether the client of this class needs to continue testing all intersections in an arrangement.
void | processIntersections (noding::SegmentString *e0, int segIndex0, noding::SegmentString *e1, int segIndex1)

## Detailed Description

Detects and records an intersection between two SegmentStrings, if one exists.

This strategy can be configured to search for proper intersections. In this case, the presence of any intersection will still be recorded, but searching will continue until either a proper intersection has been found or no intersections are detected.

Only a single intersection is recorded.

Version:
  1.7

## Member Function Documentation

const geom::Coordinate* const geos::noding::SegmentIntersectionDetector::getIntersection | ( | ) | const`[inline]`

Gets the computed location of the intersection. Due to round-off, the location may not be exact.

Returns:
  the coordinate for the intersection location

const geom::CoordinateSequence* geos::noding::SegmentIntersectionDetector::getIntersectionSegments | ( | ) | const`[inline]`

Gets the endpoints of the intersecting segments.

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

bool geos::noding::SegmentIntersectionDetector::hasIntersection | ( | ) | const`[inline]`

Tests whether an intersection was found.

Returns:
  true if an intersection was found

bool geos::noding::SegmentIntersectionDetector::hasNonProperIntersection | ( | ) | const`[inline]`

Tests whether a non-proper intersection was found.

Returns:
  true if a non-proper intersection was found

bool geos::noding::SegmentIntersectionDetector::hasProperIntersection | ( | ) | const`[inline]`

Tests whether a proper intersection was found.

Returns:
  true if a proper intersection was found

bool geos::noding::SegmentIntersectionDetector::isDone | ( | ) | const`[inline, virtual]`

Reports whether the client of this class needs to continue testing all intersections in an arrangement.

Returns:
  true if there is not need to continue testing segments

The default implementation always return false (process all intersections).

Reimplemented from geos::noding::SegmentIntersector.

void geos::noding::SegmentIntersectionDetector::processIntersections | ( | noding::SegmentString * | e0,
|  | int | segIndex0,
|  | noding::SegmentString * | e1,
|  | int | segIndex1
| ) |  | `[virtual]`

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).

Implements geos::noding::SegmentIntersector.

The documentation for this class was generated from the following file:

- SegmentIntersectionDetector.h