void setFill(String fillText) {
    int opacityMask = fillColor & 0xFF000000;
    if (fillText.equals("none")) {
      fill = false;
    } else if (fillText.startsWith("#")) {
      fill = true;
      fillColor = opacityMask |
        (Integer.parseInt(fillText.substring(1), 16)) & 0xFFFFFF;
      //System.out.println("hex for fill is " + PApplet.hex(fillColor));
    } else if (fillText.startsWith("rgb")) {
      fill = true;
      fillColor = opacityMask | parseRGB(fillText);
    } else if (fillText.startsWith("url(#")) {
      fillName = fillText.substring(5, fillText.length() - 1);
      //PApplet.println("looking for " + fillName);
      Object fillObject = findChild(fillName);
      //PApplet.println("found " + fillObject);
      if (fillObject instanceof Gradient) {
        fill = true;
        fillGradient = (Gradient) fillObject;
        fillGradientPaint = calcGradientPaint(fillGradient); //, opacity);
        //PApplet.println("got filla " + fillObject);
      } else {
        System.err.println("url " + fillName + " refers to unexpected data");
      }
    }
  }