mirror of
git://projects.qi-hardware.com/cae-tools.git
synced 2024-12-23 10:38:59 +02:00
46c8f8653c
The only functions that care about this at the moment are from CGAL, and there we can determine from context what to do.
52 lines
1.8 KiB
Plaintext
52 lines
1.8 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:
|
|
- change the license from GPL to LGPL
|
|
- transform CGAL's idea of outer polygons into something we can use
|
|
- use more meaningful offset/overlap model for area fill
|
|
- check for memory leaks
|
|
- try to generate dependencies also for *.cpp
|
|
|
|
Prerequisite:
|
|
libcgal-dev
|