Ë
    £èh+m  ã                  ó  — d dl mZ d dlmZmZ d dlmZ d dlZd dlm	Z	m
Z
 d dlmZ d dlmZmZmZmZmZ d dlmZ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# d dl$m%Z%m&Z&m'Z' ddl(m)Z)m*Z* ddl+m,Z, ddl-m.Z.m/Z/ ddl0m1Z1m2Z2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z: ddlm;Z; erd dl<m=Z= d dl>m?Z? d dl@mAZA g d¢ZB eddej†                  ejˆ                  ¬«       edd ¬«       edd d ¬!«       ed"d d  ejŠ                  d d#«      e¬$«       ed%d ejŒ                  d ejŽ                  e¬&«       ed'ej�                  ej’                  d  ej”                  h d(£«      e¬&«      d)œZK eLeK«      ZM ed*dejœ                  ejž                  ¬«      eMd+<    ed,eM«      ZP eeP«      ZQ ed-eK«      ZR eeR«      ZS ed.d/ ed%d¬«      fd0 edd ¬«      fd1 edd ejŽ                  e¬«      fd2 edd ¬«      fd3 ed4d5¬«      fd6 ed7ej¨                  e¬8«      fd9 ed:d ¬«      fd; eddej†                  ejˆ                  ¬«      fg«      ZU G d<„ d=e1«      ZVdJd>„ZWdJd?„ZXe: G d@„ dAeV«      «       ZYe: G dB„ dCeV«      «       ZZh dD£Z[dKdE„Z\ G dF„ dGe*«      Z] G dH„ dI«      Z^y)Lé    )Úannotations)ÚTYPE_CHECKINGÚOptional)ÚSelfN)ÚAuditorÚ
AuditError)Ú	validator)ÚNULLVECÚVec3ÚZ_AXISÚOCSÚMatrix44)ÚDXFAttrÚDXFAttributesÚDefSubclassÚXTypeÚRETURN_DEFAULTÚgroup_code_mapping)Úconst)ÚEMBEDDED_OBJ_MARKERÚEMBEDDED_OBJ_STR)ÚMAP_MTEXT_ALIGN_TO_FLAGSÚ
TextHAlignÚ
TextVAlign)Úset_flag_state)Úload_mtext_contentÚfast_plain_mtextÚplain_mtexté   )ÚSubclassProcessorÚDXFNamespace)Ú
base_class)Úacdb_entityÚelevation_to_z_axis)ÚTextÚ	acdb_textÚacdb_text_group_codes)Úacdb_mtext_group_codesÚMTextÚexport_mtext_contentÚ
acdb_mtext)Úregister_entity)Údefault_copy)ÚAbstractTagWriter)ÚTags)Úxref)ÚAttDefÚAttribÚcopy_attrib_as_textÚ
BaseAttribé   Ú )Údefaultr	   ÚfixeréF   )r7   éI   T)r7   ÚoptionaléJ   é   )r7   r;   r	   r8   i  )r7   Ú
dxfversionr;   r	   r8   éG   >   r   r5   r=   )ÚtagÚflagsÚfield_lengthÚvalignÚlock_positionÚattribute_typeé   ÚpromptÚAcDbAttributeDefinitionÚAcDbAttributeÚAcDbXrecordÚcloningÚ
mtext_flagÚreally_lockedÚsecondary_attribs_countÚsecondary_attribs_handleiT  Ú0Úalign_pointé
   )Úxtyper7   Úcurrent_annotation_scaleé(   r@   c                  ó�  ‡ — e Zd ZeZdˆ fd„Zefdd„Zdd„Zdd„Z	e
dd„«       Zej                  dd„«       Ze
dd„«       Zej                  dd„«       Ze
dd	„«       Zej                  dd
„«       Ze
dd„«       Zej                  dd„«       Ze
dd„«       Zdd„Zddd„Zdd d„Zdd d„Zdd„Zd!ˆ fd„Zd"ˆ fd„Zd#ˆ fd„Zd$ˆ fd„Zˆ xZS )%r4   c                ó>   •— t         ‰| �  «        d | _        d | _        y ©N)ÚsuperÚ__init__Ú_xrecordÚ_embedded_mtext)ÚselfÚ	__class__s    €ú5lib/python3.12/site-packages/ezdxf/entities/attrib.pyrZ   zBaseAttrib.__init__Ù   s   ø€ Ü‰ÑÔà(,ˆŒØ8<ˆÕó    c                ó¸   — t        |t        «      sJ ‚t        j                  | j                  «      |_        t        j                  | j
                  «      |_        y)ziCopy entity data, xrecord data and embedded MTEXT are not stored
        in the entity database.
        N)Ú
