o
    eJ                     @  s   d dl mZ d dlmZmZ d dlmZ d dlZ	d dl
mZmZ er0d dlmZmZmZmZmZ dddZdddZdddZdddZdS )     )annotations)TYPE_CHECKINGcastN)FillTypeLineType)	CodeArray
FillReturn
LineReturnLineReturn_SeparateOffsetArrayfilledr   	fill_typer   returnlist[mpath.Path]c           
   
   C  s`  |t jt jfv rdd t|  D }|S |t jt jfv r&dd t|  D }|S |t jkr^g }t|  D ]*\}}}|d u r;q1t||dd }t||dd }|dd t||D 7 }q1|S |t j	krg }t|  D ]<\}}}|d u rsqit
t|d D ])}||| ||d  d  }||d |d  }	|t|	t||d  g7 }q{qi|S td| d	)
Nc                 S  $   g | ]\}}|d urt ||qS NmpathPath.0pointscodes r   GD:\Projects\ConvertPro\env\Lib\site-packages\contourpy/util/mpl_util.py
<listcomp>      $ z'filled_to_mpl_paths.<locals>.<listcomp>c                 S  s(   g | ]\}}|d urt |t|qS r   )r   r   offsets_to_mpl_codes)r   r   offsetsr   r   r   r      s       c                 S  s   g | ]
\}}t ||qS r   r   )r   pcr   r   r   r      s    r   zConversion of FillType   to MPL Paths is not implemented)r   Z	OuterCodeChunkCombinedCodezipZOuterOffsetChunkCombinedOffsetZChunkCombinedCodeOffsetnpsplitZChunkCombinedOffsetOffsetrangelenr   r   r   RuntimeError)
r   r   pathsr   r   Zouter_offsetsr   iZoffsZptsr   r   r   filled_to_mpl_paths   s:   

 r.   linesr	   	line_typer   c                 C  s$  |t jkr/trtt| } g }| D ]}|d |d ko!|d |d k}|tj||d q|S |t jt j	fv rBdd t
|  D }|S |t jkrg }t
|  D ]:\}}|d u rVqMtt|d D ](}||| ||d   }|d |d ko{|d |d k}|tj||d q^qM|S td	| d
)N)r   r   )r    r   )r   r   )r    r   )closedc                 S  r   r   r   r   r   r   r   r   6   r   z&lines_to_mpl_paths.<locals>.<listcomp>r   zConversion of LineType r#   )r   ZSeparater   r   r
   appendr   r   ZSeparateCoder$   r%   r&   r)   r*   r+   )r/   r0   r,   liner1   r   r   r-   r   r   r   lines_to_mpl_paths,   s.   

 
 r4   r   r   r   c                 C  s.   t | dkd t j}t |t| }|S )Nr   r   )r'   ZnonzeroZastypeZuint32r2   r*   )r   r   r   r   r   mpl_codes_to_offsetsE   s   r5   r   c                 C  sF   t j| d | d  dt jd}d|| d d < d|| dd  d < |S )Nr    r      )Zdtyper   O   )r'   fullZuint8)r   r   r   r   r   r   K   s   r   )r   r   r   r   r   r   )r/   r	   r0   r   r   r   )r   r   r   r   )r   r   r   r   )
__future__r   typingr   r   Zmatplotlib.pathpathr   numpyr'   Z	contourpyr   r   Zcontourpy._contourpyr   r   r	   r
   r   r.   r4   r5   r   r   r   r   r   <module>   s    


