
    _ h{                     ~    d Z ddlZddlZddlmZ ddlmZ dgZ G d de      Z	e	ej                  j                  d<   y)zPoints and related utilities.    N)DimensionError)BaseGeometryPointc                       e Zd ZdZg Zd Zed        Zed        Zed        Z	ed        Z
ed        Zdd	Zed
        Zy)r   a  A geometry type that represents a single coordinate.

    Each coordinate has x, y and possibly z and/or m values.

    A point is a zero-dimensional feature and has zero length and zero area.

    Parameters
    ----------
    args : float, or sequence of floats
        The coordinates can either be passed as a single parameter, or as
        individual float values using multiple parameters:

        1) 1 parameter: a sequence or array-like of with 2 or 3 values.
        2) 2 or 3 parameters (float): x, y, and possibly z.

    Attributes
    ----------
    x, y, z, m : float
        Coordinate values

    Examples
    --------
    Constructing the Point using separate parameters for x and y:

    >>> from shapely import Point
    >>> p = Point(1.0, -1.0)

    Constructing the Point using a list of x, y coordinates:

    >>> p = Point([1.0, -1.0])
    >>> print(p)
    POINT (1 -1)
    >>> p.y
    -1.0
    >>> p.x
    1.0

    c                    t        |      dk(  rt        j                  d      S t        |      dkD  rt        dt        |       d      t        |      dk(  rR|d   }t	        |t
              r|S t        |d      st        |      }t        j                  |      j                         }n#t        j                  |      j                         }|j                  dkD  rt        d|       t        j                  |j                  t        j                         s|D cg c]  }t#        |       }}t        j$                  |      }t	        |t
              st        d	      |S c c}w )
zCreate a new Point geometry.r   zPOINT EMPTY   z#Point() takes at most 3 arguments (z given)   __getitem__z:Point() takes only scalar or 1-size vector arguments, got z*Invalid values passed to Point constructor)lenshapelyfrom_wkt	TypeError
isinstancer   hasattrlistnpasarraysqueezearrayndim
ValueError
issubdtypedtypenumberfloatpoints)selfargscoordscgeoms        r/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/shapely/geometry/point.py__new__zPoint.__new__6   s*   t9> ##M22Y]A#d)GTUUY!^!WF&%( 6=1fZZ'//1F XXd^++-F;;?LTFS  }}V\\2995(./1eAh/F/~~f%$&IJJ	 0s   E"c                 >    t        t        j                  |             S )zReturn x coordinate.)r   r   get_xr   s    r"   xzPoint.xX        W]]4())    c                 >    t        t        j                  |             S )zReturn y coordinate.)r   r   get_yr&   s    r"   yzPoint.y]   r(   r)   c                     t        j                  |       }t        j                  |      r t        j                  |       st        d      t        |      S )zReturn z coordinate.zThis point has no z coordinate.)r   get_zr   isnanhas_zr   r   )r   zs     r"   r1   zPoint.zb   s=     MM$88A;w}}T2 !BCCQxr)   c                 ~    t        j                  |       st        d      t        t        j                  |             S )zmReturn m coordinate.

        .. versionadded:: 2.1.0
           Also requires GEOS 3.12.0 or later.
        zThis point has no m coordinate.)r   has_mr   r   get_mr&   s    r"   mzPoint.mj   s0     }}T" !BCCW]]4())r)   c                 N    | j                   }dt        |      dkD  r|d   dS ddS )z4Return a GeoJSON-like mapping of the Point geometry.r   r    )typecoordinates)r   r   )r   r   s     r"   __geo_interface__zPoint.__geo_interface__u   s/     S[1_q	UURTUUr)   Nc                     | j                   ry|| j                  rdnd}|d}d| j                   d| j                   dd|z   d	d
|z   d| d| dS )a  Return SVG circle element for the Point geometry.

        Parameters
        ----------
        scale_factor : float
            Multiplication factor for the SVG circle diameter.  Default is 1.
        fill_color : str, optional
            Hex string for fill color. Default is to use "#66cc99" if
            geometry is valid, and "#ff3333" if invalid.
        opacity : float
            Float number between 0 and 1 for color opacity. Default value is 0.6

        z<g />z#66cc99z#ff3333g333333?z<circle cx="z" cy="z" r="g      @z!" stroke="#555555" stroke-width="      ?z" fill="z" opacity="z" />)is_emptyis_validr'   r,   )r   scale_factor
fill_coloropacitys       r"   svgz	Point.svg{   sz     ==&*mmJ?G466(&cL6H5I J..1L.@-A* Vy&	
r)   c                 .    | j                   j                  S )zSeparate arrays of X and Y coordinate values.

        Examples
        --------
        >>> from shapely import Point
        >>> x, y = Point(0, 0).xy
        >>> list(x)
        [0.0]
        >>> list(y)
        [0.0]

        )r   xyr&   s    r"   rD   zPoint.xy   s     {{~~r)   )r<   NN)__name__
__module____qualname____doc__	__slots__r#   propertyr'   r,   r1   r5   r:   rB   rD   r7   r)   r"   r   r      s    %N ID * * * *   * * V V

4  r)   )rH   numpyr   r   shapely.errorsr   shapely.geometry.baser   __all__r   libregistryr7   r)   r"   <module>rQ      s@    #   ) .)WL Wt    Q r)   