
    = j                     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)zCompute 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      v/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/shapely/algorithms/_oriented_envelope.py	<genexpr>._oriented_envelope_min_area.<locals>.<genexpr>   s6      <HC 
Q#a&#a&3q6/*<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_rects7_oriented_envelope_min_area.<locals>._transformed_rects!   su     FB YYr1ur1u}-F["+S" +4""!Q1GHQQK RR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dii    )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%%FF61d$;<E
8" ""4"6<OPKK445  s   B B"!B"r   )r   	itertoolsr   numpynpr(   shapely.affinityr   r3   
frompyfunc&_oriented_envelope_min_area_vectorizedr   r%   r   <module>r:      s2        -)5X *,A* &r%   