
    hI                       S SK Jr  S SK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  S SK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  \(       a  S SKJrJr  S SK J!r!  S SK"J#r#  SS/r$SS jr%SS jr&\" S0 S\
" S5      _S\
" SSS9_S\
" SS S9_S\
" SSS9_S \
" S!5      _S"\
" S#S S9_S$\
" S%SS9_S&\
" S'S(S9_S)\
" S*SS9_S+\
" S,SS9_S-\
" S.SS9_S/\
" S0SS9_S1\
" S2SS9_S3\
" S4SS9_S5\
" S6S7S9_S8\
" S0S S9_S9\
" S:SS9_0 S;\
" S<5      _S=\
" S>SS9_S?\
" S@SS9_SA\
" SBSS9_SC\
" SDSS9_SE\
" SFSS9_SG\
" SHSS9_SI\
" SJSS9_SK\
" SLSS9_SM\
" SNSS9_SO\
" SPSS9_SQ\
" SRSS9_SS\
" STSS9_SU\
" SVSS9_SW\
" SXSS9_SY\
" SZSS9_S[\
" S\SS9_E0 S]\
" S^SS9_S_\
" S`SS9_Sa\
" SbSS9_Sc\
" SdSS9_Se\
" SfSS9_Sg\
" ShSS9_Si\
" SjSS9_Sk\
" SlSS9_Sm\
" SnSS9_So\
" SpSS9_Sq\
" SrSS9_Ss\
" StSS9_Su\
" SvSS9_Sw\
" SxSS9_Sy\
" SzSS9_S{\
" S|SS9_S}\
" Sl5      _E0 S~\
" S5      _S\
" S*SS9_S\
" S,SS9_S\
" S.SS9_S\
" S0SS9_S\
" S2SS9_S\
" S4SS9_S\
" S5      _S\
" S5      _S\
" S5      _S\
" S5      _S\
" S5      _S\
" S5      _S\
" Sj5      _S\
" S5      _S\
" Sn5      _S\
" St5      _E\
" S5      \
" S5      \
" Sl5      \
" S5      \
" S5      \
" S5      \
" S5      \
" S5      \
" S5      \
" Sj5      \
" S5      \
" S!5      \
" S5      \
" S5      \
" SSS9S.E5      r'\" \'5      r(\ " S S\5      5       r) " S S\\)   5      r*g)    )annotations)TYPE_CHECKINGOptional)Self)SUBCLASS_MARKER)DXFAttrDXFAttributesDefSubclassgroup_code_mapping)Tags   )
base_classSubclassProcessor)	DXFObject)register_entity)ObjectCollection)Matrix44)default_copy)DXFNamespace	DXFEntity)AbstractTagWriter)DrawingMaterialMaterialCollectionc                   / n[        5       nU  HT  nUR                  U:X  a0  UR                  UR                  5        [	        U5      S:X  a  SnMA  MC  UR                  U5        MV     [	        U5      S:X  a  U[        U5      4$ U S 4$ )N   )r   codeappendvaluelenr   )tagsr   values	remainingtags        I/var/www/html/env/lib/python3.13/site-packages/ezdxf/entities/material.pyfetch_matrixr'      s    FI88tMM#))$6{b  ! S!  6{b(6***Tz    c                @    Ub  U H  nU R                  X5        M     g g N)
write_tag2)	tagwriterr   matrixr    s       r&   export_matrixr.   /   s%    E  -  r(   AcDbMaterialnamedescription    )defaultambient_color_methodF   ambient_color_factor(   g      ?ambient_color_valueZ   diffuse_color_methodG   diffuse_color_factor)   diffuse_color_value[   diffuse_map_blend_factor*   diffuse_map_sourceH   diffuse_map_file_name   diffuse_map_projection_methodI   diffuse_map_tiling_methodJ   !diffuse_map_auto_transform_methodK   specular_gloss_factor,   g      ?specular_color_methodspecular_color_factor-   specular_color_value\   specular_map_blend_factor.   specular_map_sourceM   specular_map_file_name   specular_map_projection_methodN   specular_map_tiling_methodO   "specular_map_auto_transform_method   reflection_map_blend_factor0   reflection_map_source   reflection_map_file_name    reflection_map_projection_method   reflection_map_tiling_method   $reflection_map_auto_transform_method   opacity   opacity_map_blend_factor   opacity_map_source   opacity_map_file_name   opacity_map_projection_method   opacity_map_tiling_method   !opacity_map_auto_transform_method   bump_map_blend_factor   bump_map_source   bump_map_file_name   bump_map_projection_methodi  bump_map_tiling_methodi  bump_map_auto_transform_methodi  refraction_index   refraction_map_blend_factor   refraction_map_sourcei  refraction_map_file_name	    refraction_map_projection_methodi  refraction_map_tiling_methodi  $refraction_map_auto_transform_methodi  normal_map_methodnormal_map_strengthi  normal_map_blend_factornormal_map_sourcenormal_map_file_namenormal_map_projection_methodnormal_map_tiling_method normal_map_auto_transform_methodcolor_bleed_scalei  indirect_dump_scalei  reflectance_scalei  transmittance_scalei  two_sided_materiali"  	luminancei  luminance_modematerials_anonymousi%  global_illumination_modefinal_gather_modei,  i#  i  i-  i$  >   i  i     i  ]   ^   ?   )gen_proc_namegen_proc_val_boolgen_proc_val_intgen_proc_val_realgen_proc_val_textgen_proc_table_endgen_proc_val_color_indexgen_proc_val_color_rgbgen_proc_val_color_name	map_utiletranslucenceself_illuminationreflectivityillumination_modelchannel_flagsc                     ^  \ rS rSrSrSSS.r\" \\5      r	SU 4S jjr
\4SS jjr S   SU 4S jjjrS	 rSU 4S
 jjrSrU =r$ )r      MATERIALr   rA   )r;   r?   c                   > [         TU ]  5         S U l        S U l        S U l        S U l        S U l        S U l        S U l        g r*   )	super__init__diffuse_mapper_matrixspecular_mapper_matrixreflexion_mapper_matrixopacity_mapper_matrixbump_mapper_matrixrefraction_mapper_matrixnormal_mapper_matrix)self	__class__s    r&   r   Material.__init__   sF    9=":>#;?$9="6:<@%8<!r(   c                z   S n[        U[        5      (       d   eU" U R                  5      Ul        U" U R                  5      Ul        U" U R                  5      Ul        U" U R
                  5      Ul        U" U R                  5      Ul        U" U R                  5      Ul        U" U R                  5      Ul        g)zCopy material mapper matricesc                ,    U c  S $ U R                  5       $ r*   )copy)r-   s    r&   r    Material.copy_data.<locals>.copy   s    !>4<v{{}<r(   N)	
isinstancer   r   r   r   r   r   r   r   )r   entitycopy_strategyr   s       r&   	copy_dataMaterial.copy_data   s    	= &(++++'+D,F,F'G$(,T-H-H(I%)-d.J.J)K&'+D,F,F'G$$()@)@$A!*.t/L/L*M'&*4+D+D&E#r(   c                   > [         TU ]  U5      nU(       a'  UR                  U[        SSS9nU R	                  U5        U$ )Nr   F)log)r   load_dxf_attribsfast_load_dxfattribsacdb_material_group_codesload_matrices)r   	processordxfr"   r   s       r&   r   Material.load_dxf_attribs   sK     g&y111.u 2 D t$
r(   c                   [        US5      u  pU(       a  X l        [        US5      u  pU(       a  X l        [        US5      u  pU(       a  X l        [        US5      u  pU(       a  X l        [        US5      u  pU(       a  X l        [        US5      u  pU(       a  X l        [        US5      u  pU(       a  X l        g g )N+   /   1            )r'   r   r   r   r   r   r   r   )r   r"   r-   s      r&   r   Material.load_matrices  s    #D"-)/&#D"-*0'#D"-+1(#D#.)/&#D#.&,##D#.,2)#D"-(.% r(   c                  > [         TU ]  U5        UR                  [        [        R
                  5        U R                  R                  U/ SQ5        [        USU R                  5        U R                  R                  U/ SQ5        [        USU R                  5        U R                  R                  U/ SQ5        [        USU R                  5        U R                  R                  U/ SQ5        [        USU R                  5        U R                  R                  U/ S	Q5        [        US
U R                  5        U R                  R                  U/ SQ5        [        USU R                  5        U R                  R                  U/ SQ5        [        USU R                  5        U R                  R                  U/ SQ5        g)z(Export entity specific data as DXF tags.)r0   r1   r5   r7   r9   r;   r=   r?   rB   rD   rF   rH   rJ   rL   r   )
rN   rP   rQ   rS   rU   rW   rY   r[   r]   r_   r   )ra   rc   re   rg   ri   rk   r   )rm   ro   rq   rs   ru   rw   ry   r   )r{   r}   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   N)r   export_entityr+   r   acdb_materialr0   r   export_dxf_attribsr.   r   r   r   r   r   r   r   )r   r,   r   s     r&   r   Material.export_entity  s   i(_m.@.@A##	
& 	iT%?%?@##	
 	iT%@%@A##
	
 	iT%A%AB##	
 	id&@&@A##
	
 	id&=&=>##	
 	id&C&CD##		
 	iT%>%>?##	
r(   )r   r   r   r   r   r   r   returnNone)r   r   r   r   r*   )r   zOptional[SubclassProcessor]r   r   )r,   r   r   r   )__name__
__module____qualname____firstlineno__DXFTYPEDEFAULT_ATTRIBSr	   r   r   
DXFATTRIBSr   r   r   r   r   r   __static_attributes____classcell__r   s   @r&   r   r      sd    G !*O z=9J= 5A F  8<	4			 	/.G
 G
r(   c                  6   ^  \ rS rSrSU 4S jjrSS jrSrU =r$ )r   i  c                D   > [         TU ]  USSS9  U R                  5         g )NACAD_MATERIALr   )	dict_nameobject_type)r   r   create_required_entries)r   docr   s     r&   r   MaterialCollection.__init__  s#    ZP$$&r(   c                F    S H  nX;  d  M
  U R                  U5        M     g )N)ByBlockByLayerGlobal)new)r   r0   s     r&   r   *MaterialCollection.create_required_entries  s    4D 5r(    )r   r   r   )r   r   r   r   r   r   r   r   r   s   @r&   r   r     s    ' r(   N)r"   r   r   intr   ztuple[Tags, Optional[Matrix44]])r,   r   r   r   r-   r   r   r   )+
__future__r   typingr   r   typing_extensionsr   ezdxf.lldxf.constr   ezdxf.lldxf.attributesr   r	   r
   r   ezdxf.lldxf.tagsr   	dxfentityr   r   dxfobjr   factoryr   objectcollectionr   
ezdxf.mathr   r   r   ezdxf.entitiesr   r   ezdxf.lldxf.tagwriterr   ezdxf.documentr   __all__r'   r.   r   r   r   r   r   r(   r&   <module>r     s   # * " -  " 4  $ .  67&+
,$. ^
^wq"-^ 	!
^ 	C 8^ 	wr{^ 	!
^ 	C 8^ 	w 
^ 	#G%
^$ 	gb!4%^( 	 B!7)^* 	(*
+^0 	$WR%;1^2 	,WR-C3^< 	 S!9=^> 	 "
?^D 	 S!9E^F 	G^H 	$W&
I^N 	wr15O^R 	!'!R"8S^T 	)'+
U^Z 	%gb!&<[^\ 	-gc1.E]^f 	&w(
g^l 	 a!8m^p 	#GAr$:q^r 	+G-
s^x 	')
y^~ 	/Q0G^H 	73,I^J 	#G%
K^P 	gc15Q^T 	 B!7U^V 	(*
W^\ 	$WS!%<]^^ 	,WS!-D_^h 	 c!:i^j 	732k^n 	ga4o^p 	%g'
q^v 	!'#q"9w^x 	)'#q*Ay^B 	GC5C^D 	&w(
E^J 	 a!8K^N 	#GAr$:O^P 	+G-
Q^V 	')
W^\ 	/Q0G]^h 	WS\i^j 	ws|k^l 	"7$
m^r 	WR3s^v 	2 6w^x 	')
y^~ 	#GB$:^@ 	+GB,BA^J 	WS\K^L 	ws|M^N 	WS\O^P 	ws|Q^R 	gclS^T 	WS\U^V 	'#,W^X 	ws|Y^Z 	#GCL[^\ 	WS\]^^ !$S\#CL$S\$S\%cl$+BK")#,#*3<S\$R[%bk R0{^aD /}=  J
y J
 J
Z)(3 r(   