
    h                       S SK Jr  S SK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\RP                  \S9\" S\RP                  \S9\" SS SS9\" S\RP                  \S\RR                  \S9S.5      r*\" \*5      r+\" \ \+5      r,\" " S S\5      5       r-g)    )annotations)TYPE_CHECKING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LineAcDbLine
   )xtypedefault   '   T)r#   optional   )r"   r#   r&   r   fixerstartend	thickness	extrusionc                     ^  \ 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 jrS	rU =r$ )r   5   z:The LINE entity represents a 3D line from `start` to `end`LINEc                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_line_group_codes)self	processordxf	__class__s      E/var/www/html/env/lib/python3.13/site-packages/ezdxf/entities/line.pyr3   Line.load_dxf_attribs<   s/    
 J6yA..s4KL
    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)
r2   export_entity
dxfversionr   
write_tag2r   	acdb_linenamer8   export_dxf_attribs)r6   	tagwriterr9   s     r:   r>   Line.export_entityF   sL    i(%'  )..A##	
r<   c                    [        5       $ N)r   )r6   s    r:   ocsLine.ocsU   s     ur<   c                    UR                  U R                  R                  U R                  R                  /5      u  p#X R                  l        X0R                  l        [	        X5        U R                  U5        U $ )z?Transform the LINE entity by transformation matrix `m` inplace.)transform_verticesr8   r*   r+   r   post_transform)r6   mr*   r+   s       r:   	transformLine.transformZ   sV    ))488>>488<<*HI
5d>Ar<   c                (   [        XU5      nX@R                  R                  -   U R                  l        X@R                  R                  -   U R                  l        U R                  (       a&  U R                  [        R                  " XU5      5        U $ )zUOptimized LINE translation about `dx` in x-axis, `dy` in y-axis and
`dz` in z-axis.

)r   r8   r*   r+   is_post_transform_requiredrL   r   	translate)r6   dxdydzvecs        r:   rR   Line.translatec   se    
 22xx~~-XX\\)** 2 222 >?r<    rG   )r7   zOptional[SubclassProcessor]returnr   )rD   r   rY   None)rY   r   )rM   r   rY   r   )rS   floatrT   r[   rU   r[   rY   r   )__name__
__module____qualname____firstlineno____doc__DXFTYPEr   r   r   rA   
DXFATTRIBSr3   r>   rH   rN   rR   __static_attributes____classcell__)r9   s   @r:   r   r   5   sQ    DGz;	BJ 8<4	 

 r<   N).
__future__r   typingr   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_vectorrA   acdb_line_group_codesr5   r   rX   r<   r:   <module>ru      s    # * !   5 ; ; 5 D D $+7(5=='Br@RT:--22 
		" +95 32 
 8: 8 8r<   