§
    …Ûg|  ã                  ó†   — 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
Zd dlmZmZ d dlmZ er
d dlmZmZmZ dd„Zdd„ZdS )é    )Úannotations)Úpairwise)ÚTYPE_CHECKINGÚcastN)ÚFillTypeÚLineType)Úcodes_from_offsets)Ú
FillReturnÚ
LineReturnÚLineReturn_SeparateÚfilledr
   Ú	fill_typer   Úreturnúlist[mpath.Path]c                ó4  — |t           j        t           j        fv rd„ t          | Ž D ¦   «         }�nh|t           j        t           j        fv rd„ t          | Ž D ¦   «         }�n9|t           j        k    rmg }t          | Ž D ]`\  }}}|€Œ	t          j        ||dd…         ¦  «        }t          j        ||dd…         ¦  «        }|d„ t          ||¦  «        D ¦   «         z  }Œan¼|t           j	        k    r™g }t          | Ž D ]Œ\  }}}|€Œ	t          t          |¦  «        dz
  ¦  «        D ]c}|||         ||dz            dz   …         }||d         |d         …         }	|t          j        |	t          ||d         z
  ¦  «        ¦  «        gz  }ŒdŒ�nt          d|› d�¦  «        ‚|S )	Nc                óB   — g | ]\  }}|®t          j        ||¦  «        ‘ŒS ©N©ÚmpathÚPath©Ú.0ÚpointsÚcodess      úM/granary/edev/quantum/lib/python3.11/site-packages/contourpy/util/mpl_util.pyú
<listcomp>z'filled_to_mpl_paths.<locals>.<listcomp>   s.   € ÐcÐcÐc©}¨v°uÐPVÐPb•”˜F EÑ*Ô*ÐPbÐPbÐPbó    c                ó\   — g | ])\  }}|®t          j        |t          |¦  «        ¦  «        ‘Œ*S r   )r   r   r	   )r   r   Úoffsetss      r   r   z'filled_to_mpl_paths.<locals>.<listcomp>   sC   € ð Lð Lð LÙ$�V˜W¸Ð8Jõ ”˜FÕ$6°wÑ$?Ô$?Ñ@Ô@Ø8JÐ8JÐ8Jr   é   éÿÿÿÿc                ó>   — g | ]\  }}t          j        ||¦  «        ‘ŒS © r   )r   ÚpÚcs      r   r   z'filled_to_mpl_paths.<locals>.<listcomp>   s(   € ÐFÐFÐF©4¨1¨a•e”j  AÑ&Ô&ÐFÐFÐFr   r   zConversion of FillType ú  to MPL Paths is not implemented)r   Ú	OuterCodeÚChunkCombinedCodeÚzipÚOuterOffsetÚChunkCombinedOffsetÚChunkCombinedCodeOffsetÚnpÚsplitÚChunkCombinedOffsetOffsetÚrangeÚlenr   r   r	   ÚRuntimeError)
r   r   Úpathsr   r   Úouter_offsetsr   ÚiÚoffsÚptss
             r   Úfilled_to_mpl_pathsr8      s÷  € Ø•XÔ'­Ô)CÐDÐDÐDØcÐcÅÀVÀÐcÑcÔcˆ‰Ø	•xÔ+­XÔ-IÐJÐ	JÐ	JðLð LÝ(+¨V¨ðLñ Lô Lˆ‰à	•hÔ6Ò	6Ð	6ØˆÝ,/°¨Lð 	Gð 	GÑ(ˆF�E˜=Øˆ~ØÝ”X˜f m°A°b°DÔ&9Ñ:Ô:ˆFÝ”H˜U M°!°B°$Ô$7Ñ8Ô8ˆEØÐFÐFµ3°v¸uÑ3EÔ3EÐFÑFÔFÑFˆEˆEð	Gð 
•hÔ8Ò	8Ð	8ØˆÝ.1°6¨lð 	Oð 	OÑ*ˆF�G˜]Øˆ~ØÝ�3˜}Ñ-Ô-¨aÑ/Ñ0Ô0ð Oð O�Ø˜}¨QÔ/°¸aÀ¹cÔ0BÀ1Ñ0DÐDÔE�Ø˜T !œW T¨"¤XÐ-Ô.�Ø�%œ* SÕ*<¸TÀDÈÄG¹^Ñ*LÔ*LÑMÔMÐNÑN��ðOð	Oõ Ð`°YÐ`Ð`Ð`ÑaÔaÐaØ€Lr   Úlinesr   Ú	line_typer   c                óÀ  — |t           j        k    rrt          rt          t          | ¦  «        } g }| D ]O}|d         |d         k    o|d         |d         k    }|                     t          j        ||¬¦  «        ¦  «         ŒP�nÛ|t           j        t           j	        fv rd„ t          | Ž D ¦   «         }�n¬|t           j        k    r�g }t          | Ž D ]�\  }}|€Œt          t          |¦  «        dz
  ¦  «        D ]h}|||         ||dz            …         }|d         |d         k    o|d         |d         k    }|                     t          j        ||¬¦  «        ¦  «         ŒiŒ‘nÿ|t           j        k    rÜg }| d         D ]Ð}|€Œt          j        t          j        |d d …df         ¦  «        ¦  «        d         }t          j        d	g|t          |¦  «        gg¦  «        }t'          |¦  «        D ]_\  }	}
||	dz   |
…         }|d         |d         k    o|d         |d         k    }|                     t          j        ||¬¦  «        ¦  «         Œ`ŒÑnt)          d
|› d�¦  «        ‚|S )N)r   r   )r!   r   )r   r    )r!   r    )Úclosedc                óB   — g | ]\  }}|®t          j        ||¦  «        ‘ŒS r   r   r   s      r   r   z&lines_to_mpl_paths.<locals>.<listcomp>6   s-   € ÐbÐbÐb©}¨v°uÈvÐOa•”˜F EÑ*Ô*ÐOaÐOaÐOar   r    r   r!   zConversion of LineType r&   )r   ÚSeparater   r   r   Úappendr   r   ÚSeparateCoder(   r)   r+   r0   r1   ÚChunkCombinedNanr-   ÚnonzeroÚisnanÚconcatenater   r2   )r9   r:   r3   Úliner<   r   r   r5   Únan_offsetsÚsÚes              r   Úlines_to_mpl_pathsrI   ,   s“  € Ø•HÔ%Ò%Ð%Ýð 	5ÝÕ,¨eÑ4Ô4ˆEØˆØð 	:ð 	:ˆDà˜$”Z 4¨¤;Ò.ÐL°4¸´:ÀÀeÄÒ3LˆFØ�LŠL�œ D°Ð8Ñ8Ô8Ñ9Ô9Ð9Ð9ñ	:ð 
•xÔ,­hÔ.HÐIÐ	IÐ	IØbÐbÅÀUÀÐbÑbÔbˆ‰Ø	•hÔ2Ò	2Ð	2ØˆÝ" E˜{ð 	>ð 	>‰OˆF�GØˆ~ØÝ�3˜w™<œ<¨™>Ñ*Ô*ð >ð >�Ø˜g aœj¨°°1±¬Ð5Ô6�Ø˜dœ t¨E¤{Ò2ÐP°t¸D´zÀTÈ%Ä[Ò7P�Ø—’�UœZ¨°VÐ<Ñ<Ô<Ñ=Ô=Ð=Ð=ð>ð	>ð 
•hÔ/Ò	/Ð	/ØˆØ˜A”hð 	>ð 	>ˆFØˆ~ØÝœ*¥R¤X¨f°Q°Q°Q¸°T¬lÑ%;Ô%;Ñ<Ô<¸QÔ?ˆKÝœ.¨2¨$°½cÀ&¹k¼k¸]Ð)KÑLÔLˆKÝ  Ñ-Ô-ð >ð >‘��1Ø˜a ™c !˜e”}�Ø˜dœ t¨E¤{Ò2ÐP°t¸D´zÀTÈ%Ä[Ò7P�Ø—’�UœZ¨°VÐ<Ñ<Ô<Ñ=Ô=Ð=Ð=ð>ð	>õ Ð`°YÐ`Ð`Ð`ÑaÔaÐaØ€Lr   )r   r
   r   r   r   r   )r9   r   r:   r   r   r   )Ú
__future__r   Ú	itertoolsr   Útypingr   r   Úmatplotlib.pathÚpathr   Únumpyr-   Ú	contourpyr   r   Úcontourpy.arrayr	   Úcontourpy._contourpyr
   r   r   r8   rI   r#   r   r   ú<module>rS      sâ   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à Ð Ð Ð Ð Ð Ø Ð Ð Ð à (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø .Ð .Ð .Ð .Ð .Ð .àð QØPÐPÐPÐPÐPÐPÐPÐPÐPÐPðð ð ð ð8!ð !ð !ð !ð !ð !r   