Revision: 4893
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4893&view=rev
Author:   efiring
Date:     2008-01-23 14:35:10 -0800 (Wed, 23 Jan 2008)

Log Message:
-----------
streamline handling of masked values in Path.__init__

Modified Paths:
--------------
    trunk/matplotlib/lib/matplotlib/path.py

Modified: trunk/matplotlib/lib/matplotlib/path.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/path.py     2008-01-23 20:33:27 UTC (rev 
4892)
+++ trunk/matplotlib/lib/matplotlib/path.py     2008-01-23 22:35:10 UTC (rev 
4893)
@@ -101,7 +101,7 @@
             mask = ma.nomask
 
         if codes is not None:
-           codes = npy.asarray(codes, self.code_type)
+            codes = npy.asarray(codes, self.code_type)
             assert codes.ndim == 1
             assert len(codes) == len(vertices)
 
@@ -112,17 +112,15 @@
         # MOVETO commands to the codes array accordingly.
         if is_mask:
             if mask is not ma.nomask:
-                mask1d = ma.mask_or(mask[:, 0], mask[:, 1])
+                mask1d = npy.logical_or.reduce(mask, axis=1)
+                gmask1d = npy.invert(mask1d)
                 if codes is None:
-                    codes = self.LINETO * npy.ones(
-                        len(vertices), self.code_type)
+                    codes = npy.empty((len(vertices)), self.code_type)
+                    codes.fill(self.LINETO)
                     codes[0] = self.MOVETO
-                vertices = npy.compress(npy.invert(mask1d), vertices, 0)
-                vertices = npy.asarray(vertices)
-                codes = npy.where(npy.concatenate((mask1d[-1:], mask1d[:-1])),
-                                  self.MOVETO, codes)
-                codes = ma.masked_array(codes, mask=mask1d).compressed()
-                codes = npy.asarray(codes, self.code_type)
+                vertices = vertices[gmask1d].filled() # ndarray
+                codes[npy.roll(mask1d, 1)] = self.MOVETO
+                codes = codes[gmask1d] # npy.compress is much slower
             else:
                 vertices = npy.asarray(vertices, npy.float_)
 
@@ -130,7 +128,7 @@
         assert vertices.shape[1] == 2
 
         self.codes = codes
-       self.vertices = vertices
+        self.vertices = vertices
 
     [EMAIL PROTECTED]
     def make_compound_path(*args):


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to