isinstancer4   ÚcopyÚdeepcopyr[   r\   )r]   ÚentityÚcopy_strategys      r_   Ú	copy_datazBaseAttrib.copy_dataß   s?   € ô ˜&¤*Ô-Ð-Ð-ÜŸ-™-¨¯©Ó6ˆŒÜ!%§¡¨t×/CÑ/CÓ!DˆÕr`   c                ó†   — |j                   sy |j                   d   }|r#t        «       }|j                  |«       || _        y y )Nr   )Úembedded_objectsÚEmbeddedMTextÚload_dxf_tagsr\   )r]   Ú	processorÚembedded_objectÚmtexts       r_   Úload_embedded_mtextzBaseAttrib.load_embedded_mtextç   sC   € Ø×)Ò)ØØ#×4Ñ4°QÑ7ˆÙÜ!“OˆEØ×Ñ 	Ô*Ø#(ˆDÕ ð r`   c                ó”  — |j                  d| j                  j                  «       |j                  dd«       | j                  j                  d«      r&|j	                  d| j                  j
                  «       | j                  r|j                  | j                  «       | j                  r| j                  j                  |«       y y )Nr?   éH   r   rQ   é   )
Ú
write_tag2ÚdxfrE   ÚhasattrÚwrite_vertexrQ   r[   Ú
write_tagsr\   Úexport_dxf_tags©r]   Ú	tagwriters     r_   Úexport_dxf_r2018_featuresz$BaseAttrib.export_dxf_r2018_featuresð   s“   € Ø×Ñ˜R §¡×!8Ñ!8Ô9Ø×Ñ˜R Ô#Ø�8‰8×Ñ˜MÔ*à×"Ñ" 2 t§x¡x×';Ñ';Ô<à�=Š=Ø× Ñ  §¡Ô/Ø×ÒØ× Ñ ×0Ñ0°Õ;ð  r`   c                ób   — t        | j                  j                  t        j                  z  «      S )z)This is a constant attribute if ``True``.)Úboolrt   rA   r   ÚATTRIB_CONST©r]   s    r_   Úis_constzBaseAttrib.is_constü   s"   € ô �D—H‘H—N‘N¤U×%7Ñ%7Ñ7Ó8Ð8r`   c                ó€   — t        | j                  j                  t        j                  |«      | j                  _        y rX   )r   rt   rA   r   r~   ©r]   Ústates     r_   r€   zBaseAttrib.is_const  s$   € ä'¨¯©¯©¼×8JÑ8JÈEÓRˆ�‰�r`   c                ób   — t        | j                  j                  t        j                  z  «      S )z#Attribute is invisible if ``True``.)r}   rt   rA   r   ÚATTRIB_INVISIBLEr   s    r_   Úis_invisiblezBaseAttrib.is_invisible  ó"   € ô �D—H‘H—N‘N¤U×%;Ñ%;Ñ;Ó<Ð<r`   c                ó€   — t        | j                  j                  t        j                  |«      | j                  _        y rX   )r   rt   rA   r   r…   r‚   s     r_   r†   zBaseAttrib.is_invisible
  ó%   € ä'¨¯©¯©¼×8NÑ8NÐPUÓVˆ�‰�r`   c                ób   — t        | j                  j                  t        j                  z  «      S )zkVerification is required on input of this attribute. (interactive CAD
        application feature)
        )r}   rt   rA   r   ÚATTRIB_VERIFYr   s    r_   Ú	is_verifyzBaseAttrib.is_verify  s"   € ô
 �D—H‘H—N‘N¤U×%8Ñ%8Ñ8Ó9Ð9r`   c                ó€   — t        | j                  j                  t        j                  |«      | j                  _        y rX   )r   rt   rA   r   r‹   r‚   s     r_   rŒ   zBaseAttrib.is_verify  s$   € ä'¨¯©¯©¼×8KÑ8KÈUÓSˆ�‰�r`   c                ób   — t        | j                  j                  t        j                  z  «      S )zANo prompt during insertion. (interactive CAD application feature))r}   rt   rA   r   ÚATTRIB_IS_PRESETr   s    r_   Ú	is_presetzBaseAttrib.is_preset  r‡   r`   c                ó€   — t        | j                  j                  t        j                  |«      | j                  _        y rX   )r   rt   rA   r   r�   r‚   s     r_   r�   zBaseAttrib.is_preset  r‰   r`   c                ó,   — t        | j                  «      S )zdReturns ``True`` if the entity has an embedded MTEXT entity for multi-line
        support.
        )r}   r\   r   s    r_   Úhas_embedded_mtext_entityz$BaseAttrib.has_embedded_mtext_entity"  s   € ô
 �D×(Ñ(Ó)Ð)r`   c                ó¦   — | j                   st        d«      ‚| j                   j                  «       }|j                  | j	                  «       «       |S )z Returns the embedded MTEXT entity as a regular but virtual
        :class:`MText` entity with the same graphical properties as the
        host entity.
        zno embedded MTEXT entity exist)r\   Ú	TypeErrorÚvirtual_mtext_entityÚupdate_dxf_attribsÚgraphic_properties©r]   rn   s     r_   r–   zBaseAttrib.virtual_mtext_entity)  sI   € ð
 ×#Ò#ÜÐ<Ó=Ð=Ø×$Ñ$×9Ñ9Ó;ˆØ× Ñ  ×!8Ñ!8Ó!:Ô;Øˆr`   c                ó€   — | j                   r2| j                   j                  }|rt        |d¬«      S t        |d¬«      S y)a«  Returns the embedded MTEXT content without formatting codes.
        Returns an empty string if no embedded MTEXT entity exist.

        The `fast` mode is accurate if the DXF content was created by
        reliable (and newer) CAD applications like AutoCAD or BricsCAD.
        The `accurate` mode is for some rare cases where the content was
        created by older CAD applications or unreliable DXF libraries and CAD
        applications.

        The `accurate` mode is **much** slower than the `fast` mode.

        Args:
            fast: uses the `fast` mode to extract the plain MTEXT content if
                ``True`` or the `accurate` mode if set to ``False``

        F)Úsplitr6   )r\   Útextr   r   )r]   Úfastrœ   s      r_   r   zBaseAttrib.plain_mtext4  s>   € ð" ×ÒØ×'Ñ'×,Ñ,ˆDÙÜ'¨°EÔ:Ð:ä" 4¨uÔ5Ð5Ør`   c                óž  — | j                   €t        «       | _         | j                   j                  |«       t        | |«       t	        | |«       t        | t        «      rt        j                  }nt        j                  }|| j                  _        |j                  j                  | j                  _        |j                  j                  | j                  _        | j                  j                  d«       | j                  j                  d«       | j                  j                  d«       |r | j!                  |j#                  «       «       yy)aŒ  Set multi-line properties from a :class:`MText` entity.

        The multi-line ATTRIB/ATTDEF entity requires DXF R2018, otherwise an
        ordinary single line ATTRIB/ATTDEF entity will be exported.

        Args:
            mtext: source :class:`MText` entity
            graphic_properties: copy graphic properties (color, layer, ...) from
                source MTEXT if ``True``

        NÚwidthÚobliqueÚtext_generation_flag)r\   rj   Ú	set_mtextÚ_update_content_from_mtextÚ_update_location_from_mtextrb   r2   r   ÚATTRIB_TYPE_MULTI_LINEÚATTDEF_TYPE_MULTI_LINErt   rE   ÚstyleÚchar_heightÚheightÚdiscardr—   r˜   )r]   rn   r˜   rE   s       r_   r¢   zBaseAttrib.set_mtextM  sð   € ð ×ÑÐ'Ü#0£?ˆDÔ Ø×Ñ×&Ñ& uÔ-Ü" 4¨Ô/Ü# D¨%Ô0ô �dœFÔ#Ü"×9Ñ9‰Nä"×9Ñ9ˆNØ"0ˆ�‰Ôð Ÿ™Ÿ™ˆ�‰ŒØŸ)™)×/Ñ/ˆ�‰ŒØ�‰×Ñ˜Ô!Ø�‰×Ñ˜Ô#Ø�‰×ÑÐ/Ô0ÙØ×#Ñ# E×$<Ñ$<Ó$>Õ?ð r`   c                óH   — | j                  ||«       |j                  «        y)a¼  Set multi-line properties from a :class:`MText` entity and destroy the
        source entity afterward.

        The multi-line ATTRIB/ATTDEF entity requires DXF R2018, otherwise an
        ordinary single line ATTRIB/ATTDEF entity will be exported.

        Args:
            mtext: source :class:`MText` entity
            graphic_properties: copy graphic properties (color, layer, ...) from
                source MTEXT if ``True``

        N)r¢   Údestroy)r]   rn   r˜   s      r_   Úembed_mtextzBaseAttrib.embed_mtexto  s   € ð 	�‰�uÐ0Ô1Ø�‰�r`   c                óP   — d| _         t        j                  | j                  _        y)zœDiscard multi-line feature.

        The embedded MTEXT will be removed and the ATTRIB/ATTDEF will be converted to a
        single-line attribute.
        N)r\   r   ÚATTRIB_TYPE_SINGLE_LINErt   rE   r   s    r_   Údiscard_mtextzBaseAttrib.discard_mtext  s   € ð  $ˆÔÜ"'×"?Ñ"?ˆ�‰Õr`   c                ót   •— t         ‰| �  |«       | j                  r| j                  j                  |«       yy)ú5Register required resources to the resource registry.N)rY   Úregister_resourcesr\   )r]   Úregistryr^   s     €r_   r³   zBaseAttrib.register_resourcesˆ  s2   ø€ ä‰Ñ" 8Ô,Ø×ÒØ× Ñ ×3Ñ3°HÕ=ð  r`   c                óÊ   •— t        |t        «      sJ ‚t        ‰| �  ||«       | j                  r4|j                  r'| j                  j                  |j                  |«       yyy)ú3Translate resources from self to the copied entity.N)rb   r4   rY   Úmap_resourcesr\   )r]   ÚcloneÚmappingr^   s      €r_   r·   zBaseAttrib.map_resourcesŽ  sW   ø€ ä˜%¤Ô,Ð,Ð,Ü‰Ñ˜e WÔ-Ø×Ò E×$9Ò$9Ø× Ñ ×.Ñ.¨u×/DÑ/DÀgÕNð %:Ðr`   c                óà   •— | j                   €t        ‰| �	  |«       | S | j                   j                  «       }|j                  |«       | j	                  |d¬«       | j                  |«       | S )NF)r˜   )r\   rY   Ú	transformr–   r¢   Úpost_transform)r]   Úmrn   r^   s      €r_   r»   zBaseAttrib.transform–  sh   ø€ Ø×ÑÐ'Ü‰GÑ˜aÔ ð ˆð	 ×(Ñ(×=Ñ=Ó?ˆEØ�O‰O˜AÔØ�N‰N˜5°UˆNÔ;Ø×Ñ Ô"Øˆr`   c                óÚ   •— t         ‰| �  |«       | j                  j                  d«      s@|j	                  t
        j                  dt        | «      › d�¬«       |j                  | «       yy)zValidity check.r@   z*Missing mandatory "tag" attribute, entity z	 deleted.)ÚcodeÚmessageN)	rY   Úauditrt   ru   Úfixed_errorr   ÚTAG_ATTRIBUTE_MISSINGÚstrÚtrash)r]   Úauditorr^   s     €r_   rÁ   zBaseAttrib.audit   s`   ø€ ä‰‰�gÔØ�x‰x×Ñ Ô&Ø×ÑÜ×5Ñ5ØDÄSÈÃYÀKÈyÐYð  ô ð �M‰M˜$Õð 'r`   ©ÚreturnÚNone)re   r   rÈ   rÉ   ©rl   r    rÈ   rÉ   ©rz   r.   rÈ   rÉ   )rÈ   r}   )rƒ   r}   rÈ   rÉ   ©rÈ   r)   )T©rÈ   rÄ   ©rn   r)   rÈ   rÉ   ©r´   zxref.RegistryrÈ   rÉ   )r¸   r   r¹   úxref.ResourceMapperrÈ   rÉ   )r½   r   rÈ   r   )rÆ   r   rÈ   rÉ   )Ú__name__Ú
