diff scripts/image/image.m @ 7276:1e8e64d71e34

[project @ 2007-12-10 20:09:59 by jwe]
author jwe
date Mon, 10 Dec 2007 20:09:59 +0000
parents a730e47fda4d
children 3ceb12c499e9
line wrap: on
line diff
--- a/scripts/image/image.m	Mon Dec 10 18:54:37 2007 +0000
+++ b/scripts/image/image.m	Mon Dec 10 20:09:59 2007 +0000
@@ -41,57 +41,41 @@
 
 function retval = image (varargin)
 
-  if (nargin == 0)
-    __image__ (gca ());
-  elseif (nargin == 1)
-    print_usage ();
-  elseif (isscalar (varargin{1}) && ishandle (varargin{1}))
-    h = varargin{1};
-    if (! strcmp (get (h, "type"), "axes"))
-      error ("image: expecting first argument to be an axes object");
+  [ax, varargin, nargin] = __plt_get_axis_arg__ ("image", varargin{:});
+
+  firstnonnumeric = Inf;
+  for i = 1 : nargin
+    if (! isnumeric (varargin{i}))
+      firstnonnumeric = i;
+      break;
     endif
-    oldh = gca ();
-    unwind_protect
-      axes (h);
-      tmp = __image__ (h, varargin{2:end});
-    unwind_protect_cleanup
-      axes (oldh);
-    end_unwind_protect
+  endfor
+
+  if (nargin == 0 || firstnonnumeric == 1)
+    img = loadimage ("default.img");
+    x = y = [];
+  elseif (nargin == 1 || firstnonnumeric == 2)
+    img = varargin{1};
+    x = y = [];
+  elseif (nargin == 2 || firstnonnumeric == 3)
+    print_usage ();
   else
-    tmp = __image__ (gca (), varargin{:});
+    x = varargin{1};
+    y = varargin{2};
+    img = varargin{3};
+    firstnonnumeric = 4;
   endif
 
+  oldax = gca ();
+  unwind_protect
+    axes (ax);
+    h = __img__ (x, y, img, varargin {firstnonnumeric:end});
+  unwind_protect_cleanup
+    axes (oldax);
+  end_unwind_protect
+
   if (nargout > 0)
-    retval = tmp;
+    retval = h;
   endif
 
 endfunction
-
-function h = __image__ (ax, x, y, img)
-
-  ## Deprecated zoom.  Remove this hunk of code if old zoom argument
-  ## is outmoded.
-  if ((nargin == 3 && isscalar (y)) || nargin == 5)
-    warning ("image: zoom argument ignored -- use GUI features");
-  endif
-  if (nargin == 5)
-    nargin = 4;
-  endif
-  if (nargin == 3 && isscalar (y))
-    nargin = 2;
-  endif
-
-  if (nargin == 1)
-    ## Load Bobbie Jo Richardson (Born 3/16/94)
-    img = loadimage ("default.img");
-    x = y = [];
-  elseif (nargin == 2)
-    img = x;
-    x = y = [];
-  elseif (nargin == 3 || nargin > 4)
-    print_usage ();
-  endif
-
-  h = __img__ (x, y, img);
-
-endfunction