
    Ogv                    H   U d dl mZ d dlmZmZmZmZ d dlmZm	Z	 d dl
mZ erd dlmZmZ d dlmZ d dlmZmZ e	 G d d	e             Zdd
ZddZe	 G d de             Z G d de      Z e       Zded<   ddZ G d de      Ze	 G d de             Z G d de      Zy)    )annotations)TYPE_CHECKINGIteratorIterableAny)Protocolruntime_checkable)EntityQuery)
DXFGraphic	DXFEntity)TemporaryTransformation)Matrix44AbstractBoundingBoxc                      e Zd ZdZddZy)SupportsVirtualEntitiesa/  The virtual entities protocol is used to disassemble complex entities
    into DXF primitives like LINE, ARC, ... as REQUIREMENT to render these
    entities. Which means the entity does not have :func:`ezdxf.path.make_path`
    support, except the text entities TEXT, ATTRIB and MTEXT.

    Optional DECONSTRUCTION of entities into DXF primitives like LWPOLYLINE
    into LINE and ARC entities is NOT the intended usage of this protocol!

    This protocol is for consistent internal usage and does not replace
    the :meth:`virtual_entities` methods!

    c                     y N selfs    T/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/ezdxf/protocols.py__virtual_entities__z,SupportsVirtualEntities.__virtual_entities__+           N)returnIterator[DXFGraphic])__name__
__module____qualname____doc__r   r   r   r   r   r      s     @r   r   c                p    t        | t              r| j                         S t        t	        |       d      )Nz3 does not support the __virtual_entities__ protocol)
isinstancer   r   	TypeErrortypeentitys    r   virtual_entitiesr'   .   s9    &12**,,F|QR
 	
r   c                *    t        t        |             S r   )r
   r'   r%   s    r   query_virtual_entitiesr)   7   s    '/00r   c                      e Zd ZddZy)ReferencedBlocksc                     y)znReturns the handles to the BLOCK_RECORD entities for all BLOCK
        definitions used by an entity.
        Nr   r   s    r   __referenced_blocks__z&ReferencedBlocks.__referenced_blocks__=   r   r   N)r   Iterable[str])r   r   r   r-   r   r   r   r+   r+   ;   s    r   r+   c                      e Zd ZddZy)SupportsTransformc                     y)z@Raises NotImplementedError() if transformation is not supported.Nr   )r   ms     r   	transformzSupportsTransform.transformD   r   r   N)r2   r   r   r   )r   r   r   r3   r   r   r   r0   r0   C   s    Or   r0   tuple_EMPTY_TUPLEc                N    t        | t              r| j                         S t        S )zfReturns the handles to the BLOCK_RECORD entities for all BLOCK
    definitions used by an entity.
    )r"   r+   r-   r5   r%   s    r   referenced_blocksr7   K   s$     &*+++--r   c                      e Zd ZddZy)SupportsBoundingBoxc                     y r   r   r   s    r   bboxzSupportsBoundingBox.bboxV   r   r   N)r   r   )r   r   r   r;   r   r   r   r9   r9   U   s    .r   r9   c                      e Zd ZddZy)SupportsTemporaryTransformationc                     y r   r   r   s    r   temporary_transformationz8SupportsTemporaryTransformation.temporary_transformation[   r   r   N)r   r   )r   r   r   r?   r   r   r   r=   r=   Y   s    Fr   r=   c                      e Zd ZdddZy)SupportsMessagesNc                     y)zInternal messaging system.Nr   )r   message_typedatas      r   notifyzSupportsMessages.notify_   r   r   r   )rC   intrD   r   r   None)r   r   r   rE   r   r   r   rA   rA   ^   s    )r   rA   N)r&   r   r   r   )r&   r   r   r
   )r&   r   r   r.   ) 
__future__r   typingr   r   r   r   typing_extensionsr   r	   ezdxf.queryr
   ezdxf.entitiesr   r   "ezdxf.entities.temporary_transformr   
ezdxf.mathr   r   r   r'   r)   r+   r0   r4   r5   __annotations__r7   r9   r=   rA   r   r   r   <module>rP      s    # 9 9 9 #4J8" @h @ @"
1 x  O O
 ge /( / Gh G G)x )r   