samer@0: function u=construct(s,sizes_in) samer@0: figure(fig(s)); cla; set(gcf,'Name',name(s)); samer@0: h=s.opts.scatfn(zeros(sizes_in{1}),s.opts.args{:}); samer@0: if ~isempty(s.opts.xlim), xlim(s.opts.xlim); end samer@0: if ~isempty(s.opts.ylim), ylim(s.opts.ylim); end samer@0: if ~isempty(s.opts.zlim), zlim(s.opts.zlim); end samer@0: if isfield(s.opts,'ylabel'), ylabel(s.opts.ylabel); end samer@0: if isfield(s.opts,'xlabel'), xlabel(s.opts.xlabel); end samer@0: if isfield(s.opts,'zlabel'), xlabel(s.opts.zlabel); end samer@0: if isfield(s.opts,'rotate3d'), rotate3d(s.opts.rotate3d); end samer@0: samer@0: samer@0: u=mkunit(s); samer@0: af=autoflush(s); samer@0: if sizes_in{1}(2)<=2 u.process =@proc_2d; samer@0: else u.process =@proc_3d; samer@0: end samer@0: samer@0: u.sizes_out = {}; samer@0: u.dispose = @()delete(h); samer@0: samer@0: function proc_2d(x) samer@0: set(h,'XData',x(:,1),'YData',x(:,2)); samer@0: if (af), drawnow; end samer@0: end samer@0: function proc_3d(x) samer@0: set(h,'XData',x(:,1),'YData',x(:,2),'ZData',x(:,3)); samer@0: if (af), drawnow; end samer@0: end samer@0: end