Mercurial > hg > octave-nkf
annotate scripts/plot/diffuse.m @ 17525:76a6d7de4cbc
Fix multiple problem with listeners for contour groups.
* scripts/plot/contour.m: Add new %!demo showing use of a single contour line.
* scripts/plot/private/__contour__.m: Fix bug with lowest level of contourf
showing background through. Use same routines for calculating levels and
levelstep in main code and in listeners. Fix linecolor when turning "fill" on
and off. Fix "textlist" and "textliststep" properties which were not
activating correctly.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 01 Oct 2013 12:51:04 -0700 |
parents | 1c89599167a6 |
children |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
11587
diff
changeset
|
1 ## Copyright (C) 2009-2012 Kai Habel |
8450
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
2 ## |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
3 ## This file is part of Octave. |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
4 ## |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
5 ## Octave is free software; you can redistribute it and/or modify it |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
7 ## the Free Software Foundation; either version 3 of the License, or (at |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
8 ## your option) any later version. |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
9 ## |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
10 ## Octave is distributed in the hope that it will be useful, but |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
13 ## General Public License for more details. |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
14 ## |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
15 ## You should have received a copy of the GNU General Public License |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
16 ## along with Octave; see the file COPYING. If not, see |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
17 ## <http://www.gnu.org/licenses/>. |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
18 |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
19 ## -*- texinfo -*- |
11469
c776f063fefe
Overhaul m-script files to use common variable name between code and documentation.
Rik <octave@nomad.inbox5.com>
parents:
9040
diff
changeset
|
20 ## @deftypefn {Function File} {} diffuse (@var{sx}, @var{sy}, @var{sz}, @var{lv}) |
8450
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
21 ## Calculate diffuse reflection strength of a surface defined by the normal |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
22 ## vector elements @var{sx}, @var{sy}, @var{sz}. |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
14138
diff
changeset
|
23 ## |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
14138
diff
changeset
|
24 ## The light source location vector @var{lv} can be given as 2-element vector |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
14138
diff
changeset
|
25 ## [azimuth, elevation] in degrees or as 3-element vector [lx, ly, lz]. |
8450
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
26 ## @seealso{specular, surfl} |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
27 ## @end deftypefn |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
28 |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
29 ## Author: Kai Habel <kai.habel@gmx.de> |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
30 |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
31 function retval = diffuse (sx, sy, sz, lv) |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
32 |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
33 if (nargin != 4) |
8460
e4c9ecb64411
diffuse.m, specular.m, surfl.m: style fixes
John W. Eaton <jwe@octave.org>
parents:
8450
diff
changeset
|
34 print_usage (); |
8450
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
35 endif |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
36 |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
37 ## check for normal vector |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
38 if (!size_equal (sx, sy, sz)) |
8460
e4c9ecb64411
diffuse.m, specular.m, surfl.m: style fixes
John W. Eaton <jwe@octave.org>
parents:
8450
diff
changeset
|
39 error ("diffuse: SX, SY, and SZ must have same size"); |
8450
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
40 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
41 |
8450
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
42 ## check for light vector (lv) argument |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
43 if (length (lv) < 2 || length (lv) > 3) |
8460
e4c9ecb64411
diffuse.m, specular.m, surfl.m: style fixes
John W. Eaton <jwe@octave.org>
parents:
8450
diff
changeset
|
44 error ("diffuse: light vector LV must be a 2- or 3-element vector"); |
8450
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
45 elseif (length (lv) == 2) |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
46 [lv(1), lv(2), lv(3)] = sph2cart (lv(1) * pi/180, lv(2) * pi/180, 1.0); |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
47 endif |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
48 |
8460
e4c9ecb64411
diffuse.m, specular.m, surfl.m: style fixes
John W. Eaton <jwe@octave.org>
parents:
8450
diff
changeset
|
49 ## Normalize view and light vector. |
8450
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
50 if (sum (abs (lv)) > 0) |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
51 lv /= norm (lv); |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
52 endif |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
53 |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
54 ns = sqrt (sx.^2 + sy.^2 + sz.^2); |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
55 retval = (sx * lv(1) + sy * lv(2) + sz * lv(3)) ./ ns; |
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
56 retval(retval < 0) = 0; |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
57 |
8450
6c4e2fc14beb
Add new 3D plotting function surfl. Add light functions diffuse and specular
Kai Habel
parents:
diff
changeset
|
58 endfunction |
17338
1c89599167a6
maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
59 |