Ë
    /æj}  ã                   óø   — d dl mZ d dlZd dlZd dlZd dlmZmZm	Z
mZmZmZmZmZ ddlmZmZ dd„Zd„ Ze G d„ d	«      «       Z G d
„ dej6                  «      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)é    )Ú	dataclassN)Ú_apiÚartistÚlinesÚaxisÚpatchesÚtextÚ
transformsÚcolorsé   )Úart3dÚproj3dc                 óp   — t        j                  | «      } | |t        j                  d| |z
  «      z  |z  z   S )zg
    For each coordinate where *axmask* is True, move *coord* away from
    *centers* by *deltas*.
    r   )ÚnpÚasarrayÚcopysign)ÚcoordÚcentersÚdeltasÚaxmasks       ú^/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/mpl_toolkits/mplot3d/axis3d.pyÚ_move_from_centerr      s6   € ô
 �J‰J�uÓ€EØ�6œBŸK™K¨¨5°7©?Ó;Ñ;¸fÑDÑDÐDó    c                 ó¼  — | j                   j                  |«       | j                  j                  |«       | j                  j	                  d«       | j
                  j	                  d«       | j                  j                  d«       | j                  j                  d«       | j                  j                  ||«       | j                  j                  dgdg«       y)z.Update tick line and label position and style.TFú-Ú r   N)
Úlabel1Úset_positionÚlabel2Ú	tick1lineÚset_visibleÚ	tick2lineÚset_linestyleÚ
set_markerÚset_dataÚgridline)ÚtickÚtickxsÚtickysÚlabelposs       r   Ú_tick_update_positionr+      sœ   € ð 	‡K�K×Ñ˜XÔ&Ø‡K�K×Ñ˜XÔ&Ø‡N�N×Ñ˜tÔ$Ø‡N�N×Ñ˜uÔ%Ø‡N�N× Ñ  Ô%Ø‡N�N×Ñ˜bÔ!Ø‡N�N×Ñ˜F FÔ+Ø‡M�M×Ñ˜A˜3  Õ$r   c                   óŒ   — e Zd ZU dZdZej                  ed<   dZe	ed<   dZ
ej                  ed<   dZej                  ed<   d„ Zy)Ú_UpdatedArtistsz¾
    Class to supply artists that have been updated ready to draw.

    We track the types of artists individually, because they need
    different handling in the tightbox calculation.
    NÚlineÚticksÚoffset_textÚlabelc              #   óì   K  — | j                   �| j                   –— | j                  �| j                  D ]  }|–— Œ | j                  �| j                  –— | j                  �| j                  –— yy­w)z:Yield all updated artists in the correct order for drawingN)r.   r/   r0   r1   )Úselfr'   s     r   Ú__iter__z_UpdatedArtists.__iter__4   sl   è ø€ à�9‰9Ð Ø—)‘)ŠOØ�:‰:Ð!ØŸ
™
ò �Ø“
ðà×ÑÐ'Ø×"Ñ"Ò"Ø�:‰:Ð!Ø—*‘*Óð "ùs   ‚A2A4)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r.   ÚmlinesÚLine2DÚ__annotations__r/   Úlistr0   ÚmtextÚTextr1   r4   © r   r   r-   r-   '   sB   … ñð €Dˆ&�-‰-ÓØ€Eˆ4ÓØ"€K�—‘Ó"Ø€Eˆ5�:‰:Óó
r   r-   c                   ó‚  ‡ — e Zd ZdZdZddddœddddœddd	dœd
œZddœd„Zddœd„Zˆ fd„Z e	j                  e«      e_          ej                  dd¬«       ed„ «      «      Zd„ Z ej                  dd¬«      d„ «       Zd7ˆ fd„	Zd7ˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd7d„Zd„ Zd„ Zd„ Zd „ Zd7d!„Zd7d"„Zd#„ Zd$„ Z d%„ Z!d&„ Z"d'„ Z#d(„ Z$d)„ Z%d*„ Z&e'jP                  d+„ «       Z)e'jP                  d,„ «       Z*d7d-d.œd/„Z+  ej                  dd0d¬1«       ed2„ d3„ «      «      Z,  ej                  dd4d¬1«       ed5„ d6„ «      «      Z-ˆ xZ.S )8ÚAxiszAn Axis class for the 3D plots.))r   é   é   é   )r   é   é   é   )r   r   rG   rD   )rB   rE   rF   rC   )r   r   rE   rB   )rD   rG   rF   rC   r   r   )r   r   rE   )ÚiÚtickdirÚjuggled)r   r   rE   rE   )r   rE   r   )ÚxÚyÚzN)Úrotate_labelc                ó   — t        «       S ©N©Úlocals)r3   ÚadirÚv_intervalxÚd_intervalxÚaxesrN   ÚargsÚkwargss           r   Ú	_old_initzAxis._old_initQ   s	   € ä‹xˆr   c                ó   — t        «       S rP   rQ   )r3   rV   rN   rX   s       r   Ú	_new_initzAxis._new_initU   s	   € Ü‹xˆr   c           	      ó&  •— t        j                  | j                  | j                  gg|¢­i |¤Ž}d|v rzt        j                  ddt        j                  t        | «      j                  «      › �d¬«       |d   | j                  k7  r't        dt        | «      j                  › d|d   ›�«      ‚|d   }|d	   }|j                  d
d«      }|d   }| j                  }d| _        d| _        | j                  |   j!                  «       | _        | j"                  j%                  ddddœt&        j(                  d|› d�   dddœdœ«       t&        j(                  d   rk| j"                  j%                  dddœddddœdœ«       | j"                  d    j%                  d!t&        j(                  d"   t&        j(                  d"   d#œi«       ní| j"                  j%                  t&        j(                  d$   t&        j(                  d%   dœt&        j(                  d&   t&        j(                  d'   t&        j(                  d(   dœdœ«       | j"                  d    j%                  d!|d)v rt&        j(                  d*   nt&        j(                  d+   |d)v rt&        j(                  d,   nt&        j(                  d-   d#œi«       t+        ‰| �   |g|¢­i |¤Ž d.|v r | j,                  |d.   Ž  d/|v r | j.                  |d/   Ž  | j1                  |«       | j3                  «        y )0NrS   ú3.6zUThe signature of 3D Axis constructors has changed in %(since)s; the new signature is T)ÚmessageÚpendingzCannot instantiate z with adir=rV   rN   rW   r?   rX   ÚdefaultÚcenterÚanchor)ÚvaÚhaÚrotation_modezaxes3d.zaxis.panecolorgš™™™™™É?gš™™™™™¹?)Úinward_factorÚoutward_factor)r1   Úcolorr'   z_internal.classic_modeg      è?)r   r   r   r   )Ú	linewidthrh   )çÍÌÌÌÌÌì?rj   rj   r   g      ð?r   )rh   ri   Ú	linestyle)ÚaxislineÚgridr'   ri   zlines.linewidth)TFzaxes.linewidthzaxes.edgecolorz
grid.colorzgrid.linewidthzgrid.linestyleÚxzzxtick.major.widthzytick.major.widthzxtick.minor.widthzytick.minor.widthrU   rT   )r   Úselect_matching_signaturerY   r[   Úwarn_deprecatedÚinspectÚ	signatureÚtypeÚ__init__Ú	axis_nameÚ
ValueErrorr5   ÚgetÚ_label_positionÚ_tick_positionÚ_AXINFOÚcopyÚ_axinfoÚupdateÚmplÚrcParamsÚsuperÚset_data_intervalÚset_view_intervalÚset_rotate_labelÚ_init3d)r3   rW   rX   ÚparamsrV   rN   ÚnameÚ	__class__s          €r   rt   zAxis.__init__X   s  ø€ Ü×/Ñ/Ø�^‰^˜TŸ^™^Ð,ð?Ø/3ò?Ø7=ñ?ˆà�VÑÜ× Ñ Øð ">ä×$Ñ$¤T¨$£Z×%8Ñ%8Ó9Ð:ð <àEIõKð �f‰~ §¡Ò/Ü Ð#6´t¸D³z×7JÑ7JÐ6Kð L.Ø.4°V©nÐ-?ð"Aó Bð Bà�f‰~ˆØ˜nÑ-ˆØ�z‰z˜& "Ó%ˆØ˜Ñ!ˆà�~‰~ˆà(ˆÔØ'ˆÔð —|‘| DÑ)×.Ñ.Ó0ˆŒà�‰×ÑØ$¨HØ'/ñ1ä—\‘\ G¨D¨6°Ð"@ÑAà!$Ø"%ññ	
ô 	ô �<‰<Ð0Ò1Ø�L‰L×ÑØ*.¸ÑFà/Ø!$Ø!$ññ!ô ð �L‰L˜Ñ ×'Ñ'ØÜŸ,™,Ð'8Ñ9ÜŸ<™<Ð(9Ñ:ñð)õ ð �L‰L×Ñä!$§¡Ð.>Ñ!?Ü Ÿ\™\Ð*:Ñ;ñô
 !Ÿ\™\¨,Ñ7Ü!$§¡Ð.>Ñ!?Ü!$§¡Ð.>Ñ!?ññ
