§
    †Ûg  ã                   ó~  — d Z ddlZddlmZ ddlmZ  G d„ d¦  «        Z G d„ de¦  «        Z G d	„ d
e¦  «        Z	 G d„ de¦  «        Z
 G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zee	e
eeeeegZd„ Zdd„ZdS )z/Contains classes for generating hatch patterns.é    N)Ú_api)ÚPathc                   ó   — e Zd ZdZdS )ÚHatchPatternBasez#The base class for a hatch pattern.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úF/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/hatch.pyr   r   	   s   € € € € € Ø-Ð-Ø€Dr   r   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚHorizontalHatchc                 ó¤   — t          |                     d¦  «        |                     d¦  «        z   |z  ¦  «        | _        | j        dz  | _        d S )Nú-ú+é   ©ÚintÚcountÚ	num_linesÚnum_vertices©ÚselfÚhatchÚdensitys      r   Ú__init__zHorizontalHatch.__init__   óH   € Ý˜eŸkšk¨#Ñ.Ô.°·²¸SÑ1AÔ1AÑAÀWÑLÑMÔMˆŒØ œN¨QÑ.ˆÔÐÐr   c                 óð   — t          j        dd| j        dd¬¦  «        \  }}||dz  z  }d|dd d…df<   ||dd d…d	f<   d|d	d d…df<   ||d	d d…d	f<   t          j        |dd d…<   t          j        |d	d d…<   d S ©
Nç        ç      ð?FT)Úretstepg       @r   r   é   ©ÚnpÚlinspacer   r   ÚMOVETOÚLINETO©r   ÚverticesÚcodesÚstepsÚstepsizes        r   Úset_vertices_and_codesz&HorizontalHatch.set_vertices_and_codes   s­   € Ýœ+ c¨3°´ÀØ.2ð4ñ 4ô 4‰ˆˆxà�˜B‘ÑˆØˆ���A��q�ÑØ!ˆ���A��q�ÑØˆ���A��q�ÑØ!ˆ���A��q�ÑÝ”kˆˆaˆd�ˆd‰Ý”kˆˆaˆd�ˆd‰ˆˆr   N©r   r   r	   r   r/   r   r   r   r   r      ó2   € € € € € ð/ð /ð /ð	"ð 	"ð 	"ð 	"ð 	"r   r   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚVerticalHatchc                 ó¤   — t          |                     d¦  «        |                     d¦  «        z   |z  ¦  «        | _        | j        dz  | _        d S )Nú|r   r   r   r   s      r   r   zVerticalHatch.__init__    r   r   c                 óð   — t          j        dd| j        dd¬¦  «        \  }}||dz  z  }||dd d…df<   d|dd d…d	f<   ||d	d d…df<   d|d	d d…d	f<   t          j        |dd d…<   t          j        |d	d d…<   d S r    r%   r*   s        r   r/   z$VerticalHatch.set_vertices_and_codes$   s­   € Ýœ+ c¨3°´ÀØ.2ð4ñ 4ô 4‰ˆˆxà�˜B‘ÑˆØ!ˆ���A��q�ÑØˆ���A��q�ÑØ!ˆ���A��q�ÑØˆ���A��q�ÑÝ”kˆˆaˆd�ˆd‰Ý”kˆˆaˆd�ˆd‰ˆˆr   Nr0   r   r   r   r3   r3      r1   r   r3   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNorthEastHatchc                 óö   — t          |                     d¦  «        |                     d¦  «        z   |                     d¦  «        z   |z  ¦  «        | _        | j        r| j        dz   dz  | _        d S d| _        d S )Nú/ÚxÚXr$   r   r   r   r   s      r   r   zNorthEastHatch.__init__1   s}   € ÝØ�[Š[˜ÑÔ §¢¨CÑ 0Ô 0Ñ0°5·;²;¸sÑ3CÔ3CÑCÀwÑNñPô PˆŒàŒ>ð 	"Ø!%¤°!Ñ!3°qÑ 8ˆDÔÐÐà !ˆDÔÐÐr   c                 óò   — t          j        dd| j        dz   ¦  «        }d|z   |dd d…df<   d|z
  |dd d…df<   d|z   |dd d…df<   d|z
  |dd d…df<   t          j        |dd d…<   t          j        |dd d…<   d S ©Ng      à¿g      à?r$   r!   r   r   r"   r%   ©r   r+   r,   r-   s       r   r/   z%NorthEastHatch.set_vertices_and_codes9   ó¢   € Ý”˜D # t¤~¸Ñ'9Ñ:Ô:ˆØ %™Kˆ���A��q�ÑØ %™Kˆ���A��q�ÑØ %™Kˆ���A��q�ÑØ %™Kˆ���A��q�ÑÝ”kˆˆaˆd�ˆd‰Ý”kˆˆaˆd�ˆd‰ˆˆr   Nr0   r   r   r   r8   r8   0   s2   € € € € € ð"ð "ð "ð"ð "ð "ð "ð "r   r8   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚSouthEastHatchc                 óö   — t          |                     d¦  «        |                     d¦  «        z   |                     d¦  «        z   |z  ¦  «        | _        | j        r| j        dz   dz  | _        d S d| _        d S )Nú\r;   r<   r$   r   r   r   r   s      r   r   zSouthEastHatch.__init__D   s€   € ÝØ�[Š[˜ÑÔ §¢¨SÑ!1Ô!1Ñ1°E·K²KÀÑ4DÔ4DÑDØññô ˆŒð Œ>ð 	"Ø!%¤°!Ñ!3°qÑ 8ˆDÔÐÐà !ˆDÔÐÐr   c                 óò   — t          j        dd| j        dz   ¦  «        }d|z   |dd d…df<   d|z   |dd d…df<   d|z   |dd d…df<   d|z   |dd d…df<   t          j        |dd d…<   t          j        |dd d…<   d S r>   r%   r?   s       r   r/   z%SouthEastHatch.set_vertices_and_codesM   r@   r   Nr0   r   r   r   rB   rB   C   s2   € € € € € ð"ð "ð "ð"ð "ð "ð "ð "r   rB   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚShapesFc                 óö   — | j         dk    rd| _        d| _        d S | j         dz  dz   | j         dz   z  | j         dz  | j         z  z   | _        | j        t          | j        ¦  «        z  | j        rdndz  | _        d S )Nr   r   r$   )Únum_rowsÚ
