javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGPath.java
author hgs
Fri, 15 Oct 2010 12:29:39 +0300
changeset 80 d6dafc5d983f
parent 56 abc41079b313
child 87 1627c337e51e
permissions -rw-r--r--
v2.2.19_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     1
/*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     2
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     3
* All rights reserved.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     8
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     9
* Initial Contributors:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    11
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    12
* Contributors:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    13
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    14
* Description:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    15
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    16
*/
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    17
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    18
package com.nokia.microedition.m2g;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    19
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    20
import org.w3c.dom.svg.*;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    21
import org.w3c.dom.DOMException;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    22
import java.io.IOException;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    23
import com.nokia.mj.impl.utils.Logger;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    24
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    25
/**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    26
 * This interface represents an "SVGPath" datatype used to define the path geometry.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    27
 * Corresponds to SVG path specification or the "d" attribute.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    28
 */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    29
public class M2GSVGPath extends M2GObject implements SVGPath
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    30
{
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    31
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    32
    // STATIC CONTANTS
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    33
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    34
    /* Optimization: static finals changed to local variables
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    35
    private static final String SEGMENT_INDEX_SIZE_ESTR =
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    36
    "The segment index is out of bounds.";
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    37
    private static final String PARAMETER_INDEX_SIZE_ESTR =
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    38
    "The parameter index is out of bounds for this segment's type.";
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    39
    */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    40
    private static final int CLOSE_PARAMETER_COUNT = 0;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    41
    private static final int MOVE_TO_PARAMETER_COUNT = 2;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    42
    private static final int LINE_TO_PARAMETER_COUNT = 2;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    43
    private static final int CURVE_TO_PARAMETER_COUNT = 6;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    44
    private static final int QUAD_TO_PARAMETER_COUNT = 4;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    45
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    46
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    47
    // VARIABLES
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    48
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    49
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    50
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    51
    // METHODS
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    52
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    53
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    54
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    55
     * Constructor
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    56
     * @param aHandle - native path object handle
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    57
     * @param aDoCleanup - true if the native object needed to be deleted
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    58
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    59
    protected M2GSVGPath(int aHandle)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    60
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    61
        super();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    62
        setHandle(aHandle);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    63
        doConstruct();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    64
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    65
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    66
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    67
    * @see com.nokia.microedition.m2g.M2GObject#doCheckValidity()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    68
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    69
    public boolean doCheckValidity()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    70
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    71
        // SVGPath is invalid if it begins with any segment other
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    72
        // than MOVE_TO segment. Note that an empty SVGPath is still a valid value.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    73
        try
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    74
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    75
            if (!super.doCheckValidity() ||
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    76
                    ((getNumberOfSegments() != 0) && (getSegment(0) != MOVE_TO)))
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    77
            {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    78
                return false;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    79
            }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    80
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    81
        catch (IOException e)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    82
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    83
            return false;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    84
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    85
        return true;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    86
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    87
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    88
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    89
     * @see com.nokia.microedition.m2g.M2GObject#doCleanup()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    90
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    91
    protected void doCleanup()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    92
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    93
        _destroyPath(getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    94
            getHandle());
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    95
        resetHandles();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    96
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    97
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    98
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    99
     * @see com.nokia.microedition.m2g.M2GObject#doConstruct()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   100
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   101
    protected void doConstruct()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   102
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   103
        super.doConstruct();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   104
        register(this);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   105
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   106
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   107
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   108
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   109
     * @see org.w3c.dom.svg.SVGPath#getNumberOfSegments()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   110
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   111
    public int getNumberOfSegments()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   112
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   113
        return _getNumberOfSegments(getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   114
                                    getHandle() );
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   115
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   116
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   117
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   118
     * @see org.w3c.dom.svg.SVGPath#getSegment()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   119
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   120
    public short getSegment(int index) throws DOMException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   121
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   122
        if ((index < 0) ||
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   123
                (index >= getNumberOfSegments()))
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   124
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   125
            Logger.ELOG(Logger.EJavaUI, "getSegment() - exception:"
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   126
                        + /*SF*/"The segment index is out of bounds."/*SF*/);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   127
            throw new DOMException(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   128
                DOMException.INDEX_SIZE_ERR,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   129
                /*SF*/"The segment index is out of bounds."/*SF*/);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   130
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   131
        return M2GSVGConstants.parsePathCommand(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   132
                   _getSegmentType(getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   133
                                   getHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   134
                                   index)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   135
               );
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   136
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   137
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   138
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   139
     * Checks that parameter index is valid
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   140
     * @param aCommand -
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   141
     * @param aParameterIndex -
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   142
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   143
    protected void checkParameterIndex(int aCommand, int aParameterIndex) throws DOMException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   144
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   145
        if ((aCommand == CLOSE && aParameterIndex >= CLOSE_PARAMETER_COUNT) ||
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   146
                (aCommand == MOVE_TO && aParameterIndex >= MOVE_TO_PARAMETER_COUNT)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   147
                || (aCommand == LINE_TO && aParameterIndex >= LINE_TO_PARAMETER_COUNT)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   148
                || (aCommand == CURVE_TO && aParameterIndex >= CURVE_TO_PARAMETER_COUNT)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   149
                || (aCommand == QUAD_TO && aParameterIndex >= QUAD_TO_PARAMETER_COUNT))
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   150
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   151
            throw new DOMException(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   152
                DOMException.INDEX_SIZE_ERR,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   153
                /*SF*/"The parameter index is out of bounds for this segment's type."/*SF*/);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   154
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   155
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   156
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   157
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   158
    * @see org.w3c.dom.svg.SVGPath#close()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   159
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   160
    public void close()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   161
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   162
        _addClose(getNativeSVGProxyHandle(), getHandle());
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   163
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   164
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   165
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   166
     * @see org.w3c.dom.svg.SVGPath#curveTo()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   167
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   168
    public void curveTo(float x1, float y1, float x2, float y2, float x3, float y3)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   169
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   170
        _addCurveTo(getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   171
            getHandle(), x1, y1, x2, y2, x3, y3);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   172
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   173
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   174
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   175
     * @see org.w3c.dom.svg.SVGPath#getSegmentParam()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   176
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   177
    public float getSegmentParam(int cmdIndex, int paramIndex)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   178
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   179
        if ((cmdIndex >= getNumberOfSegments()) ||
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   180
                (cmdIndex < 0) ||
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   181
                (paramIndex < 0))
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   182
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   183
            Logger.ELOG(Logger.EJavaUI, "getSegmentParam() - end, exception:"
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   184
                        + /*SF*/"The segment index is out of bounds."/*SF*/);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   185
            throw new DOMException(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   186
                DOMException.INDEX_SIZE_ERR,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   187
                /*SF*/"The segment index is out of bounds."/*SF*/);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   188
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   189
        short command = getSegment(cmdIndex);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   190
        // Checks the validity of the parameter index.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   191
        checkParameterIndex(command, paramIndex);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   192
        return _getSegmentParameter(getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   193
                                    getHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   194
                                    cmdIndex,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   195
                                    paramIndex
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   196
                                   );
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   197
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   198
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   199
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   200
     * @see org.w3c.dom.svg.SVGPath#lineTo()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   201
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   202
    public void lineTo(float x, float y)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   203
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   204
        _addLineTo(getNativeSVGProxyHandle(), getHandle(), x, y);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   205
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   206
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   207
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   208
     * @see org.w3c.dom.svg.SVGPath#moveTo()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   209
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   210
    public void moveTo(float x, float y)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   211
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   212
        _addMoveTo(getNativeSVGProxyHandle(), getHandle(), x, y );
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   213
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   214
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   215
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   216
     * @see org.w3c.dom.svg.SVGPath#quadTo()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   217
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   218
    public void quadTo(float x1, float y1, float x2, float y2)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   219
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   220
        _addQuadTo(getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   221
                   getHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   222
                   x1,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   223
                   y1,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   224
                   x2,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   225
                   y2 );
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   226
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   227
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   228
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   229
    // NATIVE METHODS
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   230
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   231
    private static native void _addClose(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   232
        int aSVGProxyHandle, int aPathHandle);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   233
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   234
    private static native void _addCurveTo(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   235
        int aSVGProxyHandle, int aPathHandle,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   236
        float aX1, float aY1, float aX2, float aY2, float aX3, float aY3);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   237
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   238
    private static native void _addLineTo(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   239
        int aSVGProxyHandle, int aPathHandle, float aX, float aY);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   240
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   241
    private static native void _addMoveTo(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   242
        int aSVGProxyHandle, int aPathHandle, float aX, float aY);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   243
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   244
    private static native void _addQuadTo(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   245
        int aSVGProxyHandle, int aPathHandle,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   246
        float aX1, float aY1, float aX2, float aY2);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   247
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   248
    static native int _createPath(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   249
        int aSVGProxyHandle);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   250
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   251
    private static native void _destroyPath(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   252
        int aSVGProxyHandle, int aPathHandle);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   253
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   254
    private static native int _getNumberOfSegments(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   255
        int aSVGProxyHandle, int aPathHandle);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   256
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   257
    private static native float _getSegmentParameter(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   258
        int aSVGProxyHandle, int aPathHandle, int aCmdIndex, int aParamIndex);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   259
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   260
    private static native short _getSegmentType(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   261
        int aSVGProxyHandle, int aPathHandle, int aIndex);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   262
}
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   263