a
    f1b                     @   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 d S )Nr   zdx and dy are 0)r   Zwarn_externalmathatan2)dydx r
   @lib/python3.9/site-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 ]\}}|dv rh||k d}|dd  |d d  }n&||kd}|dd  |d d  }|d rd}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 q|dkr|||  }||d  ||  |||d  ||    }|| | }|g|g }}|d }|dkrj|dkrj||d  ||  }||d  ||  }tt|
| |	| }||||f q|dkr.|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      sZ    

,$$
,r   c                    sl   j \}}}}||k}||k}||kr`t| g|g|d||d\}	}
}t|	|
|d||d\}}}n8t| g|g|d||d\}	}
}t|	|
|d||d\}}}||krt|||d||d\}}}t|||d||d\}}}n4t|||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   s   
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   s   
c                    s4   g | ],\}}}  |r||fd | d d fqS r   r(   r)   r%   r
   r   r'   v   s   
)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   

?