!ô 
ð �L‰L˜Ñ ×'Ñ'Øà=AÀT¹\œŸ™Ð%8Ò9Ü Ÿ\™\Ð*=Ñ>à=AÀT¹\œŸ™Ð%8Ò9Ü Ÿ\™\Ð*=Ñ>ñð	)ô 	ô 	‰Ñ˜Ð/ Ò/¨Ò/ð ˜FÑ"Ø"ˆD×"Ñ" F¨=Ñ$9Ñ:Ø˜FÑ"Ø"ˆD×"Ñ" F¨=Ñ$9Ñ:Ø×Ñ˜lÔ+Ø�‰�r   r]   T)r_   c                 ó   — | j                   S rP   )ru   ©r3   s    r   ú<lambda>zAxis.<lambda>­   s
   € ˜dŸn™n€ r   c                 ó<  — t        j                  dd| j                  d   d   | j                  d   d   d¬«      | _        t	        j
                  ddgddggd	¬
«      | _        | j                  | j                  d   «       | j                  j                  | j                  «       | j                  j                  | j                  «       t        j                  g «      | _        | j                  j                  | j                  «       | j                  j                  | j                  «       | j                  j                  | j                  «       | j                  j                  | j                  _        | j                  j                  | j                  _        y )N)r   r   rl   ri   rh   T)ÚxdataÚydatari   rh   Úantialiasedr   r   F)Úclosed)r9   r:   r|   r.   ÚmpatchesÚPolygonÚpaneÚset_pane_colorrV   Ú_set_artist_propsr   ÚLine3DCollectionÚ	gridlinesr1   Ú
offsetTextÚ	transDataÚ
_transformr‰   s    r   r„   zAxis._init3d¯   s"  € Ü—M‘MØ Ø—l‘l :Ñ.¨{Ñ;Ø—,‘,˜zÑ*¨7Ñ3Øô	ˆŒ	ô ×$Ñ$ q¨! f¨q°!¨fÐ%5¸eÔDˆŒ	Ø×Ñ˜DŸL™L¨Ñ1Ô2à�	‰	×#Ñ# D§I¡IÔ.Ø�	‰	×#Ñ# D§I¡IÔ.Ü×/Ñ/°Ó3ˆŒØ�	‰	×#Ñ# D§N¡NÔ3Ø�	‰	×#Ñ# D§J¡JÔ/Ø�	‰	×#Ñ# D§O¡OÔ4à $§	¡	× 3Ñ 3ˆ�
‰
ÔØ%)§Y¡Y×%8Ñ%8ˆ�‰Õ"r   c                 ó$   — | j                  «        y rP   )r„   r‰   s    r   Úinit3dzAxis.init3dÄ   s   € à�‰�r   c                 óú   •— t         ‰| �  |«      }|D ]e  }|j                  |j                  |j                  |j
                  |j                  fD ]'  }|j                  | j                  j                  «       Œ) Œg |S rP   )
