/*
* Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code 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
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.webkit.graphics;
import java.lang.annotation.Native;
public abstract class WCPath<P> extends Ref {
/* The WindRule should be compliant with
* WebCore/platform/graphics/Path.h
*/
The winding rule constant for specifying a non-zero rule
for determining the interior of a path.
The non-zero rule specifies that a point lies inside the
path if a ray drawn in any direction from that point to
infinity is crossed by path segments a different number
of times in the counter-clockwise direction than the
clockwise direction.
/**
* The winding rule constant for specifying a non-zero rule
* for determining the interior of a path.
* The non-zero rule specifies that a point lies inside the
* path if a ray drawn in any direction from that point to
* infinity is crossed by path segments a different number
* of times in the counter-clockwise direction than the
* clockwise direction.
*/
@Native public static final int RULE_NONZERO = 0;
The winding rule constant for specifying an even-odd rule
for determining the interior of a path.
The even-odd rule specifies that a point lies inside the
path if a ray drawn in any direction from that point to
infinity is crossed by path segments an odd number of times.
/**
* The winding rule constant for specifying an even-odd rule
* for determining the interior of a path.
* The even-odd rule specifies that a point lies inside the
* path if a ray drawn in any direction from that point to
* infinity is crossed by path segments an odd number of times.
*/
@Native public static final int RULE_EVENODD = 1;
public abstract void addRect(double x, double y, double w, double h);
public abstract void addEllipse(double x, double y, double w, double h);
public abstract void addArcTo(double x1, double y1, double x2, double y2, double r);
public abstract void addArc(double x, double y, double r, double startAngle,
double endAngle, boolean aclockwise);
public abstract boolean contains(int rule, double x, double y);
public abstract WCRectangle getBounds();
public abstract void clear();
public abstract void moveTo(double x, double y);
public abstract void addLineTo(double x, double y);
public abstract void addQuadCurveTo(double x0, double y0, double x1, double y1);
public abstract void addBezierCurveTo(double x0, double y0,
double x1, double y1,
double x2, double y2);
public abstract void addPath(WCPath path);
public abstract void closeSubpath();
public abstract boolean hasCurrentPoint();
public abstract boolean isEmpty();
public abstract void translate(double x, double y);
public abstract void transform(double mxx, double myx,
double mxy, double myy,
double mxt, double myt);
public abstract int getWindingRule();
public abstract void setWindingRule(int rule);
public abstract P getPlatformPath();
public abstract WCPathIterator getPathIterator();
}