public Rectangle2D execute(PDFRenderer state) {
        Rectangle2D rect = null;

        if ((style & FILL) != 0) {
            rect = state.fill(gp);

            GeneralPath strokeagain = checkOverlap(state);
            if (strokeagain != null) {
                state.draw(strokeagain, againstroke);
            }

            if (gp != null) {
                state.setLastShape(gp);
            }
        }
        if ((style & STROKE) != 0) {
            Rectangle2D strokeRect = state.stroke(gp);
            if (rect == null) {
                rect = strokeRect;
            } else {
                rect = rect.createUnion(strokeRect);
            }
        }
        if ((style & CLIP) != 0) {
            state.clip(gp);
        }

        return rect;
    }