Small collection of computational geometry algorithms in Haxe.
Based on:
- https://web.archive.org/web/20180316055432/http://devblog.phillipspiess.com/better%20know%20an%20algorithm/2010/02/23/better-know-marching-squares.html (C# - by Phil Spiess)
- http://www.tomgibara.com/computer-vision/marching-squares (Java - by Tom Gibara)
Based on:
- http://karthaus.nl/rdp/ (JS - by Marius Karthaus)
- http://stackoverflow.com/questions/849211/shortest-distance-between-a-point-and-a-line-segment (JS - by Grumdrig)
Based on:
- https://github.com/mapbox/earcut (JS - by Vladimir Agafonkin)
- http://www.ewjordan.com/earClip/ (Java - by Eric Jordan)
Based on:
- https://web.archive.org/web/20140701210122/http://mnbayazit.com/406/bayazit (C - by Mark Bayazit)
- http://www.dyn4j.org/ (Java - by William Bittle)
Based on:
- http://www.cs.ubc.ca/~snoeyink/demos/convdecomp/VPDemo.html (Java - by Jack Snoeyink)
Based on:
- http://www.cs.ubc.ca/~snoeyink/demos/convdecomp/MCDDemo.html (Java - by Jack Snoeyink & Mark Keil)
- J. Mark Keil, Jack Snoeyink: On the Time Bound for Convex Decomposition of Simple Polygons. Int. J. Comput. Geometry Appl. 12(3): 181-192 (2002)
Based on:
- Fu Chang, Chun-jen Chen, Chi-jen Lu: A linear-time component-labeling algorithm using contour tracing technique (2004)
Based on:
- Visvalingam M., Whyatt J. D.: Line generalisation by repeated elimination of the smallest area (1992)
- http://bost.ocks.org/mike/simplify/ (JS - by Mike Bostock)
- https://github.com/jonasmalacofilho/dheap (Haxe - by Jonas Malaco Filho)
- http://en.wikipedia.org/wiki/Binary_heap (Binary (Min)Heap)
Based on:
- GLU Libtess (by Eric Veach, July 1994)
- tess2.js (JS - by Mikko Mononen, Aug 2013)
Based on:
- http://en.wikipedia.org/wiki/Marching_squares
- https://github.com/deltaluca/nape (Haxe - by Luca Deltodesco)
- https://github.com/scikit-image/scikit-image (Python - by scikit-image team)
Based on:
- https://github.com/ivanfratric/polypartition (CPP - by Ivan Fratric)
- https://web.archive.org/web/20140102033642/http://www.philvaz.com/compgeom/ (by Phil Porvaznik)
Based on:
- George Merrill Chaikin: An algorithm for high-speed curve generation (1974)
- https://sighack.com/post/chaikin-curves (Java - by Manohar Vanga)
Based on:
- Ling Wu, Jun-Hai Yong, You-Wei Zhang, and Li Zhang: Multi-step Subdivision Algorithm for Chaikin Curves (2004)
- http://win.doomitalia.it/varie/chaikin.pdf (Matlab - by Fabio Roman, 2009)
The only dependency is hxPixels, and only for the algorithms needing access to pixels.
Code is extensively doc-commented, and I tried my best to make it easy/intuitive to use. You can also take a look at the demo for a quick overview on how to use the different classes.
hxGeomAlgo is based on the work of many developers and it wouldn't exist if it weren't for them. See the CREDITS file for details.
hxGeomAlgo is developed by Giuseppe Di Mauro (azrafe7) and released under the MIT license (except for Tess2.hx
, which is licensed under SGI B 2.0). See the LICENSE file for details.