
    h6                    N   S SK Jr  S SKJrJrJrJr  S SKJr  S SK	J
r
  S SKJrJrJrJrJrJr  S SKJrJrJr  S SK	Jr  S SKJr  S S	KJrJrJrJrJr  S
SKJ r J!r!J"r"  S
SK#J$r$J%r%  S
SK&J'r'  S
SK(J)r)  S
SK*J+r+  S SK,J-r-J.r.  \(       a  S SK/J0r0  S SK1J2r2  S SK3J4r4  S SK5J6r6  / SQr7\" S\" S5      \" S\Rp                  \S9\" SS
\
Rr                  \S9\" SS
\
Rr                  \S9\" SS
\
Rr                  \S9\" SS S9\" S \Rp                  \S!\
Rt                  \S"9\" S#SS9\" S$S%\
Rv                  " S&S'5      \
Rx                  " S&S'5      S9\" S(S \
Rv                  " S S)5      \
Rx                  " S S)5      S9S*.
5      r=\" \=5      r> " S+ S,\$5      r?\) " S- S.\?5      5       r@\) " S/ S0\?5      5       rA\) " S1 S2\?5      5       rB\) " S3 S4\?5      5       rC\" S5\" S
5      \" S65      S7.5      rD\" \D5      rE " S8 S9\'5      rF\) " S: S;\F5      5       rG\) " S< S=\F5      5       rH\) " S> S?\F5      5       rIg@)A    )annotations)TYPE_CHECKINGUnionIterableOptional)Self)	validator)DXFAttrDXFAttributesDefSubclassXTypeRETURN_DEFAULTgroup_code_mapping)SUBCLASS_MARKERDXF2000DXFTypeError)const)Tags)NULLVECZ_AXISUVecMatrix44Vec3   )
base_classSubclassProcessor	DXFEntity)
DXFGraphicacdb_entity)	DXFObject)register_entity)default_copy)InsertTransformationErrorInsertCoordinateSystem)Drawing)DXFNamespace)AbstractTagWriter)xref)PdfUnderlayDwfUnderlayDgnUnderlayPdfDefinitionDgnDefinitionDwfDefinitionUnderlayUnderlayDefinitionAcDbUnderlayReferenceiT  
   )xtypedefault)   )r4   r	   fixer*   +   2   )r4      T)r3   r4   optionalr	   r6   i  i  d      e   i  Q   
underlay_def_handleinsertscale_xscale_yscale_zrotation	extrusionflagscontrastfadec                    ^  \ rS rSrSr\" \\\5      r	\
rS!U 4S jjr\4S"S jjr S#   S$U 4S jjjrS%S jrS&U 4S jjrS rS'U 4S	 jjrS(S
 jrS)U 4S jjrS*U 4S jjr      S+S jrS,S jrS-S jr\S 5       r\R8                  S.S j5       r\S/S j5       r\R8                  S0S j5       r\S/S j5       r\R8                  S0S j5       r\S/S j5       r\R8                  S0S j5       r\S/S j5       r \ R8                  S1S j5       r \S2S j5       r!\!R8                  S3S j5       r!S.S jr"S!S jr#S!U 4S jjr$S4S jr%S r&U =r'$ )5r/   m   zVirtual UNDERLAY entity.c                >   > [         TU ]  5         / U l        S U l        g N)super__init___boundary_path_underlay_defself	__class__s    I/var/www/html/env/lib/python3.13/site-packages/ezdxf/entities/underlay.pyrP   Underlay.__init__t   s    *,;?    c                    [        U[        5      (       d   e[        U R                  5      Ul        U R                  Ul        g rN   )
