Notify President Madagascar

    svg-to-poly

    1.0.1 • Public • Published

    svg-to-poly

    Converts an SVG into a Planar Straight Line Graph in the .poly format from Triangle.

    The default output is a JSON with the same property names as struct triangulateio defined in triangle.h from Triangle.

    An alternative output is a formatted string which could be written onto a .poly file.

    A .poly file represents a PSLG, as well as some additional information. PSLG stands for Planar Straight Line Graph, a term familiar to computational geometers. By definition, a PSLG is just a list of vertices and segments. A .poly file can also contain information about holes and concavities, as well as regional attributes and constraints on the areas of triangles.

    Full description of the .poly file format.

    demo

    Install

    npm install svg-to-poly
    

    Example

    const svgToPoly = require('svg-to-poly');
    const loadSvg = require('load-svg');
     
    loadSvg('./arrow460.svg', (err, svg) => {
      console.log(svgToPoly(svg));
    });

    Output:

    {
      pointlist: [[0.86, -0.50], [0.83, -0.55] ...],
      segmentlist: [[0, 1], [1, 2] ...],
      holelist: [[0.23, -0.40]],
      numberofpoints: 115,
      numberofsegments: 115,
      numberofholes: 1
    }

    Alternative with format() to get a string in the .poly format:

    const svgToPoly = require('svg-to-poly');
    const loadSvg = require('load-svg');
     
    loadSvg('./arrow460.svg', (err, svg) => {
      console.log(svgToPoly.format(svg));
    });

    Output:

    # points
    115 2 0 0
    0 0.86 -0.50
    1 0.83 -0.55
    ...
    # segments
    115 0
    0 0 1
    1 1 2
    ...
    # holes
    1
    0 0.23 -0.40
    

    Demo

    svg-to-poly demo

    Usage

    svgToPoly(svg, options)

    • svg an SVG element

    • options

      • flat (default false) flatten nested arrays i.e. [[x, y], [x, y]] into [x, y, x, y]
      • normalize (default false) normalizes path to its bounding box, returns points in the -1.0 ... 1.0 range
      • threshold (default 0.2) threshold passed to simplify-js

    Returns an object with the parsed properties.

    svgToPoly.format(svg, options)

    Same as above.

    Returns a string in the .poly format.

    Thanks

    svg-to-poly benefits from the groundwork laid by some other great packages:

    See Also

    License

    MIT, see LICENSE for details.

    Keywords

    none

    Install

    npm i svg-to-poly

    DownloadsWeekly Downloads

    1

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    9.94 kB

    Total Files

    4

    Last publish

    Collaborators

    • brunoimbrizi