mirror of
git://projects.qi-hardware.com/cae-tools.git
synced 2024-12-23 00:34:16 +02:00
49 lines
1.6 KiB
Plaintext
49 lines
1.6 KiB
Plaintext
poly2d - Yet another 2D polygon library
|
|
=======================================
|
|
|
|
Why do we need another 2D polygon library, if there are already CGAL,
|
|
Boost, Clipper, GPC, ... ?
|
|
|
|
All the above are either written in a weird language, are under a
|
|
non-Free license, or simply don't provide the feature set we need
|
|
here. poly2d is written in C, doesn't depend on non-standard
|
|
libraries, and is licensed under the GPL (will change to LGPL).
|
|
|
|
poly2d serves itself liberally from code already in cameo but
|
|
provides a simpler and cleaner interface. The first objective is
|
|
to provide the tools to replace the (badly broken) area filling
|
|
operation in cameo. Later, poly2d could replace more parts of
|
|
cameo.
|
|
|
|
poly2d puts more emphasis on simplicity than on performance. Some
|
|
functions expect closed polygons that don't self-intersect. For now,
|
|
it doesn't matter whether polygons are clockwise or counter-clockwise.
|
|
The table below shows the capabilities
|
|
|
|
Open Min. vertices
|
|
| Concave
|
|
| | Self-intersect
|
|
| | | |
|
|
Y Y Y 0 p2d_contains_poly(b), p2d_copy, p2d_free, p2d_free_all,
|
|
p2d_is_closed, p2d_no_intersect, p2d_reverse,
|
|
p2d_vertices, p2d_write_gnuplot, p2d_write_gnuplot_all
|
|
Y Y Y 1 p2d_read_gnuplot
|
|
- Y Y 0 p2d_simplify
|
|
- Y - 3 p2d_is_cw
|
|
- Y - 3 p2d_contains_point, p2d_contains_poly (a),
|
|
- Y - 3 p2d_area*, p2d_offset*
|
|
|
|
Not yet implemented:
|
|
- p2d_simplify (low priority - the offsetting from CGAL already covers
|
|
the main use case)
|
|
|
|
Not yet specified:
|
|
- subtraction (do we actually need it ?)
|
|
|
|
Other:
|
|
- transform CGAL's idea of outer polygons into something we can use
|
|
- check for memory leaks
|
|
|
|
Prerequisite:
|
|
libcgal-dev
|