ó
    gzi�  ã                   ób   • S SK r S SKJr  S SKrS SKrS SKJr  S r\R                  " \SS5      r
g)é    N)Úislice)Úaffine_transformc           	      óJ  ^^• U c  gU R                   (       a  [        R                  " S5      $ U R                  m TR                  R
                  nS [        U[        USS5      5       5       mUU4S jn[        U" 5       S S9u  pE[        XE5      $ ! [         a    Ts $ f = f)zšCompute the oriented envelope (minimum rotated rectangle).

This is a fallback implementation for GEOS < 3.12 to have the correct
minimum area behaviour.
NzPOLYGON EMPTYc              3   óR   #   • U  H  u  pUS    US    -
  US   US   -
  4v •  M     g7f)r   é   N© )Ú.0Úpt1Úpt2s      Úb/home/mande/repo/quber/.venv/lib/python3.13/site-packages/shapely/algorithms/_oriented_envelope.pyÚ	<genexpr>Ú._oriented_envelope_min_area.<locals>.<genexpr>   s6   é € ð â<‰HˆCð 
ˆQ‰�#�a‘&‰˜#˜a™& 3 q¡6™/Õ*Ú<ùs   ‚%'r   c            
   3   óÀ   >#   • T HS  u  p[         R                  " U S-  US-  -   5      nX-  X-  pCU* Upe[        T	X4XVSS45      R                  nXsXTUSS44v •  MU     g 7f)Né   r   )ÚmathÚsqrtr   Úenvelope)
ÚdxÚdyÚlengthÚuxÚuyÚvxÚvyÚtransf_rectÚedgesÚhulls
           €€r   Ú_transformed_rectsÚ7_oriented_envelope_min_area.<locals>._transformed_rects!   su   øé € Û‰FˆBô —Y’Y˜r 1™u r¨1¡u™}Ó-ˆFØ‘[ "¡+�à�S˜"�ô +¨4°"¸"À!ÀQÐ1GÓH×QÑQˆKð  R¨R°°AÐ 6Ð7Ô7ò ùs   ƒAAc                 ó    • U S   R                   $ )Nr   )Úarea)Úrs    r   Ú<lambda>Ú-_oriented_envelope_min_area.<locals>.<lambda>2   s   € ÀaÈÁdÇiÂió    )Úkey)Úis_emptyÚshapelyÚfrom_wktÚconvex_hullÚexteriorÚcoordsÚAttributeErrorÚzipr   Úminr   )ÚgeometryÚkwargsr,   r   r   Ú
inv_matrixr   r   s         @@r   Ú_oriented_envelope_min_arear3   
   s¤   ù€ ð ÑØØ××Ü×Ò Ó0Ð0ð ×Ñ€DðØ—‘×%Ñ%ˆñä˜F¤F¨6°1°dÓ$;Ô<ó€Eö
8ô" "Ñ"4Ó"6Ñ<OÑPÑ€KÜ˜KÓ4Ð4øô5 ó ØŠðús   »B ÂB"Â!B"r   )r   Ú	itertoolsr   ÚnumpyÚnpr(   Úshapely.affinityr   r3   Ú
frompyfuncÚ&_oriented_envelope_min_area_vectorizedr   r%   r   Ú<module>r:      s2   ðÛ Ý ã ã Ý -ò)5ðX *,¯ªØ  Aó*Ñ &r%   