Skip to content

mapbox/lineclip

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

lineclip

Build Status Coverage Status

A very fast JavaScript library for clipping polylines and polygons by a bounding box.

lineclip(
    [[-10, 10], [10, 10], [10, -10]], // line
    [0, 0, 20, 20]); // bbox
// returns [[[0, 10], [10, 10], [10, 0]]]

API

lineclip.polyline(points, bbox[, result])

  • points — an array of [x, y] points
  • bbox — a bounding box as [xmin, ymin, xmax, ymax]
  • result — an array to append the results to

Returns an array of clipped lines.

lineclip is an alias to lineclip.polyline.

lineclip.polygon(points, bbox)

Returns a clipped polygon.

Install

Install with NPM:

npm install lineclip

To build a browser-compatible version, clone the repository locally, then run:

npm install -g browserify
browserify -s lineclip index.js > lineclip.js

Changelog

1.1.5 (Sep 23, 2015)

  • Fixed a bug where polygon clip broke on out-of-bbox polygons.

1.1.4 (Sep 22, 2015)

  • Fixed a bug where last point was omitted if the last two points are in bbox.
  • Fixed a bug where a line outside of bbox would produce [[]] instead of [].

1.1.3 (Sep 12, 2015)

  • Fixed a polygon clipping race condition.

1.1.2 (Sep 11, 2015)

  • Fixed a bug that completely broke the clipping on many cases. Sorry!

1.1.1 (Sep 11, 2015)

  • Fixed a polyline clipping edge case.

1.1.0 (Sep 11, 2015)

  • Added Sutherland-Hodgeman polygon clipping (lineclip.polygon).

1.0.1 (Sep 11, 2015)

  • Minor code cleanup and optimizations.

1.0.0 (Sep 8, 2015)

  • Initial release.

About

A very fast JavaScript polyline and polygon clipping library

Resources

License

Stars

Watchers

Forks

Packages

No packages published