num_shapesr   ÚlenÚshape_verticesÚfilledr   s      r   r   zShapes.__init__Z   s�   € ØŒ=˜AÒÐØˆDŒOØ !ˆDÔÐÐà $¤°Ñ 2°QÑ 6¸4¼=È1Ñ;LÑMØ $¤°Ñ 2°d´mÑCñ DˆDŒOà!%¤Ý!$ TÔ%8Ñ!9Ô!9ñ":à'+¤{Ð"9 ! !¸ñ";ˆDÔÐÐr   c                 óh  — d| j         z  }| j        |z  | j        z  }| j        }| j        s8t          j        ||d d d…         dz  g¦  «        }t          j        ||g¦  «        }g }g }t          | j         dz   ¦  «        D ]‡}|dz  dk    rt          j        dd| j         dz   ¦  «        }	n$t          j        |dz  d|dz  z
  | j         ¦  «        }	||z  }
|	D ]1}| 	                    |||
gz   ¦  «         | 	                    |¦  «         Œ2Œˆt          j        ||¬¦  «         t          j        ||¬¦  «         d S )Nr"   éÿÿÿÿgÍÌÌÌÌÌì?r$   r   r   )Úout)
rI   rL   ÚsizeÚshape_codesrM   r&   ÚconcatenateÚranger'   Úappend)r   r+   r,   ÚoffsetrL   rR   Úvertices_partsÚcodes_partsÚrowÚcolsÚrow_posÚcol_poss               r   r/   zShapes.set_vertices_and_codese   sh  € Ø�t”}Ñ$ˆØÔ,¨vÑ5¸¼	ÑAˆØÔ&ˆØŒ{ð 	EÝœ^Ø °°°"°Ô!5¸Ñ!;Ð<ñ>ô >ˆNåœ.¨+°{Ð)CÑDÔDˆKØˆØˆÝ˜œ¨Ñ*Ñ+Ô+ð 	0ð 	0ˆCØ�Q‰w˜!Š|ˆ|Ý”{ 1 a¨¬¸Ñ):Ñ;Ô;��å”{ 6¨A¡:¨q°6¸A±:©~¸t¼}ÑMÔM�Ø˜F‘lˆGØð 0ð 0�Ø×%Ò% n¸ÀÐ7IÑ&IÑJÔJÐJØ×"Ò" ;Ñ/Ô/Ð/Ð/ð0õ 	Œ�~¨8Ð4Ñ4Ô4Ð4Ý
Œ�{¨Ð.Ñ.Ô.Ð.Ð.Ð.r   N)r   r   r	   rM   r   r/   r   r   r   rG   rG   W   s7   € € € € € Ø€Fð	<ð 	<ð 	<ð/ð /ð /ð /ð /r   rG   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚCirclesc                 ó¢   •— t          j        ¦   «         }|j        | _        |j        | _        t          ¦   «                              ||¦  «         d S )N)r   Úunit_circler+   rL   r,   rR   Úsuperr   ©r   r   r   ÚpathÚ	__class__s       €r   r   zCircles.__init__}   sE   ø€ ÝÔÑ!Ô!ˆØ"œmˆÔØœ:ˆÔÝ‰Œ×Ò˜ Ñ(Ô(Ð(Ð(Ð(r   )r   r   r	   r   Ú__classcell__©rd   s   @r   r^   r^   |   s8   ø€ € € € € ð)ð )ð )ð )ð )ð )ð )ð )ð )r   r^   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚSmallCirclesgš™™™™™É?c                 ó†   •— |                      d¦  «        |z  | _        t          ¦   «                              ||¦  «         d S )NÚo©r   rI   ra   r   ©r   r   r   rd   s      €r   r   zSmallCircles.__init__‡   ó;   ø€ ØŸš SÑ)Ô)¨WÑ4ˆŒÝ‰Œ×Ò˜ Ñ(Ô(Ð(Ð(Ð(r   ©r   r   r	   rQ   r   re   rf   s   @r   rh   rh   „   s=   ø€ € € € € Ø€Dð)ð )ð )ð )ð )ð )ð )ð )ð )r   rh   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚLargeCirclesgffffffÖ?c                 ó†   •— |                      d¦  «        |z  | _        t          ¦   «                              ||¦  «         d S )NÚOrk   rl   s      €r   r   zLargeCircles.__init__�   rm   r   rn   rf   s   @r   rp   rp   Œ   s=   ø€ € € € € Ø€Dð)ð )ð )ð )ð )ð )ð )ð )ð )r   rp   c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚSmallFilledCirclesgš™™™™™¹?Tc                 ó†   •— |                      d¦  «        |z  | _        t          ¦   «                              ||¦  «         d S )Nú.rk   rl   s      €r   r   zSmallFilledCircles.__init__˜   rm   r   ©r   r   r	   rQ   rM   r   re   rf   s   @r   rt   rt   ”   sB   ø€ € € € € Ø€DØ€Fð)ð )ð )ð )ð )ð )ð )ð )ð )r   rt   c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚStarsgUUUUUUÕ?Tc                 ór  •— |                      d¦  «        |z  | _        t          j        d¦  «        }|j        | _        t          j        t          | j        ¦  «        t          j	        t          j
        ¬¦  «        | _        t          j        | j        d<   t          ¦   «                              ||¦  «         d S )NÚ*é   )Údtyper   )r   rI   r   Úunit_regular_starr+   rL   r&   ÚfullrK   r)   Ú	code_typerR   r(   ra   r   rb   s       €r   r   zStars.__init__¡   s“   ø€ ØŸš SÑ)Ô)¨WÑ4ˆŒÝÔ% aÑ(Ô(ˆØ"œmˆÔÝœ7¥3 tÔ':Ñ#;Ô#;½T¼[Ý)-¬ð9ñ 9ô 9ˆÔå"œkˆÔ˜ÑÝ‰Œ×Ò˜ Ñ(Ô(Ð(Ð(Ð(r   rw   rf   s   @r   ry   ry   �   sB   ø€ € € € € Ø€DØ€Fð)ð )ð )ð )ð )ð )ð )ð )ð )r   ry   c           	      ó<  — t          d¦  «        }| �ˆt          | ¦  «                             |¦  «        }|rfd                     t          |¦  «        ¦  «        }d                     t          |¦  «        ¦  «        }t	          j        ddd|› d|› d�¬¦  «         d S d S d S )	Nz-+|/\xXoO.*Ú z3.4z3.8z#hatch must consist of a string of "z3" or None, but found the following invalid values "z]". Passing invalid values is deprecated since %(since)s and will become an error %(removal)s.)ÚremovalÚmessage)ÚsetÚ
