## Diff of /inst/geom2d/isPointOnRay.m[347d75] .. [fc6c4c]  Maximize  Restore

### Switch to side-by-side view

```--- a/inst/geom2d/isPointOnRay.m
+++ b/inst/geom2d/isPointOnRay.m
@@ -22,65 +22,65 @@
## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{b} = } isPointOnRay (@var{point}, @var{ray})
-## @deftypefnx {Function File} {@var{b} = } isPointOnRay (@var{point}, @var{ray}, @var{tol})
-## Test if a point belongs to a ray
-##
-##  @var{b} = isPointOnRay(@var{point}, @var{ray});
-##  Returns @code{true} if point @var{point} belongs to the ray @var{ray}.
-##  @var{point} is given by [x y] and RAY by [x0 y0 dx dy]. @var{tol} gives the
-##  tolerance for the calculations.
-##
-##  @seealso{rays2d, points2d, isPointOnLine}
-## @end deftypefn
-
-function b = isPointOnRay(point, ray, varargin)
-
-  # extract computation tolerance
-  tol = 1e-14;
-  if ~isempty(varargin)
-      tol = varargin{1};
-  end
-
-  # number of rays and points
-  Nr = size(ray, 1);
-  Np = size(point, 1);
-
-  # if several rays or several points, adapt sizes of arrays
-  x0 = repmat(ray(:,1)', Np, 1);
-  y0 = repmat(ray(:,2)', Np, 1);
-  dx = repmat(ray(:,3)', Np, 1);
-  dy = repmat(ray(:,4)', Np, 1);
-  xp = repmat(point(:,1), 1, Nr);
-  yp = repmat(point(:,2), 1, Nr);
-
-  # test if points belongs to the supporting line
-  b1 = abs ( (xp-x0).*dy - (yp-y0).*dx ) ./ hypot(dx, dy) < tol;
-
-  # check if points lie the good direction on the rays
-  ind     = abs (dx) > abs (dy);
-  t       = zeros (size (b1));
-  t(ind)  = (xp(ind)-x0(ind))./dx(ind);
-  t(~ind) = (yp(~ind)-y0(~ind))./dy(~ind);
-
-  # combine the two tests
-  b = b1 & (t >= 0);
-
-endfunction
-
-%!shared ray
-%! p1 = [10 20];
-%! p2 = [80 20];
-%! ray = createRay (p1, p2);
-
-%!assert (isPointOnRay([10 20], ray));
-%!assert (isPointOnRay([80 20], ray));
-%!assert (isPointOnRay([50 20], ray));
-%!assert (isPointOnRay([50 20+1e-3], ray,1e-2));
-%!assert ( !isPointOnRay([50 20+1e-3], ray,1e-4));
-%!assert ( !isPointOnRay([9.99 20], ray));
-%!assert ( !isPointOnRay([80 20.01], ray));
-%!assert ( !isPointOnRay([50 21], ray));
-%!assert ( !isPointOnRay([79 19], ray));
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{b} = } isPointOnRay (@var{point}, @var{ray})
+## @deftypefnx {Function File} {@var{b} = } isPointOnRay (@var{point}, @var{ray}, @var{tol})
+## Test if a point belongs to a ray
+##
+##  @var{b} = isPointOnRay(@var{point}, @var{ray});
+##  Returns @code{true} if point @var{point} belongs to the ray @var{ray}.
+##  @var{point} is given by [x y] and RAY by [x0 y0 dx dy]. @var{tol} gives the
+##  tolerance for the calculations.
+##
+##  @seealso{rays2d, points2d, isPointOnLine}
+## @end deftypefn
+
+function b = isPointOnRay(point, ray, varargin)
+
+  # extract computation tolerance
+  tol = 1e-14;
+  if ~isempty(varargin)
+      tol = varargin{1};
+  end
+
+  # number of rays and points
+  Nr = size(ray, 1);
+  Np = size(point, 1);
+
+  # if several rays or several points, adapt sizes of arrays
+  x0 = repmat(ray(:,1)', Np, 1);
+  y0 = repmat(ray(:,2)', Np, 1);
+  dx = repmat(ray(:,3)', Np, 1);
+  dy = repmat(ray(:,4)', Np, 1);
+  xp = repmat(point(:,1), 1, Nr);
+  yp = repmat(point(:,2), 1, Nr);
+
+  # test if points belongs to the supporting line
+  b1 = abs ( (xp-x0).*dy - (yp-y0).*dx ) ./ hypot(dx, dy) < tol;
+
+  # check if points lie the good direction on the rays
+  ind     = abs (dx) > abs (dy);
+  t       = zeros (size (b1));
+  t(ind)  = (xp(ind)-x0(ind))./dx(ind);
+  t(~ind) = (yp(~ind)-y0(~ind))./dy(~ind);
+
+  # combine the two tests
+  b = b1 & (t >= 0);
+
+endfunction
+
+%!shared ray
+%! p1 = [10 20];
+%! p2 = [80 20];
+%! ray = createRay (p1, p2);
+
+%!assert (isPointOnRay([10 20], ray));
+%!assert (isPointOnRay([80 20], ray));
+%!assert (isPointOnRay([50 20], ray));
+%!assert (isPointOnRay([50 20+1e-3], ray,1e-2));
+%!assert ( !isPointOnRay([50 20+1e-3], ray,1e-4));
+%!assert ( !isPointOnRay([9.99 20], ray));
+%!assert ( !isPointOnRay([80 20.01], ray));
+%!assert ( !isPointOnRay([50 21], ray));
+%!assert ( !isPointOnRay([79 19], ray));
```