__module__Ú__qualname__Úacdb_attdef_xrecordÚXRECORD_DEFrZ   r-   rg   ro   r{   Úpropertyr€   Úsetterr†   rŒ   r�   r“   r–   r   r¢   r­   r°   r³   r·   r»   rÁ   Ú__classcell__©r^   s   @r_   r4   r4   Ö   s+  ø„ Ø%€Kõ=ð 5Aô Eó)ó
<ð ò9ó ð9ð ‡_�_òSó ðSð ò=ó ð=ð ×ÑòWó ðWð ò:ó ð:ð ×ÑòTó ðTð ò=ó ð=ð ×ÑòWó ðWð ò*ó ð*ó	ôô2 @ôDó @õ>õOõ÷ ñ  r`   r4   c                óX   — |j                  dd¬«      }|r|d   | j                  _        y y )NT)r›   r�   r   )Ú
plain_textrt   rœ   )rœ   rn   Úcontents      r_   r£   r£   «  s0   € Ø×Ñ T°ÐÓ5€GÙð   ™
ˆ�‰�ð	 r`   c                ón  — | j                   }t        |j                   j                  «      }t        |j                   j                  «      }|j	                  «       }|j                  t        «      r|j                  |_        nQt        |«      }|j                  |«      }|j                  «       |_        |j                  |«      j                  |_        ||_        ||_        t        j                  |j                   j                  t         j"                  t$        j&                  f«      \  |_        |_        y rX   )rt   r   ÚinsertÚ	extrusionÚget_text_directionÚiscloser   Ú	angle_degÚrotationr   Úfrom_wcsÚ	normalizerQ   r   ÚgetÚattachment_pointr   ÚLEFTr   ÚTOPÚhalignrC   )rœ   rn   rt   rÞ   rß   Útext_directionÚocss          r_   r¤   r¤   ´  sÜ   € à
�(‰(€CÜ�%—)‘)×"Ñ"Ó#€FÜ�U—Y‘Y×(Ñ(Ó)€IØ×-Ñ-Ó/€NØ×ÑœÔ Ø%×/Ñ/ˆ�ä�)‹nˆØ—‘˜fÓ%ˆØ!×+Ñ+Ó-ˆŒØ—|‘| NÓ3×=Ñ=ˆŒà€C„JØ€C„OÜ5×9Ñ9Ø�	‰	×"Ñ"¤Z§_¡_´j·n±nÐ$EóÑ€C„J�•
r`   c                  óX   ‡ — e Zd ZdZdZ eeeee	«      Z
	 d	 	 	 dˆ fd„Zdd„Zdd„Zˆ xZS )	r1   zDXF ATTDEF entityÚATTDEFc                ó<  •— t         t        | �  |«      }|r…|j                  |t        dd¬«       |j                  |t
        dd¬«       |j                  | j                  j                  «      | _	        | j                  |«       |j                  rt        |d«       |S ©Nr5   T)ÚrecoverrF   )rÞ   rQ   )rY   r%   Úload_dxf_attribsÚfast_load_dxfattribsr'   Úacdb_attdef_group_codesÚfind_subclassrÕ   Únamer[   ro   Úr12r$   ©r]   rl   rt   r^   s      €r_   rò   zAttDef.load_dxf_attribsÑ  s”   ø€ ô ”D˜$Ñ0°Ó;ˆáØ×*Ñ*¨3Ô0EÀqÐRVÐ*ÔWØ×*Ñ*ØÔ,¨a¸ð +ô ð &×3Ñ3°D×4DÑ4D×4IÑ4IÓJˆDŒMØ×$Ñ$ YÔ/Ø�}Š}ä# CÐ)BÔCàˆ
r`   c                óÈ   — | j                  |«       | j                  |«       | j                  |«       |j                  t        j
                  k\  r| j                  |«       y y rX   )Úexport_acdb_entityÚexport_acdb_textÚexport_acdb_attdefr>   r   ÚDXF2018r{   ry   s     r_   Úexport_entityzAttDef.export_entityã  sQ   € à×Ñ 	Ô*Ø×Ñ˜iÔ(Ø×Ñ 	Ô*Ø×Ñ¤5§=¡=Ò0Ø×*Ñ*¨9Õ5ð 1r`   c                óÖ   — |j                   t        j                  kD  r.|j                  t        j                  t
        j                  «       | j                  j                  |g d¢«       y )N)rG   r@   rA   rB   rC   rD   )	r>   r   ÚDXF12rs   ÚSUBCLASS_MARKERÚacdb_attdefrö   rt   Úexport_dxf_attribsry   s     r_   rü   zAttDef.export_acdb_attdefë  sJ   € Ø×Ñ¤%§+¡+Ò-Ø× Ñ ¤×!6Ñ!6¼×8HÑ8HÔIØ�‰×#Ñ#Øòõ	
r`   rX   ©rl   zOptional[SubclassProcessor]rÈ   r!   rË   )rÑ   rÒ   rÓ   Ú__doc__ÚDXFTYPEr   r"   r#   r&   r  Ú
DXFATTRIBSrò   rþ   rü   rØ   rÙ   s   @r_   r1   r1   É  s?   ø„ áà€Gá˜z¨;¸	À;ÓO€Jð 8<ðØ4ðà	õó$6÷
r`   r1   c                  ó`   ‡ — e Zd ZdZdZ eeeee	«      Z
	 d	 	 	 dˆ fd„Zd	d„Zd	d„Zd	d„Zˆ xZS )
