lib/monotone.js
function compareEvent(a, b) {
  var d =
    (a.a[0] - b.a[0]) ||
    (a.a[1] - b.a[1]) ||
    (a.type - b.type)
  if(d) { return d }
  if(a.type !== EVENT_POINT) {
    d = orient(a.a, a.b, b.b)
    if(d) { return d }
  }
  return a.idx - b.idx
}
function compareEvent(a, b) {
  var d =
    (a.a[0] - b.a[0]) ||
    (a.a[1] - b.a[1]) ||
    (a.type - b.type)
  if(d) { return d }
  if(a.type !== EVENT_POINT) {
    d = orient(a.a, a.b, b.b)
    if(d) { return d }
  }
  return a.idx - b.idx
}
function compareEvent ( a , b ) { var d = ( a . a [ 0 ] - b . a [ 0 ] ) || ( a . a [ 1 ] - b . a [ 1 ] ) || ( a . type - b . type ) if ( d ) { return d } if ( a . type !== EVENT_POINT ) { d = orient ( a . a , a . b , b . b ) if ( d ) { return d } } return a . idx - b . idx }
This is used to compare events for the sweep line procedure Points are: 1. sorted lexicographically 2. sorted by type  (point < end < start) 3. segments sorted by winding order 4. sorted by index
This is used to compare events for the sweep line procedure Points are : 1 . sorted lexicographically 2 . sorted by type ( point < end < start ) 3 . segments sorted by winding order 4 . sorted by index