Revision: 3846
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3846&view=rev
Author:   mdboom
Date:     2007-09-13 05:44:16 -0700 (Thu, 13 Sep 2007)

Log Message:
-----------
Minor changes -- committing so I can merge again.

Modified Paths:
--------------
    branches/transforms/lib/matplotlib/affine.py
    branches/transforms/lib/matplotlib/patches.py
    branches/transforms/lib/matplotlib/text.py

Modified: branches/transforms/lib/matplotlib/affine.py
===================================================================
--- branches/transforms/lib/matplotlib/affine.py        2007-09-13 06:29:14 UTC 
(rev 3845)
+++ branches/transforms/lib/matplotlib/affine.py        2007-09-13 12:44:16 UTC 
(rev 3846)
@@ -4,7 +4,7 @@
 2007 Michael Droettboom
 """
 
-import numpy as N
+import numpy as npy
 from numpy.linalg import inv
 from sets import Set
 
@@ -37,7 +37,7 @@
 class Bbox(TransformNode):
     def __init__(self, points):
        TransformNode.__init__(self)
-       self._points = N.asarray(points, N.float_)
+       self._points = npy.asarray(points, npy.float_)
        self.track = False
 
     [EMAIL PROTECTED]
@@ -52,7 +52,7 @@
 
     [EMAIL PROTECTED]
     def from_lbrt(*args):
-       points = N.array(args, dtype=N.float_).reshape(2, 2)
+       points = npy.array(args, dtype=npy.float_).reshape(2, 2)
        return Bbox(points)
     from_lbrt = staticmethod(from_lbrt)
     
@@ -72,12 +72,15 @@
        return 'Bbox(%s)' % repr(self._points)
     __str__ = __repr__
 
+    def __array__(self):
+       return self._points
+    
     # JDH: the update method will update the box limits from the
     # existing limits and the new data; it appears here you are just
     # using the new data.  We use an "ignore" flag to specify whether
     # you want to include the existing data or not in the update
     def update_from_data(self, x, y, ignore=True):
-       self._points = N.array([[x.min(), y.min()], [x.max(), y.max()]], 
N.float_)
+       self._points = npy.array([[x.min(), y.min()], [x.max(), y.max()]], 
npy.float_)
        self.invalidate()
 
     # MGDTODO: Probably a more efficient ways to do this...
@@ -150,7 +153,7 @@
                self.xmax - self.xmin, self.ymax - self.ymin)
     def _set_bounds(self, bounds):
        l,b,w,h = bounds
-       self._points = N.array([[l, b], [l+w, b+h]], N.float_)
+       self._points = npy.array([[l, b], [l+w, b+h]], npy.float_)
        self.invalidate()
     bounds = property(_get_bounds, _set_bounds)
        
@@ -165,7 +168,7 @@
        height = self.height
        deltaw = (sw * width - width) / 2.0
        deltah = (sh * height - height) / 2.0
-       a = N.array([[-deltaw, -deltah], [deltaw, deltah]])
+       a = npy.array([[-deltaw, -deltah], [deltaw, deltah]])
        return Bbox(self._points + a)
 
     def contains(self, x, y):
@@ -215,7 +218,7 @@
        raise TypeError("Can not add Transform to object of type '%s'" % 
type(other))
 
     def transform_point(self, point):
-       return self.__call__([point])[0]
+       return self.__call__(npy.asarray([point]))[0]
     
     def has_inverse(self):
        raise NotImplementedError()
@@ -229,8 +232,6 @@
     def is_affine(self):
        return False
 
-# MGDTODO: Separate out Affine2DBase / Affine2DConcrete so BlendedAffine and 
CompositeAffine don't have translate/scale/rotate members
-
 class Affine2DBase(Transform):
     input_dims = 2
     output_dims = 2
@@ -246,7 +247,7 @@
 
     [EMAIL PROTECTED]
     def _concat(a, b):
-        return N.dot(b, a)
+        return npy.dot(b, a)
     _concat = staticmethod(_concat)
     
     def to_values(self):
@@ -255,7 +256,7 @@
     
     [EMAIL PROTECTED]
     def matrix_from_values(a, b, c, d, e, f):
-       affine = N.zeros((3,3), N.float_)
+       affine = npy.zeros((3,3), npy.float_)
        affine[0,] = a, c, e
        affine[1,] = b, d, f
        affine[2,2] = 1
@@ -267,7 +268,7 @@
     
     def __call__(self, points):
         """