r2   zDXF ATTRIB entityÚATTRIBc                ó<  •— t         t        | �  |«      }|r…|j                  |t        dd¬«       |j                  |t
        dd¬«       |j                  | j                  j                  «      | _	        | j                  |«       |j                  rt        |d«       |S rð   )rY   r%   rò   ró   r'   Úacdb_attrib_group_codesrõ   rÕ   rö   r[   ro   r÷   r$   rø   s      €r_   rò   zAttrib.load_dxf_attribs  s”   ø€ ô ”D˜$Ñ0°Ó;ˆáØ×*Ñ*¨3Ô0EÀqÐRVÐ*ÔWØ×*Ñ*ØÔ,¨a¸ð +ô ð &×3Ñ3°D×4DÑ4D×4IÑ4IÓJˆDŒMØ×$Ñ$ YÔ/Ø�}Š}ä# CÐ)BÔCØˆ
r`   c                óÈ   — | j                  |«       | j                  |«       | j                  |«       |j                  t        j
                  k\  r| j                  |«       y y rX   )rú   Úexport_acdb_attrib_textÚexport_acdb_attribr>   r   rý   r{   ry   s     r_   rþ   zAttrib.export_entity  sQ   € à×Ñ 	Ô*Ø×$Ñ$ YÔ/Ø×Ñ 	Ô*Ø×Ñ¤5§=¡=Ò0Ø×*Ñ*¨9Õ5ð 1r`   c                óÖ   — |j                   t        j                  kD  r.|j                  t        j                  t
        j                  «       | j                  j                  |g d¢«       y )N)rÞ   r©   rœ   Ú	thicknessrã   r    r§   rŸ   rê   rQ   r¡   rß   )	r>   r   r   rs   r  r&   rö   rt   r  ry   s     r_   r  zAttrib.export_acdb_attrib_text  sJ   € ð ×Ñ¤%§+¡+Ò-Ø× Ñ ¤×!6Ñ!6¼	¿¹ÔGØ�‰×#Ñ#Øòõ	