differenceÚjoinÚsortedr   Úwarn_deprecated)r   Úvalid_hatch_patternsÚinvalidsÚvalids       r   Ú_validate_hatch_patternr�   ¶   sÐ   € Ý˜~Ñ.Ô.ÐØÐÝ�u‘:”:×(Ò(Ð)=Ñ>Ô>ˆØð 
	Ø—G’G�FÐ#7Ñ8Ô8Ñ9Ô9ˆEØ—w’w�v hÑ/Ô/Ñ0Ô0ˆHÝÔ ØØðP¸eð Pð Pà$ðPð Pð Pðñ ô ð ð ð ð Ðð
	ð 
	r   é   c                 ó  ‡ ‡— t          ‰¦  «        Šˆˆ fd„t          D ¦   «         }t          d„ |D ¦   «         ¦  «        }|dk    r!t          t	          j        d¦  «        ¦  «        S t	          j        |df¦  «        }t	          j        |t          j        ¦  «        }d}|D ]Q}|j        dk    rD||||j        z   …         }||||j        z   …         }	|                     ||	¦  «         ||j        z  }ŒRt          ||¦  «        S )z¢
    Given a hatch specifier, *hatchpattern*, generates Path to render
    the hatch in a unit square.  *density* is the number of lines per
    unit square.
    c                 ó(   •— g | ]} |‰‰¦  «        ‘ŒS r   r   )Ú.0Ú