r€   Úget_major_ticksr    r"   r&   r   r   Úset_transformrV   r˜   ©r3   Únumticksr/   ÚtÚobjr‡   s        €r   r�   zAxis.get_major_ticksÈ   óq   ø€ Ü‘Ñ'¨Ó1ˆØò 	7ˆAà—K‘K §¡¨a¯j©j¸!¿(¹(ÀAÇHÁHðNò 7�à×!Ñ! $§)¡)×"5Ñ"5Õ6ñ7ð	7ð ˆr   c                 óú   •— t         ‰| �  |«      }|D ]e  }|j                  |j                  |j                  |j
                  |j                  fD ]'  }|j                  | j                  j                  «       Œ) Œg |S rP   )
r€   Úget_minor_ticksr    r"   r&   r   r   rž   rV   r˜   rŸ   s        €r   r¥   zAxis.get_minor_ticksÐ   r£   r   c                 óD   — t        j                  g d¢|¬«       || _        y)zÜ
        Set the ticks position.

        Parameters
        ----------
        position : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the bolded axis lines, ticks, and tick labels.
        ©ÚlowerÚupperÚbothr`   Únone©ÚpositionN)r   Úcheck_in_listry   ©r3   r­   s     r   Úset_ticks_positionzAxis.set_ticks_positionØ   s    € ô 	×ÑÒHØ$,õ	.à&ˆÕr   c                 ó   — | j                   S )zÑ
        Get the ticks position.

        Returns
        -------
        str : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the bolded axis lines, ticks, and tick labels.
        )ry   r‰   s    r   Úget_ticks_positionzAxis.get_ticks_positionå   s   € ð ×"Ñ"Ð"r   c                 óD   — t        j                  g d¢|¬«       || _        y)z½
        Set the label position.

        Parameters
        ----------
        position : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the axis label.
        r§   r¬   N)r   r®   rx   r¯   s     r   Úset_label_positionzAxis.set_label_positionð   s    € ô 	×ÑÒHØ$,õ	.à'ˆÕr   c                 ó   — | j                   S )z²
        Get the label position.

        Returns
        -------
        str : {'lower', 'upper', 'both', 'default', 'none'}
            The position of the axis label.
        )rx   r‰   s    r   Úget_label_positionzAxis.get_label_positioný   s   € ð ×#Ñ#Ð#r   c                 ó  — t        j                  ||«      }|| j                  d<   | j                  j	                  |«       | j                  j                  |«       | j                  j                  |d   «       d| _        y)zî
        Set pane color.

        Parameters
        ----------
        color : :mpltype:`color`
            Color for axis pane.
        alpha : float, optional
            Alpha value for axis pane. If None, base it on *color*.
        rh   éÿÿÿÿTN)ÚmcolorsÚto_rgbar|   r’   Úset_edgecolorÚset_facecolorÚ	set_alphaÚstale)r3   rh   Úalphas      r   r“   zAxis.set_pane_color  sc   € ô —‘  uÓ-ˆØ %ˆ�‰�WÑØ�	‰	×Ñ Ô&Ø�	‰	×Ñ Ô&Ø�	‰	×Ñ˜E "™IÔ&Øˆ�
r   c                 ó    — || _         d| _        y)z‘
        Whether to rotate the axis label: True, False or None.
        If set to None the label will be rotated if longer than 4 chars.
        TN)Ú_rotate_labelr¾   )r3   Úvals     r   rƒ   zAxis.set_rotate_label  s   € ð
 !ˆÔØˆ�
r   c                 óN   — | j                   �| j                   S t        |«      dkD  S )NrD   )rÁ   Úlen)r3   r	   s     r   Úget_rotate_labelzAxis.get_rotate_label"  s(   € Ø×ÑÐ)Ø×%Ñ%Ð%ä�t“9˜q‘=Ð r   c                 óÜ  — | j                   j                  «       \  }}}}}}t        j                  t	        ||«      t	        ||«      t	        ||«      g«      }t        j                  t        ||«      t        ||«      t        ||«      g«      }g | j                   j                  «       ¢| j                   j                  «       ¢| j                   j                  «       ¢­}	| j                   j                  |	«      }
t        j                  d«      }t        j                  d«      }t        d«      D ]_  }t        j                  |
| j                  d|z     df   «      ||<   t        j                  |
| j                  d|z  dz      df   «      ||<   Œa ||k  }t        j                  ||z
  «      t        j                  t         «      j"                  k  }t        j$                  |«      dk(  r~t        j&                  | «      d   d   }|dk(  rt        j                  dd|d   g«      }nA|dk(  rt        j                  d|d   dg«      }n |dk(  rt        j                  |d   ddg«      }|||
|fS )NrB   rE   r   r   TF)rV   Ú_get_scaled_limitsr   ÚarrayÚminÚmaxÚ
get_xboundÚ
get_yboundÚ
get_zboundÚ_transformed_cubeÚzerosÚrangeÚmeanÚ_PLANESÚabsÚfinfoÚfloatÚepsÚsumÚwhere)r3   ÚxminÚxmaxÚyminÚymaxÚzminÚzmaxÚminsÚmaxsÚboundsÚbounds_projÚmeans_z0Úmeans_z1rH   ÚhighsÚequalsÚverticals                    r   Ú_get_coord_infozAxis._get_coord_info(  s   € à-1¯Y©Y×-IÑ-IÓ-KÑ*ˆˆd�D˜$  dô �x‰xœ˜T 4›¬#¨d°D«/¼3¸tÀT»?ÐKÓLˆÜ�x‰xœ˜T 4›¬#¨d°D«/¼3¸tÀT»?ÐKÓLˆð+�4—9‘9×'Ñ'Ó)ð +Ø—9‘9×'Ñ'Ó)ð+à—9‘9×'Ñ'Ó)ñ+ˆð —i‘i×1Ñ1°&Ó9ˆô —8‘8˜A“;ˆÜ—8‘8˜A“;ˆÜ�q“ò 	KˆAÜŸ'™' +¨d¯l©l¸1¸q¹5Ñ.AÀ1Ð.DÑ"EÓFˆH�Q‰KÜŸ'™' +¨d¯l©l¸1¸q¹5À1¹9Ñ.EÀqÐ.HÑ"IÓJˆH�QŠKð	Kð ˜8Ñ#ˆô —‘˜ 8Ñ+Ó,´·±¼³×0CÑ0CÑCˆÜ�6‰6�&‹>˜QÒÜ—x‘x  Ó(¨Ñ+¨AÑ.ˆHØ˜1Š}ÜŸ™ $¨¨e°A©hÐ!7Ó8‘Ø˜Q’ÜŸ™ $¨¨a©°%Ð!8Ó9‘Ø˜Q’ÜŸ™ %¨¡(¨E°5Ð!9Ó:�à�T˜;¨Ð-Ð-r   c                 ó.   — d||z   z  }d}||z
  |z  }||fS )Nç      à?g{®Gáz´?r?   )r3   rà   rß   r   Úscaler   s         r   Ú_calc_centers_deltaszAxis._calc_centers_deltasN  s/   € Ø˜ ™Ñ%ˆð
 ˆØ˜‘+ Ñ&ˆØ˜ˆÐr   c                 óÌ  — ||g}|ddd…   }|||g|||g|||gg}|| j                   j                     | j                  d      }| j                  d   }|d   j                  «       }|dk(  r|d   |d      |d   |d      k  s|dk(  r)|d   |d      |d   |d      kD  r|d   |d      ||d   <   n|d   |d      ||d   <   |j                  «       }	|d   |d      |	|d   <   ||	fS )	z3Get the edge points for the black bolded axis line.Nr¸   rH   rJ   r   r¨   r   r©   )rV   Ú_vertical_axisr|   r{   )
r3   ÚminmaxÚmaxminr­   ÚmbÚmb_revÚmmrJ   Úedge_point_0Úedge_point_1s
             r   Ú_get_axis_line_edge_pointszAxis._get_axis_line_edge_pointsX  s6  € ð
 �fÐˆØ‘D�b�D‘ˆØ�6˜6Ð" V¨V°RÐ$8¸2¸rÀ2¸,ÐGˆØ�—	‘	×(Ñ(Ñ)¨$¯,©,°sÑ*;Ñ<ˆà—,‘,˜yÑ)ˆØ˜!‘u—z‘z“|ˆà˜Ò  R¨¡U¨7°2©;Ñ%7¸"¸Q¹%ÀÈÁÑ:LÒ%LØ˜WÒ$¨¨A©¨w°r©{Ñ);¸bÀ¹eÀGÈBÁKÑ>PÒ)PØ(*¨1©¨g°b©kÑ(:ˆL˜ ™Ò%à')¨!¡u¨W°Q©ZÑ'8ˆL˜ ™Ñ$à#×(Ñ(Ó*ˆØ#% a¡5¨°©Ñ#4ˆ�W˜Q‘ZÑ à˜\Ð)Ð)r   c                 ó–  — g }g }g }|dv r| j                  ||«      \  }}|g}|g}dg}nœ| j                  ||d¬«      \  }	}
| j                  ||d¬«      \  }}|dv r3|j                  |	«       |j                  |
«       |j                  d«       |dv r3|j                  |«       |j                  |«       |j                  d«       |||fS )N)Nr`   r`   r¨   r¬   r©   )r¨   rª   )r©   rª   )rö   Úappend)r3   rï   rð   Úaxis_positionÚedgep1sÚedgep2sr­   Úedgep1Úedgep2Úedgep1_lÚedgep2_lÚedgep1_uÚedgep2_us                r   Ú_get_all_axis_line_edge_pointsz#Axis._get_all_axis_line_edge_pointsp  sò   € àˆØˆØˆØÐ-Ñ-Ø!×<Ñ<¸VÀVÓL‰NˆF�FØ�hˆGØ�hˆGØ!�{‰Hà!%×!@Ñ!@ÀÈØJQð "Aó "SÑˆH�hà!%×!@Ñ!@ÀÈØJQð "Aó "SÑˆH�hàÐ 1Ñ1Ø—‘˜xÔ(Ø—‘˜xÔ(Ø—‘ Ô(ØÐ 1Ñ1Ø—‘˜xÔ(Ø—‘˜xÔ(Ø—‘ Ô(Ø˜ Ð)Ð)r   c                 óô  — t        j                  d|¬«       | j                  j                  «       D �cg c]  }|d   ‘Œ	 }}t	        j
                  | j                  j                  dz   d«      dz
  }t	        j
                  | j                  j                  d«      }|dk(  r"|dk\  rg d¢}ng d	¢}d|cxk  rdk  r/n n,d
|d<   n&|dk(  r!|dk\  rg d¢}ng d¢}d|cxk  rdk  rn nd|d<   | j                  j                  «       D �cg c]  }|d   ‘Œ	 }}| j                  d   }| j                  j                  }|dz
  }	t	        j                  ||	 «      t	        j                  ||	«         |   }
|
S c c}w c c}w )aS  
        Get the direction of the tick.

        Parameters
        ----------
        position : str, optional : {'upper', 'lower', 'default'}
            The position of the axis.

        Returns
        -------
        tickdir : int
            Index which indicates which coordinate the tick line will
            align with.
        )r©   r¨   r`   r¬   rI   é´   ih  r©   r   )rE   rE   r   )r   r   r   r   rE   r¨   )r   r   r   )rE   rE   r   rH   )r   r®   rz   Úvaluesr   ÚmodrV   ÚelevÚazimr|   rî   Úroll)r3   r­   ÚvÚtickdirs_baseÚelev_modÚazim_modÚinfo_irH   Úvert_axÚjrI   s              r   Ú_get_tickdirzAxis._get_tickdir‰  sV  € ô 	×ÑÐ8À8ÕLð 04¯|©|×/BÑ/BÓ/DÖE¨!˜˜9›ÐEˆÐEÜ—6‘6˜$Ÿ)™)Ÿ.™.¨3Ñ.°Ó4°sÑ:ˆÜ—6‘6˜$Ÿ)™)Ÿ.™.¨#Ó.ˆØ�wÒØ˜1Š}Ú )‘â )�Ø�HÔ"˜sÕ"Ø#$�˜aÒ Ø˜Ò Ø˜1Š}Ú )‘â )�Ø�HÔ"˜sÕ"Ø#$�˜aÑ Ø"&§,¡,×"5Ñ"5Ó"7Ö8˜Q�!�C“&Ð8ˆÐ8à�L‰L˜ÑˆØ—)‘)×*Ñ*ˆØ�a‰Kˆä—'‘'˜& 1 "Ó%¤b§g¡g¨m¸QÓ&?Ñ@ÀÑCˆØˆùò1 Fùò" 9s   ´E0ÄE5c                 ó  — | j                  «       \  }}}}| j                  }|d   }||   s||   }| j                  d|z     }n||   }| j                  d|z  dz      }t        j                  |D �	cg c]  }	||	   ‘Œ	 c}	«      }
