<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

<!--

   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

-->
<!-- ====================================================================== -->
<!-- check updates on gradients, filter, mask, and clip regarding to        -->
<!-- geometry updates                                                       -->
<!--                                                                        -->
<!-- @author tkormann@ilog.fr                                               -->
<!-- @version $Id$ -->
<!-- ====================================================================== -->

<?xml-stylesheet type="text/css" href="../../resources/style/test.css" ?>  

<svg xmlns="http://www.w3.org/2000/svg" 
     xmlns:xlink="http://www.w3.org/1999/xlink"
     id="body" width="450" height="500" viewBox="0 0 450 500">

    <title>Marker with geometry updates</title>

    <text x="50%" y="45" class="title">Marker with geometry updates</text>

    <script type="text/ecmascript">

    var svgNamespaceURI = "http://www.w3.org/2000/svg";

    function changeGeometry(evt) {
        evt.target.setAttribute("points", 
         "130 150 150 170 110 190 150 210 110 230 150 250 110 270 150 290 110 310 150 330 110 350 130 370");
    }

    </script>

<defs>

<marker id="markerUserSpaceOnUse" refX="8" refY="8" markerUnits="userSpaceOnUse" markerWidth="16" markerHeight="16">
  <circle cx="8" cy="8" r="8" style="fill:#aaa" />
</marker>

<marker id="markerStrokeWidth" refX="2" refY="2" markerUnits="strokeWidth" markerWidth="4" markerHeight="4">
  <circle cx="2" cy="2" r="2" style="fill:#aaa" />
</marker>

</defs>


<g id="test-content">

<g id="board" style="fill:none; stroke:black">
        <rect x="40" y="80" width="200" height="20" style="fill:#eee"/>
        <rect x="240" y="80" width="200" height="20" style="fill:#eee"/>

        <rect x="40" y="100" width="200" height="380" />
        <rect x="240" y="100" width="200" height="380" />

        <rect x="20" y="100" width="20" height="380" style="fill:#eee"/>

        <g style="fill:black; stroke:none; text-anchor:middle">
                <text x="134" y="94">strokeWidth</text>
                <text x="314" y="94">userSpaceOnUse</text>
                <text x="0" y="0" transform="translate(34 290)rotate(-90)">&lt;marker></text>
        </g>
</g>

<polyline onload="changeGeometry(evt)" 
          points="130 150 110 170 150 190 110 210 150 230 110 250 150 270 110 290 150 310 110 330 150 350 130 370" 
          style="stroke:black; stroke-width:4; fill:none; marker:url(#markerStrokeWidth)" />


<polyline transform="translate(200 0)" onload="changeGeometry(evt)" 
          points="130 150 110 170 150 190 110 210 150 230 110 250 150 270 110 290 150 310 110 330 150 350 130 370" 
          style="stroke:black; stroke-width:4; fill:none; marker:url(#markerUserSpaceOnUse)" />

</g>



</svg>
