
    h                       S SK Jr  S SKJrJrJr  S SKJr  S SKJ	r	J
r
JrJrJrJrJr  S SKJrJr  S SKJrJrJrJrJr  S SKJr  SS	KJrJr  SS
KJrJ r J!r!  SSK"J#r#  \(       a  S SK$J%r%  S SK&J'r'  S/r(\" S\	" S\RR                  \S9\	" SS SS9\	" S\RR                  \S\RT                  \S9\	" SS SS9S.5      r+\" \+5      r,\" \!\,5      r-\# " S S\5      5       r.g)    )annotations)TYPE_CHECKINGIteratorOptional)	validator)DXFAttrDXFAttributesDefSubclassXTypeRETURN_DEFAULTgroup_code_mappingmerge_group_code_mappings)DXF12SUBCLASS_MARKER)Vec3Matrix44NULLVECZ_AXISOCS)-transform_thickness_and_extrusion_without_ocs   )
base_classSubclassProcessor)
DXFGraphicacdb_entityacdb_entity_group_codes)register_entity)DXFNamespace)AbstractTagWriterPoint	AcDbPoint
   )xtypedefault'   T)r$   optional   )r#   r$   r&   r   fixer2   location	thickness	extrusionanglec                     ^  \ rS rSrSrSr\" \\\	5      r
 S   SU 4S jjjrSU 4S jjrSS jrSS jr S     SS jjrSS	 jrS
rU =r$ )r    K   zDXF POINT entityPOINTc                h   > [         [        U ]  U5      nU(       a  UR                  U[        5        U$ )z!Loading interface. (internal API))superr   load_dxf_attribssimple_dxfattribs_loadermerged_point_group_codes)self	processordxf	__class__s      F/var/www/html/env/lib/python3.13/site-packages/ezdxf/entities/point.pyr4   Point.load_dxf_attribsR   s/    
 J6yA..s4LM
    c                   > [         TU ]  U5        UR                  [        :  a$  UR	                  [
        [        R                  5        U R                  R                  U/ SQ5        g)z7Export entity specific data as DXF tags. (internal API)r*   N)
r3   export_entity
dxfversionr   
write_tag2r   
acdb_pointnamer9   export_dxf_attribs)r7   	tagwriterr:   s     r;   r?   Point.export_entity\   sJ    i(%'  *//B##F	
r=   c                    UR                  U R                  R                  5      U R                  l        [        X5        U R	                  U5        U $ )z@Transform the POINT entity by transformation matrix `m` inplace.)	transformr9   r+   r   post_transform)r7   ms     r;   rH   Point.transforme   s<    KK(9(9:5d>Ar=   c                    [        XU5      U R                  R                  -   U R                  l        U R                  (       a&  U R	                  [
        R                  " XU5      5        U $ )zUOptimized POINT translation about `dx` in x-axis, `dy` in y-axis and
`dz` in z-axis.
)r   r9   r+   is_post_transform_requiredrI   r   	translate)r7   dxdydzs       r;   rN   Point.translatem   sO     !,txx/@/@@** 2 222 >?r=   c              #  t   #    SSK Jn  UR                  XU5       H  nUR                  U 5        Uv   M     g7f)au  Yields the graphical representation of POINT as virtual DXF
primitives (LINE and CIRCLE).
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:
    pdsize: point size in drawing units
    pdmode: point styling mode

r   )pointN)ezdxf.renderrT   virtual_entitiesset_source_of_copy)r7   pdsizepdmoderT   es        r;   rV   Point.virtual_entitiesw   s4     $ 	'''f=A  &G >s   68c                    [        5       $ N)r   )r7   s    r;   ocs	Point.ocs   s     ur=    r]   )r8   zOptional[SubclassProcessor]returnr   )rE   r   ra   None)rJ   r   ra   r    )rO   floatrP   rc   rQ   rc   ra   r    )r   r   )rX   rc   rY   intra   zIterator[DXFGraphic])ra   r   )__name__
__module____qualname____firstlineno____doc__DXFTYPEr	   r   r   rB   
DXFATTRIBSr4   r?   rH   rN   rV   r^   __static_attributes____classcell__)r:   s   @r;   r    r    K   ss    Gz;
CJ 8<4	 
 01),	. r=   N)/
__future__r   typingr   r   r   ezdxf.lldxfr   ezdxf.lldxf.attributesr   r	   r
   r   r   r   r   ezdxf.lldxf.constr   r   
ezdxf.mathr   r   r   r   r   ezdxf.math.transformtoolsr   	dxfentityr   r   dxfgfxr   r   r   factoryr   ezdxf.entitiesr   ezdxf.lldxf.tagwriterr   __all__point3dis_not_null_vectorrB   acdb_point_group_codesr6   r    r`   r=   r;   <module>r~      s    # 4 4 !   5 ; ; 5 D D $+7)*  BemmWERT:--22 
 Q6
( ,J7 43 
 EJ E Er=   