code: private static boolean polygonRelatePolygon_(Polygon polygon_a,
  			Polygon polygon_b, double tolerance, int relation,
  			ProgressTracker progress_tracker) {
  		switch (relation) {
  		case Relation.disjoint:
  			return polygonDisjointPolygon_(polygon_a, polygon_b, tolerance,
  					progress_tracker);
  
  		case Relation.within:
  			return polygonContainsPolygon_(polygon_b, polygon_a, tolerance,
  					progress_tracker);
  
  		case Relation.contains:
  			return polygonContainsPolygon_(polygon_a, polygon_b, tolerance,
  					progress_tracker);
  
  		case Relation.equals:
  			return polygonEqualsPolygon_(polygon_a, polygon_b, tolerance,
  					progress_tracker);
  
  		case Relation.touches:
  			return polygonTouchesPolygon_(polygon_a, polygon_b, tolerance,
  					progress_tracker);
  
  		case Relation.overlaps:
  			return polygonOverlapsPolygon_(polygon_a, polygon_b, tolerance,
  					progress_tracker);
  
  		default:
  			break; // warning fix
  		}
  
  		return false;
  	}
docs: Returns true if the relation holds.