Commit Graph

19 Commits (master)

Author SHA1 Message Date
Marius Kintel fac2340989 More correct handling of empty geometry. Should fix a few crash bugs 2014-11-27 20:40:37 -05:00
Marius Kintel 4d6db2caa7 fixes crash when intersecting 3 or more 2d objects which results in an empty polygon 2014-11-27 15:27:09 -05:00
Oskar Linde acd6cb1a4e Bugfix: Work around Clipper's incorrect isHole status after offset() 2014-06-06 13:06:37 +02:00
Ben Gamari 3d21e84b44 clipper-utils: Fix signed-ness warning 2014-04-28 13:37:43 -04:00
Torsten Paul 49dc984bef Add offset() module to inset/outset polygons using Clipper (fixes #483). 2014-03-30 23:41:37 +02:00
Marius Kintel c59fa49693 Merge pull request #611 from OskarLinde/minkowski2_bug
Minkowski2 bug
2014-02-01 18:48:54 -08:00
Oskar Linde 1942205585 toPolygon2D() now use Clipper's cleaning algorithm
The old polygon simplification algorithm in toPolygon2D() was broken.
It could create self-intersecting paths which made CGAL barf and
resulted in non-manifold meshes. It has been replaced with the one
built into Clipper. I am not sure Clipper's is guaranteed to be
correct either, but it at least seems to have fewer fail cases.
2014-02-01 20:53:10 +01:00
Oskar Linde b10e9bc5c5 Fix a problem with the 2D Minkowski implementation
Polygons were clipped too soon, resulting in numerical robustness errors
which could create cracks in the resulting geometry. This patch corrects
the problem by postponing Clipper's union operation until the Minkowski
insides are filled. The result is also a net reduction of the number
of Clipper operations.
2014-02-01 16:18:04 +01:00
Marius Kintel 0600d80046 Moved special handling of intersection to ClipperUtils 2014-01-27 23:25:33 -05:00
Marius Kintel faf1e2a3a5 bugfix: 2D minkowski was slightly broken; only one child and >2 children didn't work correctly 2014-01-19 12:27:11 -05:00
Marius Kintel 2edc0c214f Use CLipperLib's PolyTree to identify negative contours 2014-01-09 02:06:36 -05:00
Marius Kintel 5f7d81c791 Extract clipper operations to ClipperLib::apply(), added sanitized flag to Polygon2d 2014-01-09 02:06:36 -05:00
Marius Kintel 1f0705f8a0 Sanitize input polygons for filename parameter to extrude modules 2014-01-09 02:06:35 -05:00
Marius Kintel 4a8de1e53a Upgraded ClipperLib to 6.1.2 - fixes a projection crash 2014-01-09 02:06:35 -05:00
Marius Kintel 02cd792cb3 Implemented minkowski (2D and 3D) 2014-01-09 02:06:34 -05:00
Marius Kintel 2ca39595cd This should fix Clipper-based non-cut projection 2014-01-09 02:06:34 -05:00
Marius Kintel af59b1983c Implemented non-cut projection using ClipperLib. Upgraded ClipperLib to V6 2014-01-09 02:06:33 -05:00
Marius Kintel b04d0ccc52 bugfix: ClipperLib usage was not handling polygons with internal holes properly 2014-01-09 02:06:33 -05:00
Marius Kintel b8c15cfb8a Preliminary large refactoring: Created GeometryEvaluator as a replacement for PolySetEvaluator. Use ClipperLib for 2D CSG (first baby steps). This design is far from perfect but sacrifice design for staying in the green. This version is broken, but can render primitives. 2014-01-09 02:06:32 -05:00