
    h                       S SK Jr  S SKJrJr  S SKrS SKJrJr  S SK	J
r
JrJr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  SSKJrJr  \(       a  S SKJr  S SK J!r!  S/r"\RF                  " S5      r$\" S0 S\" SS\RJ                  \S9_S\" S\RL                  \S9_S\" S\RL                  \\RN                  \S9_S\" SSS9_S\" S \RP                  S!\RR                  \S"9_S#\" S$S \RJ                  \S9_S%\" S&\RT                  \RV                  " S S'5      \S!S(9_S)\" S*\RX                  \RV                  " S S'5      \S9_S+\" S,S S9_S-\" S.S\RZ                  \S9_S/\" S0S S!\RJ                  \S"9_S1\" S2S \RJ                  \S9_S3\" S4S!S59_S6\" S7S \R\                  \S9_S8\" S9\R^                  S:S9_S;\" S<S S9_5      r0\" \05      r1\ " S= S\5      5       r2g)>    )annotations)TYPE_CHECKINGOptionalN)	validatorconst)DXFAttributesDefSubclassDXFAttrRETURN_DEFAULTXTypegroup_code_mapping)NULLVECZ_AXIS   )
base_class)acdb_entity)register_entity)
DXFPolygon)GradientGradientType)AbstractTagWriter)RGBMPolygonezdxfAcDbMPolygonversionF   )defaultr   fixer	elevation
   )xtyper   	extrusion   )r"   r   r   r   pattern_name    )r   
fill_color?   T)r   optionalr   r   
solid_fillG   hatch_styleK      )r   r   r   r*   pattern_typeL   pattern_angle4   pattern_scale)   annotated_boundaryI   pattern_doubleM   
pixel_size/   )r*   n_seed_pointsb   offset_vector   )r   r   degenerated_loopsc   c                     ^  \ rS rSrSrSr\" \\\	5      r
\R                  r\rSS jrSU 4S jjrSS jrSS jr S     SS jjrSS	 jrS
rU =r$ )r      z^DXF MPOLYGON entity

The MPOLYGON is not a core DXF entity, and requires a CLASS definition.

MPOLYGONc                f    U R                   R                  (       a  [        R                  S5        gg)Nz8MPOLYGON including edge paths are not exported by ezdxf!FT)pathshas_edge_pathsloggerwarningself	tagwriters     I/var/www/html/env/lib/python3.13/site-packages/ezdxf/entities/mpolygon.pypreprocess_exportMPolygon.preprocess_export   s&    ::$$NNJ     c                  > [         TU ]  U5        UR                  [        R                  [
        R                  5        U R                  nUR                  U/ SQ5        U R                  R                  XR                  5       5        UR                  US/5        UR                  S:X  a  UR                  U/ SQ5        UR                  USS/5        UR                  S:X  a>  U R                  (       a  U R                  R                  USS9  OUR                  S	S5        UR                  [        R                  :  a  UR                  US
5        UR                  US5        U R!                  U5        U R#                  U5        g)z(Export entity specific data as DXF tags.)r   r    r#   r%   r+   r0   r   )r2   r4   r8   r6   r:   T)forceN   r(   r>   N)superexport_entity
write_tag2r   SUBCLASS_MARKERacdb_mpolygonnamedxfexport_dxf_attribsrF   
export_dxfdxftyper+   pattern
dxfversionDXF2000export_degenerated_loopsexport_gradient)rK   rL   rZ   	__class__s      rM   rU   MPolygon.export_entity   sJ   i(U22M4F4FGhh		
 	

i8 	
 >>Q""O 	$	
 >>Q||''	'>$$R+%--/""9l;y/:%%i0Y'rP   c                <    U R                   R                  US5        g )Nr@   )rZ   r[   rJ   s     rM   ra   !MPolygon.export_degenerated_loops   s    ##I/BCrP   c                    UR                   [        R                  :  a  g U R                  c  [	        SSSS9U l        U R                  R                  U5        g )Nr   kindnumtype)r_   r   DXF2004gradientr   r\   rJ   s     rM   rb   MPolygon.export_gradient   sC    %--/== $!;DM  +rP   c                    SU l         SU l        SU R                  l        XR                  l        SU R                  l        [        R                  U R                  l        Ub  U R                  U5        gg)au  Set :class:`MPolygon` to solid fill mode and removes all gradient and
pattern fill related data.

Args:
    color: :ref:`ACI`, (0 = BYBLOCK; 256 = BYLAYER)
    style: hatch style is not supported by MPOLYGON, just for symmetry
        to HATCH
    rgb: true color value as (r, g, b)-tuple - has higher priority
        than `color`. True color support requires DXF R2004+

Nr   SOLID)
rm   r^   rZ   r+   r(   r%   r   HATCH_TYPE_PREDEFINEDr0   set_solid_rgb_gradient)rK   colorstylergbs       rM   set_solid_fillMPolygon.set_solid_fill   s`      $ ' % ; ;?'', rP   c                    [        SS[        R                  S9U l        XR                  l        XR                  l        g)zdSet solid fill color as gradient of a single RGB color.
This disables pattern fill!

(internal API)
r   r&   rh   N)r   r   LINEARrm   color1color2)rK   ru   s     rM   rr   MPolygon.set_solid_rgb_gradient   s.     !aQ\5H5HI""rP   )rm   r^   )rL   r   returnbool)rL   r   r}   None)rL   r   )   r   N)rs   intrt   r   ru   zOptional[RGB])ru   r   )__name__
__module____qualname____firstlineno____doc__DXFTYPEr   r   r   rX   
DXFATTRIBSr   r`   MIN_DXF_VERSION_FOR_EXPORTacdb_mpolygon_group_codeLOAD_GROUP_CODESrN   rU   ra   rb   rv   rr   __static_attributes____classcell__)rc   s   @rM   r   r      sq     Gz;FJ!&/-(^D, DH--%(-3@-4# #rP   )3
__future__r   typingr   r   loggingezdxf.lldxfr   r   ezdxf.lldxf.attributesr   r	   r
   r   r   r   
ezdxf.mathr   r   	dxfentityr   dxfgfxr   factoryr   polygonr   rm   r   r   ezdxf.lldxf.tagwriterr   ezdxf.colorsr   __all__	getLoggerrH   is_integer_boolpoint3dis_not_null_vectorBYLAYERis_valid_aci_colorHATCH_STYLE_NESTEDis_in_integer_rangerq   is_not_zerois_greater_or_equal_zeropoint2drX   r   r    rP   rM   <module>r      s   # *  (  ' !  $  ,7 ,			7	#]7// 	
] 	WRu}}gF] 	W--22 
]$ 	2.%]( 	gMM22 
)]< 	g// 	
=]P 	w,,33Aq9 
Q]` 	//33Aq9 	
a]n 	Q/o]r 	++ 	
s]D 	g// 
E]T 	'// 	
U]b 	gb40c]d 	88 	
e]r 	5==&Is]x 	WR3y]`B .m<  o#z o# o#rP   