
    (&h                     T    d Z ddlZddlZd Zd Zd
dZ ej        edd	          ZdS )zShapely CGA algorithms.    Nc                     t          j        | j                  ddddf         }t          j        ||d         g          j        \  }}t          j        |dd         |dd         |dd         z
  z            dz  S )zReturn the signed area enclosed by a ring in linear time.

    Algorithm used: https://web.archive.org/web/20080209143651/http://cgafaq.info:80/wiki/Polygon_Area
    N      g       @)nparraycoordsvstackTsum)ringr
   xsyss       Q/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/algorithms/cga.pysigned_arear      s|    
 Xdk""111bqb5)FYq	*++-FB6"QrT(bfr#2#w./00366    c                 
   t          j        |          }t          j        |          rt          j        |           } nEt          j        |          r1t          j        |           } t          j        | |                   | |<   | S )zIReturn a copy of the rings potentially reversed depending on `condition`.)r   asarrayallshapelyreverseanyr	   )rings	conditions     r   _reverse_conditionedr      sq    
9%%I	vi =&&				 ="?5+;<<iLr   Fc                    | d S | j         dv r&|                     fd| j        D                       S | j         dk    rt          j        | j        g| j                  }t          j        |          }|d          |d<   rt          j	        |          }t          j
        |          r4t          ||          }|                     |d         |dd                    S | S )N)MultiPolygonGeometryCollectionc                 0    g | ]}t          |          S  )_orient_polygon).0geomexterior_cws     r   
<listcomp>z#_orient_polygon.<locals>.<listcomp>"   s#    KKKD_T;//KKKr   Polygonr   r   )	geom_type	__class__geomsr   r	   exterior	interiorsr   is_ccwlogical_notr   r   )geometryr%   r   reverse_conditions    `  r   r"   r"      s   tCCC!!KKKKHNKKK
 
 	

 
	y	(	((+Ah.@ABB#N511#4Q#77! 	B "/@ A A6#$$ 	;(0ABBE%%eAhabb	:::Or   r   r   )ninnout)F)	__doc__numpyr   r   r   r   r"   
frompyfunc_orient_polygons_vectorizedr!   r   r   <module>r7      ss          7 7 7     * ,bmOKKK   r   