intersects method

bool intersects(
  1. Geometry geom
)

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;
}