Mercurial > forge
changeset 10032:db1e91ab8b82 octave-forge
Doc
author | etienne |
---|---|
date | Sun, 15 Apr 2012 04:23:04 +0000 |
parents | d8f37360dfdb |
children | 63ecede4a4a8 |
files | main/vrml/inst/vrml_arrow.m |
diffstat | 1 files changed, 11 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/main/vrml/inst/vrml_arrow.m Sun Apr 15 00:57:51 2012 +0000 +++ b/main/vrml/inst/vrml_arrow.m Sun Apr 15 04:23:04 2012 +0000 @@ -22,9 +22,12 @@ ## sz = [len, alen, dc, dr] has size 1, 2, 3 or 4, where ## ## len : total length <1> -## alen : length of arrow/total length <len/4> -## dc : Diameter of cone base/total length <len/16> -## dr : Diameter of rod/total length <min(dc, len/32)> +## alen : If positive: length of cone/total length <1/4> +## If negative: -(length of cone) +## dc : If positive: diameter of cone base/total len <1/16> +## If negative: -(diameter of cone) +## dr : If positive: diameter of rod/total length <min(dc, len/32)> +## If negative: -(diameter of rod) ## ## col : 3 or 3x2 : Color of body and cone <[0.3 0.4 0.9]> ## @@ -48,7 +51,6 @@ s0 = [1, 1/4, 1/16, 1/32]; # Get absolute size if nargin<1 || isempty (sz) || isnan (sz), sz = s0 ; - elseif length (sz) == 4, sz = [sz(1),sz(2),sz(3),sz(4)]; elseif length (sz) == 3, sz = [sz(1),sz(2),sz(3),s0(4)]; elseif length (sz) == 2, sz = [sz(1),sz(2),s0(3),s0(4)]; @@ -57,8 +59,11 @@ error ("vrml_arrow : sz has size %dx%d. (should be in 1-4)\n", size(sz)); ## keyboard end -if any (tmp = isnan(sz)), sz(find (tmp)) = s0(find (tmp)) ; end -## Was: sz .*= [1, sz([1 1 1])]; + +assert (sz(1) > 0) + +if !isempty (tmp = find(isnan(sz))), sz(tmp) = s0(tmp) ; end + for i = 2:4 if sz(i) >= 0 sz(i) *= sz(1);