Metadata-Version: 1.0
Name: svg.path
Version: 1.0b1
Summary: SVG path objects and parser
Home-page: http://svn.plone.org/svn/collective/
Author: Lenart Regebro
Author-email: regebro@gmail.com
License: CC0 1.0 Universal
Description: svg.path
        ========
        
        svg.path is a collection of objects that implement the different path
        commands in SVG, and a parser for SVG path definitions.
        
        Usage
        -----
        
        There are four path segment objects, ``Line``, ``Arc``, ``CubicBezier`` and
        ``QuadraticBezier``.`There is also a ``Path`` object that acts as a
        collection of the path segment objects.
        
        All of these objects have a ``.point()`` and a ``.length()`` function. 
        
        All coordinate values for these functions are given as ``complex`` values,
        where the ``.real`` part represents the X coordinate, and the ``.imag`` part
        representes the Y coordinate.
        
        The ``.point()`` function will return the X and Y coordinates of a point on
        the path, where the point is given as a floating point value where ``0.0`` is
        the start of the path and ``1.0`` is end end. 
        
        The ``.length()`` function will return the path segment or paths length. This
        is in some cases done by geometric approximation and for this reason **may be
        very slow**.
        
        There is also a ``parse_path()`` function that will take an SVG path definition
        and return a ``Path`` object.
        
        Classes
        .......
        
        These are the SVG path segment classes. See the `SVG specifications
        <http://www.w3.org/TR/SVG/paths.html>`_ for more information on what each
        parameter means.
        
        * ``Line(start, end)``    
        
        * ``Arc(start, radius, rotation, arc, sweep, end)``
        
        * ``QuadraticBezier(start, control1, control2, end)``
        
        * ``CubicBezier(start, control1, control2, end)``
        
        In addition to that, there is the ``Path`` class, which is instantiated
        with a sequence of path segments:
        
            ``Path(*segments)``
            
        That ``Path`` class is a mutable sequence, so it behaves like a list.
        
        
        Examples
        ........
        
        This SVG path example draws a triangle:
        
            >>> from svg.path import parse_path, Path, Line, QuadraticBezier
            
            >>> path1 = parse_path('M 100 100 L 300 100 L 200 300 z')
        
        You can format SVG paths in many different ways, all valid paths should be
        accepted:
        
            >>> path2 = parse_path('M100,100L300,100L200,300z')
            
        And these paths should be equal:
        
            >>> path1 == path2
            True
        
        You can also build a path from objects:
        
            >>> path3 = Path(Line(100+100j,300+100j), Line(300+100j, 200+300j), Line(200+300j, 100+100j))
            
        And it should again be equal to the first path:
        
            >>> path1 == path2
            True
        
        Paths are mutable sequences, you can slice and append:
        
            >>> path1.append(QuadraticBezier(300+100j, 200+200j, 200+300j))
            >>> len(path1[2:]) == 2
            True
        
        
        Todo
        ----
        
        This module should have a way to generate path definitions from a path, for
        completeness.
        
        Licence
        -------
        
        This module is under a CC0 1.0 Universal licence. 
        http://creativecommons.org/publicdomain/zero/1.0/
        
        Contributors
        ============
        
        Lennart Regebro <regebro@gmail.com>, Original Author
        
        Thanks to Martin R (http://stackoverflow.com/users/1187415/martin-r) for
        finding some bugs in the Arc calculations.
        
        Changelog
        =========
        
        1.0b1 (2013-02-03)
        ------------------
        
        - Original release.
        
Keywords: svg path maths
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Topic :: Multimedia :: Graphics
