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