File: colormap.m

package info (click to toggle)
plplot 5.14.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 30,424 kB
  • sloc: ansic: 79,613; xml: 28,583; cpp: 20,037; ada: 19,456; tcl: 12,081; f90: 11,423; ml: 7,276; java: 6,863; python: 6,792; sh: 3,185; perl: 828; lisp: 75; makefile: 48; sed: 33; fortran: 5
file content (90 lines) | stat: -rw-r--r-- 2,352 bytes parent folder | download | duplicates (5)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
## Copyright (C) 1998-2003 Joao Cardoso.
##
## This program 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 of the License, or (at your
## option) any later version.
##
## This program 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.
##
## This file is part of plplot_octave.

## cmap = colormap([map])
##
## Set colormap1 to map; map is an n row by 3 columns matrix, representing
##   red, green and blue components in the range [0..1]
##
## if map == 'default', returns and sets the default hsl colormap
## if map don't exist, return the current colormap

function ccmap = colormap(map)

  global __pl
  global pl_automatic_replot
  __pl_init;

  if (nargin == 0)
    if (struct_contains(__pl, "colormap"))
      cmap = __pl.colormap;
    else
      n = 64;
      r = [zeros(n/2,1); linspace(0,1,n/2)'];
      g = zeros(n,1);
      b = [linspace(1,0,n/2)'; zeros(n/2,1)];
      cmap = __pl.colormap = [r, g, b];
    endif

    if (nargout)
      ccmap = cmap;
    endif
    return
  endif

  if (nargin == 1 && ischar(map) && strcmp(map, 'default'))
    plscmap1n(0);
    n = 64;
    r = [zeros(n/2,1); linspace(0,1,n/2)'];
    g = zeros(n,1);
    b = [linspace(1,0,n/2)'; zeros(n/2,1)];
    map = __pl.colormap = [r, g, b];
    if (nargout)
      ccmap = map;
    endif
  endif

  if (nargin == 2 && ischar(map) && strcmp(map, 'register'))
    # Silently ignore register option to avoid error messages from core
    # octave colormaps if this version of colormap is on the path at
    # octave startup, e.g. the test_octave_interactive.sh script.
    return
  endif

  [r, c] = size(map);
  if( c != 3)
    help colormap
    return
  endif

  __pl.colormap = map;
  cmap = map;
  map = map.*255;

  plscmap1n(rows(map)); # number of colors
  plscmap1(map(:,1), map(:,2), map(:,3));
  plflush;#pleop;

  if (exist("pl_automatic_replot"))
    if (pl_automatic_replot)
      ## can cause problems on plot scripts that dont support automatic _replot
      __pl_plotit;
    endif
  endif

  if (nargout)
    ccmap = cmap;
  endif

endfunction