Changeset 449:a99e5e724545


Ignore:
Timestamp:
Sep 7, 2013, 1:08:59 PM (7 years ago)
Author:
Neil Muller <drnlmuller@…>
Branch:
default
rebase_source:
7ab99e41ef5687192013bdc78505a65432fe813d
Message:

Better convex polygon protection

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/area_editor.py

    r441 r449  
    380380                try:
    381381                    l = eval(text)
    382                     args.append(' - - %s' % l[0])
    383                     for coord in l[1:]:
    384                         args.append('   - %s' % coord)
    385382                except Exception:
    386383                    alert("Invalid polygon %s" % text)
     
    388385                    return None
    389386                # Check for convexity
    390                 hull = pymunk.util.convex_hull(l)
    391                 if hull != l:
     387                if not pymunk.util.is_convex(l):
    392388                    alert("Invalid polygon %s - not convex" % text)
    393389                    return None
     390                if not pymunk.util.is_clockwise(l):
     391                    l.reverse()
     392                    if not pymunk.util.is_clockwise(l):
     393                        alert("Invalid polygon %s - unable to make clockwise"
     394                              % text)
     395                        return None
     396                args.append(' - - %s' % l[0])
     397                for coord in l[1:]:
     398                    args.append('   - %s' % coord)
    394399            else:
    395400                args.append(' - ' + text)
Note: See TracChangeset for help on using the changeset viewer.