Ë
    ~ìqj/	  ã                   ó6   — d Z ddlmZ ddlZ G d„ d«      Zd„ Zy)z.Support for GEOS prepared geometry operations.é    ©ÚPicklingErrorNc                   óR   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zy)ÚPreparedGeometryaU  A geometry prepared for efficient comparison to a set of other geometries.

    Examples
    --------
    >>> from shapely.prepared import prep
    >>> from shapely.geometry import Point, Polygon
    >>> triangle = Polygon([(0.0, 0.0), (1.0, 1.0), (1.0, -1.0)])
    >>> p = prep(triangle)
    >>> p.intersects(Point(0.5, 0.5))
    True

    c                 óœ   — t        |t        «      r|j                  | _        d| _        yt        j                  |«       || _        d| _        y)z@Prepare a geometry for efficient comparison to other geometries.TN)Ú
isinstancer   ÚcontextÚshapelyÚprepareÚprepared)Úselfr	   s     úL/var/www/html/truck-me/venv/lib/python3.12/site-packages/shapely/prepared.pyÚ__init__zPreparedGeometry.__init__   s=   € ä�gÔ/Ô0Ø"Ÿ?™?ˆDŒLð ˆ�ô �O‰O˜GÔ$Ø"ˆDŒLØˆ�ó    c                 ó8   — | j                   j                  |«      S )z;Return True if the geometry contains the other, else False.)r	   Úcontains©r   Úothers     r   r   zPreparedGeometry.contains   ó   € à�|‰|×$Ñ$ UÓ+Ð+r   c                 ó8   — | j                   j                  |«      S )zDReturn True if the geometry properly contains the other, else False.)r	   Úcontains_properlyr   s     r   r   z"PreparedGeometry.contains_properly#   s   € à�|‰|×-Ñ-¨eÓ4Ð4r   c                 ó8   — | j                   j                  |«      S )z9Return True if the geometry covers the other, else False.)r	   Úcoversr   s     r   r   zPreparedGeometry.covers'   ó   € à�|‰|×"Ñ" 5Ó)Ð)r   c                 ó8   — | j                   j                  |«      S )z0Return True if the geometries cross, else False.)r	   Úcrossesr   s     r   r   zPreparedGeometry.crosses+   ó   € à�|‰|×#Ñ# EÓ*Ð*r   c                 ó8   — | j                   j                  |«      S )z3Return True if geometries are disjoint, else False.)r	   Údisjointr   s     r   r   zPreparedGeometry.disjoint/   r   r   c                 ó8   — | j                   j                  |«      S )z0Return True if geometries intersect, else False.)r	   Ú
intersectsr   s     r   r!   zPreparedGeometry.intersects3   s   € à�|‰|×&Ñ& uÓ-Ð-r   c                 ó8   — | j                   j                  |«      S )z.Return True if geometries overlap, else False.)r	   Úoverlapsr   s     r   r#   zPreparedGeometry.overlaps7   r   r   c                 ó8   — | j                   j                  |«      S )z,Return True if geometries touch, else False.)r	   Útouchesr   s     r   r%   zPreparedGeometry.touches;   r   r   c                 ó8   — | j                   j                  |«      S )z8Return True if geometry is within the other, else False.)r	   Úwithinr   s     r   r'   zPreparedGeometry.within?   r   r   c                 ó   — t        d«      ‚)zPickling is not supported.z&Prepared geometries cannot be pickled.r   )r   s    r   Ú
__reduce__zPreparedGeometry.__reduce__C   s   € äÐDÓEÐEr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r!   r#   r%   r'   r)   © r   r   r   r      s?   „ ñòò,ò5ò*ò+ò,ò.ò,ò+ò*óFr   r   c                 ó   — t        | «      S )z.Create and return a prepared geometric object.)r   )Úobs    r   Úprepr1   H   s   € ä˜BÓÐr   )r-   Úpickler   r
   r   r1   r.   r   r   ú<module>r3      s    ðÙ 4å  ã ÷=Fñ =Fó@ r   