ivan@77: function updateFigure(opts, figTitle, figFilename) ivan@77: ivan@77: % Copyright 2008, Ewout van den Berg and Michael P. Friedlander ivan@77: % http://www.cs.ubc.ca/labs/scl/sparco ivan@77: % $Id: updateFigure.m 1040 2008-06-26 20:29:02Z ewout78 $ ivan@77: ivan@77: % Ensure default values are available ivan@77: opts.linewidth = getOption(opts,'linewidth', []); ivan@77: opts.fontsize = getOption(opts,'fontsize', []); ivan@77: opts.markersize = getOption(opts,'markersize',[]); ivan@77: ivan@77: % Output the plots ivan@77: if opts.update ivan@77: % Set the line width, font size and marker size ivan@77: chld = [gca; get(gca,'Children')]; ivan@77: lnwd = ones(length(chld),1) * NaN; ivan@77: fnts = ones(length(chld),1) * NaN; ivan@77: mrks = ones(length(chld),1) * NaN; ivan@77: for i=1:length(chld) ivan@77: conf = get(chld(i)); ivan@77: if ~isempty(opts.linewidth) && isfield(conf,'LineWidth') ivan@77: lnwd(i) = get(chld(i),'LineWidth'); ivan@77: if (lnwd(i) == 0.5) % Default ivan@77: set(chld(i),'Linewidth',opts.linewidth); ivan@77: end ivan@77: end ivan@77: if ~isempty(opts.fontsize) && isfield(conf,'FontSize') ivan@77: fnts(i) = get(chld(i),'FontSize'); ivan@77: if (fnts(i) == 10) % Default ivan@77: set(chld(i),'FontSize',opts.fontsize); ivan@77: end ivan@77: end ivan@77: if ~isempty(opts.markersize) && isfield(conf,'MarkerSize') ivan@77: mrks(i) = get(chld(i),'MarkerSize'); ivan@77: if (mrks(i) == 6) % Default ivan@77: set(chld(i),'MarkerSize',opts.markersize); ivan@77: end ivan@77: end ivan@77: end ivan@77: ivan@77: for i=1:length(opts.figtype) ivan@77: updateFigureType(opts.update, 0, opts.figtype{i}, ... ivan@77: opts.figpath, figTitle, figFilename); ivan@77: end ivan@77: ivan@77: % Restore the line-widths, font size ivan@77: for i=1:length(chld) ivan@77: if ~isnan(lnwd(i)) ivan@77: set(chld(i),'LineWidth',lnwd(i)); ivan@77: end ivan@77: if ~isnan(fnts(i)) ivan@77: set(chld(i),'FontSize',fnts(i)); ivan@77: end ivan@77: if ~isnan(mrks(i)) ivan@77: set(chld(i),'MarkerSize',mrks(i)); ivan@77: end ivan@77: end ivan@77: ivan@77: end ivan@77: ivan@77: % Show the plot ivan@77: if opts.show ivan@77: updateFigureType(0,opts.show,'','',figTitle,''); ivan@77: end ivan@77: ivan@77: ivan@77: ivan@77: function updateFigureType(update,show,figtype,figpath,figTitle,figFilename) ivan@77: filename = [figpath,figFilename]; ivan@77: ivan@77: switch lower(figtype) ivan@77: case {'pdf'} ivan@77: cmdPostprocess = sprintf('!pdfcrop %s.pdf %s.pdf >& /dev/null', ... ivan@77: filename, filename); ivan@77: otherwise ivan@77: cmdPostprocess = []; ivan@77: end ivan@77: ivan@77: [figtype,figext] = getFigureExt(figtype); ivan@77: ivan@77: % Print the figure for output (without title) ivan@77: if update ivan@77: evalc(sprintf('print -d%s %s.%s;', figtype, filename, figext)); ivan@77: ivan@77: if ~isempty(cmdPostprocess) ivan@77: eval(cmdPostprocess); ivan@77: end ivan@77: end ivan@77: ivan@77: % Add title if needed ivan@77: if show ivan@77: title(figTitle); ivan@77: end