Ë
    £èhN  ã                  óò   — d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	 d dl
mZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ erd dlmZ d dlmZ d dlmZ ej6                   G d„ de«      «       Z	 d	 	 	 	 	 	 	 dd„Zy)é    )Úannotations)ÚTYPE_CHECKINGÚOptionalÚIterator)Úconst)ÚTags)ÚEntityQueryé   )ÚSubclassProcessor)Ú
DXFGraphic)Úfactory)Údefault_copyÚCopyNotSupported)ÚAbstractTagWriter)ÚDXFNamespace)Ú
BaseLayoutc                  óš   ‡ — e Zd ZdZdZej                  Zdˆ fd„Ze	fd„Z
	 d	 	 	 dˆ fd„Zdd„Zdˆ fd„Zdˆ fd„Zdd	„Zdd
„Zddd„Zˆ xZS )ÚACADProxyEntityz1READ ONLY ACAD_PROXY_ENTITY CLASS! DO NOT MODIFY!ÚACAD_PROXY_ENTITYc                ó0   •— t         ‰| �  «        d | _        y ©N)ÚsuperÚ__init__Úacdb_proxy_entity)ÚselfÚ	__class__s    €ú@lib/python3.12/site-packages/ezdxf/entities/acad_proxy_entity.pyr   zACADProxyEntity.__init__5   s   ø€ Ü‰ÑÔØ15ˆÕó    c                ó<   — t        d| j                  «       › d�«      ‚)NzCopying of z not supported.)r   Údxftype)r   Úcopy_strategys     r   ÚcopyzACADProxyEntity.copy9   s   € Ü ¨T¯\©\«^Ð,<¸OÐLÓMÐMr   c                óv   •— t         ‰| �  |«      }|r&|j                  d«      | _        | j	                  «        |S )Né   )r   Úload_dxf_attribsÚsubclass_by_indexr   Úload_proxy_graphic)r   Ú	processorÚdxfr   s      €r   r%   z ACADProxyEntity.load_dxf_attribs<   s;   ø€ ô ‰gÑ& yÓ1ˆÙØ%.×%@Ñ%@ÀÓ%CˆDÔ"Ø×#Ñ#Ô%Øˆ
r   c                óp   — | j                   €y dD ]$  }t        | j                   |d«      }|sŒ|| _         y  y )N)é\   é    é6  )r   Úload_proxy_dataÚproxy_graphic)r   Úlength_coder/   s      r   r'   z"ACADProxyEntity.load_proxy_graphicE   s>   € Ø×!Ñ!Ð)ØÛ$ˆKÜ+¨D×,BÑ,BÀKÐQTÓUˆMÚØ%2�Ô"Ùñ	 %r   c                óX   •— | j                   }d | _         t        ‰| �	  |«       || _         y r   )r/   r   Ú
export_dxf)r   Ú	tagwriterÚpreserve_proxy_graphicr   s      €r   r2   zACADProxyEntity.export_dxfN   s.   ø€ ð "&×!3Ñ!3ÐØ!ˆÔÜ‰Ñ˜9Ô%Ø3ˆÕr   c                ót   •— t         ‰| �  |«       | j                  �|j                  | j                  «       yy)z7Export entity specific data as DXF tags. (internal API)N)r   Úexport_entityr   Ú
write_tags)r   r3   r   s     €r   r6   zACADProxyEntity.export_entityV   s7   ø€ ô 	‰Ñ˜iÔ(Ø×!Ñ!Ð-Ø× Ñ  ×!7Ñ!7Õ8ð .r   c              #  ó¾   K  — ddl m} | j                  rG || j                  | j                  ¬«      j	                  «       D ]  }|j                  | «       |–— Œ yy­w)z0Implements the SupportsVirtualEntities protocol.r   )ÚProxyGraphic)ÚdocN)Úezdxf.proxygraphicr9   r/   r:   Úvirtual_entitiesÚset_source_of_copy)r   r9   Úes      r   Ú__virtual_entities__z$ACADProxyEntity.__virtual_entities__^   sO   è ø€ å3à×ÒÙ! $×"4Ñ"4¸$¿(¹(ÔC×TÑTÖV�Ø×$Ñ$ TÔ*Ø“ñ Wð ùs   ‚AAc                ó"   — | j                  «       S )z+Yields proxy graphic as "virtual" entities.)r?   )r   s    r   r<   z ACADProxyEntity.virtual_entitiesg   s   € à×(Ñ(Ó*Ð*r   c                óì   — |€'| j                  «       }|€t        j                  d«      ‚t        | j	                  «       «      }|D ]  }|j                  |«       Œ | j                  «        t        |«      S )a  Explodes the proxy graphic for the ACAD_PROXY_ENTITY into the target layout,
        if target layout is ``None``, the layout of the ACAD_PROXY_ENTITY will be used.
        This method destroys the source ACAD_PROXY_ENTITY entity.

        Args:
            target_layout: target layout for exploded entities, ``None`` for
                same layout as the source ACAD_PROXY_ENTITY.

        Returns:
            :class:`~ezdxf.query.EntityQuery` container referencing all exploded
            DXF entities.

        zBACAD_PROXY_ENTITY without layout assignment, specify target layout)Ú
