Ë
    xìqj`  ã                   ó�   — d Z ddlmZ ddlmZmZ ddlmZ  ed¬«       G d„ d«      «       Z G d	„ d
e«      Z	e G d„ d«      «       Z
y)zC
This module contains the structures related to areas of interest.
é    )Ú	dataclass)Ú
NamedTupleÚUnion)Úis_nullT)Úfrozenc                   ó@   — e Zd ZU dZeed<   eed<   eed<   eed<   d„ Zy)ÚAreaOfInterestz|
    .. versionadded:: 2.3.0

    This is the area of interest for:

    - Transformations
    - Querying for CRS data.
    Úwest_lon_degreeÚsouth_lat_degreeÚeast_lon_degreeÚnorth_lat_degreec                 óÂ   — t        | j                  «      s?t        | j                  «      s*t        | j                  «      st        | j                  «      rt        d«      ‚y ©Nz#NaN or None values are not allowed.)r   r
   r   r   r   Ú
ValueError©Úselfs    úF/var/www/html/truck-me/venv/lib/python3.12/site-packages/pyproj/aoi.pyÚ__post_init__zAreaOfInterest.__post_init__   sK   € ä�D×(Ñ(Ô)Ü�t×,Ñ,Ô-Ü�t×+Ñ+Ô,Ü�t×,Ñ,Ô-äÐBÓCÐCð .ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚfloatÚ__annotations__r   © r   r   r	   r	      s'   … ñð ÓàÓàÓàÓóDr   r	   c                   ó~   — e Zd ZU dZeed<   eed<   eed<   eed<   dZedz  ed<   ede	eeeef   fd	„«       Z
defd
„Zy)Ú	AreaOfUsezb
    .. versionadded:: 2.0.0

    Area of Use for CRS, CoordinateOperation, or a Transformer.
    ÚwestÚsouthÚeastÚnorthNÚnameÚreturnc                 ó^   — | j                   | j                  | j                  | j                  fS )z¬
        The bounds of the area of use.

        Returns
        -------
        tuple[float, float, float, float]
            west, south, east, and north bounds.
        )r   r    r!   r"   r   s    r   ÚboundszAreaOfUse.bounds;   s#   € ð �y‰y˜$Ÿ*™* d§i¡i°·±Ð;Ð;r   c                 ó:   — d| j                   › d| j                  › �S )Nz- name: z
- bounds: )r#   r&   r   s    r   Ú__str__zAreaOfUse.__str__G   s   € Ø˜$Ÿ)™)˜ L°·±°Ð>Ð>r   )r   r   r   r   r   r   r#   ÚstrÚpropertyÚtupler&   r(   r   r   r   r   r   )   s^   … ñð ƒKàƒLà
ƒKàƒLà€Dˆ#�‰*Óàð	<˜˜e U¨E°5Ð8Ñ9ò 	<ó ð	<ð?˜ô ?r   r   c                   ót   — e Zd ZU dZeed<   eed<   eed<   eed<   d„ Zded ef   de	fd	„Z
ded ef   de	fd
„Zy)ÚBBoxzs
    Bounding box to check if data intersects/contains other
    bounding boxes.

    .. versionadded:: 3.0.0

    r   r    r!   r"   c                 óÂ   — t        | j                  «      s?t        | j                  «      s*t        | j                  «      st        | j                  «      rt        d«      ‚y r   )r   r   r    r!   r"   r   r   s    r   r   zBBox.__post_init__^   sC   € ä�D—I‘IÔÜ�t—z‘zÔ"Ü�t—y‘yÔ!Ü�t—z‘zÔ"äÐBÓCÐCð #r   Úotherr$   c                 óÖ   — | j                   |j                  k  xrO |j                   | j                  k  xr4 | j                  |j                  k  xr |j                  | j                  k  S )z×
        Parameters
        ----------
        other: BBox
            The other BBox to use to check.

        Returns
        -------
        bool:
            True if this BBox intersects the other bbox.
        ©r   r!   r    r"   ©r   r/   s     r   Ú
intersectszBBox.intersectsg   sZ   € ð �I‰I˜Ÿ
™
Ñ"ò )Ø—
‘
˜TŸY™YÑ&ò)à—
‘
˜UŸ[™[Ñ(ò)ð —‘˜dŸj™jÑ(ð		
r   c                 óÖ   — |j                   | j                   k\  xrO |j                  | j                  k  xr4 |j                  | j                  k\  xr |j                  | j                  k  S )zé
        Parameters
        ----------
        other: Union["BBox", AreaOfUse]
            The other BBox to use to check.

        Returns
        -------
        bool:
            True if this BBox contains the other bbox.
        r1   r2   s     r   ÚcontainszBBox.containsz   sZ   € ð �J‰J˜$Ÿ)™)Ñ#ò *Ø—
‘
˜dŸi™iÑ'ò*à—‘˜tŸz™zÑ)ò*ð —‘˜tŸz™zÑ)ð		
r   N)r   r   r   r   r   r   r   r   r   Úboolr3   r5   r   r   r   r-   r-   K   s]   … ñð ƒKàƒLà
ƒKàƒLòDð
  f¨iÐ&7Ñ 8ð 
¸Tó 
ð&
˜e F¨IÐ$5Ñ6ð 
¸4ô 
r   r-   N)r   Údataclassesr   Útypingr   r   Úpyproj.utilsr   r	   r   r-   r   r   r   ú<module>r:      s\   ðñõ "ß $å  ñ �$Ô÷Dð Dó ðDô:?�
ô ?ðD ÷?
ð ?
ó ñ?
r   