r`   c                óÖ   — |j                   t        j                  kD  r.|j                  t        j                  t
        j                  «       | j                  j                  |g d¢«       y )N)r@   rA   rB   rC   rD   )	r>   r   r   rs   r  Úacdb_attribrö   rt   r  ry   s     r_   r  zAttrib.export_acdb_attrib4  sJ   € Ø×Ñ¤%§+¡+Ò-Ø× Ñ ¤×!6Ñ!6¼×8HÑ8HÔIØ�‰×#Ñ#Øòõ
	
r`   rX   r  rË   )rÑ   rÒ   rÓ   r  r  r   r"   r#   r&   r  r  rò   rþ   r  r  rØ   rÙ   s   @r_   r2   r2   ü  sD   ø„ áà€Gá˜z¨;¸	À;ÓO€Jð 8<ðØ4ðà	õó"6ó
÷.
r`   r2   >   r@   rA   ÚownerÚhandlerG   ÚversionrB   rD   c                ó¨   — | j                   r| j                  «       S | j                  t        ¬«      }t	        j
                  || j                  ¬«      S )z`Returns the content of the ATTRIB/ATTDEF entity as a new virtual TEXT or
    MTEXT entity.

    )Údrop)Ú
dxfattribsÚdoc)r“   r–   r  ÚIGNORE_FROM_ATTRIBr%   Únewr  )Úattribr  s     r_   r3   r3   P  sE   € ð
 ×'Ò'Ø×*Ñ*Ó,Ð,Ø×"Ñ"Ô(:Ð"Ó;€JÜ�8‰8˜z¨v¯z©zÔ:Ð:r`   c                  ó@   — e Zd Z ee«      Zedd„«       Zedd„«       Zy)ÚEmbeddedMTextNSc                ó   — | j                   S rX   )Ú_DXFATTRIBSr   s    r_   r  zEmbeddedMTextNS.dxfattribs^  s   € à×ÑÐr`   c                 ó   — y)NzEmbedded MText© r   s    r_   ÚdxftypezEmbeddedMTextNS.dxftypeb  s   € àr`   N)rÈ   r   rÍ   )	rÑ   rÒ   rÓ   r   r+   r   rÖ   r  r#  r"  r`   r_   r  r  [  s2   „ Ù 
Ó+€Kàò ó ð ð ò ó ñ r`   r  c                  óZ   — e Zd ZdZdd„Zdd„ZeZdd„Zdd„Zdd„Z	d„ Z
dd„Zdd	„Zdd
„Zy)rj   a[  Representation of the embedded MTEXT object in ATTRIB and ATTDEF.

    Introduced in DXF R2018? The DXF reference of the `MTEXT`_ entity
    documents only the attached MTEXT entity. The ODA DWG specs includes all
    MTEXT attributes of MTEXT starting at group code 10

    Stores the required parameters to be shown as as MTEXT.
    The AcDbText subclass contains  the first line of the embedded MTEXT as
    plain text content as group code 1, but this tag seems not to be maintained
    if the ATTRIB entity is copied.

    Some DXF attributes are duplicated and maintained by the CAD application:

        - textstyle: same group code 7 (AcDbText, EmbeddedObject)
        - text (char) height: same group code 40 (AcDbText, EmbeddedObject)

    .. _MTEXT: https://help.autodesk.com/view/OARX/2018/ENU/?guid=GUID-7DD8B495-C3F8-48CD-A766-14F9D7D0DD9B

    c                ó0   — t        «       | _        d| _        y )Nr6   )r  rt   rœ   r   s    r_   rZ   zEmbeddedMText.__init__|  s   € ô #Ó$ˆŒØˆ�	r`   c                ób   — t        «       }t        j                  | j                  «      |_        |S rX   )rj   rc   rd   rt   )r]   Úcopy_s     r_   rc   zEmbeddedMText.copy‚  s"   € Ü“ˆÜ—M‘M $§(¡(Ó+ˆŒ	Øˆr`   c                ó„   — |j                  | j                  t        |j                  d   d¬«      }t	        |«      | _        y )Nr   F)r   Úsubclassrñ   )ró   rt   r(   ri   r   rœ   )r]   rl   Útagss      r_   rk   zEmbeddedMText.load_dxf_tags‰  s@   € Ø×-Ñ-Ø�H‰HÜ5Ø×/Ñ/°Ñ2Øð	 .ó 
