code: function( x, y, size, angle, translation, edgeWidth, padding ){
      var x1 = translation.x - size / 2 - padding;
      var x2 = translation.x + size / 2 + padding;
      var y1 = translation.y - size / 2 - padding;
      var y2 = translation.y + size / 2 + padding;
  
      var inside = (x1 <= x && x <= x2) && (y1 <= y && y <= y2);
  
      return inside;
    }
docs: Contract for arrow shapes: 0, 0 is arrow tip (0, 1) is direction towards node (1, 0) is right  functional api: collide: check x, y in shape roughCollide: called before collide, no false negatives draw: draw spacing: dist(arrowTip, nodeBoundary) gap: dist(edgeTip, nodeBoundary), edgeTip may != arrowTip