|
|fS c c}	w )NrH   rE   r   )rè   r|   rÒ   r   rÈ   )r3   rß   rà   Útcrå   ÚinfoÚindexÚlocÚplaneÚpÚxyss              r   Úactive_panezAxis.active_paneµ  s—   € Ø $× 4Ñ 4Ó 6Ñˆˆd�B˜Ø�|‰|ˆØ�S‘	ˆØ�UŠ|Ø�u‘+ˆCØ—L‘L  U¡Ñ+‰Eà�u‘+ˆCØ—L‘L  U¡¨Q¡Ñ/ˆEÜ�h‰h uÖ- !˜˜1›Ò-Ó.ˆØ�Cˆxˆùò .s   Á1Bc                 óø   — |j                  d| j                  «       ¬«       | j                  «       \  }}|dd…dd…f   | j                  _        | j                  j                  |«       |j                  d«       y)zˆ
        Draw pane.

        Parameters
        ----------
        renderer : `~matplotlib.backend_bases.RendererBase` subclass
        Úpane3d©ÚgidNrE   )Ú
open_groupÚget_gidr  r’   ÚxyÚdrawÚclose_group)r3   Úrendererr  r  s       r   Ú	draw_panezAxis.draw_paneÂ  sd   € ð 	×Ñ˜H¨$¯,©,«.ÐÔ9Ø×#Ñ#Ó%‰ˆˆSØš1˜b˜q˜b˜5‘zˆ�	‰	ŒØ�	‰	�‰�xÔ Ø×Ñ˜XÕ&r   c                 ó2   — g d¢}d|| j                   d   <   |S )N©TTTFrH   )r|   )r3   r   s     r   Ú_axmaskzAxis._axmaskÐ  s   € Ú#ˆØ$)ˆˆt�|‰|˜CÑ Ñ!Øˆr   c                 ó‚  — | j                  «       }| j                  }|d   }	|d   }
| j                  «       \  }}}}| j                  ||«      \  }}| j                  j
                  | j                  j                  | j                  j                  g|	   }|j                  «       }| j                  |«      }||   r||   n||    }|d   }|d   |z  }|d   |z  }|d   }||   }||z   }||z
  }d}||z  }|D �]C  }|j                  «       }|j                  |j                  «       g«      d   ||	<   |||<   t        j                  g |¢| j                  j                  ‘­Ž \  }}}|||<   t        j                  g |¢| j                  j                  ‘­Ž \  }} }!|j!                  «       |z   |z  }"|||<   t#        |||"| j%                  «       «      }t        j                  g |¢| j                  j                  ‘­Ž \  }#}$}%t'        |||f|| f|#|$f«       |j(                  j+                  ||j,                     «       �ŒF |S )	z5Update the ticks ready for draw and return in a list.rH   rJ   r'   rg   rf   ri   g       @r   )Ú_update_ticksr|   rè   rì   rV   ÚxaxisÚyaxisÚzaxisÚget_transformr  r{   Ú	transformÚget_locr   Úproj_transformÚMÚget_padr   r(  r+   r    Úset_linewidthÚ_major)&r3   rü   r   r   rå   Údeltas_per_pointÚposr/   r  r  rJ   rß   rà   r  r   Ú
