<?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.

-->
<!-- ====================================================================== -->
<!-- Illustrates how a SVG Normalized Path does not have loss of precision. -->
<!--                                                                        -->
<!-- @author andrest@world-affair.com                                       -->
<!-- @version $Id: normalizedPathTest.svg                                   -->
<!-- ====================================================================== -->

<svg id="body" width="450" height="500" viewBox="0 0 450 500"
    xmlns="http://www.w3.org/2000/svg" 
    xmlns:xlink="http://www.w3.org/1999/xlink" 
    onload="normalizePaths();">
  <script type="text/ecmascript">
    function normalizePaths() {
        var originalPath= document.getElementById("SamplePath");
        var normalizedPath = originalPath.cloneNode(false);
        
        var list = normalizedPath.getNormalizedPathSegList();
        list.insertItemBefore(list.removeItem(0), 0);
        
        document.getElementById("overlay").appendChild(normalizedPath);
    }
  </script>
  <title>Normalized Path Test</title>

  <g id="background" transform="translate(10,10)" style="fill:none;stroke:black;stroke-width:2">
    <rect x="0" y ="0" width="430" height="480"/>
    <rect x="5" y ="5" width="420" height="20" fill="gray"/>
    <text x="10" y ="20" stroke="none" fill="yellow">Normalized Path Test</text>
  </g>
  <g id="canvas" style="fill:none;stroke:darkgray;stroke-width:10" transform="translate(75,60)">
    <path id="SamplePath" d="M0,50 C0,0 50,0 50,50 S100,100 100,50 h20 l20,30 v-30 
      c0,-50 50,-50 50,0 s50,50 50,0 L 280,50 v60 h-60 v40
      a50,50 0 1,1 -50,50 A60 80 0 0,0 150,300
      Q125,350 100,300q-25-50 -50,0t-50,0q-40,-20 0-80T0,150
      l-40,-10 V380 H150 a25,25 -30 0,1 50,-25 l 50,-25 
      a25,50 -30 0,1 50,-25 l 50,-25"/>
  </g>
  <g id="overlay" style="fill:none;stroke:lightgray;stroke-width:3" transform="translate(75,60)">

  </g>
</svg>
