comparison scripts/plot/diffuse.m @ 11587:c792872f8942

all script files: untabify and strip trailing whitespace
author John W. Eaton <jwe@octave.org>
date Thu, 20 Jan 2011 17:35:29 -0500
parents fd0a3ac60b0e
children 72c96de7a403
comparison
equal deleted inserted replaced
11586:12df7854fa7c 11587:c792872f8942
17 ## <http://www.gnu.org/licenses/>. 17 ## <http://www.gnu.org/licenses/>.
18 18
19 ## -*- texinfo -*- 19 ## -*- texinfo -*-
20 ## @deftypefn {Function File} {} diffuse (@var{sx}, @var{sy}, @var{sz}, @var{lv}) 20 ## @deftypefn {Function File} {} diffuse (@var{sx}, @var{sy}, @var{sz}, @var{lv})
21 ## Calculate diffuse reflection strength of a surface defined by the normal 21 ## Calculate diffuse reflection strength of a surface defined by the normal
22 ## vector elements @var{sx}, @var{sy}, @var{sz}. 22 ## vector elements @var{sx}, @var{sy}, @var{sz}.
23 ## The light vector can be specified using parameter @var{lv}. It can be 23 ## The light vector can be specified using parameter @var{lv}. It can be
24 ## given as 2-element vector [azimuth, elevation] in degrees or as 3-element 24 ## given as 2-element vector [azimuth, elevation] in degrees or as 3-element
25 ## vector [lx, ly, lz]. 25 ## vector [lx, ly, lz].
26 ## @seealso{specular, surfl} 26 ## @seealso{specular, surfl}
27 ## @end deftypefn 27 ## @end deftypefn
28 28
29 ## Author: Kai Habel <kai.habel@gmx.de> 29 ## Author: Kai Habel <kai.habel@gmx.de>
30 30
36 36
37 ## check for normal vector 37 ## check for normal vector
38 if (!size_equal (sx, sy, sz)) 38 if (!size_equal (sx, sy, sz))
39 error ("diffuse: SX, SY, and SZ must have same size"); 39 error ("diffuse: SX, SY, and SZ must have same size");
40 endif 40 endif
41 41
42 ## check for light vector (lv) argument 42 ## check for light vector (lv) argument
43 if (length (lv) < 2 || length (lv) > 3) 43 if (length (lv) < 2 || length (lv) > 3)
44 error ("diffuse: light vector LV must be a 2- or 3-element vector"); 44 error ("diffuse: light vector LV must be a 2- or 3-element vector");
45 elseif (length (lv) == 2) 45 elseif (length (lv) == 2)
46 [lv(1), lv(2), lv(3)] = sph2cart (lv(1) * pi/180, lv(2) * pi/180, 1.0); 46 [lv(1), lv(2), lv(3)] = sph2cart (lv(1) * pi/180, lv(2) * pi/180, 1.0);
52 endif 52 endif
53 53
54 ns = sqrt (sx.^2 + sy.^2 + sz.^2); 54 ns = sqrt (sx.^2 + sy.^2 + sz.^2);
55 retval = (sx * lv(1) + sy * lv(2) + sz * lv(3)) ./ ns; 55 retval = (sx * lv(1) + sy * lv(2) + sz * lv(3)) ./ ns;
56 retval(retval < 0) = 0; 56 retval(retval < 0) = 0;
57 57
58 endfunction 58 endfunction