
    _ h                     b    d dl Z d dlmZ d dlZd dlZd dlmZ d Z ej                  edd      Z
y)    N)islice)affine_transformc           	      B   | y| j                   rt        j                  d      S | j                  	 j                  j
                  }d t        |t        |dd            D        fd}t         |       d       \  }}t        ||      S # t        $ r cY S w xY w)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   N   K   | ]  \  }}|d    |d    z
  |d   |d   z
  f  yw)r      N ).0pt1pt2s      /home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/algorithms/_oriented_envelope.py	<genexpr>z._oriented_envelope_min_area.<locals>.<genexpr>   s9      C 
Q#a&#a&3q6/*s   #%r   c            
   3      K   D ]Z  \  } }t        j                  | dz  |dz  z         }| |z  ||z  }}| |}}t        	||||ddf      j                  }|||||ddff \ y w)N   r   )mathsqrtr   envelope)
dxdylengthuxuyvxvytransf_rectedgeshulls
           r   _transformed_rectsz7_oriented_envelope_min_area.<locals>._transformed_rects!   s      	8FB YYr1ur1u}-F&["v+BS"B +4"b"b!Q1GHQQK RRA 677	8s   A!A$c                      | d   j                   S )Nr   )area)rs    r   <lambda>z-_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_arear0   
   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   r0   
frompyfunc&_oriented_envelope_min_area_vectorizedr   r"   r   <module>r7      s4        -)5X *7A* &r"   