
    h<                    j    S SK Jr  S SKJr  S SKrS SKJrJrJr  S SK	J
r
JrJr   S       SS jjrg)	    )annotations)castN)factoryPoint
DXFGraphic)Vec3UCSNULLVECc           	       ^^^ SUUU4S jjnSUUU4S jjnU R                   R                  nU R                  5       n[        XVR                  UR
                  S9mTR                  [        R                  " U R                   R                  * 5      5      m/ mU R                  5       nUS-  n[        US-  5      n	[        US-  5      n
US-  n[        U5      mUS:X  a  U" [        5        OrUS	:X  a%  U" [        US5      5        U" [        SU5      5        OGUS
:X  a$  U" [        X5      5        U" [        X* 5      5        OUS:X  a  U" [        [        SU5      5        U
(       av  U* nUnU* nUnU" [        X5      [        X5      5        U" [        X5      [        X5      5        U" [        X5      [        X5      5        U" [        X5      [        X5      5        U	(       a  [        U5      mU R                   R                  S5      (       a$  UR
                  TS'   UR!                  U5      TS'   OUTS'   UTS'   TR#                  [%        [&        [(        R*                  " ST5      5      5        T$ )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

c           	        > TR                  U * 5      TS'   TR                  U 5      TS'   TR                  [        [        [        R
                  " ST5      5      5        g NstartendLINEto_wcsappendr   r   r   new)offset
dxfattribsentitiesucss    D/var/www/html/env/lib/python3.13/site-packages/ezdxf/render/point.pyadd_line_symmetrical.virtual_entities.<locals>.add_line_symmetrical   sI    !jj&1
7JJv.
5ZVZ)HIJ    c           	        > TR                  U 5      TS'   TR                  U5      TS'   TR                  [        [        [        R
                  " ST5      5      5        g r   r   )ser   r   r   s     r   add_line"virtual_entities.<locals>.add_line#   sE    !jjm
7JJqM
5ZVZ)HI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   )pointpdsizepdmoder   r    r,   r1   gfxr-   
has_circle
has_squarestylex1x2y1y2r   r   r   s                   @@@r   virtual_entitiesrF   
   s   (K K
K K
 YYF ))+C
V366
2C 

T\\599??*:;
<C!#H

"
"
$Cc\Ffrk"Jfrk"JQJEcJzW%	!T&!_-T!V_-	!T&12T&'23	!$q&/*WWbtB|,btB|,btB|,btB|,#Y
99[))&)ffJ{##&<<#7Jx #)Jx %
8ZXz)JKLOr   )   r   )r;   r   r<   floatr=   intreturnzlist[DXFGraphic])
__future__r   typingr   r3   ezdxf.entitiesr   r   r   
ezdxf.mathr   r	   r
   rF    r   r   <module>rP      sK    #   5 5 ) ) 45NNN-0NNr   