File: shading.m

package info (click to toggle)
octplot 0.4.0-7
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 3,072 kB
  • ctags: 1,563
  • sloc: cpp: 8,133; ansic: 5,053; sh: 617; makefile: 161
file content (50 lines) | stat: -rw-r--r-- 1,548 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
## Copyright (C) 2006  Kai Habel
##
## This file is part of octplot.
##
## Octave is free software; you can redistribute it and/or modify it
## under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2, or (at your option)
## any later version.
##
## Octave is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
## General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with Octave; see the file COPYING.  If not, write to the Free
## Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
## 02110-1301, USA.

## -*- texinfo -*-
## @deftypefn {Function File}  shading (@var{m})
##
## Sets the shading of a surface. Valid arguments are "flat", "interp", or "faceted"
##
## @example
## shading ("interp")
## @end example
##
## @end deftypefn

function shading(mode)
  hv = get(gca(),'Children');
  for n = 1:length(hv) 
    h = hv(n);
    if strcmp(get(h,'Type'),"Surface")
      if strcmp(mode,"flat") 
        set(h,'FaceColor','flat');
        set(h,'EdgeColor',"none");
      elseif strcmp(mode,"interp")
        set(h,'FaceColor','interp');
        set(h,'EdgeColor',"none");
      elseif strcmp(mode,"faceted")
        set(h,'FaceColor','flat');
        set(h,'EdgeColor',[0 0 0]);
      else
        error("unknown argument")
      endif
    endif
  endfor
endfunction