public Argument evaluate(ContextStack context, Argument arg1, Argument arg2)
public Argument evaluate(ContextStack context, ArrayList args)
	public Argument evaluate(ContextStack context, Argument arg1, Argument arg2)		throws MapyrusException	{		/*		 * Geometries cannot possibly overlap if their		 * bounding rectangles do not overlap.		 */		Rectangle2D.Double rect1 = arg1.getGeometryBoundingBox();		Rectangle2D.Double rect2 = arg2.getGeometryBoundingBox();		if (rect1 == null || rect2 == null)			return(Argument.numericZero);		if (rect2.getMaxX() < rect1.getMinX() || rect2.getMinX() > rect1.getMaxX() ||			rect2.getMaxY() < rect1.getMinY() || rect2.getMinY() > rect1.getMaxY())		{			return(Argument.numericZero);		}		String wkt1 = arg1.toString();		String wkt2 = arg2.toString();		Argument retval;		try		{			Geometry g1 = new WKTReader().read(wkt1);			Geometry g2 = new WKTReader().read(wkt2);			if (g2.overlaps(g1))				retval = Argument.numericOne;			else				retval = Argument.numericZero;		}		catch (ParseException e)		{			throw new MapyrusException(e.getMessage());		}		catch (IllegalArgumentException e)		{			throw new MapyrusException(e.getMessage());		}		return(retval);	}