Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / svg / SVGPathElement.idl
1 /*
2  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
3  * Copyright (C) 2006 Apple Inc. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
18  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  */
26
27 [
28     TypeChecking=Interface,
29 ] interface SVGPathElement : SVGGeometryElement {
30     readonly attribute SVGAnimatedNumber pathLength;
31
32     float getTotalLength();
33     SVGPoint getPointAtLength(float distance);
34     unsigned long getPathSegAtLength(float distance);
35
36     SVGPathSegClosePath createSVGPathSegClosePath();
37
38     SVGPathSegMovetoAbs createSVGPathSegMovetoAbs(float x, float y);
39     SVGPathSegMovetoRel createSVGPathSegMovetoRel(float x, float y);
40
41     SVGPathSegLinetoAbs createSVGPathSegLinetoAbs(float x, float y);
42     SVGPathSegLinetoRel createSVGPathSegLinetoRel(float x, float y);
43
44     SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs(
45         float x, float y, float x1, float y1, float x2, float y2);
46     SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel(
47         float x, float y, float x1, float y1, float x2, float y2);
48
49     SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(
50         float x, float y, float x1, float y1);
51     SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(
52         float x, float y, float x1, float y1);
53
54     SVGPathSegArcAbs createSVGPathSegArcAbs(
55         float x, float y, float r1, float r2,
56         float angle, boolean largeArcFlag, boolean sweepFlag);
57     SVGPathSegArcRel createSVGPathSegArcRel(
58         float x, float y, float r1, float r2,
59         float angle, boolean largeArcFlag, boolean sweepFlag);
60
61     SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(float x);
62     SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(float x);
63
64     SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(float y);
65     SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(float y);
66
67     SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(
68         float x, float y, float x2, float y2);
69     SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(
70         float x, float y, float x2, float y2);
71
72     SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y);
73     SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y);
74
75     readonly attribute SVGPathSegList pathSegList;
76     readonly attribute SVGPathSegList normalizedPathSegList;
77     readonly attribute SVGPathSegList animatedPathSegList;
78     readonly attribute SVGPathSegList animatedNormalizedPathSegList;
79 };