ISPOINTONEDGE Test if a point belongs to an edge.

   Usage
   B = isPointOnEdge(POINT, EDGE)
   B = isPointOnEdge(POINT, EDGE, TOL)

   Description
   B = isPointOnEdge(POINT, EDGE)
   with POINT being [xp yp], and EDGE being [x1 y1 x2 y2], returns TRUE if
   the point is located on the edge, and FALSE otherwise.

   B = isPointOnEdge(POINT, EDGE, TOL)
   Specify an optilonal tolerance value TOL. The tolerance is given as a
   fraction of the norm of the edge direction vector. Default is 1e-14. 

   B = isPointOnEdge(POINTARRAY, EDGE)
   B = isPointOnEdge(POINT, EDGEARRAY)
   When one of the inputs has several rows, return the result of the test
   for each element of the array tested against the single parameter.

   B = isPointOnEdge(POINTARRAY, EDGEARRAY)
   When both POINTARRAY and EDGEARRAY have the same number of rows,
   returns a column vector with the same number of rows.
   When the number of rows are different and both greater than 1, returns
   a Np-by-Ne matrix of booleans, containing the result for each couple of
   point and edge.

   Examples
   % create a point array
   points = [10 10;15 10; 30 10];
   % create an edge array
   vertices = [10 10;20 10;20 20;10 20];
   edges = [vertices vertices([2:end 1], :)];

   % Test one point and one edge
   isPointOnEdge(points(1,:), edges(1,:))
   ans = 
       1
   isPointOnEdge(points(3,:), edges(1,:))
   ans = 
       0

   % Test one point and several edges
   isPointOnEdge(points(1,:), edges)'
   ans =
        1     0     0     1

   % Test several points and one edge
   isPointOnEdge(points, edges(1,:))'
   ans =
        1     1     0

   % Test N points and N edges
   isPointOnEdge(points, edges(1:3,:))'
   ans =
        1     0     0

   % Test NP points and NE edges
   isPointOnEdge(points, edges)
   ans =
        1     0     0     1
        1     0     0     0
        0     0     0     0


   See also
   edges2d, points2d, isPointOnLine

Package: matgeom