Skip to content

Commit

Permalink
only send contours with an area
Browse files Browse the repository at this point in the history
  • Loading branch information
typemytype committed Dec 15, 2016
1 parent 0b8d453 commit e65175b
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions Lib/booleanOperations/booleanOperationManager.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,19 @@ def clipExecute(subjectContours, clipContours, operation, subjectFillType="nonZe
pc = pyclipper.Pyclipper()

for i, subjectContour in enumerate(subjectContours):
try:
pc.AddPath(subjectContour, pyclipper.PT_SUBJECT)
except pyclipper.ClipperException:
raise InvalidSubjectContourError("contour %d is invalid for clipping" % i)
# ignore paths with no area
if pyclipper.Area(subjectContour):
try:
pc.AddPath(subjectContour, pyclipper.PT_SUBJECT)
except pyclipper.ClipperException:
raise InvalidSubjectContourError("contour %d is invalid for clipping" % i)
for j, clipContour in enumerate(clipContours):
try:
pc.AddPath(clipContour, pyclipper.PT_CLIP)
except pyclipper.ClipperException:
raise InvalidClippingContourError("contour %d is invalid for clipping" % j)
# ignore paths with no area
if pyclipper.Area(clipContour):
try:
pc.AddPath(clipContour, pyclipper.PT_CLIP)
except pyclipper.ClipperException:
raise InvalidClippingContourError("contour %d is invalid for clipping" % j)

try:
solution = pc.Execute(_operationMap[operation],
Expand Down

0 comments on commit e65175b

Please sign in to comment.