ˆô ' tÓ,ˆ�	r`   c                ó„   — t        j                  | j                  j                  «       ¬«      }| j                  |_        |S )z·Returns the embedded MTEXT entity as regular but virtual MTEXT
        entity. This entity does not have the graphical attributes of the host
        entity (ATTRIB/ATTDEF).

        )r  )r)   r  rt   Úall_existing_dxf_attribsrœ   r™   s     r_   r–   z"EmbeddedMText.virtual_mtext_entity’  s/   € ô —	‘	 T§X¡X×%FÑ%FÓ%HÔIˆØ—Y‘YˆŒ
Øˆr`   c                óæ   — |j                   | _         | j                  }|j                  j                  «       j                  «       D ])  \  }}|j	                  |«      sŒ|j                  ||«       Œ+ y)z8Set embedded MTEXT attributes from given `mtext` entity.N)rœ   rt   r,  ÚitemsÚis_supportedÚset)r]   rn   rt   ÚkÚvs        r_   r¢   zEmbeddedMText.set_mtextœ  sV   € à—J‘JˆŒ	Ø�h‰hˆØ—I‘I×6Ñ6Ó8×>Ñ>Ö@‰DˆAˆqØ×Ñ Õ"Ø—‘˜˜1•ñ Ar`   c           	     ó–   — | j                   }dt        fdddddddd	f	D ])  \  }}|j                  |«      rŒ|j                  ||«       Œ+ y )
NrÞ   )r¨   g      @)rŸ   ç        )Údefined_heightr4  )rç   r   )Úflow_directioné   )r§   ÚStandard)Úline_spacing_styler   )Úline_spacing_factorg      ð?)rt   r
   ru   r0  )r]   rt   Úkeyr7   s       r_   Úset_required_dxf_attributesz)EmbeddedMText.set_required_dxf_attributes¤  sW   € à�h‰hˆà”wÐØ ØØ#Ø#Ø!Ø!Ø%Ø(ó

