Revision: 8415
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8415&view=rev
Author:   mdboom
Date:     2010-06-11 18:17:52 +0000 (Fri, 11 Jun 2010)

Log Message:
-----------
Add a global rcParam 'path.snap' that, when False, turns off all pixel-snapping.

Modified Paths:
--------------
    trunk/matplotlib/lib/matplotlib/artist.py
    trunk/matplotlib/lib/matplotlib/collections.py
    trunk/matplotlib/lib/matplotlib/config/mplconfig.py
    trunk/matplotlib/lib/matplotlib/config/rcsetup.py
    trunk/matplotlib/lib/matplotlib/patches.py
    trunk/matplotlib/lib/matplotlib/rcsetup.py
    trunk/matplotlib/matplotlibrc.template

Modified: trunk/matplotlib/lib/matplotlib/artist.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/artist.py   2010-06-11 14:30:32 UTC (rev 
8414)
+++ trunk/matplotlib/lib/matplotlib/artist.py   2010-06-11 18:17:52 UTC (rev 
8415)
@@ -2,7 +2,7 @@
 import re, warnings
 import matplotlib
 import matplotlib.cbook as cbook
-from matplotlib import docstring
+from matplotlib import docstring, rcParams
 from transforms import Bbox, IdentityTransform, TransformedBbox, 
TransformedPath
 from path import Path
 
@@ -414,7 +414,10 @@
 
         Only supported by the Agg and MacOSX backends.
         """
-        return self._snap
+        if rcParams['path.snap']:
+            return self._snap
+        else:
+            return False
 
     def set_snap(self, snap):
         """

Modified: trunk/matplotlib/lib/matplotlib/collections.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/collections.py      2010-06-11 14:30:32 UTC 
(rev 8414)
+++ trunk/matplotlib/lib/matplotlib/collections.py      2010-06-11 18:17:52 UTC 
(rev 8415)
@@ -211,6 +211,7 @@
 
         gc = renderer.new_gc()
         self._set_gc_clip(gc)
+        gc.set_snap(self.get_snap())
 
         renderer.draw_path_collection(
             gc, transform.frozen(), paths, self.get_transforms(),

Modified: trunk/matplotlib/lib/matplotlib/config/mplconfig.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/config/mplconfig.py 2010-06-11 14:30:32 UTC 
(rev 8414)
+++ trunk/matplotlib/lib/matplotlib/config/mplconfig.py 2010-06-11 18:17:52 UTC 
(rev 8415)
@@ -118,6 +118,7 @@
     class path(TConfig):
         simplify = T.false
         simplify_threshold = T.float(1.0 / 9.0)
+        snap = T.true
 
     class patch(TConfig):
         linewidth = T.Float(1.0)
@@ -444,7 +445,8 @@
 
         # Path properties
         'path.simplify' : (self.tconfig.path, 'simplify'),
-        'path.simplify_threshold' : (self.tconfig.path, 'simplify_threshold')
+        'path.simplify_threshold' : (self.tconfig.path, 'simplify_threshold'),
+        'path.snap' : (self.tconfig.path, 'snap')
         }
 
     def __setitem__(self, key, val):

Modified: trunk/matplotlib/lib/matplotlib/config/rcsetup.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/config/rcsetup.py   2010-06-11 14:30:32 UTC 
(rev 8414)
+++ trunk/matplotlib/lib/matplotlib/config/rcsetup.py   2010-06-11 18:17:52 UTC 
(rev 8415)
@@ -476,7 +476,8 @@
     'plugins.directory' : ['.matplotlib_plugins', str], # where plugin 
directory is locate
 
     'path.simplify' : [True, validate_bool],
-    'path.simplify_threshold' : [1.0 / 9.0, ValidateInterval(0.0, 1.0)]
+    'path.simplify_threshold' : [1.0 / 9.0, ValidateInterval(0.0, 1.0)],
+    'path.snap' : [True, validate_bool]
 }
 
 if __name__ == '__main__':

Modified: trunk/matplotlib/lib/matplotlib/patches.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/patches.py  2010-06-11 14:30:32 UTC (rev 
8414)
+++ trunk/matplotlib/lib/matplotlib/patches.py  2010-06-11 18:17:52 UTC (rev 
8415)
@@ -356,7 +356,7 @@
         self._set_gc_clip(gc)
         gc.set_capstyle('projecting')
         gc.set_url(self._url)
-        gc.set_snap(self._snap)
+        gc.set_snap(self.get_snap())
 
         if (not self.fill or self._facecolor is None or
             (cbook.is_string_like(self._facecolor) and 
self._facecolor.lower()=='none')):
@@ -3845,6 +3845,7 @@
         gc.set_antialiased(self._antialiased)
         self._set_gc_clip(gc)
         gc.set_capstyle('round')
+        gc.set_snap(self.get_snap())
 
         if (not self.fill or self._facecolor is None or
             (cbook.is_string_like(self._facecolor) and 
self._facecolor.lower()=='none')):

