
    hv                    X   % S SK Jr  S SKJrJrJrJr  S SKJrJ	r	  S SK
Jr  \(       a  S SKJrJr  S SKJr  S SKJrJr  \	 " S S	\5      5       rSS
 jrSS jr\	 " S S\5      5       r " S S\5      r\" 5       rS\S'   SS jr " S S\5      r\	 " S S\5      5       r " S S\5      rg)    )annotations)TYPE_CHECKINGIteratorIterableAny)Protocolruntime_checkable)EntityQuery)
DXFGraphic	DXFEntity)TemporaryTransformation)Matrix44AbstractBoundingBoxc                  "    \ rS rSrSrSS jrSrg)SupportsVirtualEntities   a  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                    g N selfs    A/var/www/html/env/lib/python3.13/site-packages/ezdxf/protocols.py__virtual_entities__,SupportsVirtualEntities.__virtual_entities__+   s    C    r   N)returnIterator[DXFGraphic])__name__
__module____qualname____firstlineno____doc__r   __static_attributes__r   r   r   r   r      s     @r   r   c                |    [        U [        5      (       a  U R                  5       $ [        [	        U 5      < S35      e)Nz3 does not support the __virtual_entities__ protocol)
isinstancer   r   	TypeErrortypeentitys    r   virtual_entitiesr*   .   s<    &122**,,F|QR
 	
r   c                *    [        [        U 5      5      $ r   )r
   r*   r(   s    r   query_virtual_entitiesr,   7   s    '/00r   c                      \ rS rSrSS jrSrg)ReferencedBlocks;   c                    g)^Returns the handles to the BLOCK_RECORD entities for all BLOCK
definitions used by an entity.
Nr   r   s    r   __referenced_blocks__&ReferencedBlocks.__referenced_blocks__=       r   r   N)r   Iterable[str])r   r   r    r!   r2   r#   r   r   r   r.   r.   ;   s    r   r.   c                      \ rS rSrSS jrSrg)SupportsTransformC   c                    g)z@Raises NotImplementedError() if transformation is not supported.Nr   )r   ms     r   	transformSupportsTransform.transformD   r4   r   r   N)r:   r   r   r   )r   r   r    r!   r;   r#   r   r   r   r7   r7   C   s    Or   r7   tuple_EMPTY_TUPLEc                X    [        U [        5      (       a  U R                  5       $ [        $ )r1   )r%   r.   r2   r>   r(   s    r   referenced_blocksr@   K   s'     &*++++--r   c                      \ rS rSrSS jrSrg)SupportsBoundingBoxU   c                    g r   r   r   s    r   bboxSupportsBoundingBox.bboxV   s    3r   r   N)r   r   )r   r   r    r!   rE   r#   r   r   r   rB   rB   U   s    .r   rB   c                      \ rS rSrSS jrSrg)SupportsTemporaryTransformationY   c                    g r   r   r   s    r   temporary_transformation8SupportsTemporaryTransformation.temporary_transformation[   s    3r   r   N)r   r   )r   r   r    r!   rK   r#   r   r   r   rH   rH   Y   s    Fr   rH   c                  "    \ rS rSrSSS jjrSrg)SupportsMessages^   Nc                    g)zInternal messaging system.Nr   )r   message_typedatas      r   notifySupportsMessages.notify_   r4   r   r   r   )rQ   intrR   r   r   None)r   r   r    r!   rS   r#   r   r   r   rN   rN   ^   s    ) )r   rN   N)r)   r   r   r   )r)   r   r   r
   )r)   r   r   r5   ) 
__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.   r7   r=   r>   __annotations__r@   rB   rH   rN   r   r   r   <module>r_      s    # 9 9 9 #4J8" @h @ @"
1 x  O O
 ge /( / Gh G G)x )r   