octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why does "mesh " set surface "facecolor" to "none"?


From: David Bateman
Subject: Re: Why does "mesh " set surface "facecolor" to "none"?
Date: Fri, 09 Nov 2007 11:33:20 +0100
User-agent: Thunderbird 1.5.0.7 (X11/20060921)

Opps, wrong version of the patch included.. Use the attached version
instead.

D.


-- 
David Bateman                                address@hidden
Motorola Labs - Paris                        +33 1 69 35 48 04 (Ph) 
Parc Les Algorithmes, Commune de St Aubin    +33 6 72 01 06 33 (Mob) 
91193 Gif-Sur-Yvette FRANCE                  +33 1 69 35 77 01 (Fax) 

The information contained in this communication has been classified as: 

[x] General Business Information 
[ ] Motorola Internal Use Only 
[ ] Motorola Confidential Proprietary

*** ./scripts/plot/mesh.m.orig12        2007-11-09 10:54:46.617681199 +0100
--- ./scripts/plot/mesh.m       2007-11-09 10:55:31.807334870 +0100
***************
*** 38,44 ****
  
    ax = get (tmp, "parent");
  
!   set (tmp, "facecolor", "none");
    set (tmp, "edgecolor", "flat");
  
    set (ax, "view", [-37.5, 30]);
--- 38,44 ----
  
    ax = get (tmp, "parent");
  
!   set (tmp, "facecolor", "w");
    set (tmp, "edgecolor", "flat");
  
    set (ax, "view", [-37.5, 30]);
*** ./scripts/plot/hidden.m.orig12      2007-11-09 10:54:52.412380694 +0100
--- ./scripts/plot/hidden.m     2007-11-09 11:31:05.768959824 +0100
***************
*** 0 ****
--- 1,78 ----
+ ## Copyright (C) 2007 Michael Goffioul
+ ##
+ ## This file is part of Octave.
+ ##
+ ## 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 3 of the License, 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, see
+ ## <http://www.gnu.org/licenses/>.
+ 
+ ## -*- texinfo -*-
+ ## @deftypefn {Function File} {} hidden (@var{mode})
+ ## @deftypefnx {Function File} {} hidden ()
+ ## Manipulation the mesh hidden line removal. Called with no argument
+ ## the hidden line removal is toggled. The argument @var{mode} can be either
+ ## 'on' or 'off' and the set of the hidden line removal is set accordingly.
+ ## @seealso{mesh, meshc, surf}
+ ## @end deftypefn
+ 
+ ## PKG_ADD: mark_as_command hidden
+ 
+ function retval = hidden (mode)
+ 
+   if (nargin == 0)
+     mode = "swap";
+   elseif (nargin == 1);
+     if (ischar (mode))
+       mode = tolower (mode);
+       if (! strcmp (mode, "on") && ! strcmp (mode, "off"))
+       error ("hidden: mode expected to be 'on' or 'off'");
+       endif
+     else
+       error ("hidden: expecting mode to be a string");
+     endif
+   else
+     print_usage ();
+   endif
+ 
+   for h = get (gca (), "children");
+     htype = lower (get (h, "type"));
+     if (strcmp (htype, "surface"))
+       fc = get (h, "facecolor");
+       if ((! ischar (fc) && is_white (fc)) || 
+         (ischar (fc) && strcmp (fc, "none")))
+         switch (mode)
+         case "on"
+           set (h, "facecolor", "w");
+         case "off"
+           set (h, "facecolor", "none");
+         case "swap"
+           if (ischar (fc))
+             set (h, "facecolor", "w");
+           mode = "on";
+           else
+             set (h, "facecolor", "none");
+           mode = "off";
+           endif
+         endswitch
+       endif
+     endif
+   endfor
+ 
+   if (nargout > 0)
+     retval = mode;
+   endif
+ endfunction
+ 
+ function [ ret ] = is_white (color)
+   ret = all (color == 1);
+ endfunction
*** ./scripts/plot/Makefile.in.orig12   2007-11-09 10:54:59.337021447 +0100
--- ./scripts/plot/Makefile.in  2007-11-09 10:56:00.821825080 +0100
***************
*** 81,86 ****
--- 81,87 ----
    gca.m \
    gcf.m \
    grid.m \
+   hidden.m \
    hist.m \
    hold.m \
    isfigure.m \
*** ./scripts/plot/meshc.m.orig12       2007-11-09 10:55:05.395706999 +0100
--- ./scripts/plot/meshc.m      2007-11-09 10:55:44.290685595 +0100
***************
*** 35,41 ****
  
    ax = get (tmp, "parent");
  
!   set (tmp, "facecolor", "none");
    set (tmp, "edgecolor", "flat");
  
    set (ax, "view", [-37.5, 30]);
