Java Graphics Clip subtractClip(final Graphics g, final Shape clip)

Here you can find the source of subtractClip(final Graphics g, final Shape clip)

Description

subtract Clip

License

Open Source License

Declaration

public static Shape subtractClip(final Graphics g, final Shape clip) 

Method Source Code


//package com.java2s;
/*//  ww w.  j a  va2 s . c o  m
 * This file is part of WebLookAndFeel library.
 *
 * WebLookAndFeel library is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * WebLookAndFeel library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with WebLookAndFeel library.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.awt.*;
import java.awt.geom.Area;

public class Main {
    public static Shape subtractClip(final Graphics g, final Shape clip) {
        return subtractClip(g, clip, true);
    }

    public static Shape subtractClip(final Graphics g, final Shape clip, final boolean shouldSetup) {
        if (shouldSetup && clip != null) {
            final Shape oldClip = g.getClip();
            if (oldClip != null) {
                // Area-based substraction
                final Area finalClip = new Area(oldClip);
                finalClip.subtract(new Area(clip));
                g.setClip(finalClip);
            }
            return oldClip;
        } else {
            return null;
        }
    }
}

Related

  1. mergeClip(Graphics g, Shape clip)
  2. resetClip(Graphics g)
  3. restoreClip(final Graphics g, final Shape clip)