public Value eval(RCvalue args) throws EvalException { if (args.size() != 2) throw new EvalException("usage: reduce(polygon, errtol])"); PolygonValue pv1 = (PolygonValue) args.value(0); PolygonValue pv2 = (PolygonValue) args.value(1); boolean isContain = pv1.polygon().contains(pv2.polygon()); double contain = 0; if (isContain) { contain = 1; // we don't have a boolean factory now. } return ValueFactory.create(contain); }