intersects method
Tests whether the given Geometry intersects the query rectangle.
@param geom the Geometry to test (may be of any type) @return true if the geometry intersects the query rectangle
Implementation
bool intersects(Geometry geom) {
if (!rectEnv.intersectsEnvelope(geom.getEnvelopeInternal())) return false;
/**
* Test if rectangle envelope intersects any component envelope.
* This handles Point components as well
*/
EnvelopeIntersectsVisitor visitor = new EnvelopeIntersectsVisitor(rectEnv);
visitor.applyTo(geom);
if (visitor.intersects()) return true;
/**
* Test if any rectangle vertex is contained in the target geometry
*/
GeometryContainsPointVisitor ecpVisitor =
new GeometryContainsPointVisitor(rectangle);
ecpVisitor.applyTo(geom);
if (ecpVisitor.containsPoint()) return true;
/**
* Test if any target geometry line segment intersects the rectangle
*/
RectangleIntersectsSegmentVisitor riVisitor =
new RectangleIntersectsSegmentVisitor(rectangle);
riVisitor.applyTo(geom);
if (riVisitor.intersects()) return true;
return false;
}