@Override
  public Object evaluate(final Object feature) {
    Geometry arg0;

    try { // attempt to get value and perform conversion
      arg0 = (Geometry) parameters.get(0).evaluate(feature);
    } catch (Exception e) // probably a type error
    {
      throw new IllegalArgumentException(
          "Filter Function problem for function interiorPoint argument #0 - expected type Geometry");
    }

    return (StaticGeometry.interiorPoint(arg0));
  }