‰LˆC�ð —;‘;˜sÕ#Ø—‘˜˜WÕ%ñ

r`   c                óü   — |j                  t        t        «       | j                  «        | j                  j                  |g d¢«       t        | j                  |«       | j                  j                  |g d¢«       y)z+Export embedded MTEXT as "Embedded Object".)rÞ   r¨   rŸ   r5  rç   r6  )r§   rß   rë   Ú
rect_widthÚrect_heightrã   r9  r:  Úbox_fill_scaleÚbg_fillÚbg_fill_colorÚbg_fill_true_colorÚbg_fill_color_nameÚbg_fill_transparencyN)rs   r   r   r<  rt   r  r*   rœ   ry   s     r_   rx   zEmbeddedMText.export_dxf_tagsµ  sd   € à×ÑÔ0Ô2BÔCØ×(Ñ(Ô*Ø�‰×#Ñ#Øòô
	
ô 	˜TŸY™Y¨	Ô2Ø�‰×#Ñ#Øòõ	
r`   c                ó†   — | j                   j                  d«      r&|j                  | j                   j                  «       yy)r²   r§   N)rt   ru   Úadd_text_styler§   )r]   r´   s     r_   r³   z EmbeddedMText.register_resourcesÙ  s/   € à�8‰8×Ñ˜GÔ$Ø×#Ñ# D§H¡H§N¡NÕ3ð %r`   c                ó¤   — |j                   j                  d«      r5|j                  |j                   j                  «      |j                   _        yy)r¶   r§   N)rt   ru   Úget_text_styler§   )r]   r¸   r¹   s      r_   r·   zEmbeddedMText.map_resourcesÞ  s7   € à�9‰9×Ñ˜WÔ%Ø%×4Ñ4°U·Y±Y·_±_ÓEˆE�I‰I�Oð &r`   NrÇ   )rÈ   rj   rÊ   rÌ   rÎ   rË   rÏ   )r¸   rj   r¹   rÐ   rÈ   rÉ   )rÑ   rÒ   rÓ   r  rZ   rc   Ú__copy__rk   r–   r¢   r<  rx   r³   r·   r"  r`   r_   rj   rj   g  s=   „ ñó(óð
 €Hó-óóò&ó""
