CLIPLINE Clip a line with a box.

   EDGE = clipLine(LINE, BOX);
   LINE is a straight line given as a 4 element row vector: [x0 y0 dx dy],
   with (x0 y0) being a point of the line and (dx dy) a direction vector,
   BOX is the clipping box, given by its extreme coordinates: 
   [xmin xmax ymin ymax].
   The result is given as an edge, defined by the coordinates of its 2
   extreme points: [x1 y1 x2 y2].
   If line does not intersect the box, [NaN NaN NaN NaN] is returned.
   
   Function works also if LINE is a N-by-4 array, if BOX is a Nx4 array,
   or if both LINE and BOX are N-by-4 arrays. In these cases, EDGE is a
   N-by-4 array.
   

   Example
   line = [30 40 10 0];
   box = [0 100 0 100];
   res = clipLine(line, box)
   res = 
       0 40 100 40

   See also:
   lines2d, boxes2d, edges2d
   clipEdge, clipRay, clipLine3d

Package: matgeom