
    ai                     X    S  r S rSSKJr  SSKJrJrJr  SSKJ	r	   " S S\5      r
\
4rg)	c                     U R                   R                  (       a  U R                   R                  $ U R                  R                  SSS5      $ )NColor
BYTE_COLORCORNER)
attributesactive_colorcolor_attributesnew)mes    e/home/wildlama/Downloads/blender-5.1.2-linux-x64/5.1/scripts/startup/bl_operators/vertexpaint_dirt.pyensure_active_color_attributer      s:    	}}!!}})))""7L(CC    c           	         SSK Jn  SSKJn  SS Kn	U	R	                  SS/5      [        U R                  5      -  n
[        [        U R                  5      5       Vs/ s H  n/ PM     nnU R                   H]  nXR                  S      R                  UR                  S   5        XR                  S      R                  UR                  S   5        M_     [        U R                  5       H  u  pU" 5       nUR                  nUR                  nX    H/  nXR                  U   R                  U-
  R                  5       -  nM1     [        X   5      nUS:X  a
  [        S-  nOUU-  nU" UR                  U5      5      n[!        UU5      nU(       d  [#        UU5      nUX'   M     [        U5       HV  nU
S S  n[        U5       H>  u  nnU H  nU
U==   UUU   -  -  ss'   M     U
U==   [        U5      U-  S-   -  ss'   M@     AMX     U(       a  [#        U
5      n[!        U
5      nOUnUnUU-
  nUS:  a  SnOS	U-  n[%        U 5      nU(       d  S
1$ UR&                  S:H  nUR(                  nU R*                  n[        U R,                  5       H  u  nnU(       a  UR.                  (       d  M   UR0                   Hy  nU R2                  U   n U R4                  nUU(       a  UOU   R6                  n!X   n"U"U-
  U-  n"U(       a  [#        U"S5      S-  n"U"U!S   -  U!S'   U"U!S   -  U!S'   U"U!S   -  U!S'   M{     M     U R9                  5         S1$ s  snf )N    )Vector)acosf           g       @g-C6?      ?	CANCELLEDPOINTg      ?   FINISHED)	mathutilsr   mathr   arraylenverticesrangeedgesappend	enumeratenormalco
normalizedpidotmaxminr   domaindatause_paint_maskpolygonsselectloop_indicesloopsvertex_indexcolorupdate)#r
   blur_iterationsblur_strength
clamp_dirtclamp_clean	dirt_only	normalizer   r   r   	vert_toneiconevvecnor$   ctot_conangorig_vert_tonejmin_tonemax_tone
tone_rangeactive_color_attributepoint_domainattribute_datar,   p
loop_indexloopcoltones#                                      r   applyVertexDirtrQ      s'      C#'#bkk*::I S-.
/.!2.C
/ XXJJqM!!!**Q-0JJqM!!!**Q-0  "++&hXXTT AKKN%%*6688C  cf+a<s(C7NC
 rvvc{#C *c"k3'C	9 '> ?#"1 cNDAq!q0A AA  aLCF]2Q66L	 #
  $ y>y>H$JF
:%
:2>!})00G;L+00N&&N"++&1nn
xx
+%%$,QJGMM |x:5tS>C/DAAAAAA - ' IIK<u 0s   Mr   )Operator)FloatPropertyIntPropertyBoolProperty)r&   c            	           \ rS rSr% SrSrSrSS1r\" SSS	S
S
S9\	S'   \
" SSSSSS9\	S'   \" SSS\\SS9\	S'   \" SSS\SSS9\	S'   \" SSSS9\	S'   \" S S!S"S9\	S#'   \S$ 5       rS% rS&rg')(VertexPaintDirt   z,Generate a dirt map gradient based on cavityzpaint.vertex_color_dirtzDirty Vertex ColorsREGISTERUNDOzBlur StrengthzBlur strength per iterationg{Gz?r   )namedescriptionr)   r(   defaultr5   zBlur Iterationsz6Number of times to blur the colors (higher blurs more)r   (   r   r4   zHighlight Anglez5Less than 90 limits the angle used in the tonal ranger   ROTATION)r[   r\   r)   r(   r]   unitclean_anglez
Dirt Angle
dirt_anglez	Dirt Onlyz'Don't calculate cleans for convex areasF)r[   r\   r]   r8   	Normalizez-Normalize the colors, increasing the contrastTr9   c                 J    UR                   nU=(       a    UR                  S:H  $ )NMESH)objecttype)clscontextobjs      r   pollVertexPaintDirt.poll   s    nn*F*+r   c           	          UR                   nUR                  n[        UU R                  U R                  U R
                  U R                  U R                  U R                  5      nU$ )N)	rf   r+   rQ   r4   r5   rb   ra   r8   r9   )selfri   rj   meshrets        r   executeVertexPaintDirt.execute   sX    nnxx  OONNNN
 
r    N)__name__
__module____qualname____firstlineno____doc__	bl_idnamebl_label
bl_optionsrS   __annotations__rT   r&   rU   classmethodrk   rq   __static_attributes__rs   r   r   rW   rW      s    6)I$Hf%J 1c	  !L2	  KR  KR  = 
 C  , ,r   rW   N)r   rQ   	bpy.typesrR   	bpy.propsrS   rT   rU   r   r&   rW   classesrs   r   r   <module>r      s9   
Dpf  > > >h >D r   