code: private static boolean polygonCrossesEnvelope_(Polygon polygon_a,
  			Envelope envelope_b, double tolerance,
  			ProgressTracker progress_tracker) {
  		Envelope2D env_a = new Envelope2D(), env_b = new Envelope2D();
  		polygon_a.queryEnvelope2D(env_a);
  		envelope_b.queryEnvelope2D(env_b);
  
  		if (envelopeInfContainsEnvelope_(env_b, env_a, tolerance))
  			return false;
  
  		if (env_b.getHeight() > tolerance && env_b.getWidth() > tolerance)
  			return false; // when treated as an area, areas cannot cross areas.
  
  		if (env_b.getHeight() <= tolerance && env_b.getWidth() <= tolerance)
  			return false; // when treated as a point, areas cannot cross points.
  
  		// Treat as polyline
  		Polyline polyline_b = new Polyline();
  		Point p = new Point();
  		envelope_b.queryCornerByVal(0, p);
  		polyline_b.startPath(p);
  		envelope_b.queryCornerByVal(2, p);
  		polyline_b.lineTo(p);
  		return polygonCrossesPolylineImpl_(polygon_a, polyline_b, tolerance,
  				progress_tracker);
  	}
docs: Returns true if polygon_a crosses envelope_b.