code: func (l *Line) Intersects(line *Line) bool {
  	s1 := l.Side(&line.a)
  	s2 := l.Side(&line.b)
  	s3 := line.Side(&l.a)
  	s4 := line.Side(&l.b)
  
  	if s1 != s2 && s3 != s4 {
  		return true
  	}
  
  	// Special Cases
  	// l1 and l2.a collinear, check if l2.a is on l1
  	lBound := l.Bound()
  	if s1 == 0 && lBound.Contains(&line.a) {
  		return true
  	}
  
  	// l1 and l2.b collinear, check if l2.b is on l1
  	if s2 == 0 && lBound.Contains(&line.b) {
  		return true
  	}
  
  	// TODO: are these next two tests redudant give the test above.
  	// Thinking yes if there is round off magic.
  
  	// l2 and l1.a collinear, check if l1.a is on l2
  	lineBound := line.Bound()
  	if s3 == 0 && lineBound.Contains(&l.a) {
  		return true
  	}
  
  	// l2 and l1.b collinear, check if l1.b is on l2
  	if s4 == 0 && lineBound.Contains(&l.b) {
  		return true
  	}
  
  	return false
  }
docs: // Intersects will return true if the lines are collinear AND intersect.
  // Based on: http://www.geeksforgeeks.org/check-if-two-given-line-segments-intersect/