óH4ô
Fr`   rj   )rœ   r%   rn   r)   rÈ   rÉ   )r  r4   )_Ú
__future__r   Útypingr   r   Útyping_extensionsr   rc   Úezdxf.auditr   r   Úezdxf.lldxfr	   Ú
ezdxf.mathr
   r   r   r   r   Úezdxf.lldxf.attributesr   r   r   r   r   r   r   Úezdxf.lldxf.typesr   r   Úezdxf.enumsr   r   r   Úezdxf.toolsr   Úezdxf.tools.textr   r   r   Údxfnsr    r!   Ú	dxfentityr"   Údxfgfxr#   r$   rœ   r%   r&   r'   rn   r(   r)   r*   r+   Úfactoryr,   r-   Úezdxf.lldxf.tagwriterr.   Úezdxf.lldxf.tagsr/   Úezdxfr0   Ú__all__Úis_valid_attrib_tagÚfix_attrib_tagÚis_in_integer_rangeÚDXF2007Úis_integer_boolr¯   rý   Ú	is_one_ofÚattrib_fieldsÚdictÚattdef_fieldsÚis_valid_one_line_textÚfix_one_line_textr  rô   r  r  Úpoint3drÔ   r4   r£   r¤   r1   r2   r  r3   r  rj   r"  r`   r_   Ú<module>rj     sç  ðõ #ß *Ý "Û ç +Ý !ß ;Õ ;÷÷ õ ß Cß HÑ HÝ &÷ñ ÷ 3Ý !ß 4ß 8Ñ 8÷ó õ %Ý áÝ7Ý%Ýò D€ñL Ø	ØØ×/Ñ/Ø×&Ñ&ô	ñ �R Ô#á˜B¨°DÔ9áØ
ØØØ/�)×/Ñ/°°1Ó5Øôñ ØØØ—=‘=ØØ×+Ñ+Øôñ Ø
Ø×-Ñ-Ø—=‘=ØØ%�)×%Ñ%¢iÓ0Øôñ[5€ñr �]Ó#€Ù!ØØØ×.Ñ.Ø
×
%Ñ
%ô	€ˆhÑ ñ Ð3°]ÓC€Ù,¨[Ó9Ð Ù˜/¨=Ó9€Ù,¨[Ó9Ð ñ "Øð 
‘G˜C¨Ô+Ð,ð 
‘w˜r¨1Ô-Ð.ð
 ÙØØØ#×3Ñ3Ø$ô	ð	
ð 
#¡G¨B¸Ô$:Ð;à	#¡W¨S¸#Ô%>Ð?à	™ ¨%¯-©-ÀÔIÐJØ	#¡W¨R¸Ô%;Ð<ð ÙØØØ#×7Ñ7Ø×.Ñ.ô	ð	
ð9%ó(Ð ôzR �ô R ój#óð* ô/
ˆZó /
ó ð/
ðd ôD
ˆZó D
ó ðD
òN	Ð ó;ô	 �lô 	 ÷zFò zFr`   