o
    :a                     @   sV   d dl Zd dlmZ d dlmZ d dlZejdedd dd ZdddZ	dd Z
dS )    N)degrees)_apiz3.5module)nameZobj_typec                 C   s*   |dkr| dkrt d dS t| |S )Nr   zdx and dy are 0)r   Zwarn_externalmathatan2)dydx r
   C/usr/lib/python3/dist-packages/mpl_toolkits/axisartist/clip_path.pyr   
   s   
r   rightTc                 C   s  g }g }g }|r
dnd}	|rdnd}
t | |D ]O\}}|dv r4||k d}|dd  |d d  }n||kd}|dd  |d d  }|d rNd}nd}g g }}t|D ]\}|| }|dkr|||  }||d  ||  |||d  ||    }|| | }|t||||d  |gg |t||||d  |gg d}g g }}|dkr|dkr||d  ||  }||d  ||  }tt|
| |	| }||||f qZ|dkrE|||  }||d  ||  |||d  ||    }|| | }|g|g}}|d }|dkr2|dkr2||d  ||  }||d  ||  }tt|
| |	| }||||f qZ|dkrg|t|||d  g |t|||d  g q|||fS )N   )Zupr   ir   g        )zipZastypenpZargwhereappendZconcatenater   r   )ZxlinesZylinesx0clipxdirydirZclipped_xlinesZclipped_ylinesZ_pos_anglesZxsignZysignxybZdbnsZsegxZsegyr   cr	   r   y0ar
   r
   r   r      s^   
,$$

,

r   c                    sl   j \}}}}||k}||k}||kr0t| g|g|d||d\}	}
}t|	|
|d||d\}}}nt| g|g|d||d\}	}
}t|	|
|d||d\}}}||krkt|||d||d\}}}t|||d||d\}}}nt|||d||d\}}}t|||d||d\}}} fdd|D } fdd|D } fdd|D } fdd|D }tt||||||gfS )	Nr   )r   r   r   leftc                    s4   g | ]\}}}  |r||f|d  d d  fqS Z      Z	containsy.0r   r   r   bboxr
   r   
<listcomp>p       z%clip_line_to_rect.<locals>.<listcomp>c                    s0   g | ]\}}}  |r||fd | d fqS r   Z	containsxr$   r   r   r   r%   r
   r   r'   r   s    c                    s4   g | ]\}}}  |r||f|d  d d  fqS r   r"   r#   r%   r
   r   r'   t   r(   c                    s4   g | ]\}}}  |r||fd | d d fqS r   r)   r*   r%   r
   r   r'   v   r(   )Zextentsr   listr   )ZxlineZyliner&   r   r   Zx1Zy1r   r   Zlx1Zly1Zc_right_Zlx2Zly2Zc_left_Zly3Zlx3Zc_top_Zly4Zlx4Z	c_bottom_Zc_leftZc_bottomZc_rightZc_topr
   r%   r   clip_line_to_rectS   sD   r,   )r   TT)Znumpyr   r   r   Z
matplotlibr   Zwarn_deprecated__name__r   r   r,   r
   r
   r
   r   <module>   s    

?