--- 35,41 ----
  
    ax = get (tmp, "parent");
  
!   set (tmp, "facecolor", "w");
    set (tmp, "edgecolor", "flat");
  
    set (ax, "view", [-37.5, 30]);
*** ./scripts/plot/__go_draw_axes__.m.orig12    2007-11-09 10:55:20.941899611 
+0100
--- ./scripts/plot/__go_draw_axes__.m   2007-11-09 11:20:23.509771138 +0100
***************
*** 201,206 ****
--- 201,207 ----
      data_idx = 0;
      data = cell ();
      is_image_data = [];
+     hidden_removal = true;
  
      xminp = yminp = zminp = cminp = Inf;
      xmax = ymax = zmax = cmax = -Inf;
***************
*** 341,347 ****
            data{data_idx} = [xdat, ydat, zdat]';
            usingclause{data_idx} = "using ($1):($2):($3)";
            fputs (plot_stream, "set parametric;\n");
-           fputs (plot_stream, "set hidden3d;\n");
            fputs (plot_stream, "set style data lines;\n");
            fputs (plot_stream, "set surface;\n");
            fputs (plot_stream, "unset contour;\n");
--- 342,347 ----
***************
*** 670,676 ****
            withclause{data_idx} = "with line palette";
  
            fputs (plot_stream, "unset parametric;\n");
-           fputs (plot_stream, "set hidden3d;\n");
            fputs (plot_stream, "set style data lines;\n");
            fputs (plot_stream, "set surface;\n");
            fputs (plot_stream, "unset contour;\n");
--- 670,675 ----
***************
*** 686,693 ****
                                || strncmp (obj.edgecolor, "interp", 6));
              palette_data = [];
  
              if (flat_interp_face
!               || (flat_interp_edge && strncmp (obj.facecolor, "none", 4)))
                palette_data = [1:rows(surf_colormap); surf_colormap'];
              endif
  
--- 685,699 ----
                                || strncmp (obj.edgecolor, "interp", 6));
              palette_data = [];
  
+           if (strncmp (obj.facecolor, "none", 4))
+             hidden_removal = false;
+           endif
+ 
              if (flat_interp_face
!               || (flat_interp_edge && 
!                   (strncmp (obj.facecolor, "none", 4) || 
!                    (isnumeric (obj.facecolor) &&
!                     all (obj.facecolor == 1)))))
                palette_data = [1:rows(surf_colormap); surf_colormap'];
              endif
  
***************
*** 695,706 ****
                palette_data = [1:2; [obj.facecolor; obj.facecolor]'];
              endif
  
!             if (strncmp (obj.facecolor, "none", 4)
                && isnumeric (obj.edgecolor))
                palette_data = [1:2; [obj.edgecolor; obj.edgecolor]'];
              endif
  
!             if (strncmp (obj.facecolor, "none", 4))
              elseif (flat_interp_face && strncmp (obj.edgecolor, "flat", 4))
                fprintf (plot_stream, "set pm3d at s %s;\n", interp_str);
              else
--- 701,717 ----
                palette_data = [1:2; [obj.facecolor; obj.facecolor]'];
              endif
  
! 
!           if ((strncmp (obj.facecolor, "none", 4) || 
!               (isnumeric (obj.facecolor) &&
!                all (obj.facecolor == 1)))
                && isnumeric (obj.edgecolor))
                palette_data = [1:2; [obj.edgecolor; obj.edgecolor]'];
              endif
  
!           if (strncmp (obj.facecolor, "none", 4) || 
!               (isnumeric (obj.facecolor) &&
!                all (obj.facecolor == 1)))
              elseif (flat_interp_face && strncmp (obj.edgecolor, "flat", 4))
                fprintf (plot_stream, "set pm3d at s %s;\n", interp_str);
              else
***************
*** 820,825 ****
--- 831,842 ----
  
      endfor
  
+     if (hidden_removal)
+       fputs (plot_stream, "set hidden3d;\n");
+     else
+       fputs (plot_stream, "unset hidden3d;\n");
+     endif
+ 
      have_data = (! (isempty (data) && any (cellfun (@isempty, data))));
  
      if (xautoscale && have_data)
2007-11-09  David Bateman  <address@hidden>

        * plot/hidden.m: New function.
        * plot/Makefile.in (SOURCES): Add it here.
        * plot/meshc.m, plot/mesh.m: Set facecolor to White for hidden
        line removal.
        * plot/__go_draw_axes__.m: If facecolor is white flag hidden line
        removal and if it is "none" don't do hidden line removal.

2007-11-09  David Bateman  <address@hidden>

        * interpreter/plot.txi: Document the hidden function.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]