isinstancer/   listrQ   rR   )rT   entitycopy_strategys      rV   	copy_dataUnderlay.copy_datay   s6    &(++++ $T%8%8 9#11rX   c                  > [         TU ]  U5      nU(       a  UR                  S5      nU(       a`  [        U R	                  U5      5      nUR                  U[        US9  [        U R                  5      S:  a  X l	        U R                  5         U$ [        R                  " SU R                   SUR                   S35      eU$ )N   subclassz,missing 'AcDbUnderlayReference' subclass in z(#))rO   load_dxf_attribssubclass_by_indexr   load_boundary_pathfast_load_dxfattribsacdb_underlay_group_codeslenboundary_pathdxfreset_boundary_pathr   DXFStructureErrorDXFTYPEhandle)rT   	processorrl   tagsrU   s       rV   re   Underlay.load_dxf_attribs~   s     g&y1..q1DD33D9:..2T /  t))*Q."H,,. 
	 --B||nBszzl!5  
rX   c              #     #    / nU H4  nUR                   S:X  a  UR                  UR                  5        M0  Uv   M6     X l        g 7f)N   )codeappendvaluerQ   )rT   rr   pathtags       rV   rg   Underlay.load_boundary_path   s<     Cxx2~CII&		 
 #s   AAc                   > [         TU ]  U5        UR                  nUR                  U R                  R                  SS 5      5      U l        g )NrA   )rO   post_load_hookentitydbgetrl   rR   )rT   docdbrU   s      rV   r}   Underlay.post_load_hook   s:    s#\\VVDHHLL1F$MNrX   c                   [        U R                  R                  [        5      (       d   eU R                  n[        U[
        5      (       a@  U R                  UR                  L a&  UR                  U R                  R                  5        g g g rN   )rZ   rl   rp   strrR   r0   r   append_reactor_handlerT   underlay_defs     rV   post_bind_hookUnderlay.post_bind_hook   sh    $((//3////))|%788L,,,..txx? - 9rX   c                   > [         TU ]  U5        UR                  [        [        R
                  5        U R                  R                  U/ SQ5        U R                  U5        g)(Export entity specific data as DXF tags.r@   N)	rO   export_entity
write_tag2r   acdb_underlaynamerl   export_dxf_attribsexport_boundary_pathrT   	tagwriterrU   s     rV   r   Underlay.export_entity   sP    i(_m.@.@A##	
 	!!),rX   c                T    U R                    H  nUR                  SUS S 5        M     g )Nru   ra   )rk   write_vertex)rT   r   vertexs      rV   r   Underlay.export_boundary_path   s(    ((F""2vbqz2 )rX   c                   > [         TU ]  U5        [        U R                  [        5      (       a0  UR                  U R                  R                  R                  5        g g rN   )rO   register_resourcesrZ   rR   r0   
add_handlerl   rp   )rT   registryrU   s     rV   r   Underlay.register_resources   sI    "8,d((*<== 2 2 6 6 = => >rX   c                  > [        U[        5      (       d   e[        TU ]  X5        U R	                  X5      nX1l        UR                  R                  UR                  l        UR                  UR                  R                  5        g rN   )
rZ   r/   rO   map_resourcesmap_underlay_defrR   rl   rp   rA   r   )rT   clonemappingunderlay_def_copyrU   s       rV   r   Underlay.map_resources   sj    %****e- 11%A/(9(=(=(D(D		%//		0@0@ArX   c                  ^ U R                   n[        U[        5      (       d   eUR                  UR                  R
                  5      n[        U[        5      (       d   eUR                  nUc   eUR                  R                  UR                  5      mTR                  U5      (       a  U$ UR                  R                  U4S j5      nTR                  Xd5        U$ )Nc                   > U T;  $ rN    )kunderlay_dicts    rV   <lambda>+Underlay.map_underlay_def.<locals>.<lambda>   s
    a}6LrX   )rR   rZ   r0   get_reference_of_copyrl   rp   r   rootdictget_required_dictacad_dict_namefind_keyobjectsnext_underlay_keytake_ownership)rT   r   r   r   r   r   keyr   s          @rV   r   Underlay.map_underlay_def   s     )),(:;;;;#99,:J:J:Q:QR+-?@@@@ii66|7R7RS!!"344$$ kk++,LM$$S<  rX   c                    Xl         UR                  R                  U R                  l        UR	                  U R                  R                  5        g rN   )rR   rl   rp   rA   r   r   s     rV   set_underlay_defUnderlay.set_underlay_def   s6    )'3'7'7'>'>$**488??;rX   c                    U R                   $ rN   )rR   rT   s    rV   get_underlay_defUnderlay.get_underlay_def   s    !!!rX   c                    U R                   $ rN   )rQ   r   s    rV   rk   Underlay.boundary_path   s    """rX   c                &    U R                  U5        g rN   )set_boundary_pathrT   verticess     rV   rk   r      s    x(rX   c                b    [        U R                  R                  [        R                  -  5      $ rN   )boolrl   rH   r   UNDERLAY_CLIPPINGr   s    rV   clippingUnderlay.clipping   s     DHHNNU%<%<<==rX   c                D    U R                  [        R                  U5        g rN   )set_flag_stater   r   rT   states     rV   r   r      s    E33U;rX   c                b    [        U R                  R                  [        R                  -  5      $ rN   )r   rl   rH   r   UNDERLAY_ONr   s    rV   onUnderlay.on   s     DHHNNU%6%6677rX   c                D    U R                  [        R                  U5        g rN   )r   r   r   r   s     rV   r   r     s    E--u5rX   c                b    [        U R                  R                  [        R                  -  5      $ rN   )r   rl   rH   r   UNDERLAY_MONOCHROMEr   s    rV   
monochromeUnderlay.monochrome  s     DHHNNU%>%>>??rX   c                D    U R                  [        R                  U5        g rN   )r   r   r   r   s     rV   r   r   
  s    E55u=rX   c                b    [        U R                  R                  [        R                  -  5      $ rN   )r   rl   rH   r   UNDERLAY_ADJUST_FOR_BGr   s    rV   adjust_for_backgroundUnderlay.adjust_for_background  s     DHHNNU%A%AABBrX   c                D    U R                  [        R                  U5        g rN   )r   r   r   r   s     rV   r   r     s    E88%@rX   c                    U R                   R                  U R                   R                  U R                   R                  4$ rN   )rl   rC   rD   rE   r   s    rV   scalingUnderlay.scaling  s-    xx!1!14883C3CCCrX   c                    [        U[        [        45      (       a  XUpCnOUu  p#nX R                  l        X0R                  l        X@R                  l        g rN   )rZ   floatintrl   rC   rD   rE   )rT   scalexyzs        rV   r   r     sE    eeS\**E!A!GA!rX   c                v    [        U5      n[        U5      (       a  Xl        SU l        g U R	                  5         g )NT)r[   rj   rQ   r   rm   r   s     rV   r   Underlay.set_boundary_path$  s-    >x=="* DM$$&rX   c                     / U l         SU l        g)zRemoves the clipping path.FN)rQ   r   r   s    rV   rm   Underlay.reset_boundary_path-  s     rX   c                   > U R                   (       d  g U R                  (       a/  U R                  R                  U R                  R                  5        U ?[        TU ]  5         g rN   )is_aliverR   discard_reactor_handlerl   rp   rQ   rO   destroyrS   s    rV   r   Underlay.destroy2  sB    }}55dhhooFrX   c                
   U R                   n[        [        UR                  5      UR                  UR
                  UR                  4UR                  UR                  S9n UR                  U5      nUR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul        U R                  U5        U $ ! [         a    [        S5      ef = f)zTransform UNDERLAY entity by transformation matrix `m` inplace.

Unlike the transformation matrix `m`, the UNDERLAY entity can not
represent a non-orthogonal target coordinate system and an
:class:`InsertTransformationError` will be raised in that case.

)rB   r   rF   rG   zLUNDERLAY entity can not represent a non-orthogonal target coordinate system.)rl   r$   r   rB   rC   rD   rE   rF   rG   	transformr#   scale_factor_xscale_factor_yscale_factor_zpost_transform)rT   mrl   source_systemtarget_systems        rV   r   Underlay.transform;  s     hh.

#;;S[[9\\mm	
	)33A6M
 #))
$--%//#22#22#22A ) 	+^ 	s   "C, ,D)rQ   rR   r   rl   )returnNone)r\   r   r   r   rN   rq   zOptional[SubclassProcessor]r   r&   )rr   r   r   r   )r   r%   r   r   r   r'   r   r   )r   r'   )r   zxref.Registryr   r   )r   r   r   xref.ResourceMapperr   r   )r   r/   r   r   r   r0   )r   r0   r   r   )r   zOptional[UnderlayDefinition])r   zIterable[UVec]r   r   )r   r   )r   r   r   r   )r   r   )r   ztuple[float, float, float])r   zUnion[float, tuple])r   r   r   r/   )(__name__
__module____qualname____firstlineno____doc__r   r   r   r   
DXFATTRIBSr   MIN_DXF_VERSION_FOR_EXPORTrP   r"   r^   re   rg   r}   r   r   r   r   r   r   r   r   propertyrk   setterr   r   r   r   r   r   rm   r   r   __static_attributes____classcell__rU   s   @rV   r/   r/   m   s   " z;FJ!(@
 5A 2 8<4	 ,#O
@-*3?
B!!(;!	!*<
" # # ) ) > > __< < 8 8 YY6 6 @ @ > > C C !!A "A D D ^^ '
 rX   r/   c                      \ rS rSrSrSrSrg)r)   iZ  zDXF PDFUNDERLAY entityPDFUNDERLAYr   Nr   r   r   r   r  ro   r  r   rX   rV   r)   r)   Z  
     GrX   r)   c                      \ rS rSrSrSrSrg)PdfReferenceia  zVPDFREFERENCE ia a synonym for PDFUNDERLAY, ezdxf creates always PDFUNDERLAY
entities.
PDFREFERENCEr   Nr  r   rX   rV   r  r  a  s     GrX   r  c                      \ rS rSrSrSrSrg)r*   ij  zDXF DWFUNDERLAY entityDWFUNDERLAYr   Nr  r   rX   rV   r*   r*   j  r  rX   r*   c                      \ rS rSrSrSrSrg)r+   iq  zDXF DGNUNDERLAY entityDGNUNDERLAYr   Nr  r   rX   rV   r+   r+   q  r  rX   r+   AcDbUnderlayDefinitionra   )filenamer   c                     ^  \ rS rSrSrSr\" \\5      r	\
r S   SU 4S jjjrSU 4S jjr\SS j5       r\SS j5       r\SS j5       rS	 rS
rU =r$ )r0   i  z#Virtual UNDERLAY DEFINITION entity.UNDERLAYDEFINITIONc                ^   > [         TU ]  U5      nU(       a  UR                  U[        SS9  U$ )Nr   rb   )rO   re   rh   acdb_underlay_def_group_codes)rT   rq   rl   rU   s      rV   re   #UnderlayDefinition.load_dxf_attribs  s9     g&y1**2Q +  
rX   c                   > [         TU ]  U5        UR                  [        [        R
                  5        U R                  R                  USS/5        g)r   r  r   N)rO   r   r   r   acdb_underlay_defr   rl   r   r   s     rV   r    UnderlayDefinition.export_entity  s@    i(_.?.D.DE##I
F/CDrX   c                     U R                   S S $ )N   )ro   r   s    rV   file_formatUnderlayDefinition.file_format  s    ||BQrX   c                     U R                   S-   $ )NUNDERLAYr   r   s    rV   entity_nameUnderlayDefinition.entity_name  s    *,,rX   c                "    SU R                    S3$ )NACAD_DEFINITIONSr$  r   s    rV   r   !UnderlayDefinition.acad_dict_name  s    t''(44rX   c                P    U R                  U R                  R                  /5        g rN   )set_reactorsrl   ownerr   s    rV   post_new_hook UnderlayDefinition.post_new_hook  s    488>>*+rX   r   rN   r   r   )r   r   )r   r   r   r   r  ro   r   r   r  r  r   r  re   r   r  r   r%  r   r.  r  r  r  s   @rV   r0   r0     s    -"Gz+<=J!( 8<4	 E     - - 5 5, ,rX   r0   c                      \ rS rSrSrSrSrg)r,   i  zDXF PDFDEFINITION entityPDFDEFINITIONr   Nr  r   rX   rV   r,   r,     
    "GrX   r,   c                      \ rS rSrSrSrSrg)r.   i  zDXF DWFDEFINITION entityDWFDEFINITIONr   Nr  r   rX   rV   r.   r.     r2  rX   r.   c                      \ rS rSrSrSrSrg)r-   i  zDXF DGNDEFINITION entityDGNDEFINITIONr   Nr  r   rX   rV   r-   r-     r2  rX   r-   N)J
__future__r   typingr   r   r   r   typing_extensionsr   ezdxf.lldxfr	   ezdxf.lldxf.attributesr
   r   r   r   r   r   ezdxf.lldxf.constr   r   r   r   ezdxf.lldxf.tagsr   
ezdxf.mathr   r   r   r   r   	dxfentityr   r   r   dxfgfxr   r   dxfobjr    factoryr!   copyr"   ezdxf.math.transformtoolsr#   r$   ezdxf.documentr%   ezdxf.entitiesr&   ezdxf.lldxf.tagwriterr'   ezdxfr(   __all__point3dis_not_zerois_not_null_vectoris_in_integer_rangefit_into_integer_ranger   ri   r/   r)   r  r*   r+   r  r  r0   r,   r.   r-   r   rX   rV   <module>rO     s   # ; ; " !  E D  ! < < ? ? +  $ 
 &+7	   's|"EMM7C++ 	
 ++ 	
 ++ 	
 B*--22 
 b)33B<222s;	
 33Ar:221b9	
c7:v /}= jz jZ (   8   (   (    AJ
  !33D E 
$, $,N &   &   &  rX   