Modified: trunk/matplotlib/lib/matplotlib/rcsetup.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/rcsetup.py  2010-06-11 14:30:32 UTC (rev 
8414)
+++ trunk/matplotlib/lib/matplotlib/rcsetup.py  2010-06-11 18:17:52 UTC (rev 
8415)
@@ -546,16 +546,17 @@
 
     'path.simplify' : [True, validate_bool],
     'path.simplify_threshold' : [1.0 / 9.0, ValidateInterval(0.0, 1.0)],
+    'path.snap' : [True, validate_bool],
     'agg.path.chunksize' : [0, validate_int],       # 0 to disable chunking;
                                                     # recommend about 20000 to
                                                     # enable. Experimental.
     # key-mappings
-    'keymap.fullscreen' : ['f', validate_stringlist],   
+    'keymap.fullscreen' : ['f', validate_stringlist],
     'keymap.home' : [['h', 'r', 'home'], validate_stringlist],
     'keymap.back' : [['left', 'c', 'backspace'], validate_stringlist],
     'keymap.forward' : [['right', 'v'], validate_stringlist],
     'keymap.pan' : ['p', validate_stringlist],
-    'keymap.zoom' : ['o', validate_stringlist],     
+    'keymap.zoom' : ['o', validate_stringlist],
     'keymap.save' : ['s', validate_stringlist],
     'keymap.grid' : ['g', validate_stringlist],
     'keymap.yscale' : ['l', validate_stringlist],

Modified: trunk/matplotlib/matplotlibrc.template
===================================================================
--- trunk/matplotlib/matplotlibrc.template      2010-06-11 14:30:32 UTC (rev 
8414)
+++ trunk/matplotlib/matplotlibrc.template      2010-06-11 18:17:52 UTC (rev 
8415)
@@ -63,10 +63,10 @@
 # circles.  See
 # 
http://matplotlib.sourceforge.net/api/artist_api.html#module-matplotlib.patches
 # information on patch properties
-#patch.linewidth       : 1.0     # edge width in points
-#patch.facecolor       : blue
-#patch.edgecolor       : black
-#patch.antialiased     : True    # render patches in antialised (no jaggies)
+#patch.linewidth        : 1.0     # edge width in points
+#patch.facecolor        : blue
+#patch.edgecolor        : black
+#patch.antialiased      : True    # render patches in antialised (no jaggies)
 
 ### FONT
 #
@@ -268,12 +268,12 @@
 
 # The figure subplot parameters.  All dimensions are fraction of the
 # figure width or height
-#figure.subplot.left   : 0.125  # the left side of the subplots of the figure
-#figure.subplot.right  : 0.9    # the right side of the subplots of the figure
-#figure.subplot.bottom : 0.1    # the bottom of the subplots of the figure
-#figure.subplot.top    : 0.9    # the top of the subplots of the figure
-#figure.subplot.wspace : 0.2    # the amount of width reserved for blank space 
between subplots
-#figure.subplot.hspace : 0.2    # the amount of height reserved for white 
space between subplots
+#figure.subplot.left    : 0.125  # the left side of the subplots of the figure
+#figure.subplot.right   : 0.9    # the right side of the subplots of the figure
+#figure.subplot.bottom  : 0.1    # the bottom of the subplots of the figure
+#figure.subplot.top     : 0.9    # the top of the subplots of the figure
+#figure.subplot.wspace  : 0.2    # the amount of width reserved for blank 
space between subplots
+#figure.subplot.hspace  : 0.2    # the amount of height reserved for white 
space between subplots
 
 ### IMAGES
 #image.aspect : equal             # equal | auto | a number
@@ -297,12 +297,15 @@
                                   # A value of 20000 is probably a good
                                   # starting point.
 ### SAVING FIGURES
-#path.simplify : False  # When True, simplify paths by removing "invisible"
+#path.simplify : True   # When True, simplify paths by removing "invisible"
                         # points to reduce file size and increase rendering
                         # speed
 #path.simplify_threshold : 0.1  # The threshold of similarity below which
                                 # vertices will be removed in the 
simplification
                                 # process
+#path.snap : True # When True, rectilinear axis-aligned paths will be snapped 
to
+                  # the nearest pixel when certain criteria are met.  When 
False,
+                  # paths will never be snapped.
 
 # the default savefig params can be different from the display params
 # Eg, you may want a higher resolution, or to make the figure
@@ -362,12 +365,12 @@
 #verbose.fileo  : sys.stdout  # a log filename, sys.stdout or sys.stderr
 
 # Event keys to interact with figures/plots via keyboard.
-# Customize these settings according to your needs. 
-# Leave the field(s) empty if you don't need a key-map. (i.e., fullscreen : 
'') 
+# Customize these settings according to your needs.
+# Leave the field(s) empty if you don't need a key-map. (i.e., fullscreen : '')
 
-#keymap.fullscreen : f               # toggling    
+#keymap.fullscreen : f               # toggling
 #keymap.home : h, r, home            # home or reset mnemonic
-#keymap.back : left, c, backspace    # forward / backward keys to enable 
+#keymap.back : left, c, backspace    # forward / backward keys to enable
 #keymap.forward : right, v           #   left handed quick navigation
 #keymap.pan : p                      # pan mnemonic
 #keymap.zoom : o                     # zoom mnemonic


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

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to