
    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	 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    e/var/www/html/public_html/myphp/venv/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%.%@%@%CD"##%
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   sC    !!)$ 	K+D,B,BKQTUM%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__^   sS     3!$"4"4$((CTTV $$T* 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   sx       OO-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.      s~    {+ KEAIK( e9u%	
 88K    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   