
    Og                       d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZmZ d dlmZmZ d dlmZmZmZmZmZ d dlmZ dd	lmZmZ dd
lmZm Z m!Z! ddl"m#Z# erd dl$m%Z% d dl&m'Z' dgZ( ed e	dejR                  e       e	dd d       e	dejR                  edejT                  e       e	dd d      d      Z+ ee+      Z, ee!e,      Z-e# G d de             Z.y)    )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                       e Zd ZdZdZ eeee      Z		 d		 	 	 d
 fdZ
d fdZddZddZ	 d	 	 	 	 	 ddZddZ xZS )r    zDXF POINT entityPOINTc                ^    t         t        |   |      }|r|j                  |t               |S )z!Loading interface. (internal API))superr   load_dxf_attribssimple_dxfattribs_loadermerged_point_group_codes)self	processordxf	__class__s      Y/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/ezdxf/entities/point.pyr3   zPoint.load_dxf_attribsR   s/    
 J6yA..s4LM
    c                    t         |   |       |j                  t        kD  r$|j	                  t
        t        j                         | j                  j                  |g d       y)z7Export entity specific data as DXF tags. (internal API)r*   N)
r2   export_entity
dxfversionr   
write_tag2r   
acdb_pointnamer8   export_dxf_attribs)r6   	tagwriterr9   s     r:   r=   zPoint.export_entity\   sJ    i(%'  *//B##F	
r;   c                    |j                  | j                  j                        | j                  _        t        | |       | j	                  |       | S )z@Transform the POINT entity by transformation matrix `m` inplace.)	transformr8   r+   r   post_transform)r6   ms     r:   rE   zPoint.transforme   s>    KK(9(9:5dA>Ar;   c                    t        |||      | j                  j                  z   | j                  _        | j                  r&| j	                  t        j                  |||             | S )zeOptimized POINT translation about `dx` in x-axis, `dy` in y-axis and
        `dz` in z-axis.
        )r   r8   r+   is_post_transform_requiredrF   r   	translate)r6   dxdydzs       r:   rJ   zPoint.translatem   sS     !R,txx/@/@@** 2 22r2 >?r;   c              #  r   K   ddl m} |j                  | ||      D ]  }|j                  |        |  yw)a  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.renderrO   virtual_entitiesset_source_of_copy)r6   pdsizepdmoderO   es        r:   rQ   zPoint.virtual_entitiesw   s<     $ 	'''ff= 	A  &G	s   57c                    t               S N)r   )r6   s    r:   ocsz	Point.ocs   s     ur;   rW   )r7   zOptional[SubclassProcessor]returnr   )rC   r   rY   None)rG   r   rY   r    )rK   floatrL   r[   rM   r[   rY   r    )r   r   )rS   r[   rT   intrY   zIterator[DXFGraphic])rY   r   )__name__
__module____qualname____doc__DXFTYPEr	   r   r   r@   
DXFATTRIBSr3   r=   rE   rJ   rQ   rX   __classcell__)r9   s   @r:   r    r    K   si    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_vectorr@   acdb_point_group_codesr5   r     r;   r:   <module>ru      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;   