
    'j<                    Z    d dl mZ d dlmZ d dlZd dlmZmZmZ d dl	m
Z
mZmZ 	 dddZdS )    )annotations)castN)factoryPoint
DXFGraphic)Vec3UCSNULLVEC   pointr   pdsizefloatpdmodeintreturnlist[DXFGraphic]c           	        dfd}dfd}| j         j        }|                                 }t          ||j        |j                                      t          j        | j         j	                             g | 
                                }|dz  }t          |d	z            }	t          |d
z            }
|dz  }t          |          |dk    r |t                     n|dk    r3 |t          |d                      |t          d|                     n_|dk    r4 |t          ||                      |t          ||                      n%|dk    r |t          t          d|                     |
r| }|}| }|} |t          ||          t          ||                      |t          ||          t          ||                      |t          ||          t          ||                      |t          ||          t          ||                     |	rt          |          | j                             d          r#|j        d<   |                    |          d<   n|d<   |d<                       t%          t&          t)          j        d                               S )a  Yields point graphic as DXF primitives LINE and CIRCLE entities.
    The dimensionless point is rendered as zero-length line!

    Check for this condition::

        e.dxftype() == 'LINE' and e.dxf.start.isclose(e.dxf.end)

    if the rendering engine can't handle zero-length lines.


    Args:
        point: DXF POINT entity
        pdsize: point size in drawing units
        pdmode: point styling mode, see :class:`~ezdxf.entities.Point` class

    offsetr   c           	                              |            d<                        |           d<                       t          t          t	          j        d                               d S NstartendLINEto_wcsappendr   r   r   new)r   
dxfattribsentitiesucss    L/DATA/AppData/hermes/venv/lib/python3.11/site-packages/ezdxf/render/point.pyadd_line_symmetricalz.virtual_entities.<locals>.add_line_symmetrical   s_    !jj&11
7JJv..
5ZVZ)H)HIIJJJJJ    sec           	                              |           d<                        |          d<                       t          t          t	          j        d                               d S r   r   )r$   r%   r   r   r    s     r!   add_linez"virtual_entities.<locals>.add_line#   sY    !jjmm
7JJqMM
5ZVZ)H)HIIJJJJJr#   )originuxuzg      ?    @      r            	extrusioncenterradiusCIRCLE)r   r   )r$   r   r%   r   )dxflocationocsr	   r)   r*   rotate_local_zmathradiansanglegraphic_propertiesbooldictr
   r   hasattrfrom_wcsr   r   r   r   r   )r   r   r   r"   r'   r2   r7   gfxr3   
has_circle
has_squarestylex1x2y1y2r   r   r    s                   @@@r!   virtual_entitiesrI   
   s   (K K K K K K K K
K K K K K K K K
 YF ))++C
V36
2
2
2C 

T\59?*:;;
<
<C!#H

"
"
$
$Cc\Ffrk""Jfrk""JQJEcJzzW%%%%	!T&!__---T!V__----	!T&&11222T&6'223333	!$q&//*** -WWb"tB||,,,b"tB||,,,b"tB||,,,b"tB||,,, M#YY
9[)) 	*&)fJ{##&<<#7#7Jx  #)Jx %
8ZXz)J)JKKLLLOr#   )r   r   )r   r   r   r   r   r   r   r   )
__future__r   typingr   r9   ezdxf.entitiesr   r   r   
ezdxf.mathr   r	   r
   rI    r#   r!   <module>rO      s    # " " " " "        5 5 5 5 5 5 5 5 5 5 ) ) ) ) ) ) ) ) ) ) 45N N N N N N Nr#   