jbuckmccready / CavalierContours

2D polyline library for offsetting, combining, etc.
MIT License
389 stars 77 forks source link

Create Stable C API Release #3

Open jbuckmccready opened 4 years ago

jbuckmccready commented 4 years ago

Create version tags and create a stable C API interface that follows semantic versioning (https://semver.org/). A C API will make it easy to create bindings from other languages and allow for changes and updates to the underlying C++ implementation without breaking users.

A potentially small overhead will be incurred in copying from the C API structures/arrays to the C++ structures but should be negligible for the algorithms being used (offsetting, combining, etc.).

jbuckmccready commented 4 years ago

Initial pass at C API is done, not all tests are fully implemented. Plan is to wrap C API in another .NET project to verify the API is clean/not cumbersome to use (and allows for minimal allocations via pooling).