axis_transrI   Ú	tickdeltaÚ	tick_infoÚtick_outÚtick_inÚtick_lwÚedgep1_tickdirÚout_tickdirÚ
in_tickdirÚdefault_label_offsetÚpointsr'   Úx1Úy1Úz1Úx2Úy2Úz2ÚlabeldeltasÚlxÚlyÚlzs&                                         r   Ú_get_updated_tickszAxis._get_updated_ticksÕ  sO  € ð ×"Ñ"Ó$ˆØ�|‰|ˆØ�S‘	ˆØ�y‘/ˆà $× 4Ñ 4Ó 6Ñˆˆd�B˜Ø×3Ñ3°D¸$Ó?‰ˆ�ð —	‘	—‘ §¡§¡°$·)±)·/±/ÐBÀ5ÑIˆØ×'Ñ'Ó)ˆ
ð ×#Ñ# CÓ(ˆØ',¨W¢~�F˜7’O¸FÀ7¹OÐ;Kˆ	à˜‘Lˆ	ØÐ-Ñ.°Ñ:ˆØ˜OÑ,¨yÑ8ˆØ˜KÑ(ˆØ ™ˆØ$ xÑ/ˆØ# gÑ-ˆ
à!ÐØ! FÑ*ˆàó 	?ˆDà—+‘+“-ˆCØ#×-Ñ-¨t¯|©|«~Ð.>Ó?ÀÑBˆC�‰JØ&ˆC�‰LÜ×.Ñ.ÐA°ÐA°T·Y±Y·[±[ÒA‰JˆB��BØ%ˆC�‰LÜ×.Ñ.ÐA°ÐA°T·Y±Y·[±[ÒA‰JˆB��Bð  Ÿ<™<›>Ð,@Ñ@ÀFÑJˆKØ)ˆC�‰LÜ# C¨°+¸t¿|¹|»~ÓNˆCÜ×.Ñ.ÐA°ÐA°T·Y±Y·[±[ÒA‰JˆB��Bä! $¨¨R¨°2°r°(¸RÀ¸HÔEØ�N‰N×(Ñ(¨°·±Ñ)=Ö>ð!	?ð$ ˆr   c	                 ób  — | j                   }	|	d   }
|	d   }|	d   }|d   dk(  r|}d}n|}d}t        |||| j                  «       «      }t        j                  g |¢| j
                  j                  ‘­Ž \  }}}| j                  j                  | j                  j                  j                  «       «       | j                  j                  ||f«       t        j                  t        j                   t        j"                  ||«      «      «      }| j                  j%                  |«       | j                  j'                  d«       t        j                  g |¢| j
                  j                  ‘­Ž }||   |||f   kD  rJ||
   ||
