docs: public void plotMarker(SVGPlot plot, Element parent, double x, double y, int style, double size) {
      assert (parent != null);
      if(style == -1) {
        plotUncolored(plot, parent, x, y, size);
        return;
      }
      if(style == -2) {
        plotGray(plot, parent, x, y, size);
        return;
      }
      // No dot allowed!
      String cssid = prefix + style + "_" + (int) (100 * size);
  
      switch(style & 0x7){
      case 0: {
        // + cross
        if(!plot.getCSSClassManager().contains(cssid)) {
          CSSClass c = new CSSClass(this, cssid);
          String colorstr = colors.getColor(style);
          c.setStatement(SVGConstants.CSS_STROKE_PROPERTY, colorstr);
          c.setStatement(SVGConstants.CSS_STROKE_WIDTH_PROPERTY, size / 6);
          plot.addCSSClassOrLogError(c);
        }
        Element line1 = plot.svgLine(x, y - size / 2.2, x, y + size / 2.2);
        SVGUtil.setCSSClass(line1, cssid);
        parent.appendChild(line1);
        Element line2 = plot.svgLine(x - size / 2.2, y, x + size / 2.2, y);
        SVGUtil.setCSSClass(line2, cssid);
        parent.appendChild(line2);
        break;
      }
      case 1: {
        // X cross
        if(!plot.getCSSClassManager().contains(cssid)) {
          CSSClass c = new CSSClass(this, cssid);
          String colorstr = colors.getColor(style);
          c.setStatement(SVGConstants.CSS_STROKE_PROPERTY, colorstr);
          c.setStatement(SVGConstants.CSS_STROKE_WIDTH_PROPERTY, size / 6);
          plot.addCSSClassOrLogError(c);
        }
        Element line1 = plot.svgLine(x - size / 2.828427, y - size / 2.828427, x + size / 2.828427, y + size / 2.828427);
        SVGUtil.setCSSClass(line1, cssid);
        parent.appendChild(line1);
        Element line2 = plot.svgLine(x - size / 2.828427, y + size / 2.828427, x + size / 2.828427, y - size / 2.828427);
        SVGUtil.setCSSClass(line2, cssid);
        parent.appendChild(line2);
        break;
      }
      case 2: {
        // O hollow circle
        if(!plot.getCSSClassManager().contains(cssid)) {
          CSSClass c = new CSSClass(this, cssid);
          String colorstr = colors.getColor(style);
          c.setStatement(SVGConstants.CSS_STROKE_PROPERTY, colorstr);
          c.setStatement(SVGConstants.CSS_STROKE_WIDTH_PROPERTY, size / 6);
          c.setStatement(SVGConstants.CSS_FILL_PROPERTY, SVGConstants.CSS_NONE_VALUE);
          plot.addCSSClassOrLogError(c);
        }
        Element circ = plot.svgCircle(x, y, size / 2.2);
        SVGUtil.setCSSClass(circ, cssid);
        parent.appendChild(circ);
        break;
      }
      case 3: {
        // [] hollow rectangle
        if(!plot.getCSSClassManager().contains(cssid)) {
          CSSClass c = new CSSClass(this, cssid);
          String colorstr = colors.getColor(style);
          c.setStatement(SVGConstants.CSS_STROKE_PROPERTY, colorstr);
          c.setStatement(SVGConstants.CSS_STROKE_WIDTH_PROPERTY, size / 6);
          c.setStatement(SVGConstants.CSS_FILL_PROPERTY, SVGConstants.CSS_NONE_VALUE);
          plot.addCSSClassOrLogError(c);
        }
        Element rect = plot.svgRect(x - size / 2.4, y - size / 2.4, size / 1.2, size / 1.2);
        SVGUtil.setCSSClass(rect, cssid);
        parent.appendChild(rect);
        break;
      }
      case 4: {
        // <> hollow diamond
        if(!plot.getCSSClassManager().contains(cssid)) {
          CSSClass c = new CSSClass(this, cssid);
          String colorstr = colors.getColor(style);
          c.setStatement(SVGConstants.CSS_STROKE_PROPERTY, colorstr);
          c.setStatement(SVGConstants.CSS_STROKE_WIDTH_PROPERTY, size / 6);
          c.setStatement(SVGConstants.CSS_FILL_PROPERTY, SVGConstants.CSS_NONE_VALUE);
          plot.addCSSClassOrLogError(c);
        }
        Element rect = plot.svgRect(x - size / 2.7, y - size / 2.7, size / 1.35, size / 1.35);
        SVGUtil.setCSSClass(rect, cssid);
        SVGUtil.setAtt(rect, SVGConstants.SVG_TRANSFORM_ATTRIBUTE, "rotate(45," + SVGUtil.fmt(x) + "," + SVGUtil.fmt(y) + ")");
        parent.appendChild(rect);
        break;
      }
      case 5: {
        // O filled circle
        if(!plot.getCSSClassManager().contains(cssid)) {
          CSSClass c = new CSSClass(this, cssid);
          String colorstr = colors.getColor(style);
          c.setStatement(SVGConstants.CSS_FILL_PROPERTY, colorstr);
          plot.addCSSClassOrLogError(c);
        }
        Element circ = plot.svgCircle(x, y, size * .5);
        SVGUtil.setCSSClass(circ, cssid);
        parent.appendChild(circ);
        break;
      }
      case 6: {
        // [] filled rectangle
        if(!plot.getCSSClassManager().contains(cssid)) {
          CSSClass c = new CSSClass(this, cssid);
          String colorstr = colors.getColor(style);
          c.setStatement(SVGConstants.CSS_FILL_PROPERTY, colorstr);
          plot.addCSSClassOrLogError(c);
        }
        Element rect = plot.svgRect(x - size / 2.2, y - size / 2.2, size / 1.1, size / 1.1);
        SVGUtil.setCSSClass(rect, cssid);
        parent.appendChild(rect);
        break;
      }
      case 7: {
        // <> filled diamond
        if(!plot.getCSSClassManager().contains(cssid)) {
          CSSClass c = new CSSClass(this, cssid);
          String colorstr = colors.getColor(style);
          c.setStatement(SVGConstants.CSS_FILL_PROPERTY, colorstr);
          plot.addCSSClassOrLogError(c);
        }
        Element rect = plot.svgRect(x - size / 2.5, y - size / 2.5, size / 1.25, size / 1.25);
        SVGUtil.setCSSClass(rect, cssid);
        SVGUtil.setAtt(rect, SVGConstants.SVG_TRANSFORM_ATTRIBUTE, "rotate(45," + SVGUtil.fmt(x) + "," + SVGUtil.fmt(y) + ")");
        parent.appendChild(rect);
        break;
      }
      }
    }