-        Applies the transformation to a set of 2D points and
+        Applies the transformation to an array of 2D points and
        returns the result.
 
        points must be a numpy array of shape (N, 2), where N is the
@@ -277,9 +278,9 @@
        # the points to an array in the first place.  If we can use
        # more arrays upstream, that should help here.
        mtx = self.get_matrix()
-       points = N.asarray(points, N.float_)
+       points = npy.asarray(points, npy.float_)
        points = points.transpose()
-       points = N.dot(mtx[0:2, 0:2], points)
+       points = npy.dot(mtx[0:2, 0:2], points)
        points = points + mtx[0:2, 2:]
        return points.transpose()
     
@@ -311,7 +312,7 @@
         """
        Affine2DBase.__init__(self)
        if matrix is None:
-           matrix = N.identity(3)
+           matrix = npy.identity(3)
        else:
            assert matrix.shape == (3, 3)
        self._mtx = matrix
@@ -348,19 +349,19 @@
     
     [EMAIL PROTECTED]
     def identity():
-        return Affine2D(N.identity(3))
+        return Affine2D(npy.identity(3))
     identity = staticmethod(identity)
 
     def rotate(self, theta):
-        a = N.cos(theta)
-        b = N.sin(theta)
+        a = npy.cos(theta)
+        b = npy.sin(theta)
         rotate_mtx = self.matrix_from_values(a, b, -b, a, 0, 0)
         self._mtx = self._concat(self._mtx, rotate_mtx)
        self.invalidate()
        return self
 
     def rotate_deg(self, degrees):
-        return self.rotate(degrees*N.pi/180.)
+        return self.rotate(degrees*npy.pi/180.)
 
     def translate(self, tx, ty):
         translate_mtx = self.matrix_from_values(1., 0., 0., 1., tx, ty)
@@ -420,7 +421,7 @@
            # This works because we already know the transforms are
            # separable, though normally one would want to set b and
            # c to zero.
-           self._mtx = N.vstack((x_mtx[0], y_mtx[1], [0.0, 0.0, 1.0]))
+           self._mtx = npy.vstack((x_mtx[0], y_mtx[1], [0.0, 0.0, 1.0]))
        
     def is_separable(self):
        return True
@@ -444,7 +445,7 @@
        y_points = self._y(points)
        # This works because we already know the transforms are
        # separable
-       return N.hstack((x_points[:, 0:1], y_points[:, 1:2]))
+       return npy.hstack((x_points[:, 0:1], y_points[:, 1:2]))
 
 class CompositeAffine2D(Affine2DBase):
     def __init__(self, a, b):
@@ -579,6 +580,7 @@
     return interval[0] < val and interval[1] > val
     
 if __name__ == '__main__':
+    import copy
     from random import random
     import timeit
 
@@ -588,36 +590,38 @@
     assert bbox.xmax == 20
     assert bbox.ymax == 25
 
-    assert N.all(bbox.min == [10, 15])
-    assert N.all(bbox.max == [20, 25])
-    assert N.all(bbox.intervalx == (10, 20))
-    assert N.all(bbox.intervaly == (15, 25))
+    assert npy.all(bbox.min == [10, 15])
+    assert npy.all(bbox.max == [20, 25])
+    assert npy.all(bbox.intervalx == (10, 20))
+    assert npy.all(bbox.intervaly == (15, 25))
 
     assert bbox.width == 10
     assert bbox.height == 10
 
-    assert bbox.get_bounds() == (10, 15, 10, 10)
+    assert bbox.bounds == (10, 15, 10, 10)
 
+    print npy.asarray(bbox)
+    
     bbox.intervalx = (11, 21)
     bbox.intervaly = (16, 26)
     
-    assert bbox.get_bounds() == (11, 16, 10, 10)
+    assert bbox.bounds == (11, 16, 10, 10)
 
     bbox.xmin = 12
     bbox.ymin = 17
     bbox.xmax = 22
     bbox.ymax = 27
 
-    assert bbox.get_bounds() == (12, 17, 10, 10)
+    assert bbox.bounds == (12, 17, 10, 10)
 
     bbox = Bbox.from_lbwh(10, 11, 12, 13)
-    assert bbox.get_bounds() == (10, 11, 12, 13)
+    assert bbox.bounds == (10, 11, 12, 13)
 
-    bbox_copy = bbox.copy()
+    bbox_copy = copy.copy(bbox)
     assert bbox == bbox_copy
     bbox_copy.max = (14, 15)
-    assert bbox.get_bounds() == (10, 11, 12, 13)
-    assert bbox_copy.get_bounds() == (10, 11, 4, 4)
+    assert bbox.bounds == (10, 11, 12, 13)
+    assert bbox_copy.bounds == (10, 11, 4, 4)
     
     bbox1 = Bbox([[10., 15.], [20., 25.]])
     bbox2 = Bbox([[30., 35.], [40., 45.]])
@@ -634,7 +638,7 @@
                                   -0.49999999999999994, 0.86602540378443871,
                                   0.0, 0.0)
     
-    points = N.array([[1,2],[3,4],[5,6],[7,8]], N.float_)
+    points = npy.array([[1,2],[3,4],[5,6],[7,8]], npy.float_)
     translated_points = translation(points)
     assert (translated_points == [[11., 22.], [13., 24.], [15., 26.], [17., 
28.]]).all()
     scaled_points = scale(points)
@@ -655,7 +659,7 @@
     t = timeit.Timer("trans_sum(points)", "from __main__ import trans_sum, 
points")
     print "Time to transform 10000 x 10 points as tuples:", t.timeit(10)
 
-    points2 = N.asarray(points)
+    points2 = npy.asarray(points)
     t = timeit.Timer("trans_sum(points2)", "from __main__ import trans_sum, 
points2")
     print "Time to transform 10000 x 10 points as numpy array:", t.timeit(10)
     

Modified: branches/transforms/lib/matplotlib/patches.py
===================================================================
--- branches/transforms/lib/matplotlib/patches.py       2007-09-13 06:29:14 UTC 
(rev 3845)
+++ branches/transforms/lib/matplotlib/patches.py       2007-09-13 12:44:16 UTC 
(rev 3846)
@@ -356,9 +356,9 @@
         left, right = self.convert_xunits((x, x + self.width))
         bottom, top = self.convert_yunits((y, y + self.height))
 
-        return ( (left, bottom), (left, top),
-                 (right, top), (right, bottom),
-                 )
+        return npy.array([[left, bottom], [left, top],
+                         [right, top], [right, bottom]],
+                        npy.float_)
 
     def get_x(self):
         "Return the left coord of the rectangle"

Modified: branches/transforms/lib/matplotlib/text.py
===================================================================
--- branches/transforms/lib/matplotlib/text.py  2007-09-13 06:29:14 UTC (rev 
3845)
+++ branches/transforms/lib/matplotlib/text.py  2007-09-13 12:44:16 UTC (rev 
3846)
@@ -149,7 +149,7 @@
     def _get_xy_display(self):
         'get the (possibly unit converted) transformed x,y in display coords'
         x, y = self.get_position()
-        return self.get_transform()([[x,y]])[0]
+        return self.get_transform().transform_point((x,y))
 
     def _get_multialignment(self):
         if self._multialignment is not None: return self._multialignment


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 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to