computeFacetDistance method
void
computeFacetDistance()
Computes distance between facets (lines and points) of input geometries.
Implementation
void computeFacetDistance() {
List<GeometryLocation?> locGeom = []..length = 2;
/**
* Geometries are not wholely inside, so compute distance from lines and points
* of one to lines and points of the other
*/
List lines0 = LinearComponentExtracter.getLines(geom[0]!);
List lines1 = LinearComponentExtracter.getLines(geom[1]!);
List pts0 = PointExtracter.getPoints(geom[0]!);
List pts1 = PointExtracter.getPoints(geom[1]!);
// exit whenever minDistance goes LE than terminateDistance
computeMinDistanceLines(lines0, lines1, locGeom);
updateMinDistance(locGeom, false);
if (minDistance <= terminateDistance) return;
locGeom[0] = null;
locGeom[1] = null;
computeMinDistanceLinesPoints(lines0, pts1, locGeom);
updateMinDistance(locGeom, false);
if (minDistance <= terminateDistance) return;
locGeom[0] = null;
locGeom[1] = null;
computeMinDistanceLinesPoints(lines1, pts0, locGeom);
updateMinDistance(locGeom, true);
if (minDistance <= terminateDistance) return;
locGeom[0] = null;
locGeom[1] = null;
computeMinDistancePoints(pts0, pts1, locGeom);
updateMinDistance(locGeom, false);
}