diff inst/@strel/getsequence.m @ 770:577f260755b4

strel: implement hypercube and hyperrectangle shapes. * @strel/strel.m: implement the hypercube and hyperrectangle shapes. * @strel/getsequence.m: implement SE decomposition for the new shapes. Generalize with the square, cube, and rectangle shapes.
author Carnë Draug <carandraug@octave.org>
date Tue, 23 Jul 2013 05:30:57 +0100 (2013-07-23)
parents d3cb0158612f
children faa1945e2d2b
line wrap: on
line diff
--- a/inst/@strel/getsequence.m
+++ b/inst/@strel/getsequence.m
@@ -27,16 +27,14 @@
 
   if (isempty (se.seq))
     switch (se.shape)
-      case "cube"
-        se.seq{1,1} = strel ("arbitrary", true (se.opt.edge, 1));
-        se.seq{2,1} = strel ("arbitrary", true (1, se.opt.edge));
-        se.seq{3,1} = strel ("arbitrary", true (1, 1, se.opt.edge));
-      case "rectangle"
-        se.seq{1,1} = strel ("arbitrary", true (se.opt.dimensions(1), 1));
-        se.seq{2,1} = strel ("arbitrary", true (1, se.opt.dimensions(2)));
-      case "square"
-        se.seq{1,1} = strel ("arbitrary", true (se.opt.edge, 1));
-        se.seq{2,1} = strel ("arbitrary", true (1, se.opt.edge));
+      case {"square", "cube", "hypercube", "rectangle", "hyperrectangle"}
+        nd = ndims (se.nhood);
+        for idx = 1:nd
+          vec_size      = ones (1, nd);
+          vec_size(idx) = size (se.nhood, idx);
+          se.seq{idx}   = strel ("arbitrary", true (vec_size));
+        endfor
+
       otherwise
         se.seq{1,1} = se;
     endswitch