|f   k  r:t        j(                  |«      dz  dk(  r|j+                  «       g d¢k(  r|
d	v rd
}n:d}n7d
}n4||
   ||
|f   kD  r%t        j(                  |«      dz  dk(  r
|
dk(  rdnd
}nd}| j                  j-                  d«       | j                  j/                  |«       y)z%Update the offset text ready to draw.rH   rJ   rI   rE   r   r   rb   )FTT)r   rE   ÚleftÚrightra   N)r|   r   r(  r   r1  rV   r2  r—   Úset_textÚmajorÚ	formatterÚ
get_offsetr   r   Ú_norm_text_angler   Úrad2degÚarctan2Úset_rotationÚset_rotation_modeÚcount_nonzeroÚtolistÚset_vaÚset_ha)r3   rü   rý   rI  r   rå   ÚpepÚdxÚdyr  r  rJ   rI   Ú
outeredgepÚ
outerindexr7  ÚolxÚolyÚolzÚangleÚcentptÚaligns                         r   Ú_update_offset_textzAxis._update_offset_text  s  € ð �|‰|ˆØ�S‘	ˆØ�y‘/ˆØ�y‘/ˆð �1‰:˜Š?ØˆJØ‰JàˆJØˆJä 
¨G°[Ø $§¡£ó0ˆä×-Ñ-Ð@¨sÐ@°D·I±I·K±KÒ@‰ˆˆS�#Ø�‰× Ñ  §¡×!5Ñ!5×!@Ñ!@Ó!BÔCØ�‰×$Ñ$ c¨3 ZÔ0Ü×&Ñ&¤r§z¡z´"·*±*¸RÀÓ2DÓ'EÓFˆØ�‰×$Ñ$ UÔ+ð 	�‰×)Ñ)¨(Ô3ô" ×&Ñ&Ð=¨Ð=°·±·±Ò=ˆØ�'‰?˜S ¨*Ð!4Ñ5Ò5à�u‘  U¨JÐ%6Ñ!7Ò7Ü×(Ñ(¨Ó/°!Ñ3°qÒ8ð —<‘<“>Ò%8Ò8¸UÀf¹_Ø"‘Eà#‘Eð ‘ð �u‘  E¨:Ð$5Ñ 6Ò6Ü×(Ñ(¨Ó/°!Ñ3°qÒ8à#(¨A¢:™°6‘ð  �à�‰×Ñ˜xÔ(Ø�‰×Ñ˜uÕ%r   c                 ó¶  — | j                   d   }d||z   z  }t        |||| j                  «       «      }t        j                  g |¢| j
                  j                  ‘­Ž \  }	}
}| j                  j                  |	|
f«       | j                  | j                  j                  «       «      rWt        j                  t        j                  t        j                  ||«      «      «      }| j                  j!                  |«       | j                  j#                  |d   «       | j                  j%                  |d   «       | j                  j'                  |d   «       y)z-Update the axis label position ready to draw.r1   rê   rc   rd   re   N)r|   r   r(  r   r1  rV   r2  r1   r   rÅ   Úget_textr   rU  r   rV  rW  rX  r\  r]  rY  )r3   rü   rý   rI  r   r_  r`  r1   ÚlxyzÚtlxÚtlyÚtlzrf  s                r   Ú_update_label_positionzAxis._update_label_positionN  s  € à—‘˜WÑ%ˆà�f˜v‘oÑ&ˆÜ   w°¸T¿\¹\»^ÓLˆÜ×-Ñ-ÐA¨tÐA°T·Y±Y·[±[ÒA‰ˆˆS�#Ø�
‰
×Ñ  c 
Ô+Ø× Ñ  §¡×!4Ñ!4Ó!6Ô7Ü×*Ñ*¬2¯:©:´b·j±jÀÀRÓ6HÓ+IÓJˆEØ�J‰J×#Ñ# EÔ*Ø�
‰
×Ñ˜% ™+Ô&Ø�
‰
×Ñ˜% ™+Ô&Ø�
‰
×$Ñ$ U¨?Ñ%;Õ<r   c              #   óF  K  — | j                   j                  | j                  _        | j                   j                  | j                  _        | j                  «       \  }}}}| j                  ||«      \  }}| j                  d¬«      j                  j                  «       }|j                  | j                   j                  j                  «      }t        d|z  «      }	d|	z  }
d}| j                  |z   |
z  |z  }t        j                   |||«      }t        j                   | ||«      }t#        | j%                  ||| j&                  «      Ž D �]  \  }}}t)        j*                  ||g| j                   j,                  «      }t        j.                  |«      }| j                   j0                  j                  |dd…df   g«      | j                   j0                  j                  |dd…df   g«      z
  d   \  }}| j2                  j5                  |d   |d   «       | j7                  |||||
|«      }| j9                  ||||||||«       t;        | j2                  || j                  ¬	«      –— �Œ  | j                  j=                  «       �r| j                  j?                  «       rýt#        | j%                  ||| j@                  «      Ž D ]Ö  \  }}}t)        j*                  ||g| j                   j,                  «      }t        j.                  |«      }| j                   j0                  j                  |dd…df   g«      | j                   j0                  j                  |dd…df   g«      z
  d   \  }}| jC                  ||||||«       t;        | j                  ¬
«      –— ŒØ yyy­w)aG  
        Update positions of all child artists ready to draw.  Artists may be drawn
        twice: if tick_position is 'both', the ticks, line and offset text show on both
        sides of the axes; if label_position is 'both' the label shows on both sides.
        Since tightbox calculation needs individual handling of the different Artist
        types, we return them through the dataclass `_UpdatedArtists` (as opposed to a
        plain list).
        Since we reuse the same artists with different positions, the calling function
        requires them after every position update, so we yield `_UpdatedArtists` up to
        four times with different content:

        - line, ticks, offset_text on one side
        - line, ticks, offset_text on the other side
        - label on one side
        - label on the other side
        F)Úrootg      R@é0   g      5@r   rE   r   )r.   r/   r0   )r1   N)"rV   r˜   r1   r™   r—   rè   rì   Ú
