jonobr1 / two.js

A renderer agnostic two-dimensional drawing api for the web.
https://two.js.org
MIT License
8.29k stars 454 forks source link

[Enhancement] Move Two.Utils.read.XXX to Two.XXX.parse #650

Open jonobr1 opened 2 years ago

jonobr1 commented 2 years ago

Is your feature request related to a problem? Please describe. Currently the SVG interpreter relies on replicating SVG strings into elements and parsing them iteratively in a big for loop. This does not give developers the ability to parse individual elements ad hoc. Moving each read function to a static parse method on each object would allow for parsing of entire scenes as well as ad hoc parsing.

Describe the solution you'd like For all shape primitives to have a parse method that works something like this:

const path = Two.Path.parse('<path d="..." fill="red" stroke="transparent" />');
two.add(path);

Additional context This will improve code portability and make this issue more feasible.