get_layoutr   ÚDXFStructureErrorÚlistr?   Ú
add_entityÚdestroyr	   )r   Útarget_layoutÚentitiesr>   s       r   ÚexplodezACADProxyEntity.explodek   ss   € ð Ð Ø ŸO™OÓ-ˆMØÐ$Ü×-Ñ-ØXóð ô &*¨$×*CÑ*CÓ*EÓ%FˆÛˆAØ×$Ñ$ QÕ'ð à�‰ŒÜ˜8Ó$Ð$r   )ÚreturnÚNoner   )r(   zOptional[SubclassProcessor]rJ   r   )r3   r   rJ   rK   )rJ   zIterator[DXFGraphic])rG   zOptional[BaseLayout]rJ   r	   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚDXFTYPEr   ÚDXF2000ÚMIN_DXF_VERSION_FOR_EXPORTr   r   r"   r%   r'   r2   r6   r?   r<   rI   Ú__classcell__)r   s   @r   r   r   .   sb   ø„ á;à!€GØ!&§¡Ðõ6ð ".ó Nð 8<ðØ4ðà	õóõ4õ9óó+÷%ð %r   r   c                óÎ   — 	 | j                  |«      }g }| |dz   d  D ]  \  }}||k(  r|j                  |«       Œ n dj	                  |«      S # t        j                  $ r Y y w xY w)Nr
   r   )Ú	tag_indexr   ÚDXFValueErrorÚappendÚjoin)Útagsr0   Ú	data_codeÚindexÚbinary_dataÚcodeÚvalues          r   r.   r.   †   sy   € ðØ—‘˜{Ó+ˆð €KØ˜E A™I˜KÓ(‰ˆˆeØ�9ÒØ×Ñ˜uÕ%áð	 )ð
 �8‰8�KÓ Ð øô ×Ñò Ùðús   ‚A ÁA$Á#A$N)r-   )rY   r   r0   ÚintrZ   r_   rJ   zOptional[bytes])Ú
__future__r   Útypingr   r   r   Úezdxf.lldxfr   Úezdxf.lldxf.tagsr   Úezdxf.queryr	   Ú	dxfentityr   Údxfgfxr   Ú r   r"   r   r   Úezdxf.lldxf.tagwriterr   Úezdxf.entitiesr   Úezdxf.layoutsr   Úregister_entityr   r.   © r   r   Ú<module>rm      s€   ðõ #ß 4Ñ 4Ý Ý !Ý #Ý (Ý Ý ß 0áÝ7Ý+Ý(ð< 	×ÑôT%�jó T%ó ðT%ðp 47ð!Ø
ð!Ø ð!Ø-0ð!àô!r   