Mercurial > forge
changeset 11700:6531f7f8a22c octave-forge
Compatibility with matlab. Replaced nrbline with nrb
author | rafavzqz |
---|---|
date | Wed, 15 May 2013 09:00:19 +0000 |
parents | dafee4563c36 |
children | 2bf47de5074a |
files | extra/nurbs/inst/nrbmeasure.m |
diffstat | 1 files changed, 13 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/extra/nurbs/inst/nrbmeasure.m Tue May 14 16:30:22 2013 +0000 +++ b/extra/nurbs/inst/nrbmeasure.m Wed May 15 09:00:19 2013 +0000 @@ -28,7 +28,7 @@ %% Author: Carlo de Falco -function [dist, ddistds, ddistde] = nrbmeasure (nrbline, s, e, tol) +function [dist, ddistds, ddistde] = nrbmeasure (nrb, s, e, tol) if (nargin < 4) tol = 1e-6; @@ -40,27 +40,29 @@ end end - if (ismatrix (s) && isscalar (e)) - e = repelems (e, size(s) .'); - elseif (ismatrix (e) && isscalar (s)) - s = repelems (s, size(e) .'); + nrb.knots = (nrb.knots - nrb.knots(1)) / (nrb.knots(end) - nrb.knots(1)); + + if (numel (s) > 1 && isscalar (e)) + e = e * ones (size(s)); + elseif (numel (e) > 1 && isscalar (s)) + s = s * ones (size(e)); end - [ders, ders2] = nrbderiv (nrbline); - dist = arrayfun (@(x, y) quad (@(u) len (u, nrbline, ders), x, ... + ders = nrbderiv (nrb); + dist = arrayfun (@(x, y) quad (@(u) len (u, nrb, ders), x, ... y, tol), s, e); if (nargout > 1) - ddistds = -len (s, nrbline, ders); + ddistds = -len (s, nrb, ders); if (nargout > 2) - ddistde = +len (e, nrbline, ders); + ddistde = +len (e, nrb, ders); end end end -function l = len (u, nrbline, ders) - [ignore, d] = nrbdeval (nrbline, ders, u); +function l = len (u, nrb, ders) + [~, d] = nrbdeval (nrb, ders, u); f = d(1, :); g = d(2, :); h = d(3, :);