ó
±éRc           @   s6  d  Z  d d l m Z d d l m Z d d l m Z m Z d d l m	 Z	 d d l
 m Z m Z d d l Z d d l m Z d	 e j f d
 „  ƒ  YZ d e j f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d „  Z d „  Z e d k r2d d l j Z e j d d d ƒZ e j ƒ  e e ƒ e j  ƒ  n  d S(   s/   
An experimental support for curvilinear grid.
iÿÿÿÿ(   t   chain(   t
   GridFinder(   t   AxisArtistHelpert   GridHelperBase(   t
   AxisArtist(   t   Affine2Dt   IdentityTransformN(   t   Patht   FixedAxisArtistHelperc           B   sA   e  Z d  Z d d „ Z d „  Z d d „ Z d „  Z d „  Z RS(   s(   
    Helper class for a fixed axis.
    c         C   sY   t  t |  ƒ j d | ƒ | |  _ | d k r: |  j } n  | |  _ | |  _ t |  _	 d S(   s}   
        nth_coord = along which coordinate value varies.
         nth_coord = 0 ->  x axis, nth_coord = 1 -> y axis
        t   locN(
   t   superR   t   __init__t   grid_helpert   Nonet	   nth_coordt   nth_coord_tickst   sidet   Falset   _limits_inverted(   t   selfR   R   R   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR      s    			c         C   sk   |  j  j | ƒ |  j d k r4 | j ƒ  \ } } n | j ƒ  \ } } | | k r^ t |  _ n	 t |  _ d  S(   Ni    (   R   t
   update_limR   t   get_ylimt   get_xlimt   TrueR   R   (   R   t   axest   xy1t   xy2(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR   '   s    c         C   sG   | d  k r d |  j |  _ n$ | d k r7 | |  _ n t d ƒ ‚ d  S(   Ni   i    s   wrong coord number(   i    i   (   R   R   t	   Exception(   R   t   coord_number(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   change_tick_coord5   s
    c         C   s   | j  S(   N(   t	   transData(   R   R   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   get_tick_transform>   s    c         C   s”   |  j  } |  j r> i d d 6d d 6d d 6d d 6|  j } n	 |  j } | j |  j | ƒ } | j d |  j | d t ƒ} t | | ƒ t g  ƒ f S(   s    tick_loc, tick_angle, tick_labelt   rightt   leftt   bottomt   topi   t   minor(   R   R   R   t   get_tick_iteratorR   R   R    t   iter(   R   R   t   gR   t   ti1t   ti2(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   get_tick_iteratorsA   s    			N(	   t   __name__t
   __module__t   __doc__R   R   R   R   R   R*   (    (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR      s   			t   FloatingAxisArtistHelperc           B   s\   e  Z d	 d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(
   c         C   sJ   t  t |  ƒ j | | ƒ | |  _ | |  _ d |  _ d |  _ d |  _ d S(   s}   
        nth_coord = along which coordinate value varies.
         nth_coord = 0 ->  x axis, nth_coord = 1 -> y axis
        id   N(   NN(	   R
   R.   R   t   valueR   R   t	   _extremest   _get_line_patht   _line_num_points(   R   R   R   R/   t   axis_direction(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR   W   s    				c         C   s   | | f |  _  d  S(   N(   R0   (   R   t   e1t   e2(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   set_extremesg   s    c         C   sá  |  j  j | ƒ | j ƒ  \ } } | j ƒ  \ } } |  j  j } | j | j | | | | ƒ } t | ƒ } |  j \ } }	 |  j	 d k r× | d  k	 r® t | | d ƒ | d <n  |	 d  k	 r5t |	 | d ƒ | d <q5n^ |  j	 d k r5| d  k	 rt | | d ƒ | d <n  |	 d  k	 r5t |	 | d ƒ | d <q5n  t ƒ  }
 | \ } } } } | j | | ƒ \ } } } | j | | ƒ \ } } } | |
 d <| | | f |
 d <| | | f |
 d <| j d | | ƒ |
 d	 <| j d | | ƒ |
 d
 <|  j  j } |  j	 d k r\t j |  j |  j |  j ƒ } t j | d | d |  j ƒ } | j | | ƒ \ } } nh |  j	 d k rÄt j | d | d |  j ƒ } t j |  j |  j |  j ƒ } | j | | ƒ \ } } n  | | f |
 d <|
 |  _ d  S(   Ni    i   i   i   t   extremest   lon_infot   lat_infoR"   t
   lon_labelst
   lat_labelst   line_xy(   R   R   R   R   t   grid_findert   extreme_findert   inv_transform_xyt   listR0   R   R   t   maxt   mint   dictt   grid_locator1t   grid_locator2t   tick_formatter1t   tick_formatter2t   npt   linspaceR/   R2   t   transform_xyt	   grid_info(   R   R   t   x1t   x2t   y1t   y2R=   R7   R4   R5   RK   t   lon_mint   lon_maxt   lat_mint   lat_maxt   lon_levst   lon_nt
   lon_factort   lat_levst   lat_nt
   lat_factort   xx0t   yy0t   xxt   yy(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR   j   sT    	
		  c         C   s   t  ƒ  S(   N(   R   (   R   R   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   get_axislabel_transform¢   s    c         C   sû  |  j  d } |  j d k ra |  j } | d | d d } d t | d | d ƒ d } } nT |  j d k rµ | d | d d } |  j } t | d | d ƒ d d } } n  |  j j } | j | g | g ƒ \ } }	 | j | j j	 ƒ  }
 |
 j
 | d |	 d g ƒ } d | d k o-d	 k n ród | d k oMd	 k n ró| j j
 | d |	 d g ƒ \ } } | j | | g | | g ƒ \ } } | j j
 | d | d g ƒ \ } } | | f t j | | | | ƒ t j d
 f Sd Sd  S(   NR7   i    i   i   g       @g        g     @�@i   g      ð?g     €f@(   NN(   RK   R   R/   t   absR   R=   RJ   R   t	   transAxest   invertedt   transform_pointRH   t   arctan2t   piR   (   R   R   R7   RZ   R[   t   dxxt   dyyR=   t   xx1t   yy1t   trans_passingthrough_pointt   pt   xx1ct   yy1ct   xx2t   yy2t   xx2ct   yy2c(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   get_axislabel_pos_angle¥   s&    	&	&@&&&/c         C   s   t  ƒ  S(   N(   R   (   R   R   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR   Å   s    c            sÝ  ˆ j  j ‰ ˆ j d \ } } } t j | ƒ } | d
 k	 rT | | } d | } n | } d } ˆ j d \ } } }	 t j | ƒ } |	 d
 k	 r¨ | |	 }
 d |	 } n | }
 d } d
 ˆ j k rÕ ˆ j \ } } n t ˆ j ƒ \ } } | d
 k rt j } n  | d
 k rt j } n  ˆ j	 d k rM| | k | | k @} | | } n2 ˆ j	 d k r| |
 k |
 | k @} |
 | }
 n  ‡  ‡ f d †  } ˆ j	 d k r”t j
 | ƒ }
 |
 j ˆ j ƒ | |
 | ƒ \ ‰ ‰	 |
 j ƒ  } | |
 | | k c | 8<| | | ƒ \ ‰ ‰
 | | | | ƒ \ ‰ ‰ | |
 | ƒ \ ‰ ‰ | |
 | | ƒ \ ‰ ‰ ˆ j d ‰ g  t ˆ | ƒ D] \ } } | rs| ^ qs‰ nˆ j	 d k r—t j
 |
 ƒ } | j ˆ j ƒ | |
 | ƒ \ ‰ ‰	 | |
 | ƒ \ ‰ ‰
 | |
 | | ƒ \ ‰ ‰ |
 j ƒ  } | |
 | | k c | 8<| | | ƒ \ ‰ ‰ | | | | ƒ \ ‰ ‰ ˆ j d ‰ g  t ˆ | ƒ D] \ } } | rv| ^ qv‰ n  ‡  ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡	 ‡
 ‡ ‡ ‡ f d	 †  } | ƒ  t g  ƒ f S(   s9   tick_loc, tick_angle, tick_label, (optionally) tick_labelR9   g{®Gáz„?R8   i    i   c            s[   ˆ j  |  | ƒ \ } } ˆ  j j t j | | g ƒ j ƒ  ƒ } | j ƒ  \ } } | | f S(   N(   RJ   R   t	   transformRH   t   arrayt	   transpose(   t   xt   yRL   RN   t   x2y2RM   RO   (   R   R=   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyRJ   ñ   s    'R;   R:   c          3   sa  t  j ˆ
 ˆ	 ˆ ˆ ƒ }  t  j ˆ ˆ ˆ ˆ ƒ } ˆ
 ˆ	 d k ˆ ˆ d k @} | | d d |  | <ˆ j ˆ  ƒ } | ˆ  j j ƒ  } xÐ t ˆ ˆ |  | ˆ ƒ D]¶ \ } } } } }	 | j | | f ƒ }
 d } d | |
 d k oö d | k n r£ d | |
 d k od | k n r£ | d d } | d d } | | g | | |	 f Vq£ q£ Wd  S(	   Ng        gn†ðù!	@g       @gñhãˆµøä>i    g      ð?i   g     €f@(   RH   Rc   R   R`   Ra   t   zipRb   (   t   ddt   dd2t   mmt
   trans_tickt   tr2axRu   Rv   t   dt   d2t   labt   c2t   deltat   d1(   R   t   labelsR   Rg   t   xx1at   xx1bt   xx2at   xx2bRh   t   yy1at   yy1bt   yy2at   yy2b(    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   f1  s    	.((N(   R   R=   RK   RH   t   asarrayR   R0   t   sortedt   infR   t
   empty_liket   fillR/   t   copyRx   R&   (   R   R   RW   RX   RY   R[   t   dyRT   RU   RV   RZ   t   dxt   e0R4   t   maskRJ   t   xx00t   lt   mR�   (    (   R   R=   R„   R   Rg   R…   R†   R‡   Rˆ   Rh   R‰   RŠ   R‹   RŒ   si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR*   È   sn    

113c         C   s   | j  S(   N(   R   (   R   R   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   get_line_transform5  s    c         C   sY   |  j  | ƒ |  j d \ } } |  j d  k rB t t | | ƒ ƒ S|  j | | | ƒ Sd  S(   NR<   (   R   RK   R1   R   R   Rx   (   R   R   Ru   Rv   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   get_line8  s
    N(   R+   R,   R   R   R6   R   R^   Rq   R   R*   R›   Rœ   (    (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR.   U   s   		8		 		m	t   GridHelperCurveLinearc           B   s}   e  Z d d d d d d  „ Z d d „ Z d „  Z d d d d d „ Z d d d „ Z d „  Z d d d	 „ Z	 e
 d
 „ Z RS(   c         C   sP   t  t |  ƒ j ƒ  d |  _ d |  _ | |  _ t | | | | | | ƒ |  _ d S(   sÄ  
        aux_trans : a transform from the source (curved) coordinate to
        target (rectilinear) coordinate. An instance of MPL's Transform
        (inverse transform should be defined) or a tuple of two callable
        objects which defines the transform and its inverse. The callables
        need take two arguments of array of source coordinates and
        should return two target coordinates:
          e.g., x2, y2 = trans(x1, y1)
        N(	   R
   R�   R   R   RK   t   _old_valuest
   _aux_transR   R=   (   R   t	   aux_transR>   RD   RE   RF   RG   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR   F  s    			c         K   s=   | d  k	 r |  j j | ƒ n  |  j j | �  |  j ƒ  d  S(   N(   R   R=   t   update_transformt   updatet
   invalidate(   R   R    t   kw(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   update_grid_finderd  s    c         C   sc   |  j  ƒ  r+ |  j | | | | f k r+ d S|  j | | | | ƒ | | | | f |  _ t |  _ d S(   s!   bbox in 0-based image coordinatesN(   t   validRž   t   _update_gridR   t   _force_update(   R   RL   RM   RN   RO   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   _updatem  s
    'c         C   s[   | d  k r |  j } n  | d  k r- | } n  t |  | d | ƒ} t | | d | ƒ} | S(   NR   R3   (   R   R   R   R   (   R   R	   R   R3   t   offsetR   t   _helpert   axisline(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   new_fixed_axis{  s    		R"   c         C   sf   | d  k r |  j } n  t |  | | | ƒ } t | | ƒ } | j j t ƒ | j j | j j ƒ | S(   N(	   R   R   R.   R   t   linet   set_clip_onR   t   set_clip_boxt   bbox(   R   R   R/   R   R3   R«   R¬   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   new_floating_axis‘  s    	c         C   s"   |  j  j | | | | ƒ |  _ d  S(   N(   R=   t   get_grid_infoRK   (   R   RL   RN   RM   RO   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR§   ±  s    t   majort   bothc         C   sz   g  } | d k r> x) |  j  d d D] } | j | ƒ q$ Wn  | d k rv x) |  j  d d D] } | j | ƒ q\ Wn  | S(	   NRµ   Ru   t   lont   linesRv   t   lat(   Rµ   Ru   (   Rµ   Rv   (   RK   t   extend(   R   t   whicht   axist
   grid_linest   gl(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   get_gridlines¶  s    c      	      su   t  d d d d d d d d ƒ ˆ ‰  d d g | ‰ | sV ‡  ‡ ‡ ‡ f d	 †  } n ‡  ‡ ‡ ‡ f d
 †  } | ƒ  S(   NR!   iZ   R    R"   i    R#   R¶   R¸   c          3   s_   xX t  ˆ j ˆ d ˆ ˆ j ˆ d ˆ ƒ D]) \ \ }  } } | } |  | ˆ  | f Vq. Wd  S(   Nt	   tick_locst   tick_labels(   Rx   RK   (   t   xyt   aR™   t   angle_normal(   t   angle_tangentt	   axis_sidet
   lon_or_latR   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   fÊ  s    (c          3   s_   xX t  ˆ j ˆ d ˆ ˆ j ˆ d ˆ ƒ D]) \ \ }  } } | } |  | ˆ  d f Vq. Wd  S(   NR¿   RÀ   t    (   Rx   RK   (   RÁ   RÂ   R™   RÃ   (   RÄ   RÅ   RÆ   R   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyRÇ   Ð  s    ((   RC   (   R   R   RÅ   R$   RÇ   (    (   RÄ   RÅ   RÆ   R   si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR%   Ã  s    %N(   R+   R,   R   R   R¥   R©   R­   R²   R§   R¾   R   R%   (    (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR�   D  s    			c    	         s�  d d  l  ‰ d d l m ‰ d d l m ‰ d ˆ f ‡ ‡ ‡ ‡ f d †  ƒ  Y‰  d ˆ f ‡  ‡ ‡ f d †  ƒ  Y‰ d d  l j }  |  j d ƒ } | j ƒ  ˆ  d ƒ } t	 | ƒ } d d	 l
 m } d d
 l m } | | ƒ } | | d d d d | ƒ} | j | ƒ t | | d ƒ } | j j | ƒ | j d d g d d g ƒ | j d ƒ | j d d ƒ | j d d ƒ | j t ƒ |  j ƒ  d  S(   Niÿÿÿÿ(   t	   Transform(   R   t   MyTransformc              s­   e  Z d  Z d  Z e Z ‡ f d †  Z ‡ f d †  Z ˆ j j e _ e Z	 ˆ j	 j e	 _ ‡ f d †  Z
 ˆ j
 j e
 _ e
 Z ˆ j j e _ ‡  f d †  Z ˆ j j e _ RS(   i   c            s   ˆ  j  |  ƒ | |  _ d S(   sÒ   
            Create a new Aitoff transform.  Resolution is the number of steps
            to interpolate between each input line segment to approximate its
            path in curved Aitoff space.
            N(   R   t   _resolution(   R   t
   resolution(   RÉ   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR   ç  s    c            sR   | d  d  … d d … f } | d  d  … d d … f } ˆ  j  | | | f d ƒ S(   Ni    i   i   (   t   concatenate(   R   t   llRu   Rv   (   RH   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyRr   ð  s    c            s7   | j  } | j |  j ƒ } ˆ  |  j | j  ƒ | j ƒ S(   N(   t   verticest   interpolatedRË   Rr   t   codes(   R   t   pathRÏ   t   ipath(   R   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   transform_pathû  s    	c            s   ˆ  |  j  ƒ S(   N(   RË   (   R   (   t   MyTransformInv(    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyRa     s    (   R+   R,   t
   input_dimst   output_dimsR   t   is_separableR   Rr   R-   t   transform_non_affineRÔ   t   transform_path_non_affineRa   (    (   RÕ   R   RÉ   RH   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyRÊ   â  s   	RÕ   c              se   e  Z d  Z d  Z e Z ‡ f d †  Z ‡ f d †  Z ˆ j j e _ ‡  f d †  Z	 ˆ j	 j e	 _ RS(   i   c            s   ˆ  j  |  ƒ | |  _ d  S(   N(   R   RË   (   R   RÌ   (   RÉ   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyR     s    c            sR   | d  d  … d d … f } | d  d  … d d … f } ˆ  j  | | | f d ƒ S(   Ni    i   i   (   RÍ   (   R   RÎ   Ru   Rv   (   RH   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyRr     s    c            s   ˆ  |  j  ƒ S(   N(   RË   (   R   (   RÊ   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyRa     s    (
   R+   R,   RÖ   R×   R   RØ   R   Rr   R-   Ra   (    (   RÊ   RÉ   RH   (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyRÕ     s   i   (   t   host_subplot_class_factory(   t   AxesR   t   equali   i   g      @g      $@g      ð?i    i
   (   t   numpyt   matplotlib.transformsRÉ   t   matplotlib.pathR   t   matplotlib.pyplott   pyplott   figuret   clfR�   t%   mpl_toolkits.axes_grid1.parasite_axesRÛ   t	   axislinesRÜ   t   add_subplott   ParasiteAxesAuxTranst	   parasitest   appendt   plott
   set_aspectt   set_xlimt   set_ylimt   gridR   t   draw(	   t   pltt   figt   trR   RÛ   RÜ   t   SubplotHostt   ax1t   ax2(    (   RÊ   RÕ   R   RÉ   RH   si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   test3Ü  s.    %&"
c         C   sº  d d l  } d d l } d d l m } d d l m } d d l m } m } d d l	 j
 } | ƒ  j | j d d ƒ | j ƒ  } | j d d d	 d
 d d d d d d | j f ƒ}	 | j d ƒ }
 | j ƒ  } t | d |	 d |
 d | ƒ} | |  d d d d | ƒa t j d j j t ƒ t j d j j t ƒ d t j d j ƒ  _ d t j d j ƒ  _ |  j t ƒ t j ƒ  } | j d d d t ƒt j d <} | j j d ƒ | j j t ƒ d) | j ƒ  _  | j d d d t ƒt j d <} | j j d  ƒ d* | j ƒ  _  | t | d# ƒ } t j! j" | ƒ | j# } | j$ | | j% d d$ g ƒ d% ƒ | | j% d& d& g ƒ d% ƒ ƒ t j& d ƒ t j' d' d( ƒ t j( d' d ƒ t j) t ƒ d S(+   s5   
    polar projection, but in a rectangular box.
    iÿÿÿÿN(   t	   PolarAxes(   R   (   Rô   Rè   g     €f@g      ð?i   t	   lon_cycleih  t	   lat_cyclet
   lon_minmaxt
   lat_minmaxi    i   R>   RD   RF   i   R   R    R#   R"   i<   R   R¸   t   Testi   i
   i   R¶   s   Test 2iLÿÿÿiZ   RÝ   i   i2   g      $@iûÿÿÿi   (   i   i
   (   iLÿÿÿiZ   (*   RÞ   t   angle_helpert   matplotlib.projectionsRø   Rß   R   t$   mpl_toolkits.axes_grid.parasite_axesRô   Rè   t   matplotlib.cbookt   cbookt   scaleRd   t   PolarTransformt   ExtremeFinderCycleR   R�   t
   LocatorDMSt   FormatterDMSR�   Rõ   R»   t   major_ticklabelst   set_visibleR   t
   get_helperR   Rç   t   get_grid_helperR²   t   labelt   set_textR0   Ré   Rê   t   simple_linear_interpolationRë   Rs   Rì   Rí   Rî   Rï   (   Rò   RH   Rþ   Rø   R   Rô   Rè   R  Ró   R>   RD   RF   R   R»   Rö   t   intp(    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   curvelinear_test2;  sR    &		##	!c         C   sµ  d d l  } d d l } d d l m } d d l m } d d l m } | ƒ  j | j	 d d ƒ | j
 ƒ  } | j d d d	 d
 d d d d d d | j f ƒ} | j d ƒ } | j ƒ  }	 t | d | d | d |	 ƒ}
 | |  d d d d |
 ƒa x$ t j j ƒ  D] a t j t ƒ qW|  j t ƒ t j ƒ  }
 |
 j d d d t d d ƒt j d <a t j j d ƒ t j j t ƒ d& t j ƒ  _ t j ƒ  }
 |
 j d d d t d d ƒt j d <a t j j d ƒ t j j t ƒ d' t j ƒ  _ |
 j d d d t d d  ƒt j d! <a t j j d" ƒ d( t j ƒ  _ t j j d# ƒ t j j d# ƒ d$ |
 j  j! _" d$ |
 j  j# _$ t j% d ƒ t j& d% d ƒ t j' d% d ƒ t j( t ƒ d S()   s5   
    polar projection, but in a rectangular box.
    iÿÿÿÿN(   Rø   (   R   (   Rô   g     €f@g      ð?i   Rù   ih  Rú   Rû   Rü   i    i   R>   RD   RF   i   R   i‚   R   R3   R!   t   lat1Rý   gü©ñÒMbP?i
   i2   R    t   lat2R"   R¶   s   Test 2R#   i   iûÿÿÿ(   gü©ñÒMbP?i
   (   gü©ñÒMbP?i
   (   i2   i‚   ()   RÞ   Rþ   Rÿ   Rø   Rß   R   R   Rô   R  Rd   R  R  R   R�   R  R  R�   Rõ   R»   t
   itervaluesR	  R   Rç   R  R²   R  R  R   R
  R0   R  t   set_axis_directionR=   RD   t   denRE   t   _nbinsRì   Rí   Rî   Rï   (   Rò   RH   Rþ   Rø   R   Rô   Ró   R>   RD   RF   R   (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   curvelinear_test3—  s^    &		t   __main__i   t   figsizei   (   i   i   (!   R-   t	   itertoolsR    R=   R   Ræ   R   R   t   axis_artistR   Rß   R   R   RÞ   RH   Rà   R   t   FixedR   t   FloatingR.   R�   R÷   R  R  R+   Rá   Râ   Rñ   Rã   Rò   Rä   t   show(    (    (    si   /opt/xtal/ccp4-6.5-linux32/lib/python2.7/site-packages/mpl_toolkits/axisartist/grid_helper_curvelinear.pyt   <module>   s&   Eï˜	_	\	a