get_figureÚdpi_scale_transÚinvertedr/  ÚbboxÚsizer×   Úlabelpadr   rØ   Úzipr  ry   r   Ú_proj_trans_pointsr2  r   Ú	transAxesr.   r%   rM  ri  r-   Úget_visiblerk  rx   rp  )r3   rß   rà   r  rå   r   r   ÚreltoinchesÚ	ax_inchesÚax_points_estimater6  Údefault_offsetrI  rï   rð   rü   rý   r7  r^  r_  r`  r/   s                         r   Ú_update_all_positionszAxis._update_all_positions]  sh  è ø€ ð" !%§	¡	× 3Ñ 3ˆ�
‰
ÔØ%)§Y¡Y×%8Ñ%8ˆ�‰Ô"ð !%× 4Ñ 4Ó 6Ñˆˆd�B˜Ø×3Ñ3°D¸$Ó?‰ˆ�ð —o‘o¨5�oÓ1×AÑA×JÑJÓLˆØ×)Ñ)¨$¯)©)¯.©.×*=Ñ*=Ó>ˆ	Ü   y¡Ó1ÐØÐ 2Ñ2ÐØˆØ—}‘} ~Ñ5Ð9IÑIÈFÑRˆô —‘˜%  tÓ,ˆÜ—‘˜5˜& $¨Ó-ˆä#&¨×(KÑ(KØ+1°6¸4×;NÑ;Nó)Pð $Qó 	?ÑˆF�F˜Cô ×+Ñ+¨V°VÐ,<¸d¿i¹i¿k¹kÓJˆCÜ—*‘*˜S“/ˆCð —i‘i×)Ñ)×3Ñ3°S¸¸1¸¸a¸±[°MÓBØ—i‘i×)Ñ)×3Ñ3°S¸¸1¸¸a¸±[°MÓBñCØDEñG‰FˆB�ð �I‰I×Ñ˜s 1™v s¨1¡vÔ.ð ×+Ñ+Ø˜ ¨Ð0@À#óGˆEð ×$Ñ$Ø˜ ¨W°e¸SÀ"ÀbôJô " t§y¡y¸Ø.2¯o©oô?ô ?ð7	?ð< �:‰:×!Ñ!Õ#¨¯
©
×(;Ñ(;Ô(=ä'*¨D×,OÑ,OØ/5°v¸t×?SÑ?Só-Uð (Vò 8Ñ#�˜ ô ×/Ñ/°¸Ð0@À$Ç)Á)Ç+Á+ÓN�Ü—j‘j “o�ØŸ)™)×-Ñ-×7Ñ7¸¸Q¸q¸SÀ!¸V¹¸ÓFØŸ	™	×+Ñ+×5Ñ5°s¸1¸Q¸3À¸6±{°mÓDñEØFGñI‘��Bð ×+Ñ+Ø˜F K°¸"¸bôBô &¨D¯J©JÔ7Ó7ñ8ð )>Ð#ùs   ‚NN!c                 óÐ   — |j                  d| j                  «       ¬«       | j                  «       D ]  }|D ]  }|j                  |«       Œ Œ |j	                  d«       d| _        y )NÚaxis3dr  F)r  r   r‚  r"  r#  r¾   )r3   r$  Úupdated_artistsÚarts       r   r"  z	Axis.draw¯  se   € à×Ñ˜H¨$¯,©,«.ÐÔ9à#×9Ñ9Ó;ò 	#ˆOØ&ò #�Ø—‘˜Õ"ñ#ð	#ð 	×Ñ˜XÔ&Øˆ�
r   c                 ó  — | j                   j                  sy |j                  d| j                  «       ¬«       | j	                  «       }t        |«      �r| j                  }|d   }| j                  «       \  }}}}| j                   j                  «       | j                   j                  «       | j                   j                  «       }}
}	t        j                  |	d   |
d   |d   g«      }t        j                  |	d   |
d   |d   g«      }t        j                  |||«      }t        j                  | ||«      }t        j                  |t        |«      df«      }|D �cg c]  }|j                  «       ‘Œ c}|d d …|f<   t        j                   |||gd¬«      }||dz
     |d d …d|dz
  f<   ||dz
     |d d …d|dz
  f<   | j"                  j%                  |«       |d   }| j"                  j'                  |d	   «       | j"                  j)                  |d
   «       | j"                  j+                  |d   «       | j"                  j-                  «        | j"                  j/                  |«       |j1                  d«       y c c}w )NÚgrid3dr  rH   r   r   )r   rE   rm   rh   ri   rk   )rV   Ú
_draw_gridr  r   r*  rÄ   r|   rè   rË   rÌ   rÍ   r   rÈ   rØ   Útiler0  Ústackr–   Úset_segmentsÚ	set_colorr4  r#   Údo_3d_projectionr"  r#  )r3   r$  r/   r  r  rß   rà   r  rå   ÚxlimÚylimÚzlimÚ	data_minsÚ	data_maxsrï   rð   Úxyz0r'   r   Úgridinfos                       r   Ú	draw_gridzAxis.draw_gridº  s/  € à�y‰y×#Ò#Øà×Ñ˜H¨$¯,©,«.ÐÔ9à×"Ñ"Ó$ˆÜˆu�:à—<‘<ˆDØ˜‘IˆEð %)×$8Ñ$8Ó$:Ñ!ˆD�$˜˜EØ $§	¡	× 4Ñ 4Ó 6Ø $§	¡	× 4Ñ 4Ó 6Ø $§	¡	× 4Ñ 4Ó 6ð �$ˆDô Ÿ™ $ q¡'¨4°©7°D¸±GÐ!<Ó=ˆIÜŸ™ $ q¡'¨4°©7°D¸±GÐ!<Ó=ˆIÜ—X‘X˜e Y°	Ó:ˆFÜ—X‘X˜u˜f i°Ó;ˆFô —7‘7˜6¤C¨£J° ?Ó3ˆDØ9>Ö?°˜dŸl™l�nÒ?ˆD’�E�‰Nô —H‘H˜d D¨$Ð/°aÔ8ˆEØ%+¨E°A©IÑ%6ˆE’!�Q˜ ™	�/Ñ"Ø%+¨E°A©IÑ%6ˆE’!�Q˜ ™	�/Ñ"Ø�N‰N×'Ñ'¨Ô.Ø˜F‘|ˆHØ�N‰N×$Ñ$ X¨gÑ%6Ô7Ø�N‰N×(Ñ(¨°+Ñ)>Ô?Ø�N‰N×(Ñ(¨°+Ñ)>Ô?Ø�N‰N×+Ñ+Ô-Ø�N‰N×Ñ Ô)à×Ñ˜XÕ&ùò# @s   ÅJF)Úfor_layout_onlyc                ó’  — | j                  «       sy | j                  j                  €k| j                  j                  «       | j                  _        t        j
                  j                  | j                  j                  «      | j                  _        g }| j                  «       D ]ÿ  }|j                  x}�(| j                  ||«      D ]  }|j                  |«       Œ |j                  x}�0|j                  «       r |j                  |j                  |«      «       |j                  x}�@|j                  «       r0|j!                  «       r |j                  |j                  |«      «       |j"                  €ŒÒ|rŒÕ|j                  |j"                  j                  |«      «       �Œ |rt$        j&                  j)                  |«      S y rP   )r}  rV   r2  Úget_projr   ÚlinalgÚinvÚinvMr‚  r/   Ú_get_ticklabel_bboxesÚextendr.   rø   Úget_window_extentr0   rk  r1   ÚmtransformsÚBboxÚunion)	r3   r$  r—  Úbboxesr…  r/   Ú
tlabel_bbsr.   r0   s	            r   Úget_tightbboxzAxis.get_tightbboxè  sm  € à×ÑÔ!Øà�9‰9�;‰;ÐØŸ)™)×,Ñ,Ó.ˆD�I‰IŒKÜŸY™YŸ]™]¨4¯9©9¯;©;Ó7ˆD�I‰IŒNàˆà#×9Ñ9Ó;ò 	QˆOØ(×.Ñ.Ð.�Ð;Ø"&×"<Ñ"<¸UÀHÓ"Mò .�JØ—M‘M *Õ-ð.ð (×,Ñ,Ð,�Ð9¸d×>NÑ>NÔ>PØ—‘˜d×4Ñ4°XÓ>Ô?à /× ;Ñ ;Ð;�ÐHØ×+Ñ+Ô-°+×2FÑ2FÔ2HØ—‘˜k×;Ñ;¸HÓEÔFà×$Ñ$Ñ0ºØ—‘˜o×3Ñ3×EÑEÀhÓOÖPð	Qñ Ü×#Ñ#×)Ñ)¨&Ó1Ð1àr   Úget_data_interval)Úalternativer_   c                 ó"   — | j                  «       S rP   )r¦  r‰   s    r   rŠ   zAxis.<lambda>	  ó   €  $×"8Ñ"8Ó":€ r   c                 ó    —  | j                   |Ž S rP   )r�   ©r3   rï   s     r   rŠ   zAxis.<lambda>
  ó   € Ð*@¨$×*@Ñ*@À&Ð*I€ r   Úget_view_intervalc                 ó"   — | j                  «       S rP   )r­  r‰   s    r   rŠ   zAxis.<lambda>  r©  r   c                 ó    —  | j                   |Ž S rP   )r‚   r«  s     r   rŠ   zAxis.<lambda>  r¬  r   rP   )/r5   r6   r7   r8   rÒ   rz   rY   r[   rt   rq   rr   Ú__signature__r   Ú
deprecatedÚpropertyrS   r„   r›   r�   r¥   r°   r²   r´   r¶   r“   rƒ   rÅ   rè   rì   rö   r  r  r  r%  r(  rM  ri  rp  r‚  r   Úallow_rasterizationr"  r–  r¥  Ú
d_intervalÚ
v_intervalÚ__classcell__)r‡   s   @r   rA   rA   A   sÁ  ø„ Ù)ð€Gð  ¨yÑ9Ø ¨yÑ9Ø ¨yÑ9ñ€Gð  $ôð /3ô ôQðf /˜W×.Ñ.¨yÓ9€HÔØ/ˆ?ˆ4�?‰?˜5¨$Ô/ÙÑ,Ó-ó/€Dò9ð* €T‡_�_�U DÔ)ñó *ðõõò'ò	#ò(ò	$óò$ò!ò$.òLó*ó0*ò2*òXò'òò
0òdE&òN=òP8ðd ×Ññó  ðð ×Ññ)'ó  ð)'ðZ¸eô ð>>��—‘ØÐ.¸ô>áÑ:ÙIóKóL€Jð>��—‘ØÐ.¸ô>áÑ:ÙIóKóL„Jr   rA   c                   ól   — e Zd ZdZ ej
                  ddd«      \  ZZ ej
                  ddd«      \  ZZ	y)ÚXAxisrK   ÚviewÚ
xy_viewLimÚ	intervalxÚdataÚ
xy_dataLimN©
r5   r6   r7   ru   ÚmaxisÚ_make_getset_intervalr­  r‚   r¦  r�   r?   r   r   r¸  r¸    óG   „ Ø€IØ+F¨5×+FÑ+FØ�˜kó,+Ñ(ÐÐ(à+F¨5×+FÑ+FØ�˜kó,+Ñ(ÐÑ(r   r¸  c                   ól   — e Zd ZdZ ej
                  ddd«      \  ZZ ej
                  ddd«      \  ZZ	y)ÚYAxisrL   r¹  rº  Ú	intervalyr¼  r½  Nr¾  r?   r   r   rÃ  rÃ    rÁ  r   rÃ  c                   ól   — e Zd ZdZ ej
                  ddd«      \  ZZ ej
                  ddd«      \  ZZ	y)ÚZAxisrM   r¹  Ú
zz_viewLimr»  r¼  Ú
zz_dataLimNr¾  r?   r   r   rÆ  rÆ  !  rÁ  r   rÆ  )r'  )Údataclassesr   rq   Únumpyr   Ú
matplotlibr~   r   r   r   r9   r   r¿  r   r�   r	   r=   r
   r   r   r¹   r   r   r   r   r+   r-   r¸  rA   rÃ  rÆ  r?   r   r   ú<module>rÌ     s‡   ðõ
 "Û ã ã ÷A÷ Aó A÷ óEò
%ð ÷ð ó ðô2MLˆ5�;‰;ô MLô`+ˆDô +ô+ˆDô +ô+ˆDõ +r   