Mercurial > octave
annotate scripts/plot/appearance/lighting.m @ 27978:a4268efb7334
maint: Eliminate single "Author:" lines from code base.
* color-picker.cc, color-picker.h, octave-qscintilla.cc, octave-qscintilla.h,
octave-txt-lexer.cc, octave-txt-lexer.h, balance.cc, kron.cc, lookup.cc,
ls-hdf5.cc, ls-mat5.cc, ls-oct-text.cc, sylvester.cc, tsearch.cc, jit-ir.cc,
jit-ir.h, jit-typeinfo.cc, jit-typeinfo.h, jit-util.cc, jit-util.h, pt-jit.cc,
pt-jit.h, Array-jit.cc, bsxfun.h, url-transfer.cc, url-transfer.h, acosd.m,
acotd.m, acscd.m, asecd.m, asind.m, atand.m, cosd.m, cotd.m, cscd.m, secd.m,
sind.m, tand.m, cart2pol.m, cart2sph.m, curl.m, del2.m, divergence.m, flip.m,
pol2cart.m, randi.m, sortrows.m, sph2cart.m, griddata3.m, griddatan.m,
rectint.m, voronoi.m, dialog.m, guidata.m, guihandles.m, __file_filter__.m,
__fltk_file_filter__.m, __get_funcname__.m, __is_function__.m,
__uigetdir_fltk__.m, __uigetfile_fltk__.m, __uiobject_split_args__.m,
__uiputfile_fltk__.m, uibuttongroup.m, uicontextmenu.m, uicontrol.m,
uigetdir.m, uigetfile.m, uimenu.m, uipanel.m, uipushtool.m, uiputfile.m,
uiresume.m, uitoggletool.m, uitoolbar.m, uiwait.m, doc.m, autumn.m, bone.m,
cmpermute.m, cmunique.m, cool.m, copper.m, cubehelix.m, flag.m, frame2im.m,
hot.m, hsv.m, hsv2rgb.m, im2frame.m, imfinfo.m, imformats.m, iscolormap.m,
jet.m, pink.m, prism.m, __imfinfo__.m, rainbow.m, rgb2hsv.m, spinmap.m,
spring.m, viridis.m, white.m, winter.m, importdata.m, strmatch.m, bandwidth.m,
isbanded.m, isdiag.m, istril.m, istriu.m, krylov.m, linsolve.m, logm.m,
lscov.m, subspace.m, bunzip2.m, compare_versions.m, edit.m, fullfile.m,
getfield.m, gunzip.m, inputParser.m, license.m, nargchk.m, narginchk.m,
nthargout.m, python.m, setfield.m, tar.m, unpack.m, ver.m, zip.m, odeplot.m,
fminbnd.m, fminunc.m, fsolve.m, fzero.m, glpk.m, humps.m, pathdef.m,
savepath.m, diffuse.m, lighting.m, material.m, shading.m, specular.m,
contour.m, ellipsoid.m, isocaps.m, isocolors.m, isonormals.m, isosurface.m,
light.m, pcolor.m, __interp_cube__.m, __marching_cube__.m, __patch__.m,
__stem__.m, reducepatch.m, reducevolume.m, ribbon.m, shrinkfaces.m, slice.m,
stem.m, surf.m, surfl.m, tetramesh.m, waterfall.m, __actual_axis_position__.m,
__next_line_color__.m, allchild.m, figure.m, findall.m, findobj.m, gcf.m,
hggroup.m, isprop.m, ndgrid.m, __add_default_menu__.m, saveas.m,
__splinefit__.m, prefdir.m, preferences.m, profexplore.m, profexport.m,
profile.m, profshow.m, setdiff.m, freqz.m, freqz_plot.m, sinc.m, unwrap.m,
pcr.m, qmr.m, sprandn.m, betaincinv.m, cosint.m, ellipke.m, factor.m,
gammaincinv.m, legendre.m, nchoosek.m, primes.m, invhilb.m, toeplitz.m,
erase.m, mat2str.m, strtrim.m, validatestring.m, fail.m, compare_plot_demos.m,
dump_demos.m, html_compare_plot_demos.m, addtodate.m, datenum.m, jit.tst:
Eliminate single "Author:" lines from code base.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 21 Jan 2020 12:53:13 -0800 |
parents | bd51beb6205e |
children | 3cac3ceb9629 0a5b15007766 |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 ######################################################################## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 ## |
27919
1891570abac8
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
27918
diff
changeset
|
3 ## Copyright (C) 2016-2020 The Octave Project Developers |
27918
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
27916
diff
changeset
|
4 ## |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
7 ## |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
8 ## This file is part of Octave. |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
9 ## |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24432
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
11 ## under the terms of the GNU General Public License as published by |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24432
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22302
diff
changeset
|
13 ## (at your option) any later version. |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
14 ## |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
15 ## Octave is distributed in the hope that it will be useful, but |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22302
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22302
diff
changeset
|
18 ## GNU General Public License for more details. |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
19 ## |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
20 ## You should have received a copy of the GNU General Public License |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
21 ## along with Octave; see the file COPYING. If not, see |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24432
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 ## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 ######################################################################## |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
25 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
26 ## -*- texinfo -*- |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
27 ## @deftypefn {} {} lighting (@var{type}) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
28 ## @deftypefnx {} {} lighting (@var{hax}, @var{type}) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
29 ## Set the lighting of patch or surface graphic objects. |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
30 ## |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
31 ## Valid arguments for @var{type} are |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
32 ## |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
33 ## @table @asis |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
34 ## @item @qcode{"flat"} |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
35 ## Draw objects with faceted lighting effects. |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
36 ## |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
37 ## @item @qcode{"gouraud"} |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
38 ## Draw objects with linear interpolation of the lighting effects between the |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
39 ## vertices. |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
40 ## |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
41 ## @item @qcode{"none"} |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
42 ## Draw objects without light and shadow effects. |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
43 ## @end table |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
44 ## |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
45 ## If the first argument @var{hax} is an axes handle, then change the lighting |
24431
0c6cedafc71e
doc: Use 'axes' rather than 'axis' appropriately in docstrings.
Rik <rik@octave.org>
parents:
23219
diff
changeset
|
46 ## effects of objects in this axes, rather than the current axes returned by |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
47 ## @code{gca}. |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
48 ## |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
49 ## The lighting effects are only visible if at least one light object is |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
50 ## present and visible in the same axes. |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
51 ## |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
52 ## @seealso{light, fill, mesh, patch, pcolor, surf, surface, shading} |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
53 ## @end deftypefn |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
54 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
55 function lighting (varargin) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
56 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
57 [hax, varargin, nargin] = __plt_get_axis_arg__ ("lighting", varargin{:}); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
58 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
59 if (nargin != 1) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
60 print_usage (); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
61 endif |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
62 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
63 mode = varargin{1}; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
64 if (! ischar (mode)) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
65 error ("lighting: MODE must be a string"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
66 elseif (! any (strcmpi (mode, {"flat", "gouraud", "none"}))) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
67 error ('lighting: Invalid MODE "%s"', mode); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
68 endif |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
69 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
70 if (isempty (hax)) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
71 hax = gca (); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
72 endif |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
73 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
74 ## Find all patch and surface objects that are descendants of hax |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
75 ## and which are not part of a contour plot hggroup. |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
76 hlist = []; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
77 kids = get (hax, "children"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
78 while (! isempty (kids)) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
79 types = get (kids, "type"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
80 hlist = [hlist; kids(strcmp(types, "patch"))]; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
81 hlist = [hlist; kids(strcmp(types, "surface"))]; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
82 parents = kids(strcmp (types, "axes")); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
83 hglist = kids(strcmp (types, "hggroup")); |
27916
4a30a58a44ab
lighting.m: Eliminate for loop introduced in 703156b6d602 for performance (bug #57537).
Rik <rik@octave.org>
parents:
27911
diff
changeset
|
84 |
4a30a58a44ab
lighting.m: Eliminate for loop introduced in 703156b6d602 for performance (bug #57537).
Rik <rik@octave.org>
parents:
27911
diff
changeset
|
85 kids = get (parents, "children"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
86 for i = 1 : numel (hglist) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
87 props = get (hglist(i)); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
88 if (! isfield (props, "levelstep")) |
27916
4a30a58a44ab
lighting.m: Eliminate for loop introduced in 703156b6d602 for performance (bug #57537).
Rik <rik@octave.org>
parents:
27911
diff
changeset
|
89 kids = [kids; get(hglist(i), "children")]; |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
90 endif |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
91 endfor |
27916
4a30a58a44ab
lighting.m: Eliminate for loop introduced in 703156b6d602 for performance (bug #57537).
Rik <rik@octave.org>
parents:
27911
diff
changeset
|
92 |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
93 endwhile |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
94 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
95 ## FIXME: This is the old, simple code. |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
96 ## Unfortunately, it also lights contour plots which is not desirable. |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
97 ##hp = findobj (hax, "type", "patch"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
98 ##hs = findobj (hax, "type", "surface"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
99 ##hlist = [hp(:); hs(:)]; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
100 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
101 if (isempty (hlist)) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
102 return; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
103 endif |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
104 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
105 ## Change "EdgeLighting" for meshes instead of "FaceLighting" |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
106 fc = get (hlist, "facecolor"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
107 is_mesh = strcmp (fc, "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
108 if (! iscell (fc)) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
109 fc = {fc}; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
110 endif |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
111 bc = get (hax, "color"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
112 if (strcmp (bc, "none")) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
113 if (isprop (get (hax, "parent"), "color")) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
114 bc = get (get (hax, "parent"), "color"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
115 endif |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
116 if (isempty (bc) || strcmp (bc, "none")) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
117 bc = [1 1 1]; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
118 endif |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
119 endif |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
120 is_mesh = is_mesh | cellfun (@(x) isequal (x, bc), fc); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
121 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
122 set (hlist(! is_mesh), "facelighting", mode, "edgelighting", "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
123 set (hlist(is_mesh), "edgelighting", mode, "facelighting", "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
124 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
125 endfunction |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
126 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
127 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
128 %!demo |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
129 %! clf; |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
130 %! colormap ("default"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
131 %! sombrero (); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
132 %! shading flat |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
133 %! lighting flat |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
134 %! light (); |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
135 %! title ("shading flat - lighting flat"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
136 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
137 %!demo |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
138 %! clf; |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
139 %! colormap ("default"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
140 %! sombrero (); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
141 %! shading interp |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
142 %! lighting gouraud |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
143 %! light (); |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
144 %! title ("shading interp - lighting gouraud"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
145 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
146 %!demo |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
147 %! clf; |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
148 %! colormap ("default"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
149 %! pcolor (peaks ()); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
150 %! shading flat |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
151 %! lighting flat |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
152 %! light (); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
153 %! view (3) |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
154 %! title ("shading flat - lighting flat"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
155 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
156 %!demo |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
157 %! clf; |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
158 %! colormap ("default"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
159 %! pcolor (peaks ()); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
160 %! shading interp |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
161 %! lighting gouraud |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
162 %! light (); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
163 %! view (3) |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
164 %! title ("shading interp - lighting gouraud"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
165 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
166 %!demo |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
167 %! clf; |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
168 %! colormap ("default"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
169 %! mesh (sombrero ()); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
170 %! shading flat |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
171 %! lighting flat |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
172 %! light (); |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
173 %! title ("shading flat - lighting flat"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
174 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
175 %!demo |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
176 %! clf; |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
177 %! colormap ("default"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
178 %! mesh (sombrero ()); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
179 %! shading interp |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
180 %! lighting gouraud |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
181 %! light (); |
22302
1c4cd12987f5
Use Octave syntax in graphics demos.
Rik <rik@octave.org>
parents:
22157
diff
changeset
|
182 %! title ("shading interp - lighting gouraud"); |
22140
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
183 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
184 %!test |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
185 %! hf = figure ("visible", "off"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
186 %! unwind_protect |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
187 %! ha = axes; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
188 %! hm = mesh (sombrero ()); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
189 %! hp = patch; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
190 %! hs = surface; |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
191 %! lighting flat |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
192 %! assert (get (hp, "facelighting"), "flat"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
193 %! assert (get (hs, "facelighting"), "flat"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
194 %! assert (get (hp, "edgelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
195 %! assert (get (hs, "edgelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
196 %! assert (get (hm, "edgelighting"), "flat"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
197 %! lighting gouraud |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
198 %! assert (get (hp, "facelighting"), "gouraud"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
199 %! assert (get (hs, "facelighting"), "gouraud"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
200 %! assert (get (hp, "edgelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
201 %! assert (get (hs, "edgelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
202 %! assert (get (hm, "edgelighting"), "gouraud"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
203 %! lighting none |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
204 %! assert (get (hp, "facelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
205 %! assert (get (hs, "facelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
206 %! assert (get (hp, "edgelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
207 %! assert (get (hs, "edgelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
208 %! assert (get (hm, "edgelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
209 %! lighting (ha, "flat") |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
210 %! assert (get (hp, "facelighting"), "flat"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
211 %! assert (get (hs, "facelighting"), "flat"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
212 %! assert (get (hp, "edgelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
213 %! assert (get (hs, "edgelighting"), "none"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
214 %! assert (get (hm, "edgelighting"), "flat"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
215 %! unwind_protect_cleanup |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
216 %! close (hf); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
217 %! end_unwind_protect |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
218 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
219 ## Test on axes which has no patch or mesh objects |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
220 %!test |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
221 %! hf = figure ("visible", "off"); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
222 %! unwind_protect |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
223 %! lighting flat |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
224 %! unwind_protect_cleanup |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
225 %! close (hf); |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
226 %! end_unwind_protect |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
227 |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
228 %!error lighting () |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
229 %!error lighting (1, 2, "flat") |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
230 %!error <MODE must be a string> lighting (-1) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
231 %!error <MODE must be a string> lighting ({}) |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
232 %!error <Invalid MODE "foo"> lighting foo |
18eae417ffec
Add function "lighting" (patch #9040).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
233 %!error <Invalid call to lighting> lighting (-1, "flat") |