hatch_typer   Úhatchpatterns     €€r   ú
<listcomp>zget_path.<locals>.<listcomp>Ï   s5   ø€ ð 0ð 0ð 0Øð �
˜<¨Ñ1Ô1ð 0ð 0ð 0r   c                 ó   — g | ]	}|j         ‘Œ
S r   )r   )r‘   Úpatterns     r   r”   zget_path.<locals>.<listcomp>Ñ   s   € ÐEÐEÐE°˜Ô,ÐEÐEÐEr   r   )r   r   r   )	r   Ú_hatch_typesÚsumr   r&   Úemptyr€   r   r/   )
r“   r   Úpatternsr   r+   r,   Úcursorr–   Úvertices_chunkÚcodes_chunks
   ``        r   Úget_pathrž   Ç   s(  øø€ õ �'‰lŒl€Gð0ð 0ð 0ð 0ð 0Ý".ð0ñ 0ô 0€HåÐEÐE¸HÐEÑEÔEÑFÔF€Là�qÒÐÝ•B”H˜VÑ$Ô$Ñ%Ô%Ð%åŒx˜ qÐ)Ñ*Ô*€HÝŒH�\¥4¤>Ñ2Ô2€Eà€FØð +ð +ˆØÔ 1Ò$Ð$Ø% f¨V°gÔ6JÑ-JÐ&JÔKˆNØ  v°Ô0DÑ'DÐ DÔEˆKØ×*Ò*¨>¸;ÑGÔGÐGØ�gÔ*Ñ*ˆFøå�˜%Ñ Ô Ð r   )rŽ   )r
   Únumpyr&   Ú
matplotlibr   Úmatplotlib.pathr   r   r   r3   r8   rB   rG   r^   rh   rp   rt   ry   r—   r�   rž   r   r   r   ú<module>r¢      s[  ðØ 5Ð 5à Ð Ð Ð à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð
"ð "ð "ð "ð "Ð&ñ "ô "ð "ð""ð "ð "ð "ð "Ð$ñ "ô "ð "ð""ð "ð "ð "ð "Ð%ñ "ô "ð "ð&"ð "ð "ð "ð "Ð%ñ "ô "ð "ð("/ð "/ð "/ð "/ð "/Ðñ "/ô "/ð "/ðJ)ð )ð )ð )ð )ˆfñ )ô )ð )ð)ð )ð )ð )ð )�7ñ )ô )ð )ð)ð )ð )ð )ð )�7ñ )ô )ð )ð)ð )ð )ð )ð )˜ñ )ô )ð )ð)ð )ð )ð )ð )ˆFñ )ô )ð )ð ØØØØØØØ	ð	€ðð ð ð"!ð !ð !ð !ð !ð !r   