private static boolean polylineTouchesPolyline_(Polyline polyline_a, Polyline polyline_b, double tolerance, ProgressTracker progress_tracker) { // Quick rasterize test to see whether the the geometries are disjoint. if (tryRasterizedContainsOrDisjoint_(polyline_a, polyline_b, tolerance, false) == Relation.disjoint) return false; AttributeStreamOfDbl intersections = new AttributeStreamOfDbl(0); int dim = linearPathIntersectsLinearPathMaxDim_(polyline_a, polyline_b, tolerance, intersections); if (dim != 0) return false; MultiPoint intersection = new MultiPoint(); for (int i = 0; i < intersections.size(); i += 2) { double x = intersections.read(i); double y = intersections.read(i + 1); intersection.add(x, y); } MultiPoint boundary_a_b = (MultiPoint) (polyline_a.getBoundary()); MultiPoint boundary_b = (MultiPoint) (polyline_b.getBoundary()); boundary_a_b.add(boundary_b, 0, boundary_b.getPointCount()); return multiPointContainsMultiPointBrute_(boundary_a_b, intersection, tolerance); }
private static boolean polylineCrossesPolyline_(Polyline polyline_a, Polyline polyline_b, double tolerance, ProgressTracker progress_tracker) { // Quick rasterize test to see whether the the geometries are disjoint. if (tryRasterizedContainsOrDisjoint_(polyline_a, polyline_b, tolerance, false) == Relation.disjoint) return false; AttributeStreamOfDbl intersections = new AttributeStreamOfDbl(0); int dim = linearPathIntersectsLinearPathMaxDim_(polyline_a, polyline_b, tolerance, intersections); if (dim != 0) return false; MultiPoint intersection = new MultiPoint(); for (int i = 0; i < intersections.size(); i += 2) { double x = intersections.read(i); double y = intersections.read(i + 1); intersection.add(x, y); } MultiPoint boundary_a_b = (MultiPoint) (polyline_a.getBoundary()); MultiPoint boundary_b = (MultiPoint) (polyline_b.getBoundary()); boundary_a_b.add(boundary_b, 0, boundary_b.getPointCount()); return !multiPointContainsMultiPointBrute_(boundary_a_b, intersection, tolerance); }
private static boolean polylineCrossesPolyline_(Polyline polyline_a, Polyline polyline_b, double tolerance, ProgressTracker progress_tracker) { // Quick rasterize test to see whether the the geometries are disjoint. if (tryRasterizedContainsOrDisjoint_(polyline_a, polyline_b, tolerance, false) == Relation.disjoint) return false; AttributeStreamOfDbl intersections = new AttributeStreamOfDbl(0); int dim = linearPathIntersectsLinearPathMaxDim_(polyline_a, polyline_b, tolerance, intersections); if (dim != 0) return false; MultiPoint intersection = new MultiPoint(); for (int i = 0; i < intersections.size(); i += 2) { double x = intersections.read(i); double y = intersections.read(i + 1); intersection.add(x, y); } MultiPoint boundary_a_b = (MultiPoint) (polyline_a.getBoundary()); MultiPoint boundary_b = (MultiPoint) (polyline_b.getBoundary()); boundary_a_b.add(boundary_b, 0, boundary_b.getPointCount()); return !multiPointContainsMultiPointBrute_(boundary_a_b, intersection, tolerance); }
private static boolean polylineTouchesPolyline_(Polyline polyline_a, Polyline polyline_b, double tolerance, ProgressTracker progress_tracker) { // Quick rasterize test to see whether the the geometries are disjoint. if (tryRasterizedContainsOrDisjoint_(polyline_a, polyline_b, tolerance, false) == Relation.disjoint) return false; AttributeStreamOfDbl intersections = new AttributeStreamOfDbl(0); int dim = linearPathIntersectsLinearPathMaxDim_(polyline_a, polyline_b, tolerance, intersections); if (dim != 0) return false; MultiPoint intersection = new MultiPoint(); for (int i = 0; i < intersections.size(); i += 2) { double x = intersections.read(i); double y = intersections.read(i + 1); intersection.add(x, y); } MultiPoint boundary_a_b = (MultiPoint) (polyline_a.getBoundary()); MultiPoint boundary_b = (MultiPoint) (polyline_b.getBoundary()); boundary_a_b.add(boundary_b, 0, boundary_b.getPointCount()); return multiPointContainsMultiPointBrute_(boundary_a_b, intersection, tolerance); }
private static boolean polylineContainsMultiPoint_(Polyline polyline_a, MultiPoint multipoint_b, double tolerance, ProgressTracker progress_tracker) { Envelope2D env_a = new Envelope2D(), env_b = new Envelope2D(); polyline_a.queryEnvelope2D(env_a); multipoint_b.queryEnvelope2D(env_b); if (!envelopeInfContainsEnvelope_(env_a, env_b, tolerance)) return false; // Quick rasterize test to see whether the the geometries are disjoint. if (tryRasterizedContainsOrDisjoint_(polyline_a, multipoint_b, tolerance, false) == Relation.disjoint) return false; if (!linearPathIntersectsMultiPoint_(polyline_a, multipoint_b, tolerance, true)) return false; MultiPoint boundary_a = (MultiPoint) (polyline_a.getBoundary()); return !multiPointIntersectsMultiPoint_(boundary_a, multipoint_b, tolerance, progress_tracker); }
private static boolean polylineContainsMultiPoint_(Polyline polyline_a, MultiPoint multipoint_b, double tolerance, ProgressTracker progress_tracker) { Envelope2D env_a = new Envelope2D(), env_b = new Envelope2D(); polyline_a.queryEnvelope2D(env_a); multipoint_b.queryEnvelope2D(env_b); if (!envelopeInfContainsEnvelope_(env_a, env_b, tolerance)) return false; // Quick rasterize test to see whether the the geometries are disjoint. if (tryRasterizedContainsOrDisjoint_(polyline_a, multipoint_b, tolerance, false) == Relation.disjoint) return false; if (!linearPathIntersectsMultiPoint_(polyline_a, multipoint_b, tolerance, true)) return false; MultiPoint boundary_a = (MultiPoint) (polyline_a.getBoundary()); return !multiPointIntersectsMultiPoint_(boundary_a, multipoint_b, tolerance, progress_tracker); }
MultiPoint boundary_a = (MultiPoint) (polyline_a.getBoundary()); MultiPoint multipoint_b_inter = new MultiPoint(); Point2D pt = new Point2D();
MultiPoint boundary_a = (MultiPoint) (polyline_a.getBoundary()); MultiPoint multipoint_b_inter = new MultiPoint(); Point2D pt = new Point2D();
MultiPoint boundary_a = (MultiPoint) (polyline_a.getBoundary()); MultiPoint multipoint_b_inter = new MultiPoint(); Point2D pt = new Point2D();
MultiPoint boundary_a = (MultiPoint) (polyline_a.getBoundary()); MultiPoint multipoint_b_inter = new MultiPoint(); Point2D pt = new Point2D();