ó
    [hV  ã                   ó„  • S r SSKJrJr  SSKJrJrJrJr  SSK	J
r
   SSKJr   " S
 S5      r\" 5       r\R%                  \R&                  \
\\\\5        \b  \R%                  \5        OCS rSS jr\R,                  r\R.                  R%                  \" 5       S9  g! \ a    SSKr\R                  " S	5        Sr Nšf = f)a	  
Non-separable transforms that map from data space to screen space.

Projections are defined as `~.axes.Axes` subclasses.  They include the
following elements:

- A transformation from data coordinates into display coordinates.

- An inverse of that transformation.  This is used, for example, to convert
  mouse positions from screen space back into data space.

- Transformations for the gridlines, ticks and ticklabels.  Custom projections
  will often need to place these elements in special locations, and Matplotlib
  has a facility to help with doing so.

- Setting up default values (overriding `~.axes.Axes.cla`), since the defaults
  for a rectilinear Axes may not be appropriate.

- Defining the shape of the Axes, for example, an elliptical Axes, that will be
  used to draw the background of the plot and for clipping any data elements.

- Defining custom locators and formatters for the projection.  For example, in
  a geographic projection, it may be more convenient to display the grid in
  degrees, even if the data is in radians.

- Set up interactive panning and zooming.  This is left as an "advanced"
  feature left to the reader, but there is an example of this for polar plots
  in `matplotlib.projections.polar`.

- Any additional methods for additional convenience or features.

Once the projection Axes is defined, it can be used in one of two ways:

- By defining the class attribute ``name``, the projection Axes can be
  registered with `matplotlib.projections.register_projection` and subsequently
  simply invoked by name::

      fig.add_subplot(projection="my_proj_name")

- For more complex, parameterisable projections, a generic "projection" object
  may be defined which includes the method ``_as_mpl_axes``. ``_as_mpl_axes``
  should take no arguments and return the projection's Axes subclass and a
  dictionary of additional arguments to pass to the subclass' ``__init__``
  method.  Subsequently a parameterised projection can be initialised with::

      fig.add_subplot(projection=MyProjection(param1=param1_value))

  where MyProjection is an object which implements a ``_as_mpl_axes`` method.

A full-fledged and heavily annotated example is in
:doc:`/gallery/misc/custom_projection`.  The polar plot functionality in
`matplotlib.projections.polar` may also be of interest.
é   )ÚaxesÚ
_docstringé   )Ú
AitoffAxesÚ
HammerAxesÚLambertAxesÚMollweideAxes)Ú	PolarAxesé    )ÚAxes3DNz½Unable to import Axes3D. This may be due to multiple versions of Matplotlib being installed (e.g. as a system package and as a pip package). As a result, the 3D projection is not available.c                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	ÚProjectionRegistryéE   z?A mapping of registered projection names to projection classes.c                 ó   • 0 U l         g ©N©Ú_all_projection_types©Úselfs    Ún/home/gothic/public_html/Fooocus/fooocus_env/lib64/python3.13/site-packages/matplotlib/projections/__init__.pyÚ__init__ÚProjectionRegistry.__init__H   s
   € Ø%'ˆÕ"ó    c                 óJ   • U H  nUR                   nX R                  U'   M     g)z"Register a new set of projections.N)Únamer   )r   ÚprojectionsÚ
projectionr   s       r   ÚregisterÚProjectionRegistry.registerK   s#   € ã%ˆJØ—?‘?ˆDØ/9×&Ñ& tÓ,ò &r   c                 ó    • U R                   U   $ )z'Get a projection class from its *name*.r   )r   r   s     r   Úget_projection_classÚ'ProjectionRegistry.get_projection_classQ   s   € à×)Ñ)¨$Ñ/Ð/r   c                 ó,   • [        U R                  5      $ )z9Return the names of all projections currently registered.)Úsortedr   r   s    r   Úget_projection_namesÚ'ProjectionRegistry.get_projection_namesU   s   € ä�d×0Ñ0Ó1Ð1r   r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r!   r%   Ú__static_attributes__© r   r   r   r   E   s   † ÙIò(ò:ò0õ2r   r   c                 ó.   • [         R                  U 5        g r   )Úprojection_registryr   )Úclss    r   Úregister_projectionr1   j   s   € Ü× Ñ  Õ%r   c                 óz   • U c  Sn  [         R                  U 5      $ ! [         a  n[        SU -  5      UeSnAff = f)zp
Get a projection class from its name.

If *projection* is None, a standard rectilinear projection is returned.
NÚrectilinearzUnknown projection %r)r/   r!   ÚKeyErrorÚ
ValueError)r   Úerrs     r   r!   r!   n   sK   € ð ÑØ"ˆ
ðHÜ"×7Ñ7¸
ÓCÐCøÜó HÜÐ0°:Ñ=Ó>ÀCÐGûðHús   ‡ œ
:¦5µ:)Úprojection_namesr   )r+   Ú r   r   Úgeor   r   r   r	   Úpolarr
   Úmpl_toolkits.mplot3dr   Ú	ExceptionÚwarningsÚwarnr   r/   r   ÚAxesr1   r!   r%   Úinterpdr-   r   r   Ú<module>rA      sØ   ðñ4÷l  ß CÓ CÝ ðÝ+÷2ñ 2ñ* )Ó*Ð Ø × Ñ Ø‡I�IØØØØØôð 
ÑØ× Ñ  Õ(ð 	ò&ôHð +×?Ñ?Ð Ø 
× Ñ × Ñ Ñ-AÓ-CÐ Ò DøðC ó ÛØ‡M‚Mð Oô Pð ‚Fðús   žB ÂB?Â>B?